# How to get vendor/gems/cucumber-0.4.2 to use vendor/gems/treetop-1.4.2?

**URL:** <https://www.ruby-forum.com/t/how-to-get-vendor-gems-cucumber-0-4-2-to-use-vendor-gems-treetop-1-4-2/177390>\
**Category:** Rails\
**Created:** [October 16, 2009, 5:39am UTC](https://www.ruby-forum.com/t/how-to-get-vendor-gems-cucumber-0-4-2-to-use-vendor-gems-treetop-1-4-2/177390 "2009-10-16T05:39:46Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![stepheneb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@stepheneb](https://www.ruby-forum.com/u/stepheneb)\
**Post date:** [October 16, 2009, 5:39am UTC](https://www.ruby-forum.com/t/how-to-get-vendor-gems-cucumber-0-4-2-to-use-vendor-gems-treetop-1-4-2/177390/1 "2009-10-16T05:39:46Z")

</div>

I’ve frozen all the gems used for testing my rails app into vendor/gems  
but some of the dependent gems are loaded from

Do I need to specify each gem in cucumber’s dependency tree in the  
environment initializer?

config/environments/.rb

Right now I only use config.gem to specify these:

cucumber, webrat, rspec, and rspec-rails

Here are all the others cucumber depends on:

$ RAILS\_ENV=test rake gems

…

- [F] cucumber \>= 0.4.2
  - [F] term-ansicolor = 1.0.4
  - [F] treetop = 1.4.2
    - [F] polyglot \>= 0.2.5

  - [F] polyglot = 0.2.9
  - [F] builder = 2.1.2
  - [F] diff-lcs = 1.1.2

I = Installed  
F = Frozen  
R = Framework (loaded before rails starts)

So treetop is there but running:

$ rake features --trace

results in this error:

undefined method `has\_terminal?’ for  
#Cucumber::Parser::I18n::EnglishParser (NoMethodError)

Presumably because cucumber is using an older gem version of treetop in  
my system gem directory instead of  
vendor/gems/treetop-1.4.2.

Part of the trace:

(eval):23:in `_nt_feature' /Library/Ruby/Gems/1.8/gems/treetop-1.2.5/lib/treetop/runtime/compiled_parser.rb:18:in`send’  
/Library/Ruby/Gems/1.8/gems/treetop-1.2.5/lib/treetop/runtime/compiled\_parser.rb:18:in  
`parse' /Users/stephen/dev/test/rites/vendor/gems/cucumber-0.4.2/bin/../lib/cucumber/parser/treetop_ext.rb:28:in`parse\_or\_fail’

---

<div class="post-metadata">

**Author:** ![stepheneb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@stepheneb](https://www.ruby-forum.com/u/stepheneb)\
**Post date:** [October 16, 2009, 11:28pm UTC](https://www.ruby-forum.com/t/how-to-get-vendor-gems-cucumber-0-4-2-to-use-vendor-gems-treetop-1-4-2/177390/2 "2009-10-16T23:28:37Z")

</div>

I’m guessing you’ve run into an issue where Cucumber is calling  
“require ‘treetop’” before the Rails stack is initialized (and thus  
before vendor/gems is loaded as a gem source). Adding treetop to your  
config.gem stuff may not help, but a full stack trace from both  
conditions (with config.gem ‘treetop’ and without) will be helpful.

–Matt J.

On Oct 15, 11:38 pm, Stephen B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![stepheneb](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/71e660/32.png) [@stepheneb](https://www.ruby-forum.com/u/stepheneb)\
**Post date:** [October 16, 2009, 11:32pm UTC](https://www.ruby-forum.com/t/how-to-get-vendor-gems-cucumber-0-4-2-to-use-vendor-gems-treetop-1-4-2/177390/3 "2009-10-16T23:32:33Z")

</div>

Stephen B. wrote:

> I’ve frozen all the gems used for testing my rails app into vendor/gems  
> […]

Don’t do that. Only deployment gems should go in there. Testing gems  
should just be specified in config/environments/test.rb , as recommended  
(I think) in the RSpec and Cucumber docs.

## Best,

Marnen Laibow-Koser  
[http://www.marnen.org](http://www.marnen.org)  
removed\_email\_address@domain.invalid
