lib/tzinfo/data_timezone.rb in tzinfo-1.0.1 vs lib/tzinfo/data_timezone.rb in tzinfo-1.1.0

- old
+ new

@@ -1,7 +1,7 @@ #-- -# Copyright (c) 2006-2010 Philip Ross +# Copyright (c) 2006-2013 Philip Ross # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell @@ -21,10 +21,12 @@ #++ module TZInfo # A Timezone based on a DataTimezoneInfo. + # + # @private class DataTimezone < InfoTimezone #:nodoc: # Returns the TimezonePeriod for the given UTC time. utc can either be # a DateTime, Time or integer timestamp (Time.to_i). Any timezone # information in utc is ignored (it is treated as a UTC time). @@ -38,8 +40,34 @@ # local time as an array. If you just want a single period, use # period_for_local instead and specify how abiguities should be resolved. # Raises PeriodNotFound if no periods are found for the given time. def periods_for_local(local) info.periods_for_local(local) - end + end + + # Returns an Array of TimezoneTransition instances representing the times + # where the UTC offset of the timezone changes. + # + # Transitions are returned up to a given date and time up to a given date + # and time, specified in UTC (utc_to). + # + # A from date and time may also be supplied using the utc_from parameter + # (also specified in UTC). If utc_from is not nil, only transitions from + # that date and time onwards will be returned. + # + # Comparisons with utc_to are exclusive. Comparisons with utc_from are + # inclusive. If a transition falls precisely on utc_to, it will be excluded. + # If a transition falls on utc_from, it will be included. + # + # Transitions returned are ordered by when they occur, from earliest to + # latest. + # + # utc_to and utc_from can be specified using either DateTime, Time or + # integer timestamps (Time.to_i). + # + # If utc_from is specified and utc_to is not greater than utc_from, then + # transitions_up_to raises an ArgumentError exception. + def transitions_up_to(utc_to, utc_from = nil) + info.transitions_up_to(utc_to, utc_from) + end end end