Мне нужно изменить объект DateTime. Ресурс, который я нашел, утверждает, что это то, что мне нужно сделать, но я не совсем уверен, что делать с этим кодом. Куда я это положу? Спасибо за чтение.
module DateTimePatch
def getlocal
"works!"
end
end
DateTime.send(:include, DateTimePatch)
EDIT:
Так вот что у меня есть
/ Библиотека / date_time.rb
class DateTime
def getlocal
"it works"
end
end
Консоль
ruby-1.9.2-p0 > Time.now.getlocal
=> 2010-11-09 23:40:36 +1000
ruby-1.9.2-p0 > DateTime.now
=> Tue, 09 Nov 2010 23:40:57 +1000
ruby-1.9.2-p0 > DateTime.now.getlocal
NoMethodError: undefined method `getlocal' for Tue, 09 Nov 2010 23:41:02 +1000:DateTime
EDIT2:
Хорошо, теперь я делаю:
ruby-1.9.2-p0 > require './lib/date_time.rb'
=> true
ruby-1.9.2-p0 > DateTime.now.getlocal
NoMethodError: undefined method `now' for DateTime:Class
from (irb):2
from /Users/benhartney/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'
ruby-1.9.2-p0 > DateTime.now
NoMethodError: undefined method `now' for DateTime:Class
from (irb):3
from /Users/benhartney/.rvm/rubies/ruby-1.9.2-p0/bin/irb:17:in `<main>'
Я попытался добавить временный метод now
в миксин, чтобы посмотреть, произошла ли ошибка и произошла ли она. DateTime.now хорошо работал до того, как я загрузил миксин, не уверен, почему это происходит?