class BerkeleyLibrary::TIND::API::DateRange
Constants
- FORMAT
Attributes
from_time[R]
until_time[R]
Public Class Methods
ensure_date_range(date_range)
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 40 def ensure_date_range(date_range) return unless date_range return date_range if date_range.is_a?(DateRange) return DateRange.from_range(date_range) if date_range.respond_to?(:first) && date_range.respond_to?(:last) raise ArgumentError, "Can't convert #{date_range.inspect} to #{DateRange}" end
ensure_valid_range(from_time, until_time)
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 48 def ensure_valid_range(from_time, until_time) ftime, utime = [from_time, until_time].map { |t| BerkeleyLibrary::Util::Times.ensure_utc(t) } return [ftime, utime] if ftime <= utime raise ArgumentError, "Not a valid range: #{from_time.inspect}..#{until_time.inspect}" end
from_range(range)
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 36 def from_range(range) DateRange.new(from_time: range.first, until_time: range.last) end
new(from_time:, until_time:, mtime: false)
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 12 def initialize(from_time:, until_time:, mtime: false) @from_time, @until_time = DateRange.ensure_valid_range(from_time, until_time) @mtime = mtime end
Public Instance Methods
==(other)
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 29 def ==(other) return false unless other.class == self.class [from_time, until_time] == [other.from_time, other.until_time] end
Also aliased as: eql
mtime?()
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 17 def mtime? @mtime end
to_params()
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 21 def to_params { d1: format_param(from_time), d2: format_param(until_time) }.tap do |params| params[:dt] = 'm' if mtime? end end
Private Instance Methods
format_param(t)
click to toggle source
# File lib/berkeley_library/tind/api/date_range.rb, line 58 def format_param(t) tz = BerkeleyLibrary::TIND::Config.timezone t_utc = BerkeleyLibrary::Util::Times.ensure_utc(t) # just to be sure t_local = tz.utc_to_local(t_utc) t_local.strftime(FORMAT) end