cucumber-ruby: Getting `undefined method 'unpack' for nil:NilClass` on ruby 2.2

Ruby 2.2-preview2 was released a couple weeks ago and I decided to add it to RSpec’s travis build matrix to make sure we’re all green on it (and, if not, to provide feedback to the ruby core team about any regressions we find). However, I’m running into an exception from cucumber when travis runs our cukes on ruby-2.2-preview2. (Actually, after looking at the full build logs, it looks like it’s using 2.2-preview1…I guess 2.2 in .travis.yml doesn’t yet run preview2).

Here’s an example of the failure:

https://travis-ci.org/rspec/rspec-expectations/jobs/43763060#L155

Here’s the full stack trace:

undefined method `unpack' for nil:NilClass (NoMethodError)
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step.rb:81:in `text_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:62:in `block in max_line_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:62:in `map'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/step_collection.rb:62:in `max_line_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/has_steps.rb:53:in `max_line_length'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/has_steps.rb:49:in `source_indent'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/background.rb:40:in `accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:64:in `block in visit_background'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:63:in `visit_background'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/feature.rb:36:in `accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:27:in `block in visit_feature'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:26:in `visit_feature'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:28:in `block in accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:17:in `each'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:17:in `each'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/features.rb:27:in `accept'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:21:in `block in visit_features'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:170:in `broadcast'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/ast/tree_walker.rb:20:in `visit_features'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/runtime.rb:49:in `run!'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/lib/cucumber/cli/main.rb:47:in `execute!'
/home/travis/build/rspec/bundle/ruby/2.2.0/gems/cucumber-1.3.17/bin/cucumber:13:in `<top (required)>'
bin/cucumber:12:in `load'
bin/cucumber:12:in `<main>'

This might be a regression in ruby rather than a bug in cucumber, but I’m not in a good position to figure that out so I figured I’d report it here and let the cucumber team work that out 😃.

About this issue

  • Original URL
  • State: closed
  • Created 10 years ago
  • Comments: 15 (7 by maintainers)

Commits related to this issue

Most upvoted comments

I just released 1.3.18 which has @tricknotes Ruby 2.2 support PR in it, so hopefully a quick bundle update cucumber should fix this for you all.

Happy Christmas!=