1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
|
require 'time'
require 'date'
# Parse natural language dates and times into Time or {Chronic::Span} objects
#
# @example
# require 'chronic'
#
# Time.now #=> Sun Aug 27 23:18:25 PDT 2006
#
# Chronic.parse('tomorrow')
# #=> Mon Aug 28 12:00:00 PDT 2006
#
# Chronic.parse('monday', :context => :past)
# #=> Mon Aug 21 12:00:00 PDT 2006
#
# Chronic.parse('this tuesday 5:00')
# #=> Tue Aug 29 17:00:00 PDT 2006
#
# Chronic.parse('this tuesday 5:00', :ambiguous_time_range => :none)
# #=> Tue Aug 29 05:00:00 PDT 2006
#
# Chronic.parse('may 27th', :now => Time.local(2000, 1, 1))
# #=> Sat May 27 12:00:00 PDT 2000
#
# Chronic.parse('may 27th', :guess => false)
# #=> Sun May 27 00:00:00 PDT 2007..Mon May 28 00:00:00 PDT 2007
#
# @author Tom Preston-Werner, Lee Jarvis
module Chronic
VERSION = "0.6.7"
class << self
# @return [Boolean] true when debug mode is enabled
attr_accessor :debug
# @example
# require 'chronic'
# require 'active_support/time'
#
# Time.zone = 'UTC'
# Chronic.time_class = Time.zone
# Chronic.parse('June 15 2006 at 5:54 AM')
# # => Thu, 15 Jun 2006 05:45:00 UTC +00:00
#
# @return [Time] The time class Chronic uses internally
attr_accessor :time_class
# The current Time Chronic is using to base from
#
# @example
# Time.now #=> 2011-06-06 14:13:43 +0100
# Chronic.parse('yesterday') #=> 2011-06-05 12:00:00 +0100
#
# now = Time.local(2025, 12, 24)
# Chronic.parse('tomorrow', :now => now) #=> 2025-12-25 12:00:00 +0000
#
# @return [Time, nil]
attr_accessor :now
end
self.debug = false
self.time_class = Time
end
require 'chronic/chronic'
require 'chronic/handler'
require 'chronic/handlers'
require 'chronic/mini_date'
require 'chronic/tag'
require 'chronic/span'
require 'chronic/token'
require 'chronic/grabber'
require 'chronic/pointer'
require 'chronic/scalar'
require 'chronic/ordinal'
require 'chronic/separator'
require 'chronic/time_zone'
require 'chronic/numerizer'
require 'chronic/season'
require 'chronic/repeater'
require 'chronic/repeaters/repeater_year'
require 'chronic/repeaters/repeater_season'
require 'chronic/repeaters/repeater_season_name'
require 'chronic/repeaters/repeater_month'
require 'chronic/repeaters/repeater_month_name'
require 'chronic/repeaters/repeater_fortnight'
require 'chronic/repeaters/repeater_week'
require 'chronic/repeaters/repeater_weekend'
require 'chronic/repeaters/repeater_weekday'
require 'chronic/repeaters/repeater_day'
require 'chronic/repeaters/repeater_day_name'
require 'chronic/repeaters/repeater_day_portion'
require 'chronic/repeaters/repeater_hour'
require 'chronic/repeaters/repeater_minute'
require 'chronic/repeaters/repeater_second'
require 'chronic/repeaters/repeater_time'
class Time
def self.construct(year, month = 1, day = 1, hour = 0, minute = 0, second = 0)
warn "Time.construct will be deprecated in version 0.7.0. Please use Chronic.construct instead"
Chronic.construct(year, month, day, hour, minute, second)
end
def to_minidate
warn "Time.to_minidate will be deprecated in version 0.7.0. Please use Chronic::MiniDate.from_time(time) instead"
Chronic::MiniDate.from_time(self)
end
end
|