class Rufus::Scheduler::ZoTime
def self.parse(str, opts={})
def self.parse(str, opts={}) if defined?(::Chronic) && t = ::Chronic.parse(str, opts) return ZoTime.new(t, ENV['TZ']) end begin DateTime.parse(str) rescue raise ArgumentError, "no time information in #{o.inspect}" end if RUBY_VERSION < '1.9.0' zone = nil s = str.gsub(/\S+/) { |m| if envtzable?(m) zone ||= m '' else m end } return nil unless zone.nil? || is_timezone?(zone) zt = ZoTime.new(0, zone || ENV['TZ']) zt.in_zone { zt.seconds = Time.parse(s).to_f } zt.seconds == nil ? nil : zt end