я добавил два метода класса Date и его поместили в lib/core_ext
следующим образом:NoMethodError по методу добавлен в Date класс
class Date
def self.new_from_hash(hash)
Date.new flatten_date_array hash
end
private
def self.flatten_date_array(hash)
%w(1 2 3).map { |e| hash["date(#{e}i)"].to_i }
end
end
затем создал тест
require 'test_helper'
class DateTest < ActiveSupport::TestCase
test 'the truth' do
assert true
end
test 'can create regular Date' do
date = Date.new
assert date.acts_like_date?
end
test 'date from hash acts like date' do
hash = ['1i' => 2015, '2i'=> 'February', '3i' => 14]
date = Date.new_from_hash hash
assert date.acts_like_date?
end
end
Теперь я получаю ошибка: Minitest::UnexpectedError: NoMethodError: undefined method 'flatten_date_array' for Date:Class
Я неправильно определил свой метод или что-то еще? Я даже попытался переместить метод flatten_date_array
внутри new_from_hash
и все еще получил ошибку. Я также попытался создать тест в MiniTest и получил ту же ошибку.
Чтобы быть честным, я не знаю деталей, почему, я хочу дать комментарий, но у меня нет права. – jerrytao