Sha256: fb3d9a926e956cbd6ff4955dbde7433ed3b61dc83c50bd37a1bc87eb35b8a829

Contents?: true

Size: 951 Bytes

Versions: 1

Compression:

Stored size: 951 Bytes

Contents

module Timely
  module Date
    def at_time(hour = nil, minute = nil, second = nil)
      if hour.is_a?(Time)
        time = hour
        hour, minute, second = time.hour, time.min, time.sec
      end

      ::Time.local(year, month, day, hour, minute, second)
    end

    alias_method :at, :at_time

    # returns true if date between from and to
    # however if from and/or to are nil, it ignores that query
    # e.g. date.between?(from, nil) is "date > from",
    #      date.between?(from, nil) is "date < to"
    #      date.between?(nil, nil)  is true
    def between?(from, to)
      from = from.to_date if from && !from.is_a?(Date)
      to   = to.to_date if to && !to.is_a?(Date)

      if from && to
        self >= from && self <= to
      elsif from
        self >= from
      elsif to
        self <= to
      else
        true # i.e. no restrictive range return true
      end
    end
  end
end

class Date
  include Timely::Date
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
timely-0.1.0 lib/timely/date.rb