diff options
-rw-r--r-- | test/scanners/ruby/def.expected.raydebug | 89 | ||||
-rw-r--r-- | test/scanners/ruby/def.in.rb | 89 | ||||
-rw-r--r-- | test/scanners/ruby/def.known-issue.yaml | 2 |
3 files changed, 180 insertions, 0 deletions
diff --git a/test/scanners/ruby/def.expected.raydebug b/test/scanners/ruby/def.expected.raydebug new file mode 100644 index 0000000..3438491 --- /dev/null +++ b/test/scanners/ruby/def.expected.raydebug @@ -0,0 +1,89 @@ +comment(# simple method definitions) + +reserved(def) method(method) ident(param1)operator(,) ident(param2) + comment(# code) +reserved(end) + +reserved(def) method(method)operator(()ident(args)operator(,) operator(*)ident(rest)operator(,) operator(&)ident(block)operator(\)) + comment(# code) +reserved(end) + +reserved(def) +method(method)operator(()ident(param1)operator(,) ident(param2)operator(\)) + comment(# code) +reserved(end) + +reserved(def) \ +method(method)operator(()ident(param1)operator(,) ident(param2)operator(\)) + comment(# code) +reserved(end) + +reserved(def) comment(# comment) +method(method)operator(()ident(param1)operator(,) ident(param2)operator(\)) + comment(# code) +reserved(end) + +reserved(def) method([])operator(;)reserved(end) +reserved(def) method(def)operator(;)reserved(end) +reserved(def) method(end?)operator(;)reserved(end) +reserved(def) method(a)operator(()operator(*)operator(\)) reserved(end) +reserved(def) method(!)operator(;) reserved(end) comment(# Ruby 1.9) + + +comment(# singleton methods) + +reserved(def) constant(Class)operator(.)ident(method) +reserved(end) + +reserved(def) pre_constant(self)operator(.)method(method) +reserved(end) + +reserved(def) ident(object)operator(.)method(method) +reserved(end) + +reserved(def) global_variable($~)operator(.)method(method) +reserved(end) + +reserved(def) pre_constant(nil)operator(.)method(method) +reserved(end) +reserved(def) pre_constant(true)operator(.)method(method) +reserved(end) +reserved(def) pre_constant(false)operator(.)method(method) +reserved(end) +reserved(def) pre_constant(__FILE__)operator(.)method(method) +reserved(end) +reserved(def) pre_constant(__LINE__)operator(.)method(method) +reserved(end) +reserved(def) pre_constant(__ENCODING__)operator(.)method(method) +reserved(end) +reserved(def) pre_constant(__ENCODING__)operator(.)method(method) +reserved(end) + +reserved(def) instance_variable(@instance_variable)operator(.)method(method) +reserved(end) + +reserved(def) instance_variable(@class_variable)operator(.)method(method) +reserved(end) + +reserved(def) operator(()constant(Module)operator(::)constant(Class)operator(\))operator(.)method(method) +reserved(end) + +reserved(def) operator(()ident(complex)operator(.)ident(expression)operator(\))operator(.)method(method) +reserved(end) + +reserved(def) operator(()ident(complex)operator(.)ident(expression) operator(+) ident(another)operator(()ident(complex)operator(()ident(expression)operator(\))operator(\))operator(\))operator(.)method(method) +reserved(end) + + +comment(# crazy) + +reserved(def) operator(()reserved(class) class(Foo) + reserved(def) method(initialize)operator(()ident(args)operator(\)) + reserved(def) method(yet_another_method)operator(;) reserved(end) + reserved(end) +reserved(end)operator(\))operator(.)method(method)operator(()ident(args)operator(,) operator(*)ident(rest)operator(,) operator(&)ident(block)operator(\)) +reserved(end) + +comment(# wrong) +reserved(def) ident(foo)operator(.)ident(bar)error(.)ident(quux) +reserved(end) diff --git a/test/scanners/ruby/def.in.rb b/test/scanners/ruby/def.in.rb new file mode 100644 index 0000000..934dba1 --- /dev/null +++ b/test/scanners/ruby/def.in.rb @@ -0,0 +1,89 @@ +# simple method definitions + +def method param1, param2 + # code +end + +def method(args, *rest, &block) + # code +end + +def +method(param1, param2) + # code +end + +def \ +method(param1, param2) + # code +end + +def # comment +method(param1, param2) + # code +end + +def [];end +def def;end +def end?;end +def a(*) end +def !; end # Ruby 1.9 + + +# singleton methods + +def Class.method +end + +def self.method +end + +def object.method +end + +def $~.method +end + +def nil.method +end +def true.method +end +def false.method +end +def __FILE__.method +end +def __LINE__.method +end +def __ENCODING__.method +end +def __ENCODING__.method +end + +def @instance_variable.method +end + +def @class_variable.method +end + +def (Module::Class).method +end + +def (complex.expression).method +end + +def (complex.expression + another(complex(expression))).method +end + + +# crazy + +def (class Foo + def initialize(args) + def yet_another_method; end + end +end).method(args, *rest, &block) +end + +# wrong +def foo.bar.quux +end diff --git a/test/scanners/ruby/def.known-issue.yaml b/test/scanners/ruby/def.known-issue.yaml new file mode 100644 index 0000000..b010a88 --- /dev/null +++ b/test/scanners/ruby/def.known-issue.yaml @@ -0,0 +1,2 @@ +description: Ruby scanner can't parse complex method definitions. +ticket_url: http://redmine.rubychan.de/issues/147
\ No newline at end of file |