C0 code coverage information
Generated on Sat Feb 02 17:44:24 +0100 2008 with rcov 0.8.1.2
Code reported as executed by Ruby looks like this...
and this: this line is also marked as covered.
Lines considered as run by rcov, but not reported by Ruby, look like this,
and this: these lines were inferred by rcov (using simple heuristics).
Finally, here's a line marked as not executed.
1 # from merb/core_ext/get_args.rb
2 begin
3 require 'ruby2ruby'
4
5 class ParseTreeArray < Array
6 def self.translate(*args)
7 self.new(ParseTree.translate(*args))
8 end
9
10 def deep_array_node(type = nil)
11 each do |node|
12 return ParseTreeArray.new(node) if node.is_a?(Array) && (!type || node[0] == type)
13 next unless node.is_a?(Array)
14 return ParseTreeArray.new(node).deep_array_node(type)
15 end
16 nil
17 end
18
19 def arg_nodes
20 self[1..-1].inject([]) do |sum,item|
21 sum << [item] unless item.is_a?(Array)
22 sum
23 end
24 end
25
26 def get_args
27 arg_node = deep_array_node(:args)
28 return nil unless arg_node
29 args = arg_node.arg_nodes
30 default_node = arg_node.deep_array_node(:block)
31 return args unless default_node
32 lasgns = default_node[1..-1]
33 lasgns.each do |asgn|
34 args.assoc(asgn[1]) << eval(RubyToRuby.new.process(asgn[2]))
35 end
36 args
37 end
38
39 end
40
41 module GetArgs
42 def get_args
43 klass, meth = self.to_s.split(/ /).to_a[1][0..-2].split("#")
44 klass = $` if klass =~ /\(/
45 ParseTreeArray.translate(Object.const_get(klass), meth).get_args
46 end
47 end
48
49 class UnboundMethod
50 include GetArgs
51 end
52
53 class Method
54 include GetArgs
55 end
56 rescue LoadError
57 end
Generated using the rcov code coverage analysis tool for Ruby version 0.8.1.2.