IRB не распознает метод - PullRequest
0 голосов
/ 17 декабря 2011

Это странно, и, вероятно, из-за того, что я новичок в ruby.Я создал драгоценный камень, он работает, все модульные тесты работают, но когда я делаю следующее в irb, он не может найти метод "ингредиенты";

1.9.2-p290 :002 > require "tablecloth"
 => true 
1.9.2-p290 :003 > tc = TableCloth.new "1 cup of sugar"
 => #<TableCloth:0x864a728> 
1.9.2-p290 :004 > tc.ingredients
NoMethodError: undefined method `ingredients' for #<TableCloth:0x864a728>
from (irb):4
from /home/mikey/.rvm/rubies/ruby-1.9.2-p290/bin/irb:16:in `<main>'
1.9.2-p290 :005 > 

Весь драгоценный камень здесь;

https://github.com/mikeyhogarth/tablecloth

Очевидно, это из-за того, что я новичок в ruby.На самом деле это не мешает разработке, я просто хочу знать, почему irb не может зарегистрировать этот метод в этом случае!

1 Ответ

2 голосов
/ 17 декабря 2011

Я думаю, вы загружаете в IRB другую, более старую версию гема, чем в своих юнит-тестах.Ваши модульные тесты, вероятно, тестируют код gem, находящийся в вашем каталоге разработки, но когда вы делаете require "tablecloth" в IRB, он загружает гем, который был установлен, в каталог вашей системы.Если вы используете RVM, вы можете посмотреть переменную окружения $ GEM_HOME, чтобы увидеть, что это за каталог.

Возможно, вам нужно запустить задачу rake, например rake install или что-то подобное, чтобы установить свой гем перед тем, как выможете использовать его в IRB.

...