Module: ValidatesTimeliness::Extensions::DateTimeSelect

Extended by:
ActiveSupport::Concern
Defined in:
lib/validates_timeliness/extensions/date_time_select.rb

Defined Under Namespace

Classes: TimelinessDateTime

Instance Method Summary collapse

Instance Method Details

#datetime_selector_with_timeliness(*args) ⇒ Object



36
37
38
39
# File 'lib/validates_timeliness/extensions/date_time_select.rb', line 36

def datetime_selector_with_timeliness(*args)
  @timeliness_date_or_time_tag = true
  datetime_selector_without_timeliness(*args)
end

#value_with_timeliness(object) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/validates_timeliness/extensions/date_time_select.rb', line 41

def value_with_timeliness(object)
  unless @timeliness_date_or_time_tag && @template_object.params[@object_name]
    return value_without_timeliness(object)
  end

  @template_object.params[@object_name]

  pairs = @template_object.params[@object_name].select {|k,v| k =~ /^#{@method_name}\(/ }
  return value_without_timeliness(object) if pairs.empty?

  values = [nil] * 6
  pairs.map do |(param, value)|
    position = param.scan(/\((\d+)\w+\)/).first.first
    values[position.to_i-1] = value.to_i
  end

  TimelinessDateTime.new(*values)
end