module Ensurance::TimeEnsure::ClassMethods

Public Instance Methods

ensure(thing) click to toggle source
# File lib/ensurance/time_ensure.rb, line 13
def ensure(thing)
  ::Time.zone ||= "UTC"

  case thing.class.name
  when 'NilClass'
    thing
  when 'Time'
    thing
  when 'Date'
    thing.beginning_of_day
  when 'Integer', 'Float'
    ::Time.zone.at(thing)
  when 'String'
    if thing.to_i.to_s == thing
      ::Time.zone.at(thing.to_i)
    elsif thing.to_f.to_s == thing
      ::Time.zone.at(thing.to_f)
    else
      ::Time.zone.parse(thing)
    end
  else
    if thing.respond_to?(:to_time)
      thing.to_time
    else
      raise ArgumentError, "Unhandled Type for Time to ensure: #{thing.class}"
    end
  end
end
ensure!(_thing) click to toggle source
# File lib/ensurance/time_ensure.rb, line 42
def ensure!(_thing)
  def ensure!(thing)
    result = self.ensure(thing)
    raise ArgumentError, "Cannot Time.ensure(#{thing})" unless result
    result
  end
end