Class: ActiveInteraction::DurationFilter

Inherits:
Filter
  • Object
show all
Defined in:
lib/roqua/core_ext/active_interaction/filters/duration_filter.rb

Instance Method Summary collapse

Instance Method Details

#cast(value, interaction) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/roqua/core_ext/active_interaction/filters/duration_filter.rb', line 25

def cast(value, interaction)
  case value
  when ActiveSupport::Duration
    (value == 0 && strip?) ? super(nil, interaction) : value
  when Hash
    if value[:value].present? && (value[:value].to_i != 0 || !strip?)
      value[:value].to_i.send(value[:unit])
    else
      super(nil, interaction)
    end
  else
    super
  end
end