Fix DateTimeSelect extension for Rails 3.1.0

This commit is contained in:
Adam Meehan 2011-09-18 18:06:10 +10:00
parent e7b503ae4f
commit 473da0fa5e
2 changed files with 10 additions and 16 deletions

View File

@ -16,16 +16,10 @@ module ValidatesTimeliness
module InstanceMethods
class TimelinessDateTime
attr_accessor :year, :month, :day, :hour, :min, :sec
def initialize(year, month, day, hour, min, sec)
@year = year
@month = month
@day = day
@hour = hour
@min = min
@sec = sec
@year, @month, @day, @hour, @min, @sec = year, month, day, hour, min, sec
end
# adapted from activesupport/lib/active_support/core_ext/date_time/calculations.rb, line 36 (3.0.7)
@ -46,13 +40,15 @@ module ValidatesTimeliness
datetime_selector_without_timeliness(*args)
end
def value(object)
def value_with_timeliness(object)
unless @timeliness_date_or_time_tag && @template_object.params[@object_name]
return super
return value_without_timeliness(object)
end
@template_object.params[@object_name]
pairs = @template_object.params[@object_name].select {|k,v| k =~ /^#{@method_name}\(/ }
return super if pairs.empty?
return value_without_timeliness(object) if pairs.empty?
values = [nil] * 6
pairs.map do |(param, value)|

View File

@ -31,7 +31,7 @@ module TestModel
end
def initialize(attributes = nil)
@attributes = self.class.model_attributes.inject({}) do |hash, column|
@attributes = self.class.model_attributes.keys.inject({}) do |hash, column|
hash[column.to_s] = nil
hash
end
@ -39,7 +39,7 @@ module TestModel
end
def attributes
@attributes.keys
@attributes
end
def attributes=(new_attributes={})
@ -49,14 +49,12 @@ module TestModel
end
def method_missing(method_id, *args, &block)
if !self.class.attribute_methods_generated?
self.class.define_attribute_methods self.class.model_attributes.keys.map(&:to_s)
method_name = method_id.to_s
if match_attribute_method?(method_id.to_s)
self.class.define_attribute_methods self.class.model_attributes.keys
send(method_id, *args, &block)
else
super
end
end
end