class Mutations::TimeFilter
Public Instance Methods
filter(data)
click to toggle source
# File lib/mutations/time_filter.rb, line 10 def filter(data) # Handle nil case if data.nil? return [nil, nil] if options[:nils] return [nil, :nils] end # Now check if it's empty: return [data, :empty] if '' == data if data.is_a?(Time) # Time actual_time = data elsif data.is_a?(String) begin actual_time = if options[:format] Time.strptime(data, options[:format]) else Time.parse(data) end rescue ArgumentError return [nil, :time] end elsif data.respond_to?(:to_time) # Date, DateTime actual_time = data.to_time else return [nil, :time] end if options[:after] if actual_time <= options[:after] return [nil, :after] end end if options[:before] if actual_time >= options[:before] return [nil, :before] end end # We win, it's valid! [actual_time, nil] end