module Coercible::Coercer::TimeCoercions

Common time coercion methods

Public Instance Methods

to_date(value) click to toggle source

Coerce given value to Date

@example

coercer[Time].to_date(time)  # => Date object

@param [Time,DateTime] value

@return [Date]

@api public

# File lib/coercible/coercer/time_coercions.rb, line 59
def to_date(value)
  coerce_with_method(value, :to_date)
end
to_datetime(value) click to toggle source

Coerce given value to DateTime

@example

coercer[Time].to_datetime(time)  # => DateTime object

@param [Date,Time] value

@return [DateTime]

@api public

# File lib/coercible/coercer/time_coercions.rb, line 45
def to_datetime(value)
  coerce_with_method(value, :to_datetime)
end
to_string(value) click to toggle source

Coerce given value to String

@example

coercer[Time].to_string(time)  # => "Wed Jul 20 10:30:41 -0700 2011"

@param [Date,Time,DateTime] value

@return [String]

@api public

# File lib/coercible/coercer/time_coercions.rb, line 17
def to_string(value)
  value.to_s
end
to_time(value) click to toggle source

Coerce given value to Time

@example

coercer[DateTime].to_time(datetime)  # => Time object

@param [Date,DateTime] value

@return [Time]

@api public

# File lib/coercible/coercer/time_coercions.rb, line 31
def to_time(value)
  coerce_with_method(value, :to_time)
end

Private Instance Methods

coerce_with_method(value, method) click to toggle source

Try to use native coercion method on the given value

Falls back to String-based parsing

@param [Date,DateTime,Time] value @param [Symbol] method

@return [Date,DateTime,Time]

@api private

# File lib/coercible/coercer/time_coercions.rb, line 75
def coerce_with_method(value, method)
  if value.respond_to?(method)
    value.public_send(method)
  else
    coercers[::String].public_send(method, to_string(value))
  end
end