defunkt / tomdoc

A TomDoc Ruby library.
http://tomdoc.org/
MIT License
114 stars 16 forks source link

ruby_parser 3.0 breaks tomdoc #25

Closed miyagawa closed 11 years ago

miyagawa commented 11 years ago

The tests fail and tomdoc against most of the files fail with no output when you have ruby_parser 3.0 or later.

This might be a bug or backward incompatible change in ruby_parser 3 - Locking it to 2.3 will fix it for now.

>  grep ruby_parser Gemfile.lock
    ruby_parser (3.0.1)
  ruby_parser (>= 2.0.4)
> rake test
# ERROR: (string):663 :: parse error on value ":" (tCOLON)
Run options: 

# Running tests:

E# ERROR: (string):663 :: parse error on value ":" (tCOLON)
E# ERROR: (string):663 :: parse error on value ":" (tCOLON)
E# ERROR: (string):663 :: parse error on value ":" (tCOLON)
.# ERROR: (string):663 :: parse error on value ":" (tCOLON)
E# ERROR: (string):663 :: parse error on value ":" (tCOLON)
F.# ERROR: (string):663 :: parse error on value ":" (tCOLON)
F..# ERROR: (string):663 :: parse error on value ":" (tCOLON)
F...F...................

Finished tests in 1.147573s, 29.6277 tests/s, 39.2132 assertions/s.

  1) Error:
test_attaches_TomDoc(ChimneySourceParserTest):
NoMethodError: undefined method `instance_methods' for nil:NilClass
    /Users/miyagawa/dev/tomdoc/test/source_parser_test.rb:16:in `block in <class:ChimneySourceParserTest>'

  2) Error:
test_finds_class_methods(ChimneySourceParserTest):
NoMethodError: undefined method `class_methods' for nil:NilClass
    /Users/miyagawa/dev/tomdoc/test/source_parser_test.rb:21:in `block in <class:ChimneySourceParserTest>'

  3) Error:
test_finds_instance_methods(ChimneySourceParserTest):
NoMethodError: undefined method `instance_methods' for nil:NilClass
    /Users/miyagawa/dev/tomdoc/test/source_parser_test.rb:12:in `block in <class:ChimneySourceParserTest>'

  4) Error:
test_finds_multiple_classes_in_one_file(ChimneySourceParserTest):
NoMethodError: undefined method `instance_methods' for nil:NilClass
    /Users/miyagawa/dev/tomdoc/test/source_parser_test.rb:35:in `block in <class:ChimneySourceParserTest>'

  5) Failure:
test_finds_namespaces(ChimneySourceParserTest) [/Users/miyagawa/dev/tomdoc/test/source_parser_test.rb:25]:
Failed assertion, no message given.

  6) Failure:
test_can_ignore_validation_methods(GeneratorTest) [/Users/miyagawa/dev/tomdoc/test/generator_test.rb:18]:
<47> expected but was
<2>.

  7) Failure:
test_ignores_invalid_methods(GeneratorTest) [/Users/miyagawa/dev/tomdoc/test/generator_test.rb:24]:
<39> expected but was
<2>.

  8) Failure:
test_finds_class_in_a_module_in_a_module(SourceParserTest) [/Users/miyagawa/dev/tomdoc/test/source_parser_test.rb:64]:
<3> expected but was
<1>.

34 tests, 45 assertions, 4 failures, 4 errors, 0 skips
rake aborted!
Command failed with status (8): [ruby -I"lib:lib:." -I"/Users/miyagawa/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.1/lib" "/Users/miyagawa/.rvm/gems/ruby-1.9.3-p286/gems/rake-10.0.1/lib/rake/rake_test_loader.rb" "test/**/*_test.rb" ]
Tasks: TOP => default => test
(See full trace by running task with --trace)
miyagawa commented 11 years ago

Nevermind - See #26, which actually fixes the use of ruby_parser to support 3.0 API :)