Sha256: 21f1544f7f5c8efe58463a4657069778bccd02d782aac3ba16de028ce27870fd
Contents?: true
Size: 1.43 KB
Versions: 2
Compression:
Stored size: 1.43 KB
Contents
require 'chronic' module TimeScopes class << self def minutely(start=nil) start ||= Time.now [ Chronic.parse(start_of_minute(start.utc)), Chronic.parse(start_of_minute(1.minute.since(start.utc))) ] end def hourly(start=nil) start ||= Time.now [ Chronic.parse(start_of_hour(start.utc)), Chronic.parse(start_of_hour(1.hour.since(start.utc))) ] end def daily(start=nil) start ||= Time.now [ Chronic.parse(start_of_day(start.utc)), Chronic.parse(start_of_day(1.day.since(start.utc))) ] end def weekly(start=nil) start ||= Time.now start = start.utc start = start - 1.day while !start.monday? [ Chronic.parse(start_of_day(start.utc)), Chronic.parse(start_of_day(1.week.since(start.utc))) ] end def monthly(start=nil) start ||= Time.now [ Chronic.parse(start_of_month(start.utc)), Chronic.parse(start_of_month(1.month.since(start.utc))) ] end def overall(start=nil) [ Chronic.parse('2000-01-01 00:00:00'), Chronic.parse(start_of_day(1.day.from_now.utc)) ] end def start_of_minute(time) time.strftime("%Y-%m-%d %H:%M:00Z") end def start_of_hour(time) time.strftime("%Y-%m-%d %H:00:00Z") end def start_of_day(time) time.strftime("%Y-%m-%d 00:00:00Z") end def start_of_month(time) time.strftime("%Y-%m-01 00:00:00Z") end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
timescopes-0.1.5 | lib/timescopes/scopes.rb |
timescopes-0.1.4 | lib/timescopes/scopes.rb |