Добрый день, уважаемое сообщество. Начав свое изучение с языком Ruby столкнулся с неожиданной проблемой, а именно - с установкой/настройкой гема rspec.
Устанавливал
rspec по аналогии с другими гемами (пока пригодился только гем
pony - работает нормально) командой
gem install rspec
Написал для своего класса тест, который так и не удается завести. Гугл на предмет ошибок выдает всего три ссылки, не имеющие отношения к моей проблеме, поэтому обращаюсь за помощью к обитающим здесь рубистам.
Код класса (отдельно работает, проверял, код практически не мой - учебный от проекта hasBrains, но не суть). Класс просто вычисляет цену с учетом выдуманных налогов и скидок.
item.rbclass Item
@@discount = 0.9
def self.discount
if Time.now.month == 4
return @@discount - 0.2
else
return @@discount
end
end
def initialize(options={})
@real_price = options[:price]
@name = options[:name]
end
attr_writer :price
attr_reader :name, :price, :real_price
def info
#[price, weight, name]
yield(price)
yield(name)
end
def price
((@real_price * self.class.discount) + tax).to_i if @real_price
end
private
def tax
type_tax = if self.class == VirtualItem
1
else
2
end
cost_tax = if @real_price > 5
@real_price * 0.2
else
@real_price * 0.1
end
return cost_tax + type_tax
end
end
А вот код теста:
item_spec.rbrequire "rspec"
require_relative "../item"
describe Item do
it "calculates price according to special formula" do
item1 = Item.new ({:name => "buckler", :price => 200})
item1.price.should == 112
end
end
Вызываю тест командой
rspec spec (или напрямую
rspec spec/item_spec.rb - без разницы), вижу вот такой вот странный результат:
nattfodd@nattfodd:~/ruby/shop$ rspec spec/item_spec.rb
Failures:
1) Item calculates price according to special formula
/var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/formatters/base_text_formatter.rb:167:in `failure_color': undefined method `failure_color' for #<RSpec::Core::Configuration:0x00000000820c30> (NoMethodError)
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/formatters/base_text_formatter.rb:262:in `dump_failure_info'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/formatters/base_text_formatter.rb:256:in `dump_failure'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/formatters/base_text_formatter.rb:24:in `block in dump_failures'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/formatters/base_text_formatter.rb:22:in `each'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/formatters/base_text_formatter.rb:22:in `each_with_index'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/formatters/base_text_formatter.rb:22:in `dump_failures'
from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:98:in `block in notify'
from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:97:in `each'
from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:97:in `notify'
from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:81:in `finish'
from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:36:in `ensure in report'
from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:36:in `report'
from /usr/lib/ruby/vendor_ruby/rspec/core/command_line.rb:25:in `run'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:69:in `run'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:10:in `block in autorun'
Исходя из ошибок я понимаю, что я как-то не так установил гем - ну или с ним что-то не так

Попробовал запустить тест через bundler (пока не знаю, что это, просто нашел один из способов):
nattfodd@nattfodd:~/ruby/shop$ bundle exec rspec spec/item_spec.rb
Could not locate Gemfile
На просторах интернета еще встречал решение удалить/пересоздать файл gemfile.lock, вот только где он находится я так и не понял.
Тесты - очень важная часть в процессе изучения языка, очень не хочется откладывать их в дальний ящик. Помогите настроить, пожалуйста

.
Добавлено: переустановил rspec и установил rspec через Bundler, вывод в обоих случаях одинаковый:
nattfodd@nattfodd:~/ruby/shop$ rspec
/var/lib/gems/1.9.1/gems/bundler-1.3.5/lib/bundler/rubygems_integration.rb:214:in `block in replace_gem': steak is not part of the bundle. Add it to Gemfile. (Gem::LoadError)
from /home/nattfodd/ruby/shop/spec/item_spec.rb:8:in `<top (required)>'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `block in load_spec_files'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `each'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/configuration.rb:819:in `load_spec_files'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/command_line.rb:22:in `run'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:80:in `run'
from /var/lib/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/runner.rb:17:in `block in autorun'
Пользователь решил продолжить мысль 30 Июня 2013, 08:11:51:
Убив полночи на гугление все же нашел элементарный источник проблемы - надо было установить гем
steak 