diff options
Diffstat (limited to 'vendor/rails-2.1.0/activesupport')
689 files changed, 65705 insertions, 0 deletions
diff --git a/vendor/rails-2.1.0/activesupport/CHANGELOG b/vendor/rails-2.1.0/activesupport/CHANGELOG new file mode 100644 index 000000000..690bb987d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/CHANGELOG @@ -0,0 +1,1181 @@ +*2.1.0 (May 31st, 2008)* + +* TimeZone#to_s shows offset as GMT instead of UTC, because GMT will be more familiar to end users (see time zone selects used by Windows OS, google.com and yahoo.com.) Reverts [8370] [Geoff Buesing] + +* Hash.from_xml: datetime xml types overflow to Ruby DateTime class when out of range of Time. Adding tests for utc offsets [Geoff Buesing] + +* TimeWithZone #+ and #- : ensure overflow to DateTime with Numeric arg [Geoff Buesing] + +* Time#to_json: don't convert to utc before encoding. References #175 [Geoff Buesing] + +* Remove unused JSON::RESERVED_WORDS, JSON.valid_identifier? and JSON.reserved_word? methods. Resolves #164. [Cheah Chu Yeow] + +* Adding Date.current, which returns Time.zone.today if config.time_zone is set; otherwise returns Date.today [Geoff Buesing] + +* TimeWithZone: date part getter methods (#year #mon #day etc) are defined on class; no longer relying on method_missing [Geoff Buesing] + +* Time.zone.parse return nil for strings with no date information [Geoff Buesing] + +* Time.zone.parse respects offset information in string. Resolves #105. [Scott Fleckenstein, Geoff Buesing] + +* Added Ruby 1.8 implementation of Process.daemon + +* Duration #since and #ago with no argument (e.g., 5.days.ago) return TimeWithZone when config.time_zone is set. Introducing Time.current, which returns Time.zone.now if config.time_zone is set, otherwise just returns Time.now [Geoff Buesing] + +* Time#since behaves correctly when passed a Duration. Closes #11527 [kemiller] + +* Add #getutc alias for DateTime#utc [Geoff Buesing] + +* Refactor TimeWithZone: don't send #since, #ago, #+, #-, #advance through method_missing [Geoff Buesing] + +* TimeWithZone respects config.active_support.use_standard_json_time_format [Geoff Buesing] + +* Add config.active_support.escape_html_entities_in_json to allow disabling of html entity escaping. [rick] + +* Improve documentation. [Xavier Noria] + +* Modified ActiveSupport::Callbacks::Callback#call to accept multiple arguments. + +* Time #yesterday and #tomorrow behave correctly crossing DST boundary. Closes #7399 [sblackstone] + +* TimeWithZone: Adding tests for dst and leap day edge cases when advancing time [Geoff Buesing] + +* TimeWithZone#method_missing: send to utc to advance with dst correctness, otherwise send to time. Adding tests for time calculations methods [Geoff Buesing] + +* Add config.active_support.use_standard_json_time_format setting so that Times and Dates export to ISO 8601 dates. [rick] + +* TZInfo: Removing unneeded TimezoneProxy class [Geoff Buesing] + +* TZInfo: Removing unneeded TimezoneIndexDefinition, since we're not including Indexes::Timezones [Geoff Buesing] + +* Removing unnecessary uses_tzinfo helper from tests, given that TZInfo is now bundled [Geoff Buesing] + +* Bundling abbreviated version of TZInfo gem 0.3.8: only the classes and zone definitions required to support Rails time zone features are included. If a recent version of the full TZInfo gem is installed, this will take precedence over the bundled version [Geoff Buesing] + +* TimeWithZone#marshal_load does zone lookup via Time.get_zone, so that tzinfo/Olson identifiers are handled [Geoff Buesing] + +* Time.zone= accepts TZInfo::Timezone instances and Olson identifiers; wraps result in TimeZone instance [Geoff Buesing] + +* TimeWithZone time conversions don't need to be wrapped in TimeOrDateTime, because TZInfo does this internally [Geoff Buesing] + +* TimeWithZone#usec returns 0 instead of error when DateTime is wrapped [Geoff Buesing] + +* Improve documentation. [Radar, Jan De Poorter, chuyeow, xaviershay, danger, miloops, Xavier Noria, Sunny Ripert] + +* Ensure that TimeWithZone#to_yaml works when passed a YAML::Emitter. [rick] + +* Ensure correct TimeWithZone#to_date [Geoff Buesing] + +* Make TimeWithZone work with tzinfo 0.2.x: use TZInfo::Timezone#zone_identifier alias for #abbreviation, silence warnings on tests. Raise LoadError when TZInfo version is < 0.2 by sniffing for TZInfo::TimeOrDateTime constant. Move all tzinfo-dependent TimeZone tests into uses_tzinfo block [Geoff Buesing] + +* Time, DateTime and TimeWithZone #in_time_zone defaults to Time.zone. Removing now unneeded #in_current_time_zone [Geoff Buesing] + +* TZInfo caches Timezone instances in its own internal hash cache, so TimeZone::MAPPING doesn't need to cache them as well [Geoff Buesing] + +* Adding TimeZone#parse [Geoff Buesing] + +* Adding TimeZone#at and DateTime#to_f [Geoff Buesing] + +* TimeWithZone responds to Ruby 1.9 weekday-named query methods [Geoff Buesing] + +* TimeWithZone caches TZInfo::TimezonePeriod used for time conversion so that it can be reused, and enforces DST rules correctly when instance is created from a local time [Geoff Buesing] + +* Fixed that BufferedLogger should create its own directory if one doesn't already exist #11285 [lotswholetime] + +* Fix Numeric time tests broken by DST change by anchoring them to fixed times instead of Time.now. Anchor TimeZone#now DST test to time specified with Time.at instead of Time.local to work around platform differences with Time.local and DST representation [Geoff Buesing] + +* Removing unneeded #change_time_zone method from Time, DateTime and TimeWithZone [Geoff Buesing] + +* TimeZone #local and #now correctly enforce DST rules [Geoff Buesing] + +* TimeWithZone instances correctly enforce DST rules. Adding TimeZone#period_for_utc [Geoff Buesing] + +* test_time_with_datetime_fallback expects DateTime.local_offset instead of DateTime.now.offset [Geoff Buesing] + +* Adding TimeWithZone #marshal_dump and #marshal_load [Geoff Buesing] + +* Add OrderedHash#to_hash [josh] + +* Adding Time#end_of_day, _quarter, _week, and _year. #9312 [Juanjo Bazan, Tarmo Tänav, BigTitus] + +* Adding TimeWithZone#between? [Geoff Buesing] + +* Time.=== returns true for TimeWithZone instances [Geoff Buesing] + +* TimeWithZone #+ and #- behave consistently with numeric arguments regardless of whether wrapped time is a Time or DateTime; consistenty answers false to #acts_like?(:date) [Geoff Buesing] + +* Add String#squish and String#squish! to remove consecutive chunks of whitespace. #11123 [jordi, Henrik N] + +* Serialize BigDecimals as Floats when using to_yaml. #8746 [ernesto.jimenez] + +* Adding TimeWithZone #to_yaml, #to_datetime, #eql? and method aliases for duck-typing compatibility with Time [Geoff Buesing] + +* TimeWithZone #in_time_zone returns +self+ if zone argument is the same as #time_zone [Geoff Buesing] + +* Adding TimeWithZone #to_a, #to_f, #to_i, #httpdate, #rfc2822 [Geoff Buesing] + +* Pruning unneeded TimeWithZone#change_time_zone_to_current [Geoff Buesing] + +* Time#zone=, #in_time_zone and #change_time_zone accept a Duration [Geoff Buesing] + +* Time#in_time_zone handles Time.local instances correctly [Geoff Buesing] + +* Pruning unneeded Time#change_time_zone_to_current. Enhanced docs to #change_time_zone to explain the difference between this method and #in_time_zone [Geoff Buesing] + +* TimeZone#new method renamed #local; when used with Time.zone, constructor now reads: Time.zone.local() [Geoff Buesing] + +* Added Base64.encode64s to encode values in base64 without the newlines. This makes the values immediately usable as URL parameters or memcache keys without further processing [DHH] + +* Remove :nodoc: entries around the ActiveSupport test/unit assertions. #10946 [dancroak, jamesh] + +* Add Time.zone_default accessor for setting the default time zone. Rails::Configuration.time_zone sets this. #10982 [Geoff Buesing] + +* cache.fetch(key, :force => true) to force a cache miss. [Jeremy Kemper] + +* Support retrieving TimeZones with a Duration. TimeZone[-28800] == TimeZone[-480.minutes]. [rick] + +* TimeWithZone#- added, so that #- can handle a Time or TimeWithZone argument correctly [Geoff Buesing] + +* with_timezone test helper renamed with_env_tz, to distinguish between setting ENV['TZ'] and setting Time.zone in tests [Geoff Buesing] + +* Time#- coerces TimeWithZone argument to a Time instance so that difference in seconds can be calculated. Closes #10914 [Geoff Buesing, yyyc514] + +* Adding UTC zone to TimeZone; TimeWithZone no longer has to fake UTC zone with nil [Geoff Buesing] + +* Time.get_zone refactored to private method, given that the encapsulated logic is only useful internally [Geoff Buesing] + +* Time.zone uses thread-local variable for thread safety. Adding Time.use_zone, for overriding Time.zone locally inside a block. Removing unneeded Time.zone_reset! [Geoff Buesing] + +* TimeZone#to_s uses UTC rather than GMT; reapplying change that was undone in [8679]. #1689 [Cheah Chu Yeow] + +* Time.days_in_month defaults to current year if no year is supplied as argument #10799 [Radar], uses Date.gregorian_leap? to determine leap year, and uses constant lookup to determine days in month [Geoff Buesing] + +* Adding Time and DateTime #compare_with_coercion, which layers behavior on #<=> so that any combination of Time, DateTime and ActiveSupport::TimeWithZone instances can be chronologically compared [Geoff Buesing] + +* TimeZone#now returns an ActiveSupport::TimeWithZone [Geoff Buesing] + +* Time #in_current_time_zone and #change_time_zone_to_current return self when Time.zone is nil [Geoff Buesing] + +* Remove unneeded #to_datetime_default_s alias for DateTime#to_s, given that we inherit a #to_default_s from Date that does exactly the same thing [Geoff Buesing] + +* Refactor Time and DateTime #to_formatted_s: use ternary instead of nested if/else [Geoff Buesing] + +* Adding Time and DateTime #formatted_offset, for outputting +HH:MM utc offset strings with cross-platform consistency [Geoff Buesing] + +* Adding alternate_utc_string option to TimeZone#formatted_offset. Removing unneeded TimeZone#offset. [Geoff Buesing] + +* Introduce ActiveSupport::TimeWithZone, for wrapping Time instances with a TimeZone. Introduce instance methods to Time for creating TimeWithZone instances, and class methods for managing a global time zone. [Geoff Buesing] + +>>>>>>> .r8815 +* Replace non-dst-aware TimeZone class with dst-aware class from tzinfo_timezone plugin. TimeZone#adjust and #unadjust are no longer available; tzinfo gem must now be present in order to perform time zone calculations, via #local_to_utc and #utc_to_local methods. [Geoff Buesing] + +* Extract ActiveSupport::Callbacks from Active Record, test case setup and teardown, and ActionController::Dispatcher. #10727 [Josh Peek] + +* Introducing DateTime #utc, #utc? and #utc_offset, for duck-typing compatibility with Time. Closes #10002 [Geoff Buesing] + +* Time#to_json uses Numeric#to_utc_offset_s to output a cross-platform-consistent representation without having to convert to DateTime. References #9750 [Geoff Buesing] + +* Refactor number-to-HH:MM-string conversion logic from TimeZone#formatted_offset to a reusable Numeric#to_utc_offset_s method. [Geoff Buesing] + +* Continue evolution toward ActiveSupport::TestCase. #10679 [Josh Peek] + +* TestCase: introduce declared setup and teardown callbacks. Pass a list of methods and an optional block to call before setup or after teardown. Setup callbacks are run in the order declared; teardown callbacks are run in reverse. [Jeremy Kemper] + +* Added ActiveSupport::Gzip.decompress/compress(source) as an easy wrapper for Zlib [Tobias Luetke] + +* Included MemCache-Client to make the improved ActiveSupport::Cache::MemCacheStore work out of the box [Bob Cottrell, Eric Hodel] + +* Added ActiveSupport::Cache::* framework as an extraction from ActionController::Caching::Fragments::* [DHH] + +* Fixed String#titleize to work for strings with 's too #10571 [trek] + +* Changed the implementation of Enumerable#group_by to use a double array approach instead of a hash such that the insert order is honored [DHH/Marcel] + +* remove multiple enumerations from ActiveSupport::JSON#convert_json_to_yaml when dealing with date/time values. [rick] + +* Hash#symbolize_keys skips keys that can't be symbolized. #10500 [Brad Greenlee] + +* Ruby 1.9 compatibility. #1689, #10466, #10468, #10554, #10594, #10632 [Cheah Chu Yeow, Pratik Naik, Jeremy Kemper, Dirkjan Bussink, fxn] + +* TimeZone#to_s uses UTC rather than GMT. #1689 [Cheah Chu Yeow] + +* Refactor of Hash#symbolize_keys! to use Hash#replace. Closes #10420 [ReinH] + +* Fix HashWithIndifferentAccess#to_options! so it doesn't clear the options hash. Closes #10419 [ReinH] + + +*2.0.1* (December 7th, 2007) + +* Added Array#from and Array#to that behaves just from String#from and String#to [DHH] + +* Fix that empty collections should be treated as empty arrays regardless of whitespace for Hash#from_xml #10255 [adamj] + +* Time#time_with_datetime_fallback, Time#to_datetime, Date#to_datetime and String#to_datetime honor Ruby's default calendar reform setting. #10201 [Geoff Buesing] + +* Change Time and DateTime #end_of_month to return last second of month instead of beginning of last day of month. Closes #10200 [Geoff Buesing] + +* Speedup String#blank? [Jeremy Kemper, Koz] + +* Add documentation for Hash#diff. Closes #9306 [Tarmo Tänav] + +* Add new superclass_delegating_accessors. Similar to class inheritable attributes but with subtly different semantics. [Koz, Tarmo Tänav] + +* Change JSON to encode %w(< > &) as 4 digit hex codes to be in compliance with the JSON spec. Closes #9975 [Josh Peek, Cheah Chu Yeow, Tim Pope] + +* Fix JSON encoding/decoding bugs dealing with /'s. Closes #9990 [Rick, theamazingrando] + +* Introduce a base class for all test cases used by rails applications. ActiveSupport::TestCase [Koz] + + The intention is to use this to reduce the amount of monkeypatching / overriding that + is done to test/unit's classes. + +* Document Enumerable and Hash #to_json. #9970 [Cheah Chu Yeow] + +* Hash#to_xml handles symbol values. #9954 [Assaf] + +* Hash#symbolize_keys behaves well with integer keys. #9890 [PotatoSalad] + +* Multibyte: String#slice supports regexp argument. #9646 [yob] + +* object.duplicable? returns true if object.dup is safe. False for nil, true, false, symbols, and numbers; true otherwise. #9333 [sur] + +* Time, Date and DateTime #advance accept :weeks option. #9866 [Geoff Buesing] + +* Fix Time#years_ago and #years_since from leap days. #9865 [Geoff Buesing] + +* Time and DateTime#advance accept :hours, :minutes, and :seconds options. #9825 [Geoff Buesing] + +* Fix Date#years_ago and #years_since from leap days. #9864 [Geoff Buesing] + +* Refactor Time and Date#months_since and #months_ago to use #advance. #9863 [Geoff Buesing] + +* Rebundle Builder 2.1.2 but prefer a newer RubyGem if available. [Jeremy Kemper] + +* Add Range#overlaps?(range), Range#include?(range), and Range#step without a block. [brandon] + +* Correct BufferedLogger#level? checks. #9806 [wildchild, Johan Sorensen] + +* String#to_xs uses Eric Wong's fast_xs extension, if available, for Builder speedup. http://bogomips.org/fast_xs/ [Jeremy Kemper] + +* Introduce BasicObject as Builder::BlankSlate for Ruby 1.9 forward compatibility. [Jeremy Kemper] + +* Unbundle Builder in favor of a gem dependency. [Jeremy Kemper] + +* Disambiguate Time, Date, and DateTime#to_json formatting. #9750 [Geoff Buesing, Cheah Chu Yeow] + +* Hash#to_json takes :only or :except options to specific or omit certain hash keys. Enumerable#to_json passes through its options to each element. #9751 [Cheah Chu Yeow] + +* BufferedLogger#auto_flushing = N flushes the log every N messages. Buffers with an array instead of string. Disabling auto_flushing still flushes when the buffer hits a maximum size, as a failsafe against memory-gobbling. [Jeremy Kemper] + +* Fixed Date#xmlschema for dates outside the range of what can be created with Time #9744 [Geoff Buesing] + +* Fixed that La Paz was included in -25200 and -14400 offsets when it should only be in -14400 #9735 [bermi] + +* Fixed JSON encoding to use quoted keys according to the JSON standard. #8762 [choonkat, Cheah Chu Yeow] + +* Alias Object#send to send! for Ruby 1.9 forward compatibility. [Jeremy Kemper] + +* Backport Object#instance_variable_defined? for Ruby < 1.8.6. [Jeremy Kemper] + +* BufferedLogger#add converts the message to a string. #9702, #9724 [eigentone, DrMark, tomafro] + +* Added ActiveSupport::BufferedLogger as a duck-typing alternative (albeit with no formatter) to the Ruby Logger, which provides a very nice speed bump (inspired by Ezra's buffered logger) [DHH] + +* Object#instance_exec produces fewer garbage methods. [Mauricio Fernandez] + +* Decode json strings as Dates/Times if they're using a YAML-compatible format. Closes #9614 [Rick] + +* Fixed cache_page to use the request url instead of the routing options when picking a save path. #8614 [Josh Peek] + +* Object.subclasses_of includes anonymous subclasses. [Jeremy Kemper] + +* Fixed that pluralizing an empty string should return the same empty string, not "s". #7720 [Josh Peek] + +* Added call to inspect on non-string classes for the logger #8533 [codahale] + +* Deprecation: remove deprecated :mday option from Time, Date, and DateTime#change. [Jeremy Kemper] + +* Fix JSON decoder with nested quotes and commas. #9579 [zdennis] + +* Hash#to_xml doesn't double-unescape. #8806 [Ezran] + +* Added Array#rand #9170 [Norbert Crombach]. Examples: + + [].rand # => nil + ['a'].rand # => 'a' + [1,2,3].rand # => 1 or 2 or 3 + +* Deprecation: removed Reloadable. [Jeremy Kemper] + +* Make the utf-handler return the correct value for non-matching regular expressions. Closes #9049 [manfred] + +* Add ljust, rjust and center to utf8-handler. Closes #9165 [manfred] + +* Fix Time#advance bug when trying to advance a year from leap day. Closes #8655 [gbuesing] + +* Add support for []= on ActiveSupport::Multibyte::Chars. Closes #9142. [ewan, manfred] + +* Added Array#extract_options! to encapsulate the pattern of getting an options hash out of a variable number of parameters. #8759 [Norbert Crombach] + +* Let alias_attribute work with attributes with initial capital letters (legacy columns etc). Closes #8596 [mpalmer] + +* Added Hash#except which is the inverse of Hash#slice -- return the hash except the keys that are specified [DHH] + +* Added support for pluralization with a different starting letter than the singular version (cow/kine) #4929 [norri_b/hasmanyjosh] + +* Demote Hash#to_xml to use XmlSimple#xml_in_string so it can't read files or stdin. #8453 [candlerb, Jeremy Kemper] + +* Backport clean_logger changes to support ruby 1.8.2 [mislav] + +* Added proper handling of arrays #8537 [hasmanyjosh] + + Before: + Hash.from_xml '<images></images>' + # => {:images => nil} + + Hash.from_xml '<images><image>foo.jpg</image></images>' + # => {:images => {:image => "foo.jpg"}} + + Hash.from_xml '<images><image>foo.jpg</image><image>bar.jpg</image></images>' + # => {:images => {:image => ["foo.jpg", "bar.jpg"]}} + + After: + Hash.from_xml '<images type="array"></images>' + # => {:images => []} + + Hash.from_xml '<images type="array"><image>foo.jpg</image></images>' + # => {:images => ["foo.jpg"]} + + Hash.from_xml '<images type="array"><image>foo.jpg</image><image>bar.jpg</image></images>' + # => {:images => ["foo.jpg", "bar.jpg"]} + +* Improve Time and Date test coverage. #8646 [Josh Peek] + +* Add Date#since, ago, beginning_of_day, and end_of_day. Date + seconds works now. #8575 [Geoff Buesing] + +* String#to_time overflows to DateTime. Add String#to_datetime. #8572 [Geoff Buesing] + +* Date.yesterday and .tomorrow. #8571 [Geoff Buesing] + +* Readable Date and DateTime#inspect. #8570 [Geoff Buesing] + +* Move common DateTime calculations to Date. #8536 [Geoff Buesing] + +* Added Date#change (like Time#change) [DHH] + +* DateTime#to_time converts to Time unless out of range. #8512 [Geoff Buesing] + +* Date#to_datetime, #to_s(:rfc822). #8512 [Geoff Buesing] + +* Time durations use since instead of + for accuracy. #8513 [Geoff Buesing] + +* escape <'s and >'s in JSON strings. #8371 [Rick] + +* Inflections: MatrixTest -> MatrixTests instead of MatricesTest. #8496 [jbwiv] + +* Multibyte strings respond_to the String methods they proxy so they can be duck-typed. #6549 [Tuxie] + +* Array#to_xml yields the builder just like Hash and ActiveRecord::Base. #8472 [seth] + +* Date, Time, and DateTime support formatting blocks in addition to strftime strings. Introduce :long_ordinal format, e.g. "February 21st, 2005". #8191 [Coda Hale] + +* Document Object#blank?. #6491 [Chris Mear] + +* Date, Time, and DateTime#to_json. #8399 [wycats] + +* Simplify API of assert_difference by passing in an expression that is evaluated before and after the passed in block. See documenation for examples of new API. [Marcel Molina Jr.] + +* Added assert_difference and assert_no_difference to test/unit assertions [Tobias Luetke] + +* Removed breakpointer and Binding.of_caller in favor of relying on ruby-debug by Kent Sibilev since the breakpointer has been broken since Ruby 1.8.4 and will not be coming back [DHH] + +* Added parsing of file type in Hash.xml_in so you can easily do file uploads with base64 from an API [DHH] + + <person> + <name>David</name> + <avatar type="file" name="me.jpg" content_type="image/jpg">R0lGODlhkACZAPUAAM5lcfjrtMQCG=\n</avatar> + </person> + + ...becomes: + + attributes = { :person => { :name => "David", :avatar => #<StringIO> } } + attributes[:person][:avatar].content_type # => "image/jpg" + attributes[:person][:avatar].original_filename # => "me.jpg" + attributes[:person][:avatar].read # => binary data of the file + + Which is duck-type compatible with the files that you get when doing multipart uploads through HTML. + +* Improved multibyte performance by relying less on exception raising #8159 [Blaine] + +* Use XSD-compatible type names for Hash#to_xml and make the converters extendable #8047 [Tim Pope] + +* Added yielding of builder in Hash#to_xml [DHH] + +* Hash#with_indifferent_access now also converts hashes kept in arrays to indifferent access (makes it easier to treat HTML and XML parameters the same) [DHH] + +* Hash#to_xml supports YAML attributes. #7502 [jonathan] + +* Refactor ActiveSupport::JSON to be less obtuse. Add support for JSON decoding by way of Syck with ActiveSupport::JSON.decode(json_string). Prevent hash keys that are JavaScript reserved words from being unquoted during encoding. [Sam Stephenson] + +* alias_method_chain preserves the original method's visibility. #7854 [Jonathan Viney] + +* Update Dependencies to ignore constants inherited from ancestors. Closes #6951. [Nicholas Seckar] + +* Array#to_query preserves its ordering. #7756 [Greg Spurrier] + +* Out-of-range Time calculations transparently overflow to DateTime. Introduce Time#to_datetime. #7706, #7715 [Geoff Buesing] + +* DateTime calculations analogous to the Date and Time extensions. #7693 [Geoff Buesing] + +* Give DateTime correct .to_s implementations, lets it play nice with ActiveRecord quoting. #7649 [Geoff Buesing] + +* Add File.atomic_write, allows you to write large files in an atomic manner, preventing users from seeing half written files. [Koz] + +* Allow users to provide custom formatters to Logger. [aeden] + +* Hash#to_query CGI-escapes its keys. [Jeremy Kemper] + +* Optimize Class Inheritable Attributes so that unnecessary hashes are not created. Closes #7472 [Bruce Perens] + +* :db format for Date#to_s [Jeremy Kemper] + Date.new(2007, 1, 27).to_s(:db) # => '2007-01-27' + +* Added :instance_writer option to #mattr_writer/accessor, #cattr_writer/accessor, and #class_inheritable_writer to skip the creation of the instance writer. [Rick] + +* Added Hash#to_query to turn a hash of values into a form-encoded query string [Nicholas Seckar] + +* Increase test coverage for subclasses_of. Closes #7335. [Roman2K, Nicholas Seckar] + +* Remove unused code from Duration#inspect. Closes #7180. [Rich Collins] + +* Added test coverage for Inflector.inflections.clear. Closes #7179. [Rich Collins] + +* ActiveSupport::Multibyte::Handlers::UTF8Handler should raise when a range and an integer are passed in (just like the native implementation). Closes #7176 [Rich Collins] + +* A couple extra tests for #classify. Closes #7273. [Josh Susser] + +* Better docs for Object extensions [zackchandler, Jamis Buck] + +* Fix that Dates couldn't be subtracted from Dates after [5940]. [Sam Stephenson] + +* Add Object#acts_like? and Time#acts_like_time? and Date#acts_like_date? to facilitate duck-typing. [Jamis Buck] + +* Make 1.months and friends accurate by introducing a Duration class. #6835 [eventualbuddha] + + +*1.4.2* (March 12th, 2007) + +* Ruby 1.8.6 and 1.9 define private Time#to_date and #to_datetime; make them +public for compatibility. [Jeremy Kemper] + +* Deprecation: warn on stderr if RAILS_DEFAULT_LOGGER isn't set yet. [Jeremy Kemper] + + +*1.4.1* (February 5th, 2007) + +* Optimize Class Inheritable Attributes so that unnecessary hashes are not created. Closes #7472 [Bruce Perens] + +* Added :instance_writer option to #mattr_writer/accessor, #cattr_writer/accessor, and #class_inheritable_writer to skip the creation of the instance writer. [Rick] + +* Full test coverage for Inflector. #7228 [Dan Kubb] + + +*1.4.0* (January 16th, 2007) + +* Document Inflector.ordinalize and merge docs from String inflections. #7023 [smeade] + +* Unbundle flexmock. [Jeremy Kemper] + +* Fix Dependencies.autoloaded? to ignore anonymous modules. Closes #6561. [Nicholas Seckar] + +* Update load once paths to prevent nested once constants from being detected and claimed by an external non-once load. [Nicholas Seckar] + +* Deprecation: silence warnings when reporting test errors. [Jeremy Kemper] + +* Hash#slice(*keys) returns a new hash with only the given keys. #slice! replaces the hash with only the given keys. Works with HashWithIndifferentAccess also. [Jeremy Kemper] + +* HashWithIndifferentAccess#to_hash converts to a Hash with String keys and the same default value. [Jeremy Kemper] + +* Fix remove_constant to correctly handle constant names of the form "::A::...". References #6720. [Nicholas Seckar] + +* Fixed Array#to_xml when it contains a series of hashes (each piece would get its own XML declaration) #6610 [thkarcher/cyu] + +* Added Time#to_s(:time) which will just return H:M, like 17:44 [DHH] + +* Add Module#attr_accessor_with_default to initialize value of attribute before setting it. Closes #6538. [Stuart Halloway, Marcel Molina Jr.] + +* Hash#to_xml handles keys with the same name as Kernel methods. #6613 [Catfish] + +* Added Time#end_of_day to get 23:59:59 of that day [DHH] + +* Don't quote hash keys in Hash#to_json if they're valid JavaScript identifiers. Disable this with ActiveSupport::JSON.unquote_hash_key_identifiers = false if you need strict JSON compliance. [Sam Stephenson] + +* Lazily load the Unicode Database in the UTF-8 Handler [Rick Olson] + +* Update dependencies to delete partially loaded constants. [Nicholas Seckar] + +* Fix unicode JSON regexp for Onigurama compatibility. #6494 [whitley] + +* update XmlSimple to 1.0.10. Closes #6532. [nicksieger] + +* Update dependencies to allow constants to be defined alongside their siblings. A common case for this is AR model classes with STI; user.rb might define User, Administrator and Guest for example. [Nicholas Seckar] + +* next_week respects DST changes. #6483, #5617, #2353, #2509, #4551 [marclove, rabiedenharn, rails@roetzel.de, jsolson@damogran.org, drbrain@segment7.net] + +* Expose methods added to Enumerable in the documentation, such as group_by. Closes #6170. [sergeykojin@gmail.com, Marcel Molina Jr.] + +* Ensure Chars#tidy_bytes only tidies broken bytes. Closes #6397 [Manfred Stienstra] + +* Add 'unloadable', a method used to mark any constant as requiring an unload after each request. [Nicholas Seckar] + +* Make core_ext/string/access.rb multibyte safe. Closes #6388 [Manfred Stienstra] + +* Make String#chars slicing behaviour consistent with String. Closes #6387 [Manfred Stienstra] + +* Pull in latest multibyte patch. Closes #6346 [Manfred Stienstra] + +* Add ActiveSupport::Multibyte. Provides String#chars which lets you deal with strings as a sequence of chars, not of bytes. Closes #6242 [Julian Tarkhanov, Manfred Stienstra, Thijs van der Vossen & Jan Behrens] + +* Fix issue with #class_inheritable_accessor saving updates to the parent class when initialized with an Array or Hash [mojombo] + +* Hash#to_xml supports Bignum and BigDecimal. #6313 [edibiase] + +* Don't undefine #class in OptionMerger [Rick] + +* Hash.create_from_xml has been renamed to Hash.from_xml, alias will exist until Rails 2.0 [DHH] + +* alias_method_chain works with accessor= methods also. #6153 [Caio Chassot] + +* Fix loadable_constants_for_path to handle load paths that do not end with a slash. [Nicholas Seckar] + +* Fix logic error in determining what was loaded by a given file. Closes #6039. [Nicholas Seckar] + +* Equate Kernel.const_missing with Object.const_missing. Fixes #5988. [Nicholas Seckar] + +* Add ApplicationController special case to Dependencies. [Nicholas Seckar] + +* Don't pad remaining places with in_groups_of if specified padding value is false. [Marcel Molina Jr.] + +* Fix cases where empty xml nodes weren't being translated to nil in Hash.create_from_xml [Rick Olso n] + + <written-on type="date"></written-on> # => { :type => 'date' } # WRONG + <written-on type="date"></written-on> # => nil # RIGHT + +* Tighten rescue clauses. #5985 [james@grayproductions.net] + +* Inflections: don't singularize -ies plurals. [foamdino@gmail.com, Mark Van Holstyn] + +* Update Initializer to use load_once_paths to avoid plugin reloading. References #5852. [Nicholas Seckar] + +* Use Array#assoc in ActiveSupport::OrderedHash. [Mauricio Fernandez] + +* Greatly increased performance of String.to_json, which speeds up RJS considerably on large pages, fixes #3473 [Shugo Maeda] + +* Detect missing_constants calls from removed modules and fail accordingly. [Nicholas Seckar] + +* Stop using defined? in Dependencies.qualified_const_defined? since defined? may invoke const_missing. [Nicholas Seckar] + +* Dependencies can autoload directories of nested classes. [Jeremy Kemper] + Example: + invoice.rb class Invoice + invoice/lineitem.rb class Invoice::Lineitem + +* Add Deprecation.silence so that Reloadable does not scold itself. [Nicholas Seckar] + +* Add debugging logging to Dependencies. Currently can be enabled with Dependencies.log_activity = true; adding to Initializer and documenting is forthcoming. [Nicholas Seckar] + +* Replace Reloadable with improvements to the Dependencies mechanism. [Nicholas Seckar] + +* DateTime#to_time gives hour/minute/second resolution. #5747 [jon.evans@pobox.com] + +* attr_internal to support namespacing and deprecation. Like attr_* except backed by internally-named instance variable. Set attr_internal_naming_format to change the format from the default '@_%s'. [Jeremy Kemper] + # def foo() @foo__rofl end + # def foo=(v) @foo__rofl = v end + self.attr_internal_naming_format = '@%s__rofl' + attr_internal :foo + +* Raise fully qualified names upon name errors. #5533 [lars@pinds.com, Nicholas Seckar] + +* Add extention to obtain the missing constant from NameError instances. [Nicholas Seckar] + +* Thoroughly document inflections. #5700 [petermichaux@gmail.com] + +* Added Module#alias_attribute [Jamis/DHH]. Example: + + class Content < ActiveRecord::Base + # has a title attribute + end + + class Email < ActiveRecord::Base + alias_attribute :subject, :title + end + + e = Email.find(1) + e.title # => "Superstars" + e.subject # => "Superstars" + e.subject? # => true + e.subject = "Megastars" + e.title # => "Megastars" + +* Deprecation: easier to work with warning behavior as procs; default behaviors for each environment so users needn't update env.rb; and testing pleasure with assert_deprecated, assert_not_deprecated. [Jeremy Kemper] + By default, test prints to $stderr, dev logs, production ignores. + Provide your own per-environment in e.g. config/environments/development.rb: + ActiveSupport::Deprecation.behavior = Proc.new { |message| raise message } + +* First cut of the Rails Deprecation system. [Koz] + +* Strip boolean XML content before checking for 'true' [Rick Olson] + +* Customize default BigDecimal formatting. References #5672 [dave@pragprog.com] + +* Correctly convert <foo nil="true"> to nil when using Hash.create_from_xml. [Rick] + +* Optional identity for Enumerable#sum defaults to zero. #5657 [gensym@mac.com] + +* HashWithIndifferentAccess shouldn't confuse false and nil. #5601 [shugo@ruby-lang.org] + +* Fixed HashWithIndifferentAccess#default #5586 [chris@seagul.co.uk] + +* More compatible Hash.create_from_xml. #5523 [nunemaker@gmail.com] + +* Added Enumerable#sum for calculating a sum from the elements [DHH, jonathan@daikini.com]. Examples: + + [1, 2, 3].sum + payments.sum { |p| p.price * p.tax_rate } + payments.sum(&:price) + + This is instead of payments.inject(0) { |sum, p| sum + p.price } + +* Correct and clarify Array#to_sentence docs. #5458 [brad@madriska.com] + +* alias_method_chain preserves method punctuation so foo, foo?, and foo! may be chained with the same feature. [Jeremy Kemper] + Example: + alias_method_chain :save!, :validation + is equivalent to + alias_method :save_without_validation!, :save! + alias_method :save!, :save_with_validation! + +* Enhance Symbol#to_proc so it works with list objects, such as multi-dimensional arrays. Closes #5295 [nov@yo.rim.or.jp]. Example: + + {1 => "one", 2 => "two", 3 => "three"}.sort_by(&:first).map(&:last) + #=> ["one", "two", "three"] + +* Added Hash.create_from_xml(string) which will create a hash from a XML string and even typecast if possible [DHH]. Example: + + Hash.create_from_xml <<-EOT + <note> + <title>This is a note</title> + <created-at type="date">2004-10-10</created-at> + </note> + EOT + + ...would return: + + { :note => { :title => "This is a note", :created_at => Date.new(2004, 10, 10) } } + +* Added Jim Weirich's excellent FlexMock class to vendor (Copyright 2003, 2004 by Jim Weirich (jim@weriichhouse.org)) -- it's not automatically required, though, so require 'flexmock' is still necessary [DHH] + +* Fixed that Module#alias_method_chain should work with both foo? foo! and foo at the same time #4954 [anna@wota.jp] + +* to_xml fixes, features, and speedup: introduce :dasherize option that converts updated_at to updated-at if true (the existing default); binary columns get encoding="base64" attribute; nil values get nil="true" attribute to distinguish empty values; add type information for float columns; allow arbitrarily deep :include; include SQL type information as the type attribute. #4989 [Blair Zajac <blair@orcaware.com>] + +* Add OrderedHash#values. [Sam Stephenson] + +* Added Array#to_s(:db) that'll produce a comma-separated list of ids [DHH]. Example: + + Purchase.find(:all, :conditions => "product_id IN (#{shops.products.to_s(:db)})" + +* Normalize classify's argument to a String so that it plays nice with Symbols. [Marcel Molina Jr.] + +* Strip out leading schema name in classify. References #5139. [schoenm@earthlink.net] + +* Remove Enumerable#first_match since break(value) handles the use case well enough. [Nicholas Seckar] + + Enumerable#first_match was like detect, but instead of returning the matching element, the yielded value returned. For example: + + user_xml = adapters(:from => User, :to => Xml).first_match do |adapter| + adapter.adapt @user + end + + But this is just as easily done with: + + user_xml = adapters(:from => User, :to => Xml).each do + break adapter.adapt(@user) + end + +* Make Array#in_groups_of just return the grouped collection if a block isn't given. [Marcel Molina Jr.] + +* Don't destroy a HashWithIndifferentAccess if symbolize_keys! or stringify_keys! is called on it. Closes #5076. [Marcel Molina Jr., guy.naor@famundo.com] + +* Document Module::delegate. #5002 [pergesu@gmail.com] + +* Replace alias method chaining with Module#alias_method_chain. [Marcel Molina Jr.] + +* Strip out punctuation on predicates or bang methods being aliased with alias_method_chain since target?_without_feature is not a valid method name. Add tests for Module#alias_method_chain. [Marcel Molina Jr.] + +* Replace Ruby's deprecated append_features in favor of included. [Marcel Molina Jr.] + +* Allow default options in with_options to be overridden. Closes #4480. [murphy@cYcnus.de] + +* Added Module#alias_method_chain [Jamis Buck] + +* Updated to Builder 2.0 [DHH] + +* Add Array#split for dividing arrays into one or more subarrays by value or block. [Sam Stephenson] + +*1.3.1* (April 6th, 2006) + +* Clean paths inside of exception messages and traces. [Nicholas Seckar] + +* Add Pathname.clean_within for cleaning all the paths inside of a string. [Nicholas Seckar] + +* provide an empty Dependencies::LoadingModule.load which prints deprecation warnings. Lets 1.0 applications function with .13-style environment.rb. + + +*1.3.0* (March 27th, 2006) + +* When possible, avoid incorrectly obtaining constants from parent modules. Fixes #4221. [Nicholas Seckar] + +* Add more tests for dependencies; refactor existing cases. [Nicholas Seckar] + +* Move Module#parent and Module#as_load_path into core_ext. Add Module#parent. [Nicholas Seckar] + +* Add CachingTools::HashCaching to simplify the creation of nested, autofilling hashes. [Nicholas Seckar] + +* Remove a hack intended to avoid unloading the same class twice, but which would not work anyways. [Nicholas Seckar] + +* Update Object.subclasses_of to locate nested classes. This affects Object.remove_subclasses_of in that nested classes will now be unloaded. [Nicholas Seckar] + +* Update Object.remove_subclasses_of to use Class.remove_class, reducing duplication. [Nicholas Seckar] + +* Added Fixnum#seconds for consistency, so you can say 5.minutes + 30.seconds instead of 5.minutes + 30 #4389 [François Beausoleil] + +* Added option to String#camelize to generate lower-cased camel case by passing in :lower, like "super_man".camelize(:lower) # => "superMan" [DHH] + +* Added Hash#diff to show the difference between two hashes [Chris McGrath] + +* Added Time#advance to do precise time time calculations for cases where a month being approximated to 30 days won't do #1860 [Rick Olson] + +* Enhance Inflector.underscore to convert '-' into '_' (as the inverse of Inflector.dasherize) [Jamis Buck] + +* Switched to_xml to use the xml schema format for datetimes. This allows the encoding of time zones and should improve operability. [Koz] + +* Added a note to the documentation for the Date related Numeric extensions to indicate that they're +approximations and shouldn't be used for critical calculations. [Koz] + +* Added Hash#to_xml and Array#to_xml that makes it much easier to produce XML from basic structures [DHH]. Examples: + + { :name => "David", :street_name => "Paulina", :age => 26, :moved_on => Date.new(2005, 11, 15) }.to_xml + + ...returns: + + <person> + <street-name>Paulina</street-name> + <name>David</name> + <age type="integer">26</age> + <moved-on type="date">2005-11-15</moved-on> + </person> + +* Moved Jim Weirich's wonderful Builder from Action Pack to Active Support (it's simply too useful to be stuck in AP) [DHH] + +* Fixed that Array#to_sentence will return "" on an empty array instead of ", and" #3842, #4031 [rubyonrails@beautifulpixel.com] + +* Add Enumerable#group_by for grouping collections based on the result of some + block. Useful, for example, for grouping records by date. + + ex. + + latest_transcripts.group_by(&:day).each do |day, transcripts| + p "#{day} -> #{transcripts.map(&:class) * ', '}" + end + "2006-03-01 -> Transcript" + "2006-02-28 -> Transcript" + "2006-02-27 -> Transcript, Transcript" + "2006-02-26 -> Transcript, Transcript" + + Add Array#in_groups_of, for iterating over an array in groups of a certain + size. + + ex. + + %w(1 2 3 4 5 6 7).in_groups_of(3) {|g| p g} + ["1", "2", "3"] + ["4", "5", "6"] + ["7", nil, nil] + + [Marcel Molina Jr., Sam Stephenson] + +* Added Kernel#daemonize to turn the current process into a daemon that can be killed with a TERM signal [DHH] + +* Add 'around' methods to Logger, to make it easy to log before and after messages for a given block as requested in #3809. [Michael Koziarski] Example: + + logger.around_info("Start rendering component (#{options.inspect}): ", + "\n\nEnd of component rendering") { yield } + +* Added Time#beginning_of_quarter #3607 [cohen.jeff@gmail.com] + +* Fix Object.subclasses_of to only return currently defined objects [Jonathan Viney <jonathan@bluewire.net.nz>] + +* Fix constantize to properly handle names beginning with '::'. [Nicholas Seckar] + +* Make String#last return the string instead of nil when it is shorter than the limit [Scott Barron]. + +* Added delegation support to Module that allows multiple delegations at once (unlike Forwardable in the stdlib) [DHH]. Example: + + class Account < ActiveRecord::Base + has_one :subscription + delegate :free?, :paying?, :to => :subscription + delegate :overdue?, :to => "subscription.last_payment" + end + + account.free? # => account.subscription.free? + account.overdue? # => account.subscription.last_payment.overdue? + +* Fix Reloadable to handle the case where a class that has been 'removed' has not yet been garbage collected. [Nicholas Seckar] + +* Don't allow Reloadable to be included into Modules. + +* Remove LoadingModule. [Nicholas Seckar] + +* Add documentation for Reloadable::Subclasses. [Nicholas Seckar] + +* Add Reloadable::Subclasses which handles the common case where a base class should not be reloaded, but its subclasses should be. [Nicholas Seckar] + +* Further improvements to reloading code [Nicholas Seckar, Trevor Squires] + + - All classes/modules which include Reloadable can define reloadable? for fine grained control of reloading + - Class.remove_class uses Module#parent to access the parent module + - Class.remove_class expanded to handle multiple classes in a single call + - LoadingModule.clear! has been removed as it is no longer required + - Module#remove_classes_including has been removed in favor of Reloadable.reloadable_classes + +* Added reusable reloading support through the inclusion of the Relodable module that all subclasses of ActiveRecord::Base, ActiveRecord::Observer, ActiveController::Base, and ActionMailer::Base automatically gets. This means that these classes will be reloaded by the dispatcher when Dependencies.mechanism = :load. You can make your own models reloadable easily: + + class Setting + include Reloadable + end + + Reloading a class is done by removing its constant which will cause it to be loaded again on the next reference. [DHH] + +* Added auto-loading support for classes in modules, so Conductor::Migration will look for conductor/migration.rb and Conductor::Database::Settings will look for conductor/database/settings.rb [Nicholas Seckar] + +* Add Object#instance_exec, like instance_eval but passes its arguments to the block. (Active Support will not override the Ruby 1.9 implementation of this method.) [Sam Stephenson] + +* Add Proc#bind(object) for changing a proc or block's self by returning a Method bound to the given object. Based on why the lucky stiff's "cloaker" method. [Sam Stephenson] + +* Fix merge and dup for hashes with indifferent access #3404 [kenneth.miller@bitfield.net] + +* Fix the requires in option_merger_test to unbreak AS tests. [Sam Stephenson] + +* Make HashWithIndifferentAccess#update behave like Hash#update by returning the hash. #3419, #3425 [asnem@student.ethz.ch, JanPrill@blauton.de, Marcel Molina Jr.] + +* Add ActiveSupport::JSON and Object#to_json for converting Ruby objects to JSON strings. [Sam Stephenson] + +* Add Object#with_options for DRYing up multiple calls to methods having shared options. [Sam Stephenson] Example: + + ActionController::Routing::Routes.draw do |map| + # Account routes + map.with_options(:controller => 'account') do |account| + account.home '', :action => 'dashboard' + account.signup 'signup', :action => 'new' + account.logout 'logout', :action => 'logout' + end + end + +* Introduce Dependencies.warnings_on_first_load setting. If true, enables warnings on first load of a require_dependency. Otherwise, loads without warnings. Disabled (set to false) by default. [Jeremy Kemper] + +* Active Support is warnings-safe. #1792 [Eric Hodel] + +* Introduce enable_warnings counterpart to silence_warnings. Turn warnings on when loading a file for the first time if Dependencies.mechanism == :load. Common mistakes such as redefined methods will print warnings to stderr. [Jeremy Kemper] + +* Add Symbol#to_proc, which allows for, e.g. [:foo, :bar].map(&:to_s). [Marcel Molina Jr.] + +* Added the following methods [Marcel Molina Jr., Sam Stephenson]: + * Object#copy_instance_variables_from(object) to copy instance variables from one object to another + * Object#extended_by to get an instance's included/extended modules + * Object#extend_with_included_modules_from(object) to extend an instance with the modules from another instance + +*1.2.5* (December 13th, 2005) + +* Become part of Rails 1.0 + +* Rename Version constant to VERSION. #2802 [Marcel Molina Jr.] + +*1.2.3* (November 7th, 2005) + +* Change Inflector#constantize to use eval instead of const_get. [Nicholas Seckar] + +* Fix const_missing handler to ignore the trailing '.rb' on files when comparing paths. [Nicholas Seckar] + +* Define kernel.rb methods in "class Object" instead of "module Kernel" to work around a Windows peculiarity [Sam Stephenson] + +* Fix broken tests caused by incomplete loading of active support. [Nicholas Seckar] + +* Fix status pluralization bug so status_codes doesn't get pluralized as statuses_code. #2758 [keithm@infused.org] + +* Added Kernel#silence_stderr to silence stderr for the duration of the given block [Sam Stephenson] + +* Changed Kernel#` to print a message to stderr (like Unix) instead of raising Errno::ENOENT on Win32 [Sam Stephenson] + +* Changed 0.blank? to false rather than true since it violates everyone's expectation of blankness. #2518, #2705 [rails@jeffcole.net] + +* When loading classes using const_missing, raise a NameError if and only if the file we tried to load was not present. [Nicholas Seckar] + +* Added petabytes and exebytes to numeric extensions #2397 [timct@mac.com] + +* Added Time#end_of_month to accompany Time#beginning_of_month #2514 [Jens-Christian Fischer] + + +*1.2.2* (October 26th, 2005) + +* Set Logger.silencer = false to disable Logger#silence. Useful for debugging fixtures. + +* Add title case method to String to do, e.g., 'action_web_service'.titlecase # => 'Action Web Service'. [Marcel Molina Jr.] + + +*1.2.1* (October 19th, 2005) + +* Classify generated routing code as framework code to avoid appearing in application traces. [Nicholas Seckar] + +* Show all framework frames in the framework trace. [Nicholas Seckar] + + +*1.2.0* (October 16th, 2005) + +* Update Exception extension to show the first few framework frames in an application trace. [Nicholas Seckar] + +* Added Exception extension to provide support for clean backtraces. [Nicholas Seckar] + +* Updated whiny nil to be more concise and useful. [Nicholas Seckar] + +* Added Enumerable#first_match [Nicholas Seckar] + +* Fixed that Time#change should also reset usec when also resetting minutes #2459 [ikeda@dream.big.or.jp] + +* Fix Logger compatibility for distributions that don't keep Ruby and its standard library in sync. + +* Replace '%e' from long and short time formats as Windows does not support it. #2344. [Tom Ward <tom@popdog.net>] + +* Added to_s(:db) to Range, so you can get "BETWEEN '2005-12-10' AND '2005-12-12'" from Date.new(2005, 12, 10)..Date.new(2005, 12, 12) (and likewise with Times) + +* Moved require_library_or_gem into Kernel. #1992 [Michael Schuerig <michael@schuerig.de>] + +* Add :rfc822 as an option for Time#to_s (to get rfc822-formatted times) + +* Chain the const_missing hook to any previously existing hook so rails can play nicely with rake + +* Clean logger is compatible with both 1.8.2 and 1.8.3 Logger. #2263 [Michael Schuerig <michael@schuerig.de>] + +* Added native, faster implementations of .blank? for the core types #2286 [skae] + +* Fixed clean logger to work with Ruby 1.8.3 Logger class #2245 + +* Fixed memory leak with Active Record classes when Dependencies.mechanism = :load #1704 [c.r.mcgrath@gmail.com] + +* Fixed Inflector.underscore for use with acronyms, so HTML becomes html instead of htm_l #2173 [k@v2studio.com] + +* Fixed dependencies related infinite recursion bug when a controller file does not contain a controller class. Closes #1760. [rcolli2@tampabay.rr.com] + +* Fixed inflections for status, quiz, move #2056 [deirdre@deirdre.net] + +* Added Hash#reverse_merge, Hash#reverse_merge!, and Hash#reverse_update to ease the use of default options + +* Added Array#to_sentence that'll turn ['one', 'two', 'three'] into "one, two, and three" #2157 [m.stienstra@fngtps.com] + +* Added Kernel#silence_warnings to turn off warnings temporarily for the passed block + +* Added String#starts_with? and String#ends_with? #2118 [thijs@vandervossen.net] + +* Added easy extendability to the inflector through Inflector.inflections (using the Inflector::Inflections singleton class). Examples: + + Inflector.inflections do |inflect| + inflect.plural /^(ox)$/i, '\1\2en' + inflect.singular /^(ox)en/i, '\1' + + inflect.irregular 'octopus', 'octopi' + + inflect.uncountable "equipment" + end + +* Added String#at, String#from, String#to, String#first, String#last in ActiveSupport::CoreExtensions::String::Access to ease access to individual characters and substrings in a string serving basically as human names for range access. + +* Make Time#last_month work when invoked on the 31st of a month. + +* Add Time.days_in_month, and make Time#next_month work when invoked on the 31st of a month + +* Fixed that Time#midnight would have a non-zero usec on some platforms #1836 + +* Fixed inflections of "index/indices" #1766 [damn_pepe@gmail.com] + +* Added stripping of _id to String#humanize, so "employee_id" becomes "Employee" #1574 [Justin French] + +* Factor Fixnum and Bignum extensions into Integer extensions [Nicholas Seckar] + +* Hooked #ordinalize into Fixnum and Bignum classes. [Nicholas Seckar, danp] + +* Added Fixnum#ordinalize to turn 1.ordinalize to "1st", 3.ordinalize to "3rd", and 10.ordinalize to "10th" and so on #1724 [paul@cnt.org] + + +*1.1.1* (11 July, 2005) + +* Added more efficient implementation of the development mode reset of classes #1638 [Chris McGrath] + + +*1.1.0* (6 July, 2005) + +* Fixed conflict with Glue gem #1606 [Rick Olson] + +* Added new rules to the Inflector to deal with more unusual plurals mouse/louse => mice/lice, information => information, ox => oxen, virus => viri, archive => archives #1571, #1583, #1490, #1599, #1608 [foamdino@gmail.com/others] + +* Fixed memory leak with Object#remove_subclasses_of, which inflicted a Rails application running in development mode with a ~20KB leak per request #1289 [c.r.mcgrath@gmail.com] + +* Made 1.year == 365.25.days to account for leap years. This allows you to do User.find(:all, :conditions => ['birthday > ?', 50.years.ago]) without losing a lot of days. #1488 [tuxie@dekadance.se] + +* Added an exception if calling id on nil to WhinyNil #584 [kevin-temp@writesoon.com] + +* Added Fix/Bignum#multiple_of? which returns true on 14.multiple_of?(7) and false on 16.multiple_of?(7) #1464 [Thomas Fuchs] + +* Added even? and odd? to work with Bignums in addition to Fixnums #1464 [Thomas Fuchs] + +* Fixed Time#at_beginning_of_week returned the next Monday instead of the previous one when called on a Sunday #1403 [jean.helou@gmail.com] + +* Increased the speed of indifferent hash access by using Hash#default. #1436 [Nicholas Seckar] + +* Added that " " is now also blank? (using strip if available) + +* Fixed Dependencies so all modules are able to load missing constants #1173 [Nicholas Seckar] + +* Fixed the Inflector to underscore strings containing numbers, so Area51Controller becomes area51_controller #1176 [Nicholas Seckar] + +* Fixed that HashWithIndifferentAccess stringified all keys including symbols, ints, objects, and arrays #1162 [Nicholas Seckar] + +* Fixed Time#last_year to go back in time, not forward #1278 [fabien@odilat.com] + +* Fixed the pluralization of analysis to analyses #1295 [seattle@rootimage.msu.edu] + +* Fixed that Time.local(2005,12).months_since(1) would raise "ArgumentError: argument out of range" #1311 [jhahn@niveon.com] + +* Added silencing to the default Logger class + + +*1.0.4* (19th April, 2005) + +* Fixed that in some circumstances controllers outside of modules may have hidden ones inside modules. For example, admin/content might have been hidden by /content. #1075 [Nicholas Seckar] + +* Fixed inflection of perspectives and similar words #1045 [thijs@vandervossen.net] + +* Added Fixnum#even? and Fixnum#odd? + +* Fixed problem with classes being required twice. Object#const_missing now uses require_dependency to load files. It used to use require_or_load which would cause models to be loaded twice, which was not good for validations and other class methods #971 [Nicholas Seckar] + + +*1.0.3* (27th March, 2005) + +* Fixed Inflector.pluralize to handle capitalized words #932 [Jeremy Kemper] + +* Added Object#suppress which allows you to make a saner choice around with exceptions to swallow #980. Example: + + suppress(ZeroDivisionError) { 1/0 } + + ...instead of: + + 1/0 rescue nil # BAD, EVIL, DIRTY. + + +*1.0.2* (22th March, 2005) + +* Added Kernel#returning -- a Ruby-ized realization of the K combinator, courtesy of Mikael Brockman. + + def foo + returning values = [] do + values << 'bar' + values << 'baz' + end + end + + foo # => ['bar', 'baz'] + + +*1.0.1* (7th March, 2005) + +* Fixed Hash#indifferent_access to also deal with include? and fetch and nested hashes #726 [Nicholas Seckar] + +* Added Object#blank? -- see http://redhanded.hobix.com/inspect/objectBlank.html #783 [_why the lucky stiff] + +* Added inflection rules for "sh" words, like "wish" and "fish" #755 [phillip@pjbsoftware.com] + +* Fixed an exception when using Ajax based requests from Safari because Safari appends a \000 to the post body. Symbols can't have \000 in them so indifferent access would throw an exception in the constructor. Indifferent hashes now use strings internally instead. #746 [Tobias Luetke] + +* Added String#to_time and String#to_date for wrapping ParseDate + + +*1.0.0* (24th February, 2005) + +* Added TimeZone as the first of a number of value objects that among others Active Record can use rich value objects using composed_of #688 [Jamis Buck] + +* Added Date::Conversions for getting dates in different convenient string representations and other objects + +* Added Time::Conversions for getting times in different convenient string representations and other objects + +* Added Time::Calculations to ask for things like Time.now.tomorrow, Time.now.yesterday, Time.now.months_ago(4) #580 [DP|Flurin]. Examples: + + "Later today" => now.in(3.hours), + "Tomorrow morning" => now.tomorrow.change(:hour => 9), + "Tomorrow afternoon" => now.tomorrow.change(:hour => 14), + "In a couple of days" => now.tomorrow.tomorrow.change(:hour => 9), + "Next monday" => now.next_week.change(:hour => 9), + "In a month" => now.next_month.change(:hour => 9), + "In 6 months" => now.months_since(6).change(:hour => 9), + "In a year" => now.in(1.year).change(:hour => 9) + +* Upgraded to breakpoint 92 which fixes: + + * overload IRB.parse_opts(), fixes #443 + => breakpoints in tests work even when running them via rake + * untaint handlers, might fix an issue discussed on the Rails ML + * added verbose mode to breakpoint_client + * less noise caused by breakpoint_client by default + * ignored TerminateLineInput exception in signal handler + => quiet exit on Ctrl-C + +* Fixed Inflector for words like "news" and "series" that are the same in plural and singular #603 [echion], #615 [marcenuc] + +* Added Hash#stringify_keys and Hash#stringify_keys! + +* Added IndifferentAccess as a way to wrap a hash by a symbol-based store that also can be accessed by string keys + +* Added Inflector.constantize to turn "Admin::User" into a reference for the constant Admin::User + +* Added that Inflector.camelize and Inflector.underscore can deal with modules like turning "Admin::User" into "admin/user" and back + +* Added Inflector.humanize to turn attribute names like employee_salary into "Employee salary". Used by automated error reporting in AR. + +* Added availability of class inheritable attributes to the masses #477 [Jeremy Kemper] + + class Foo + class_inheritable_reader :read_me + class_inheritable_writer :write_me + class_inheritable_accessor :read_and_write_me + class_inheritable_array :read_and_concat_me + class_inheritable_hash :read_and_update_me + end + + # Bar gets a clone of (not a reference to) Foo's attributes. + class Bar < Foo + end + + Bar.read_and_write_me == Foo.read_and_write_me + Bar.read_and_write_me = 'bar' + Bar.read_and_write_me != Foo.read_and_write_me + +* Added Inflections as an extension on String, so Inflector.pluralize(Inflector.classify(name)) becomes name.classify.pluralize #476 [Jeremy Kemper] + +* Added Byte operations to Numeric, so 5.5.megabytes + 200.kilobytes #461 [Marcel Molina] + +* Fixed that Dependencies.reload can't load the same file twice #420 [Kent Sibilev] + +* Added Fixnum#ago/until, Fixnum#since/from_now #450 [Jeremy Kemper] + +* Added that Inflector now accepts Symbols and Classes by calling .to_s on the word supplied + +* Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours. diff --git a/vendor/rails-2.1.0/activesupport/MIT-LICENSE b/vendor/rails-2.1.0/activesupport/MIT-LICENSE new file mode 100644 index 000000000..2ba4e1703 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/MIT-LICENSE @@ -0,0 +1,20 @@ +Copyright (c) 2005-2008 David Heinemeier Hansson + +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 copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/README b/vendor/rails-2.1.0/activesupport/README new file mode 100644 index 000000000..9fb9a80cb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/README @@ -0,0 +1,43 @@ += Active Support -- Utility classes and standard library extensions from Rails + +Active Support is a collection of various utility classes and standard library extensions that were found useful +for Rails. All these additions have hence been collected in this bundle as way to gather all that sugar that makes +Ruby sweeter. + + +== Download + +The latest version of Active Support can be found at + +* http://rubyforge.org/project/showfiles.php?group_id=182 + +Documentation can be found at + +* http://as.rubyonrails.com + + +== Installation + +The preferred method of installing Active Support is through its GEM file. You'll need to have +RubyGems[http://rubygems.rubyforge.org/wiki/wiki.pl] installed for that, though. If you have it, +then use: + + % [sudo] gem install activesupport-1.0.0.gem + + +== License + +Active Support is released under the MIT license. + + +== Support + +The Active Support homepage is http://www.rubyonrails.com. You can find the Active Support +RubyForge page at http://rubyforge.org/projects/activesupport. And as Jim from Rake says: + + Feel free to submit commits or feature requests. If you send a patch, + remember to update the corresponding unit tests. If fact, I prefer + new feature to be submitted in the form of new unit tests. + +For other information, feel free to ask on the ruby-talk mailing list +(which is mirrored to comp.lang.ruby) or contact mailto:david@loudthinking.com. diff --git a/vendor/rails-2.1.0/activesupport/Rakefile b/vendor/rails-2.1.0/activesupport/Rakefile new file mode 100644 index 000000000..38ca03b65 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/Rakefile @@ -0,0 +1,175 @@ +require 'rake/testtask' +require 'rake/rdoctask' +require 'rake/gempackagetask' +require 'rake/contrib/sshpublisher' + +require File.join(File.dirname(__FILE__), 'lib', 'active_support', 'version') + +PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : '' +PKG_NAME = 'activesupport' +PKG_VERSION = ActiveSupport::VERSION::STRING + PKG_BUILD +PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}" + +RELEASE_NAME = "REL #{PKG_VERSION}" + +RUBY_FORGE_PROJECT = "activesupport" +RUBY_FORGE_USER = "webster132" + +task :default => :test +Rake::TestTask.new { |t| + t.libs << "test" + t.pattern = 'test/**/*_test.rb' + t.verbose = true + t.warning = true +} + +# Create compressed packages +dist_dirs = [ "lib", "test"] + +# Genereate the RDoc documentation + +Rake::RDocTask.new { |rdoc| + rdoc.rdoc_dir = 'doc' + rdoc.title = "Active Support -- Utility classes and standard library extensions from Rails" + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.options << '--charset' << 'utf-8' + rdoc.template = "#{ENV['template']}.rb" if ENV['template'] + rdoc.rdoc_files.include('README', 'CHANGELOG') + rdoc.rdoc_files.include('lib/active_support.rb') + rdoc.rdoc_files.include('lib/active_support/*.rb') + rdoc.rdoc_files.include('lib/active_support/**/*.rb') +} + +spec = Gem::Specification.new do |s| + s.platform = Gem::Platform::RUBY + s.name = PKG_NAME + s.version = PKG_VERSION + s.summary = "Support and utility classes used by the Rails framework." + s.description = %q{Utility library which carries commonly used classes and goodies from the Rails framework} + + s.files = [ "CHANGELOG", "README" ] + Dir.glob( "lib/**/*" ).delete_if { |item| item.include?( "\.svn" ) } + s.require_path = 'lib' + s.has_rdoc = true + + s.author = "David Heinemeier Hansson" + s.email = "david@loudthinking.com" + s.homepage = "http://www.rubyonrails.org" + s.rubyforge_project = "activesupport" +end + +Rake::GemPackageTask.new(spec) do |p| + p.gem_spec = spec + p.need_tar = true + p.need_zip = true +end + +desc "Publish the beta gem" +task :pgem => [:package] do + Rake::SshFilePublisher.new("davidhh@wrath.rubyonrails.org", "public_html/gems/gems", "pkg", "#{PKG_FILE_NAME}.gem").upload + `ssh davidhh@wrath.rubyonrails.org './gemupdate.sh'` +end + +desc "Publish the API documentation" +task :pdoc => [:rdoc] do + Rake::SshDirPublisher.new("davidhh@wrath.rubyonrails.org", "public_html/as", "doc").upload +end + +desc "Publish the release files to RubyForge." +task :release => [ :package ] do + require 'rubyforge' + require 'rake/contrib/rubyforgepublisher' + + packages = %w( gem tgz zip ).collect{ |ext| "pkg/#{PKG_NAME}-#{PKG_VERSION}.#{ext}" } + + rubyforge = RubyForge.new + rubyforge.login + rubyforge.add_release(PKG_NAME, PKG_NAME, "REL #{PKG_VERSION}", *packages) +end + + +require 'lib/active_support/values/time_zone' + +namespace :tzinfo do + desc "Update bundled tzinfo gem. Only copies the subset of classes and definitions required to support Rails time zone features." + task :update => ['tzinfo:copy_classes', 'tzinfo:copy_definitions'] do + Rake::Task['tzinfo:cleanup_tmp'].invoke + end + + task :unpack_gem do + mkdir_p "tmp" + cd "tmp" + sh "gem unpack --version #{ENV['VERSION'] || "'> 0'"} tzinfo" + cd ".." + end + + task :copy_classes => :unpack_gem do + mkdir_p "#{destination_path}/tzinfo" + cp "#{tmp_path}/lib/tzinfo.rb", destination_path + comment_requires_for_excluded_classes!('tzinfo.rb') + files = FileList["#{tmp_path}/lib/tzinfo/*.rb"] + files.each do |file| + filename = File.basename(file) + unless excluded_classes.include? filename.sub(/.rb$/, '') + cp "#{tmp_path}/lib/tzinfo/#{filename}", "#{destination_path}/tzinfo" + comment_requires_for_excluded_classes!("tzinfo/#{filename}") + end + end + end + + task :copy_definitions => :unpack_gem do + definitions_path = "#{destination_path}/tzinfo/definitions/" + mkdir_p definitions_path + TimeZone::MAPPING.values.each do |zone| + subdir = nil + if /\// === zone + subdir = zone.sub(/\w+$/, '') + mkdir_p "#{definitions_path}/#{subdir}" + end + cp "#{tmp_path}/lib/tzinfo/definitions/#{zone}.rb", "#{definitions_path}/#{subdir}" + end + end + + task :cleanup_tmp do + rm_rf "tmp" + end + + def comment_requires_for_excluded_classes!(file) + lines = open("#{destination_path}/#{file}") {|f| f.readlines} + updated = false + + new_lines = [] + lines.each do |line| + if Regexp.new("require 'tzinfo/(#{excluded_classes.join('|')})'") === line + updated = true + new_lines << "# #{line}" + else + new_lines << line + end + end + + if updated + open("#{destination_path}/#{file}", "w") {|f| f.write(new_lines.join)} + end + end + + def version + ENV['VERSION'] ||= get_unpacked_version + end + + def get_unpacked_version + m = (FileList["tmp/tzinfo-*"].to_s.match /\d+\.\d+\.\d+/) + m ? m[0] : raise(LoadError, "TZInfo gem must be installed locally. `gem install tzinfo` and try again") + end + + def tmp_path + "tmp/tzinfo-#{version}" + end + + def destination_path + "lib/active_support/vendor/tzinfo-#{version}" + end + + def excluded_classes + %w(country country_index_definition country_info country_timezone timezone_index_definition timezone_proxy tzdataparser) + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/install.rb b/vendor/rails-2.1.0/activesupport/install.rb new file mode 100644 index 000000000..9c54d8c1a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/install.rb @@ -0,0 +1,30 @@ +require 'rbconfig' +require 'find' +require 'ftools' + +include Config + +# this was adapted from rdoc's install.rb by ways of Log4r + +$sitedir = CONFIG["sitelibdir"] +unless $sitedir + version = CONFIG["MAJOR"] + "." + CONFIG["MINOR"] + $libdir = File.join(CONFIG["libdir"], "ruby", version) + $sitedir = $:.find {|x| x =~ /site_ruby/ } + if !$sitedir + $sitedir = File.join($libdir, "site_ruby") + elsif $sitedir !~ Regexp.quote(version) + $sitedir = File.join($sitedir, version) + end +end + +# the actual gruntwork +Dir.chdir("lib") + +Find.find("active_support", "active_support.rb") { |f| + if f[-3..-1] == ".rb" + File::install(f, File.join($sitedir, *f.split(/\//)), 0644, true) + else + File::makedirs(File.join($sitedir, *f.split(/\//))) + end +} diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support.rb b/vendor/rails-2.1.0/activesupport/lib/active_support.rb new file mode 100644 index 000000000..e4cb145c9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support.rb @@ -0,0 +1,55 @@ +#-- +# Copyright (c) 2005 David Heinemeier Hansson +# +# 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 copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +#++ + +$:.unshift(File.dirname(__FILE__)) + +require 'active_support/vendor' +require 'active_support/basic_object' +require 'active_support/inflector' +require 'active_support/callbacks' + +require 'active_support/core_ext' + +require 'active_support/clean_logger' +require 'active_support/buffered_logger' + +require 'active_support/gzip' +require 'active_support/cache' + +require 'active_support/dependencies' +require 'active_support/deprecation' + +require 'active_support/ordered_hash' +require 'active_support/ordered_options' +require 'active_support/option_merger' + +require 'active_support/values/time_zone' +require 'active_support/duration' + +require 'active_support/json' + +require 'active_support/multibyte' + +require 'active_support/base64' + +require 'active_support/time_with_zone' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/base64.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/base64.rb new file mode 100644 index 000000000..602eef06b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/base64.rb @@ -0,0 +1,22 @@ +begin + require 'base64' +rescue LoadError +end + +module ActiveSupport + if defined? ::Base64 + Base64 = ::Base64 + else + # Ruby 1.9 doesn't provide base64, so we wrap this here + module Base64 + + def self.encode64(data) + [data].pack("m") + end + + def self.decode64(data) + data.unpack("m").first + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/basic_object.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/basic_object.rb new file mode 100644 index 000000000..e06da79d2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/basic_object.rb @@ -0,0 +1,24 @@ +# A base class with no predefined methods that tries to behave like Builder's +# BlankSlate in Ruby 1.9. In Ruby pre-1.9, this is actually the +# Builder::BlankSlate class. +# +# Ruby 1.9 introduces BasicObject which differs slightly from Builder's +# BlankSlate that has been used so far. ActiveSupport::BasicObject provides a +# barebones base class that emulates Builder::BlankSlate while still relying on +# Ruby 1.9's BasicObject in Ruby 1.9. +module ActiveSupport + if RUBY_VERSION >= '1.9' + class BasicObject < ::BasicObject + undef_method :== + undef_method :equal? + + # Let ActiveSupport::BasicObject at least raise exceptions. + def raise(*args) + ::Object.send(:raise, *args) + end + end + else + require 'blankslate' + BasicObject = BlankSlate + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/buffered_logger.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/buffered_logger.rb new file mode 100644 index 000000000..67b0a580e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/buffered_logger.rb @@ -0,0 +1,121 @@ +module ActiveSupport + # Inspired by the buffered logger idea by Ezra + class BufferedLogger + module Severity + DEBUG = 0 + INFO = 1 + WARN = 2 + ERROR = 3 + FATAL = 4 + UNKNOWN = 5 + end + include Severity + + MAX_BUFFER_SIZE = 1000 + + # Set to false to disable the silencer + cattr_accessor :silencer + self.silencer = true + + # Silences the logger for the duration of the block. + def silence(temporary_level = ERROR) + if silencer + begin + old_logger_level, self.level = level, temporary_level + yield self + ensure + self.level = old_logger_level + end + else + yield self + end + end + + attr_accessor :level + attr_reader :auto_flushing + attr_reader :buffer + + def initialize(log, level = DEBUG) + @level = level + @buffer = [] + @auto_flushing = 1 + @no_block = false + + if log.respond_to?(:write) + @log = log + elsif File.exist?(log) + @log = open(log, (File::WRONLY | File::APPEND)) + @log.sync = true + else + FileUtils.mkdir_p(File.dirname(log)) + @log = open(log, (File::WRONLY | File::APPEND | File::CREAT)) + @log.sync = true + @log.write("# Logfile created on %s" % [Time.now.to_s]) + end + end + + def set_non_blocking_io + if !RUBY_PLATFORM.match(/java|mswin/) && !(@log == STDOUT) && @log.respond_to?(:write_nonblock) + @no_block = true + end + end + + def add(severity, message = nil, progname = nil, &block) + return if @level > severity + message = (message || (block && block.call) || progname).to_s + # If a newline is necessary then create a new message ending with a newline. + # Ensures that the original message is not mutated. + message = "#{message}\n" unless message[-1] == ?\n + buffer << message + auto_flush + message + end + + for severity in Severity.constants + class_eval <<-EOT, __FILE__, __LINE__ + def #{severity.downcase}(message = nil, progname = nil, &block) + add(#{severity}, message, progname, &block) + end + + def #{severity.downcase}? + #{severity} >= @level + end + EOT + end + + # Set the auto-flush period. Set to true to flush after every log message, + # to an integer to flush every N messages, or to false, nil, or zero to + # never auto-flush. If you turn auto-flushing off, be sure to regularly + # flush the log yourself -- it will eat up memory until you do. + def auto_flushing=(period) + @auto_flushing = + case period + when true; 1 + when false, nil, 0; MAX_BUFFER_SIZE + when Integer; period + else raise ArgumentError, "Unrecognized auto_flushing period: #{period.inspect}" + end + end + + def flush + unless buffer.empty? + if @no_block + @log.write_nonblock(buffer.slice!(0..-1).join) + else + @log.write(buffer.slice!(0..-1).join) + end + end + end + + def close + flush + @log.close if @log.respond_to?(:close) + @log = nil + end + + protected + def auto_flush + flush if buffer.size >= @auto_flushing + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/cache.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/cache.rb new file mode 100644 index 000000000..2f1143e61 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/cache.rb @@ -0,0 +1,145 @@ +require 'benchmark' + +module ActiveSupport + module Cache + def self.lookup_store(*store_option) + store, *parameters = *([ store_option ].flatten) + + case store + when Symbol + store_class_name = (store == :drb_store ? "DRbStore" : store.to_s.camelize) + store_class = ActiveSupport::Cache.const_get(store_class_name) + store_class.new(*parameters) + when nil + ActiveSupport::Cache::MemoryStore.new + else + store + end + end + + def self.expand_cache_key(key, namespace = nil) + expanded_cache_key = namespace ? "#{namespace}/" : "" + + if ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"] + expanded_cache_key << "#{ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"]}/" + end + + expanded_cache_key << case + when key.respond_to?(:cache_key) + key.cache_key + when key.is_a?(Array) + key.collect { |element| expand_cache_key(element) }.to_param + when key.respond_to?(:to_param) + key.to_param + end + + expanded_cache_key + end + + + class Store + cattr_accessor :logger + + def initialize + end + + def threadsafe! + @mutex = Mutex.new + self.class.send :include, ThreadSafety + self + end + + # Pass <tt>:force => true</tt> to force a cache miss. + def fetch(key, options = {}) + @logger_off = true + if !options[:force] && value = read(key, options) + @logger_off = false + log("hit", key, options) + value + elsif block_given? + @logger_off = false + log("miss", key, options) + + value = nil + seconds = Benchmark.realtime { value = yield } + + @logger_off = true + write(key, value, options) + @logger_off = false + + log("write (will save #{'%.5f' % seconds})", key, nil) + + value + end + end + + def read(key, options = nil) + log("read", key, options) + end + + def write(key, value, options = nil) + log("write", key, options) + end + + def delete(key, options = nil) + log("delete", key, options) + end + + def delete_matched(matcher, options = nil) + log("delete matched", matcher.inspect, options) + end + + def exist?(key, options = nil) + log("exist?", key, options) + end + + def increment(key, amount = 1) + log("incrementing", key, amount) + if num = read(key) + write(key, num + amount) + else + nil + end + end + + def decrement(key, amount = 1) + log("decrementing", key, amount) + if num = read(key) + write(key, num - amount) + else + nil + end + end + + private + def log(operation, key, options) + logger.debug("Cache #{operation}: #{key}#{options ? " (#{options.inspect})" : ""}") if logger && !@logger_off + end + end + + + module ThreadSafety #:nodoc: + def read(key, options = nil) #:nodoc: + @mutex.synchronize { super } + end + + def write(key, value, options = nil) #:nodoc: + @mutex.synchronize { super } + end + + def delete(key, options = nil) #:nodoc: + @mutex.synchronize { super } + end + + def delete_matched(matcher, options = nil) #:nodoc: + @mutex.synchronize { super } + end + end + end +end + +require 'active_support/cache/file_store' +require 'active_support/cache/memory_store' +require 'active_support/cache/drb_store' +require 'active_support/cache/mem_cache_store' +require 'active_support/cache/compressed_mem_cache_store' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb new file mode 100644 index 000000000..9470ac9f6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/compressed_mem_cache_store.rb @@ -0,0 +1,15 @@ +module ActiveSupport + module Cache + class CompressedMemCacheStore < MemCacheStore + def read(name, options = {}) + if value = super(name, options.merge(:raw => true)) + Marshal.load(ActiveSupport::Gzip.decompress(value)) + end + end + + def write(name, value, options = {}) + super(name, ActiveSupport::Gzip.compress(Marshal.dump(value)), options.merge(:raw => true)) + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/cache/drb_store.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/drb_store.rb new file mode 100644 index 000000000..b80c2ee4d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/drb_store.rb @@ -0,0 +1,15 @@ +require 'drb' + +module ActiveSupport + module Cache + class DRbStore < MemoryStore #:nodoc: + attr_reader :address + + def initialize(address = 'druby://localhost:9192') + super() + @address = address + @data = DRbObject.new(nil, address) + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/cache/file_store.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/file_store.rb new file mode 100644 index 000000000..5b771b1da --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/file_store.rb @@ -0,0 +1,70 @@ +module ActiveSupport + module Cache + class FileStore < Store + attr_reader :cache_path + + def initialize(cache_path) + @cache_path = cache_path + end + + def read(name, options = nil) + super + File.open(real_file_path(name), 'rb') { |f| f.read } rescue nil + end + + def write(name, value, options = nil) + super + ensure_cache_path(File.dirname(real_file_path(name))) + File.open(real_file_path(name), "wb+") { |f| f.write(value) } + rescue => e + RAILS_DEFAULT_LOGGER.error "Couldn't create cache directory: #{name} (#{e.message})" if RAILS_DEFAULT_LOGGER + end + + def delete(name, options = nil) + super + File.delete(real_file_path(name)) + rescue SystemCallError => e + # If there's no cache, then there's nothing to complain about + end + + def delete_matched(matcher, options = nil) + super + search_dir(@cache_path) do |f| + if f =~ matcher + begin + File.delete(f) + rescue SystemCallError => e + # If there's no cache, then there's nothing to complain about + end + end + end + end + + def exist?(name, options = nil) + super + File.exist?(real_file_path(name)) + end + + private + def real_file_path(name) + '%s/%s.cache' % [@cache_path, name.gsub('?', '.').gsub(':', '.')] + end + + def ensure_cache_path(path) + FileUtils.makedirs(path) unless File.exist?(path) + end + + def search_dir(dir, &callback) + Dir.foreach(dir) do |d| + next if d == "." || d == ".." + name = File.join(dir, d) + if File.directory?(name) + search_dir(name, &callback) + else + callback.call name + end + end + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/cache/mem_cache_store.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/mem_cache_store.rb new file mode 100644 index 000000000..b3769b812 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/mem_cache_store.rb @@ -0,0 +1,100 @@ +require 'memcache' + +module ActiveSupport + module Cache + class MemCacheStore < Store + module Response + STORED = "STORED\r\n" + NOT_STORED = "NOT_STORED\r\n" + EXISTS = "EXISTS\r\n" + NOT_FOUND = "NOT_FOUND\r\n" + DELETED = "DELETED\r\n" + end + + attr_reader :addresses + + def initialize(*addresses) + addresses = addresses.flatten + options = addresses.extract_options! + addresses = ["localhost"] if addresses.empty? + @addresses = addresses + @data = MemCache.new(addresses, options) + end + + def read(key, options = nil) + super + @data.get(key, raw?(options)) + rescue MemCache::MemCacheError => e + logger.error("MemCacheError (#{e}): #{e.message}") + nil + end + + # Set key = value. Pass :unless_exist => true if you don't + # want to update the cache if the key is already set. + def write(key, value, options = nil) + super + method = options && options[:unless_exist] ? :add : :set + response = @data.send(method, key, value, expires_in(options), raw?(options)) + response == Response::STORED + rescue MemCache::MemCacheError => e + logger.error("MemCacheError (#{e}): #{e.message}") + false + end + + def delete(key, options = nil) + super + response = @data.delete(key, expires_in(options)) + response == Response::DELETED + rescue MemCache::MemCacheError => e + logger.error("MemCacheError (#{e}): #{e.message}") + false + end + + def exist?(key, options = nil) + # Doesn't call super, cause exist? in memcache is in fact a read + # But who cares? Reading is very fast anyway + !read(key, options).nil? + end + + def increment(key, amount = 1) + log("incrementing", key, amount) + + response = @data.incr(key, amount) + response == Response::NOT_FOUND ? nil : response + rescue MemCache::MemCacheError + nil + end + + def decrement(key, amount = 1) + log("decrement", key, amount) + + response = data.decr(key, amount) + response == Response::NOT_FOUND ? nil : response + rescue MemCache::MemCacheError + nil + end + + def delete_matched(matcher, options = nil) + super + raise "Not supported by Memcache" + end + + def clear + @data.flush_all + end + + def stats + @data.stats + end + + private + def expires_in(options) + (options && options[:expires_in]) || 0 + end + + def raw?(options) + options && options[:raw] + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/cache/memory_store.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/memory_store.rb new file mode 100644 index 000000000..6f114273e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/cache/memory_store.rb @@ -0,0 +1,38 @@ +module ActiveSupport + module Cache + class MemoryStore < Store + def initialize + @data = {} + end + + def read(name, options = nil) + super + @data[name] + end + + def write(name, value, options = nil) + super + @data[name] = value + end + + def delete(name, options = nil) + super + @data.delete(name) + end + + def delete_matched(matcher, options = nil) + super + @data.delete_if { |k,v| k =~ matcher } + end + + def exist?(name,options = nil) + super + @data.has_key?(name) + end + + def clear + @data.clear + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/callbacks.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/callbacks.rb new file mode 100644 index 000000000..9c59b7ac7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/callbacks.rb @@ -0,0 +1,275 @@ +module ActiveSupport + # Callbacks are hooks into the lifecycle of an object that allow you to trigger logic + # before or after an alteration of the object state. + # + # Mixing in this module allows you to define callbacks in your class. + # + # Example: + # class Storage + # include ActiveSupport::Callbacks + # + # define_callbacks :before_save, :after_save + # end + # + # class ConfigStorage < Storage + # before_save :saving_message + # def saving_message + # puts "saving..." + # end + # + # after_save do |object| + # puts "saved" + # end + # + # def save + # run_callbacks(:before_save) + # puts "- save" + # run_callbacks(:after_save) + # end + # end + # + # config = ConfigStorage.new + # config.save + # + # Output: + # saving... + # - save + # saved + # + # Callbacks from parent classes are inherited. + # + # Example: + # class Storage + # include ActiveSupport::Callbacks + # + # define_callbacks :before_save, :after_save + # + # before_save :prepare + # def prepare + # puts "preparing save" + # end + # end + # + # class ConfigStorage < Storage + # before_save :saving_message + # def saving_message + # puts "saving..." + # end + # + # after_save do |object| + # puts "saved" + # end + # + # def save + # run_callbacks(:before_save) + # puts "- save" + # run_callbacks(:after_save) + # end + # end + # + # config = ConfigStorage.new + # config.save + # + # Output: + # preparing save + # saving... + # - save + # saved + module Callbacks + class CallbackChain < Array + def self.build(kind, *methods, &block) + methods, options = extract_options(*methods, &block) + methods.map! { |method| Callback.new(kind, method, options) } + new(methods) + end + + def run(object, options = {}, &terminator) + enumerator = options[:enumerator] || :each + + unless block_given? + send(enumerator) { |callback| callback.call(object) } + else + send(enumerator) do |callback| + result = callback.call(object) + break result if terminator.call(result, object) + end + end + end + + def |(chain) + if chain.is_a?(CallbackChain) + chain.each { |callback| self | callback } + else + if (found_callback = find(chain)) && (index = index(chain)) + self[index] = chain + else + self << chain + end + end + self + end + + def find(callback, &block) + select { |c| c == callback && (!block_given? || yield(c)) }.first + end + + def delete(callback) + super(callback.is_a?(Callback) ? callback : find(callback)) + end + + private + def self.extract_options(*methods, &block) + methods.flatten! + options = methods.extract_options! + methods << block if block_given? + return methods, options + end + + def extract_options(*methods, &block) + self.class.extract_options(*methods, &block) + end + end + + class Callback + attr_reader :kind, :method, :identifier, :options + + def initialize(kind, method, options = {}) + @kind = kind + @method = method + @identifier = options[:identifier] + @options = options + end + + def ==(other) + case other + when Callback + (self.identifier && self.identifier == other.identifier) || self.method == other.method + else + (self.identifier && self.identifier == other) || self.method == other + end + end + + def eql?(other) + self == other + end + + def dup + self.class.new(@kind, @method, @options.dup) + end + + def call(*args, &block) + evaluate_method(method, *args, &block) if should_run_callback?(*args) + rescue LocalJumpError + raise ArgumentError, + "Cannot yield from a Proc type filter. The Proc must take two " + + "arguments and execute #call on the second argument." + end + + private + def evaluate_method(method, *args, &block) + case method + when Symbol + object = args.shift + object.send(method, *args, &block) + when String + eval(method, args.first.instance_eval { binding }) + when Proc, Method + method.call(*args, &block) + else + if method.respond_to?(kind) + method.send(kind, *args, &block) + else + raise ArgumentError, + "Callbacks must be a symbol denoting the method to call, a string to be evaluated, " + + "a block to be invoked, or an object responding to the callback method." + end + end + end + + def should_run_callback?(*args) + if options[:if] + evaluate_method(options[:if], *args) + elsif options[:unless] + !evaluate_method(options[:unless], *args) + else + true + end + end + end + + def self.included(base) + base.extend ClassMethods + end + + module ClassMethods + def define_callbacks(*callbacks) + callbacks.each do |callback| + class_eval <<-"end_eval" + def self.#{callback}(*methods, &block) + callbacks = CallbackChain.build(:#{callback}, *methods, &block) + (@#{callback}_callbacks ||= CallbackChain.new).concat callbacks + end + + def self.#{callback}_callback_chain + @#{callback}_callbacks ||= CallbackChain.new + + if superclass.respond_to?(:#{callback}_callback_chain) + CallbackChain.new(superclass.#{callback}_callback_chain + @#{callback}_callbacks) + else + @#{callback}_callbacks + end + end + end_eval + end + end + end + + # Runs all the callbacks defined for the given options. + # + # If a block is given it will be called after each callback receiving as arguments: + # + # * the result from the callback + # * the object which has the callback + # + # If the result from the block evaluates to false, the callback chain is stopped. + # + # Example: + # class Storage + # include ActiveSupport::Callbacks + # + # define_callbacks :before_save, :after_save + # end + # + # class ConfigStorage < Storage + # before_save :pass + # before_save :pass + # before_save :stop + # before_save :pass + # + # def pass + # puts "pass" + # end + # + # def stop + # puts "stop" + # return false + # end + # + # def save + # result = run_callbacks(:before_save) { |result, object| result == false } + # puts "- save" if result + # end + # end + # + # config = ConfigStorage.new + # config.save + # + # Output: + # pass + # pass + # stop + def run_callbacks(kind, options = {}, &block) + self.class.send("#{kind}_callback_chain").run(self, options, &block) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/clean_logger.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/clean_logger.rb new file mode 100644 index 000000000..b4c27ebc9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/clean_logger.rb @@ -0,0 +1,127 @@ +require 'logger' +require 'active_support/core_ext/class/attribute_accessors' + +# Extensions to the built in Ruby logger. +# +# If you want to use the default log formatter as defined in the Ruby core, then you +# will need to set the formatter for the logger as in: +# +# logger.formatter = Formatter.new +# +# You can then specify the datetime format, for example: +# +# logger.datetime_format = "%Y-%m-%d" +# +# Note: This logger is deprecated in favor of ActiveSupport::BufferedLogger +class Logger + # Set to false to disable the silencer + cattr_accessor :silencer + self.silencer = true + + # Silences the logger for the duration of the block. + def silence(temporary_level = Logger::ERROR) + if silencer + begin + old_logger_level, self.level = level, temporary_level + yield self + ensure + self.level = old_logger_level + end + else + yield self + end + end + + alias :old_datetime_format= :datetime_format= + # Logging date-time format (string passed to +strftime+). Ignored if the formatter + # does not respond to datetime_format=. + def datetime_format=(datetime_format) + formatter.datetime_format = datetime_format if formatter.respond_to?(:datetime_format=) + end + + alias :old_datetime_format :datetime_format + # Get the logging datetime format. Returns nil if the formatter does not support + # datetime formatting. + def datetime_format + formatter.datetime_format if formatter.respond_to?(:datetime_format) + end + + alias :old_formatter :formatter if method_defined?(:formatter) + # Get the current formatter. The default formatter is a SimpleFormatter which only + # displays the log message + def formatter + @formatter ||= SimpleFormatter.new + end + + unless const_defined? :Formatter + class Formatter + Format = "%s, [%s#%d] %5s -- %s: %s\n" + + attr_accessor :datetime_format + + def initialize + @datetime_format = nil + end + + def call(severity, time, progname, msg) + Format % [severity[0..0], format_datetime(time), $$, severity, progname, + msg2str(msg)] + end + + private + def format_datetime(time) + if @datetime_format.nil? + time.strftime("%Y-%m-%dT%H:%M:%S.") << "%06d " % time.usec + else + time.strftime(@datetime_format) + end + end + + def msg2str(msg) + case msg + when ::String + msg + when ::Exception + "#{ msg.message } (#{ msg.class })\n" << + (msg.backtrace || []).join("\n") + else + msg.inspect + end + end + end + end + + # Simple formatter which only displays the message. + class SimpleFormatter < Logger::Formatter + # This method is invoked when a log event occurs + def call(severity, timestamp, progname, msg) + "#{String === msg ? msg : msg.inspect}\n" + end + end + + private + alias old_format_message format_message + + # Ruby 1.8.3 transposed the msg and progname arguments to format_message. + # We can't test RUBY_VERSION because some distributions don't keep Ruby + # and its standard library in sync, leading to installations of Ruby 1.8.2 + # with Logger from 1.8.3 and vice versa. + if method_defined?(:formatter=) + def format_message(severity, timestamp, progname, msg) + formatter.call(severity, timestamp, progname, msg) + end + else + def format_message(severity, timestamp, msg, progname) + formatter.call(severity, timestamp, progname, msg) + end + + attr_writer :formatter + public :formatter= + + alias old_format_datetime format_datetime + def format_datetime(datetime) datetime end + + alias old_msg2str msg2str + def msg2str(msg) msg end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext.rb new file mode 100644 index 000000000..4deef8c7a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext.rb @@ -0,0 +1,4 @@ +Dir[File.dirname(__FILE__) + "/core_ext/*.rb"].sort.each do |path| + filename = File.basename(path) + require "active_support/core_ext/#{filename}" +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array.rb new file mode 100644 index 000000000..cc0a1ebc1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array.rb @@ -0,0 +1,13 @@ +require 'active_support/core_ext/array/access' +require 'active_support/core_ext/array/conversions' +require 'active_support/core_ext/array/extract_options' +require 'active_support/core_ext/array/grouping' +require 'active_support/core_ext/array/random_access' + +class Array #:nodoc: + include ActiveSupport::CoreExtensions::Array::Access + include ActiveSupport::CoreExtensions::Array::Conversions + include ActiveSupport::CoreExtensions::Array::ExtractOptions + include ActiveSupport::CoreExtensions::Array::Grouping + include ActiveSupport::CoreExtensions::Array::RandomAccess +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/access.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/access.rb new file mode 100644 index 000000000..21a8584bb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/access.rb @@ -0,0 +1,26 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + # Makes it easier to access parts of an array. + module Access + # Returns the tail of the array from +position+. + # + # %w( a b c d ).from(0) # => %w( a b c d ) + # %w( a b c d ).from(2) # => %w( c d ) + # %w( a b c d ).from(10) # => nil + def from(position) + self[position..-1] + end + + # Returns the beginning of the array up to +position+. + # + # %w( a b c d ).to(0) # => %w( a ) + # %w( a b c d ).to(2) # => %w( a b c ) + # %w( a b c d ).to(10) # => %w( a b c d ) + def to(position) + self[0..position] + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/conversions.rb new file mode 100644 index 000000000..a9882828c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/conversions.rb @@ -0,0 +1,178 @@ +require 'builder' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module Conversions + # Converts the array to a comma-separated sentence where the last element is joined by the connector word. Options: + # * <tt>:connector</tt> - The word used to join the last element in arrays with two or more elements (default: "and") + # * <tt>:skip_last_comma</tt> - Set to true to return "a, b and c" instead of "a, b, and c". + def to_sentence(options = {}) + options.assert_valid_keys(:connector, :skip_last_comma) + options.reverse_merge! :connector => 'and', :skip_last_comma => false + options[:connector] = "#{options[:connector]} " unless options[:connector].nil? || options[:connector].strip == '' + + case length + when 0 + "" + when 1 + self[0].to_s + when 2 + "#{self[0]} #{options[:connector]}#{self[1]}" + else + "#{self[0...-1].join(', ')}#{options[:skip_last_comma] ? '' : ','} #{options[:connector]}#{self[-1]}" + end + end + + # Calls <tt>to_param</tt> on all its elements and joins the result with + # slashes. This is used by <tt>url_for</tt> in Action Pack. + def to_param + map(&:to_param).join '/' + end + + # Converts an array into a string suitable for use as a URL query string, + # using the given +key+ as the param name. + # + # ['Rails', 'coding'].to_query('hobbies') # => "hobbies%5B%5D=Rails&hobbies%5B%5D=coding" + def to_query(key) + collect { |value| value.to_query("#{key}[]") } * '&' + end + + def self.included(base) #:nodoc: + base.class_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + + # Converts a collection of elements into a formatted string by calling + # <tt>to_s</tt> on all elements and joining them: + # + # Blog.find(:all).to_formatted_s # => "First PostSecond PostThird Post" + # + # Adding in the <tt>:db</tt> argument as the format yields a prettier + # output: + # + # Blog.find(:all).to_formatted_s(:db) # => "First Post,Second Post,Third Post" + def to_formatted_s(format = :default) + case format + when :db + if respond_to?(:empty?) && self.empty? + "null" + else + collect { |element| element.id }.join(",") + end + else + to_default_s + end + end + + # Returns a string that represents this array in XML by sending +to_xml+ + # to each element. Active Record collections delegate their representation + # in XML to this method. + # + # All elements are expected to respond to +to_xml+, if any of them does + # not an exception is raised. + # + # The root node reflects the class name of the first element in plural + # if all elements belong to the same type and that's not Hash: + # + # customer.projects.to_xml + # + # <?xml version="1.0" encoding="UTF-8"?> + # <projects type="array"> + # <project> + # <amount type="decimal">20000.0</amount> + # <customer-id type="integer">1567</customer-id> + # <deal-date type="date">2008-04-09</deal-date> + # ... + # </project> + # <project> + # <amount type="decimal">57230.0</amount> + # <customer-id type="integer">1567</customer-id> + # <deal-date type="date">2008-04-15</deal-date> + # ... + # </project> + # </projects> + # + # Otherwise the root element is "records": + # + # [{:foo => 1, :bar => 2}, {:baz => 3}].to_xml + # + # <?xml version="1.0" encoding="UTF-8"?> + # <records type="array"> + # <record> + # <bar type="integer">2</bar> + # <foo type="integer">1</foo> + # </record> + # <record> + # <baz type="integer">3</baz> + # </record> + # </records> + # + # If the collection is empty the root element is "nil-classes" by default: + # + # [].to_xml + # + # <?xml version="1.0" encoding="UTF-8"?> + # <nil-classes type="array"/> + # + # To ensure a meaningful root element use the <tt>:root</tt> option: + # + # customer_with_no_projects.projects.to_xml(:root => "projects") + # + # <?xml version="1.0" encoding="UTF-8"?> + # <projects type="array"/> + # + # By default root children have as node name the one of the root + # singularized. You can change it with the <tt>:children</tt> option. + # + # The +options+ hash is passed downwards: + # + # Message.all.to_xml(:skip_types => true) + # + # <?xml version="1.0" encoding="UTF-8"?> + # <messages> + # <message> + # <created-at>2008-03-07T09:58:18+01:00</created-at> + # <id>1</id> + # <name>1</name> + # <updated-at>2008-03-07T09:58:18+01:00</updated-at> + # <user-id>1</user-id> + # </message> + # </messages> + # + def to_xml(options = {}) + raise "Not all elements respond to to_xml" unless all? { |e| e.respond_to? :to_xml } + + options[:root] ||= all? { |e| e.is_a?(first.class) && first.class.to_s != "Hash" } ? first.class.to_s.underscore.pluralize : "records" + options[:children] ||= options[:root].singularize + options[:indent] ||= 2 + options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent]) + + root = options.delete(:root).to_s + children = options.delete(:children) + + if !options.has_key?(:dasherize) || options[:dasherize] + root = root.dasherize + end + + options[:builder].instruct! unless options.delete(:skip_instruct) + + opts = options.merge({ :root => children }) + + xml = options[:builder] + if empty? + xml.tag!(root, options[:skip_types] ? {} : {:type => "array"}) + else + xml.tag!(root, options[:skip_types] ? {} : {:type => "array"}) { + yield xml if block_given? + each { |e| e.to_xml(opts.merge!({ :skip_instruct => true })) } + } + end + end + + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/extract_options.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/extract_options.rb new file mode 100644 index 000000000..eb917576d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/extract_options.rb @@ -0,0 +1,20 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module ExtractOptions + # Extracts options from a set of arguments. Removes and returns the last + # element in the array if it's a hash, otherwise returns a blank hash. + # + # def options(*args) + # args.extract_options! + # end + # + # options(1, 2) # => {} + # options(1, 2, :a => :b) # => {:a=>:b} + def extract_options! + last.is_a?(::Hash) ? pop : {} + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/grouping.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/grouping.rb new file mode 100644 index 000000000..767acc4e0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/grouping.rb @@ -0,0 +1,63 @@ +require 'enumerator' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module Grouping + # Iterates over the array in groups of size +number+, padding any remaining + # slots with +fill_with+ unless it is +false+. + # + # %w(1 2 3 4 5 6 7).in_groups_of(3) {|g| p g} + # ["1", "2", "3"] + # ["4", "5", "6"] + # ["7", nil, nil] + # + # %w(1 2 3).in_groups_of(2, ' ') {|g| p g} + # ["1", "2"] + # ["3", " "] + # + # %w(1 2 3).in_groups_of(2, false) {|g| p g} + # ["1", "2"] + # ["3"] + def in_groups_of(number, fill_with = nil, &block) + if fill_with == false + collection = self + else + # size % number gives how many extra we have; + # subtracting from number gives how many to add; + # modulo number ensures we don't add group of just fill. + padding = (number - size % number) % number + collection = dup.concat([fill_with] * padding) + end + + if block_given? + collection.each_slice(number, &block) + else + returning [] do |groups| + collection.each_slice(number) { |group| groups << group } + end + end + end + + # Divides the array into one or more subarrays based on a delimiting +value+ + # or the result of an optional block. + # + # [1, 2, 3, 4, 5].split(3) # => [[1, 2], [4, 5]] + # (1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]] + def split(value = nil, &block) + block ||= Proc.new { |e| e == value } + + inject([[]]) do |results, element| + if block.call(element) + results << [] + else + results.last << element + end + + results + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/random_access.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/random_access.rb new file mode 100644 index 000000000..54d17cbf3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/array/random_access.rb @@ -0,0 +1,12 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module RandomAccess + # Returns a random element from the array. + def rand + self[Kernel.rand(length)] + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/base64.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/base64.rb new file mode 100644 index 000000000..235e2edf5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/base64.rb @@ -0,0 +1,4 @@ +require 'active_support/base64' +require 'active_support/core_ext/base64/encoding' + +ActiveSupport::Base64.extend ActiveSupport::CoreExtensions::Base64::Encoding diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/base64/encoding.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/base64/encoding.rb new file mode 100644 index 000000000..1a40da878 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/base64/encoding.rb @@ -0,0 +1,13 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Base64 #:nodoc: + module Encoding + # Encodes the value as base64 without the newline breaks. This makes the base64 encoding readily usable as URL parameters + # or memcache keys without further processing. + def encode64s(value) + encode64(value).gsub(/\n/, '') + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/benchmark.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/benchmark.rb new file mode 100644 index 000000000..79ba165e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/benchmark.rb @@ -0,0 +1,12 @@ +require 'benchmark' + +class << Benchmark + remove_method :realtime + + def realtime + r0 = Time.now + yield + r1 = Time.now + r1.to_f - r0.to_f + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/bigdecimal.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/bigdecimal.rb new file mode 100644 index 000000000..d429078c9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/bigdecimal.rb @@ -0,0 +1,6 @@ +require 'bigdecimal' +require 'active_support/core_ext/bigdecimal/conversions' + +class BigDecimal#:nodoc: + include ActiveSupport::CoreExtensions::BigDecimal::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb new file mode 100644 index 000000000..d2b01b1b8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/bigdecimal/conversions.rb @@ -0,0 +1,41 @@ +require 'yaml' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module BigDecimal #:nodoc: + module Conversions + def self.included(base) #:nodoc: + base.instance_eval do + alias_method :_original_to_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + + def to_formatted_s(format="F") + _original_to_s(format) + end + + yaml_as "tag:yaml.org,2002:float" + def to_yaml( opts = {} ) + YAML::quick_emit( nil, opts ) do |out| + # This emits the number without any scientific notation. + # I prefer it to using self.to_f.to_s, which would lose precision. + # + # Note that YAML allows that when reconsituting floats + # to native types, some precision may get lost. + # There is no full precision real YAML tag that I am aware of. + str = self.to_s + if str == "Infinity" + str = ".Inf" + elsif str == "-Infinity" + str = "-.Inf" + elsif str == "NaN" + str = ".NaN" + end + out.scalar( "tag:yaml.org,2002:float", str, :plain ) + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/blank.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/blank.rb new file mode 100644 index 000000000..dfe33162e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/blank.rb @@ -0,0 +1,53 @@ +class Object + # An object is blank if it's false, empty, or a whitespace string. + # For example, "", " ", +nil+, [], and {} are blank. + # + # This simplifies + # + # if !address.nil? && !address.empty? + # + # to + # + # if !address.blank? + def blank? + respond_to?(:empty?) ? empty? : !self + end +end + +class NilClass #:nodoc: + def blank? + true + end +end + +class FalseClass #:nodoc: + def blank? + true + end +end + +class TrueClass #:nodoc: + def blank? + false + end +end + +class Array #:nodoc: + alias_method :blank?, :empty? +end + +class Hash #:nodoc: + alias_method :blank?, :empty? +end + +class String #:nodoc: + def blank? + self !~ /\S/ + end +end + +class Numeric #:nodoc: + def blank? + false + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/cgi.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/cgi.rb new file mode 100644 index 000000000..db90e5c74 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/cgi.rb @@ -0,0 +1,5 @@ +require 'active_support/core_ext/cgi/escape_skipping_slashes' + +class CGI #:nodoc: + extend ActiveSupport::CoreExtensions::CGI::EscapeSkippingSlashes +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb new file mode 100644 index 000000000..a21e98fa8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb @@ -0,0 +1,14 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module CGI #:nodoc: + module EscapeSkippingSlashes #:nodoc: + def escape_skipping_slashes(str) + str = str.join('/') if str.respond_to? :join + str.gsub(/([^ \/a-zA-Z0-9_.-])/n) do + "%#{$1.unpack('H2').first.upcase}" + end.tr(' ', '+') + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class.rb new file mode 100644 index 000000000..44ad6c8c0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class.rb @@ -0,0 +1,4 @@ +require 'active_support/core_ext/class/attribute_accessors' +require 'active_support/core_ext/class/inheritable_attributes' +require 'active_support/core_ext/class/removal' +require 'active_support/core_ext/class/delegating_attributes' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb new file mode 100644 index 000000000..186ca69c0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/attribute_accessors.rb @@ -0,0 +1,54 @@ +# Extends the class object with class and instance accessors for class attributes, +# just like the native attr* accessors for instance attributes. +# +# class Person +# cattr_accessor :hair_colors +# end +# +# Person.hair_colors = [:brown, :black, :blonde, :red] +class Class + def cattr_reader(*syms) + syms.flatten.each do |sym| + next if sym.is_a?(Hash) + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym} + @@#{sym} + end + + def #{sym} + @@#{sym} + end + EOS + end + end + + def cattr_writer(*syms) + options = syms.extract_options! + syms.flatten.each do |sym| + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym}=(obj) + @@#{sym} = obj + end + + #{" + def #{sym}=(obj) + @@#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def cattr_accessor(*syms) + cattr_reader(*syms) + cattr_writer(*syms) + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb new file mode 100644 index 000000000..368317df9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/delegating_attributes.rb @@ -0,0 +1,46 @@ +# These class attributes behave something like the class +# inheritable accessors. But instead of copying the hash over at +# the time the subclass is first defined, the accessors simply +# delegate to their superclass unless they have been given a +# specific value. This stops the strange situation where values +# set after class definition don't get applied to subclasses. +class Class + def superclass_delegating_reader(*names) + class_name_to_stop_searching_on = self.superclass.name.blank? ? "Object" : self.superclass.name + names.each do |name| + class_eval <<-EOS + def self.#{name} + if defined?(@#{name}) + @#{name} + elsif superclass < #{class_name_to_stop_searching_on} && superclass.respond_to?(:#{name}) + superclass.#{name} + end + end + def #{name} + self.class.#{name} + end + def self.#{name}? + !!#{name} + end + def #{name}? + !!#{name} + end + EOS + end + end + + def superclass_delegating_writer(*names) + names.each do |name| + class_eval <<-EOS + def self.#{name}=(value) + @#{name} = value + end + EOS + end + end + + def superclass_delegating_accessor(*names) + superclass_delegating_reader(*names) + superclass_delegating_writer(*names) + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb new file mode 100644 index 000000000..8724a492b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/inheritable_attributes.rb @@ -0,0 +1,140 @@ +# Retain for backward compatibility. Methods are now included in Class. +module ClassInheritableAttributes # :nodoc: +end + +# Allows attributes to be shared within an inheritance hierarchy, but where each descendant gets a copy of +# their parents' attributes, instead of just a pointer to the same. This means that the child can add elements +# to, for example, an array without those additions being shared with either their parent, siblings, or +# children, which is unlike the regular class-level attributes that are shared across the entire hierarchy. +class Class # :nodoc: + def class_inheritable_reader(*syms) + syms.each do |sym| + next if sym.is_a?(Hash) + class_eval <<-EOS + def self.#{sym} + read_inheritable_attribute(:#{sym}) + end + + def #{sym} + self.class.#{sym} + end + EOS + end + end + + def class_inheritable_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval <<-EOS + def self.#{sym}=(obj) + write_inheritable_attribute(:#{sym}, obj) + end + + #{" + def #{sym}=(obj) + self.class.#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def class_inheritable_array_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval <<-EOS + def self.#{sym}=(obj) + write_inheritable_array(:#{sym}, obj) + end + + #{" + def #{sym}=(obj) + self.class.#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def class_inheritable_hash_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval <<-EOS + def self.#{sym}=(obj) + write_inheritable_hash(:#{sym}, obj) + end + + #{" + def #{sym}=(obj) + self.class.#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def class_inheritable_accessor(*syms) + class_inheritable_reader(*syms) + class_inheritable_writer(*syms) + end + + def class_inheritable_array(*syms) + class_inheritable_reader(*syms) + class_inheritable_array_writer(*syms) + end + + def class_inheritable_hash(*syms) + class_inheritable_reader(*syms) + class_inheritable_hash_writer(*syms) + end + + def inheritable_attributes + @inheritable_attributes ||= EMPTY_INHERITABLE_ATTRIBUTES + end + + def write_inheritable_attribute(key, value) + if inheritable_attributes.equal?(EMPTY_INHERITABLE_ATTRIBUTES) + @inheritable_attributes = {} + end + inheritable_attributes[key] = value + end + + def write_inheritable_array(key, elements) + write_inheritable_attribute(key, []) if read_inheritable_attribute(key).nil? + write_inheritable_attribute(key, read_inheritable_attribute(key) + elements) + end + + def write_inheritable_hash(key, hash) + write_inheritable_attribute(key, {}) if read_inheritable_attribute(key).nil? + write_inheritable_attribute(key, read_inheritable_attribute(key).merge(hash)) + end + + def read_inheritable_attribute(key) + inheritable_attributes[key] + end + + def reset_inheritable_attributes + @inheritable_attributes = EMPTY_INHERITABLE_ATTRIBUTES + end + + private + # Prevent this constant from being created multiple times + EMPTY_INHERITABLE_ATTRIBUTES = {}.freeze unless const_defined?(:EMPTY_INHERITABLE_ATTRIBUTES) + + def inherited_with_inheritable_attributes(child) + inherited_without_inheritable_attributes(child) if respond_to?(:inherited_without_inheritable_attributes) + + if inheritable_attributes.equal?(EMPTY_INHERITABLE_ATTRIBUTES) + new_inheritable_attributes = EMPTY_INHERITABLE_ATTRIBUTES + else + new_inheritable_attributes = inheritable_attributes.inject({}) do |memo, (key, value)| + memo.update(key => value.duplicable? ? value.dup : value) + end + end + + child.instance_variable_set('@inheritable_attributes', new_inheritable_attributes) + end + + alias inherited_without_inheritable_attributes inherited + alias inherited inherited_with_inheritable_attributes +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/removal.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/removal.rb new file mode 100644 index 000000000..10660edb2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/class/removal.rb @@ -0,0 +1,50 @@ +class Class #:nodoc: + + # Unassociates the class with its subclasses and removes the subclasses + # themselves. + # + # Integer.remove_subclasses # => [Bignum, Fixnum] + # Fixnum # => NameError: uninitialized constant Fixnum + def remove_subclasses + Object.remove_subclasses_of(self) + end + + # Returns an array with the names of the subclasses of +self+ as strings. + # + # Integer.subclasses # => ["Bignum", "Fixnum"] + def subclasses + Object.subclasses_of(self).map { |o| o.to_s } + end + + # Removes the classes in +klasses+ from their parent module. + # + # Ordinary classes belong to some module via a constant. This method computes + # that constant name from the class name and removes it from the module it + # belongs to. + # + # Object.remove_class(Integer) # => [Integer] + # Integer # => NameError: uninitialized constant Integer + # + # Take into account that in general the class object could be still stored + # somewhere else. + # + # i = Integer # => Integer + # Object.remove_class(Integer) # => [Integer] + # Integer # => NameError: uninitialized constant Integer + # i.subclasses # => ["Bignum", "Fixnum"] + # Fixnum.superclass # => Integer + def remove_class(*klasses) + klasses.flatten.each do |klass| + # Skip this class if there is nothing bound to this name + next unless defined?(klass.name) + + basename = klass.to_s.split("::").last + parent = klass.parent + + # Skip this class if it does not match the current one bound to this name + next unless parent.const_defined?(basename) && klass = parent.const_get(basename) + + parent.instance_eval { remove_const basename } unless parent == klass + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date.rb new file mode 100644 index 000000000..3f56c560b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date.rb @@ -0,0 +1,10 @@ +require 'date' +require 'active_support/core_ext/date/behavior' +require 'active_support/core_ext/date/calculations' +require 'active_support/core_ext/date/conversions' + +class Date#:nodoc: + include ActiveSupport::CoreExtensions::Date::Behavior + include ActiveSupport::CoreExtensions::Date::Calculations + include ActiveSupport::CoreExtensions::Date::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/behavior.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/behavior.rb new file mode 100644 index 000000000..011cc17cb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/behavior.rb @@ -0,0 +1,13 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Date #:nodoc: + module Behavior + # Enable more predictable duck-typing on Date-like classes. See + # Object#acts_like?. + def acts_like_date? + true + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/calculations.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/calculations.rb new file mode 100644 index 000000000..1e2dbf118 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/calculations.rb @@ -0,0 +1,215 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Date #:nodoc: + # Enables the use of time calculations within Time itself + module Calculations + def self.included(base) #:nodoc: + base.extend ClassMethods + + base.instance_eval do + alias_method :plus_without_duration, :+ + alias_method :+, :plus_with_duration + + alias_method :minus_without_duration, :- + alias_method :-, :minus_with_duration + end + end + + module ClassMethods + # Returns a new Date representing the date 1 day ago (i.e. yesterday's date). + def yesterday + ::Date.today.yesterday + end + + # Returns a new Date representing the date 1 day after today (i.e. tomorrow's date). + def tomorrow + ::Date.today.tomorrow + end + + # Returns Time.zone.today when config.time_zone is set, otherwise just returns Date.today. + def current + ::Time.zone_default ? ::Time.zone.today : ::Date.today + end + end + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) + # and then subtracts the specified number of seconds + def ago(seconds) + to_time.since(-seconds) + end + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) + # and then adds the specified number of seconds + def since(seconds) + to_time.since(seconds) + end + alias :in :since + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) + def beginning_of_day + to_time + end + alias :midnight :beginning_of_day + alias :at_midnight :beginning_of_day + alias :at_beginning_of_day :beginning_of_day + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the end of the day (23:59:59) + def end_of_day + to_time.end_of_day + end + + def plus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + other.since(self) + else + plus_without_duration(other) + end + end + + def minus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + plus_with_duration(-other) + else + minus_without_duration(other) + end + end + + # Provides precise Date calculations for years, months, and days. The +options+ parameter takes a hash with + # any of these keys: <tt>:years</tt>, <tt>:months</tt>, <tt>:weeks</tt>, <tt>:days</tt>. + def advance(options) + d = self + d = d >> options.delete(:years) * 12 if options[:years] + d = d >> options.delete(:months) if options[:months] + d = d + options.delete(:weeks) * 7 if options[:weeks] + d = d + options.delete(:days) if options[:days] + d + end + + # Returns a new Date where one or more of the elements have been changed according to the +options+ parameter. + # + # Examples: + # + # Date.new(2007, 5, 12).change(:day => 1) # => Date.new(2007, 5, 1) + # Date.new(2007, 5, 12).change(:year => 2005, :month => 1) # => Date.new(2005, 1, 12) + def change(options) + ::Date.new( + options[:year] || self.year, + options[:month] || self.month, + options[:day] || self.day + ) + end + + # Returns a new Date/DateTime representing the time a number of specified months ago + def months_ago(months) + advance(:months => -months) + end + + # Returns a new Date/DateTime representing the time a number of specified months in the future + def months_since(months) + advance(:months => months) + end + + # Returns a new Date/DateTime representing the time a number of specified years ago + def years_ago(years) + advance(:years => -years) + end + + # Returns a new Date/DateTime representing the time a number of specified years in the future + def years_since(years) + advance(:years => years) + end + + # Short-hand for years_ago(1) + def last_year + years_ago(1) + end + + # Short-hand for years_since(1) + def next_year + years_since(1) + end + + # Short-hand for months_ago(1) + def last_month + months_ago(1) + end + + # Short-hand for months_since(1) + def next_month + months_since(1) + end + + # Returns a new Date/DateTime representing the "start" of this week (i.e, Monday; DateTime objects will have time set to 0:00) + def beginning_of_week + days_to_monday = self.wday!=0 ? self.wday-1 : 6 + result = self - days_to_monday + self.acts_like?(:time) ? result.midnight : result + end + alias :monday :beginning_of_week + alias :at_beginning_of_week :beginning_of_week + + # Returns a new Date/DateTime representing the end of this week (Sunday, DateTime objects will have time set to 23:59:59) + def end_of_week + days_to_sunday = self.wday!=0 ? 7-self.wday : 0 + result = self + days_to_sunday.days + self.acts_like?(:time) ? result.end_of_day : result + end + alias :at_end_of_week :end_of_week + + # Returns a new Date/DateTime representing the start of the given day in next week (default is Monday). + def next_week(day = :monday) + days_into_week = { :monday => 0, :tuesday => 1, :wednesday => 2, :thursday => 3, :friday => 4, :saturday => 5, :sunday => 6} + result = (self + 7).beginning_of_week + days_into_week[day] + self.acts_like?(:time) ? result.change(:hour => 0) : result + end + + # Returns a new ; DateTime objects will have time set to 0:00DateTime representing the start of the month (1st of the month; DateTime objects will have time set to 0:00) + def beginning_of_month + self.acts_like?(:time) ? change(:day => 1,:hour => 0, :min => 0, :sec => 0) : change(:day => 1) + end + alias :at_beginning_of_month :beginning_of_month + + # Returns a new Date/DateTime representing the end of the month (last day of the month; DateTime objects will have time set to 0:00) + def end_of_month + last_day = ::Time.days_in_month( self.month, self.year ) + self.acts_like?(:time) ? change(:day => last_day, :hour => 23, :min => 59, :sec => 59) : change(:day => last_day) + end + alias :at_end_of_month :end_of_month + + # Returns a new Date/DateTime representing the start of the quarter (1st of january, april, july, october; DateTime objects will have time set to 0:00) + def beginning_of_quarter + beginning_of_month.change(:month => [10, 7, 4, 1].detect { |m| m <= self.month }) + end + alias :at_beginning_of_quarter :beginning_of_quarter + + # Returns a new Date/DateTime representing the end of the quarter (last day of march, june, september, december; DateTime objects will have time set to 23:59:59) + def end_of_quarter + change(:month => [3, 6, 9, 12].detect { |m| m >= self.month }).end_of_month + end + alias :at_end_of_quarter :end_of_quarter + + # Returns a new Date/DateTime representing the start of the year (1st of january; DateTime objects will have time set to 0:00) + def beginning_of_year + self.acts_like?(:time) ? change(:month => 1, :day => 1, :hour => 0, :min => 0, :sec => 0) : change(:month => 1, :day => 1) + end + alias :at_beginning_of_year :beginning_of_year + + # Returns a new Time representing the end of the year (31st of december; DateTime objects will have time set to 23:59:59) + def end_of_year + self.acts_like?(:time) ? change(:month => 12,:day => 31,:hour => 23, :min => 59, :sec => 59) : change(:month => 12, :day => 31) + end + alias :at_end_of_year :end_of_year + + # Convenience method which returns a new Date/DateTime representing the time 1 day ago + def yesterday + self - 1 + end + + # Convenience method which returns a new Date/DateTime representing the time 1 day since the instance time + def tomorrow + self + 1 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/conversions.rb new file mode 100644 index 000000000..d2d9699d0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date/conversions.rb @@ -0,0 +1,107 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Date #:nodoc: + # Converting dates to formatted strings, times, and datetimes. + module Conversions + DATE_FORMATS = { + :short => "%e %b", + :long => "%B %e, %Y", + :db => "%Y-%m-%d", + :number => "%Y%m%d", + :long_ordinal => lambda { |date| date.strftime("%B #{date.day.ordinalize}, %Y") }, # => "April 25th, 2007" + :rfc822 => "%e %b %Y" + } + + def self.included(base) #:nodoc: + base.instance_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + alias_method :default_inspect, :inspect + alias_method :inspect, :readable_inspect + + # Ruby 1.9 has Date#to_time which converts to localtime only. + remove_method :to_time if base.instance_methods.include?(:to_time) + + # Ruby 1.9 has Date#xmlschema which converts to a string without the time component. + remove_method :xmlschema if base.instance_methods.include?(:xmlschema) + end + end + + # Convert to a formatted string. See DATE_FORMATS for predefined formats. + # + # This method is aliased to <tt>to_s</tt>. + # + # ==== Examples: + # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 + # + # date.to_formatted_s(:db) # => "2007-11-10" + # date.to_s(:db) # => "2007-11-10" + # + # date.to_formatted_s(:short) # => "10 Nov" + # date.to_formatted_s(:long) # => "November 10, 2007" + # date.to_formatted_s(:long_ordinal) # => "November 10th, 2007" + # date.to_formatted_s(:rfc822) # => "10 Nov 2007" + # + # == Adding your own time formats to to_formatted_s + # You can add your own formats to the Date::DATE_FORMATS hash. + # Use the format name as the hash key and either a strftime string + # or Proc instance that takes a date argument as the value. + # + # # config/initializers/time_formats.rb + # Date::DATE_FORMATS[:month_and_year] = "%B %Y" + # Date::DATE_FORMATS[:short_ordinal] = lambda { |date| date.strftime("%B #{date.day.ordinalize}") } + def to_formatted_s(format = :default) + if formatter = DATE_FORMATS[format] + if formatter.respond_to?(:call) + formatter.call(self).to_s + else + strftime(formatter) + end + else + to_default_s + end + end + + # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005" + def readable_inspect + strftime("%a, %d %b %Y") + end + + # A method to keep Time, Date and DateTime instances interchangeable on conversions. + # In this case, it simply returns +self+. + def to_date + self + end if RUBY_VERSION < '1.9' + + # Converts a Date instance to a Time, where the time is set to the beginning of the day. + # The timezone can be either :local or :utc (default :local). + # + # ==== Examples: + # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 + # + # date.to_time # => Sat Nov 10 00:00:00 0800 2007 + # date.to_time(:local) # => Sat Nov 10 00:00:00 0800 2007 + # + # date.to_time(:utc) # => Sat Nov 10 00:00:00 UTC 2007 + def to_time(form = :local) + ::Time.send("#{form}_time", year, month, day) + end + + # Converts a Date instance to a DateTime, where the time is set to the beginning of the day + # and UTC offset is set to 0. + # + # ==== Example: + # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 + # + # date.to_datetime # => Sat, 10 Nov 2007 00:00:00 0000 + def to_datetime + ::DateTime.civil(year, month, day, 0, 0, 0, 0) + end if RUBY_VERSION < '1.9' + + def xmlschema + to_time.xmlschema + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time.rb new file mode 100644 index 000000000..66a93eac4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time.rb @@ -0,0 +1,12 @@ +require 'date' +require 'active_support/core_ext/time/behavior' +require 'active_support/core_ext/time/zones' +require 'active_support/core_ext/date_time/calculations' +require 'active_support/core_ext/date_time/conversions' + +class DateTime + include ActiveSupport::CoreExtensions::Time::Behavior + include ActiveSupport::CoreExtensions::Time::Zones + include ActiveSupport::CoreExtensions::DateTime::Calculations + include ActiveSupport::CoreExtensions::DateTime::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time/calculations.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time/calculations.rb new file mode 100644 index 000000000..155c961a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time/calculations.rb @@ -0,0 +1,112 @@ +require 'rational' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module DateTime #:nodoc: + # Enables the use of time calculations within DateTime itself + module Calculations + def self.included(base) #:nodoc: + base.extend ClassMethods + + base.class_eval do + alias_method :compare_without_coercion, :<=> + alias_method :<=>, :compare_with_coercion + end + end + + module ClassMethods + # DateTimes aren't aware of DST rules, so use a consistent non-DST offset when creating a DateTime with an offset in the local zone + def local_offset + ::Time.local(2007).utc_offset.to_r / 86400 + end + end + + # Seconds since midnight: DateTime.now.seconds_since_midnight + def seconds_since_midnight + self.sec + (self.min * 60) + (self.hour * 3600) + end + + # Returns a new DateTime where one or more of the elements have been changed according to the +options+ parameter. The time options + # (hour, minute, sec) reset cascadingly, so if only the hour is passed, then minute and sec is set to 0. If the hour and + # minute is passed, then sec is set to 0. + def change(options) + ::DateTime.civil( + options[:year] || self.year, + options[:month] || self.month, + options[:day] || self.day, + options[:hour] || self.hour, + options[:min] || (options[:hour] ? 0 : self.min), + options[:sec] || ((options[:hour] || options[:min]) ? 0 : self.sec), + options[:offset] || self.offset, + options[:start] || self.start + ) + end + + # Uses Date to provide precise Time calculations for years, months, and days. + # The +options+ parameter takes a hash with any of these keys: <tt>:years</tt>, + # <tt>:months</tt>, <tt>:weeks</tt>, <tt>:days</tt>, <tt>:hours</tt>, + # <tt>:minutes</tt>, <tt>:seconds</tt>. + def advance(options) + d = to_date.advance(options) + datetime_advanced_by_date = change(:year => d.year, :month => d.month, :day => d.day) + seconds_to_advance = (options[:seconds] || 0) + (options[:minutes] || 0) * 60 + (options[:hours] || 0) * 3600 + seconds_to_advance == 0 ? datetime_advanced_by_date : datetime_advanced_by_date.since(seconds_to_advance) + end + + # Returns a new DateTime representing the time a number of seconds ago + # Do not use this method in combination with x.months, use months_ago instead! + def ago(seconds) + self.since(-seconds) + end + + # Returns a new DateTime representing the time a number of seconds since the instance time + # Do not use this method in combination with x.months, use months_since instead! + def since(seconds) + self + Rational(seconds.round, 86400) + end + alias :in :since + + # Returns a new DateTime representing the start of the day (0:00) + def beginning_of_day + change(:hour => 0) + end + alias :midnight :beginning_of_day + alias :at_midnight :beginning_of_day + alias :at_beginning_of_day :beginning_of_day + + # Returns a new DateTime representing the end of the day (23:59:59) + def end_of_day + change(:hour => 23, :min => 59, :sec => 59) + end + + # Adjusts DateTime to UTC by adding its offset value; offset is set to 0 + # + # Example: + # + # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)) # => Mon, 21 Feb 2005 10:11:12 -0600 + # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc # => Mon, 21 Feb 2005 16:11:12 +0000 + def utc + new_offset(0) + end + alias_method :getutc, :utc + + # Returns true if offset == 0 + def utc? + offset == 0 + end + + # Returns the offset value in seconds + def utc_offset + (offset * 86400).to_i + end + + # Layers additional behavior on DateTime#<=> so that Time and ActiveSupport::TimeWithZone instances can be compared with a DateTime + def compare_with_coercion(other) + other = other.comparable_time if other.respond_to?(:comparable_time) + other = other.to_datetime unless other.acts_like?(:date) + compare_without_coercion(other) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time/conversions.rb new file mode 100644 index 000000000..c0175a5f2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/date_time/conversions.rb @@ -0,0 +1,96 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module DateTime #:nodoc: + # Converting datetimes to formatted strings, dates, and times. + module Conversions + def self.append_features(base) #:nodoc: + base.class_eval do + alias_method :default_inspect, :inspect + alias_method :to_default_s, :to_s unless (instance_methods(false) & [:to_s, 'to_s']).empty? + + # Ruby 1.9 has DateTime#to_time which internally relies on Time. We define our own #to_time which allows + # DateTimes outside the range of what can be created with Time. + remove_method :to_time if instance_methods.include?(:to_time) + end + + super + + base.class_eval do + alias_method :to_s, :to_formatted_s + alias_method :inspect, :readable_inspect + end + end + + # Convert to a formatted string. See Time::DATE_FORMATS for predefined formats. + # + # This method is aliased to <tt>to_s</tt>. + # + # === Examples: + # datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0) # => Tue, 04 Dec 2007 00:00:00 +0000 + # + # datetime.to_formatted_s(:db) # => "2007-12-04 00:00:00" + # datetime.to_s(:db) # => "2007-12-04 00:00:00" + # datetime.to_s(:number) # => "20071204000000" + # datetime.to_formatted_s(:short) # => "04 Dec 00:00" + # datetime.to_formatted_s(:long) # => "December 04, 2007 00:00" + # datetime.to_formatted_s(:long_ordinal) # => "December 4th, 2007 00:00" + # datetime.to_formatted_s(:rfc822) # => "Tue, 04 Dec 2007 00:00:00 +0000" + # + # == Adding your own datetime formats to to_formatted_s + # DateTime formats are shared with Time. You can add your own to the + # Time::DATE_FORMATS hash. Use the format name as the hash key and + # either a strftime string or Proc instance that takes a time or + # datetime argument as the value. + # + # # config/initializers/time_formats.rb + # Time::DATE_FORMATS[:month_and_year] = "%B %Y" + # Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } + def to_formatted_s(format = :default) + return to_default_s unless formatter = ::Time::DATE_FORMATS[format] + formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter) + end + + # Returns the +utc_offset+ as an +HH:MM formatted string. Examples: + # + # datetime = DateTime.civil(2000, 1, 1, 0, 0, 0, Rational(-6, 24)) + # datetime.formatted_offset # => "-06:00" + # datetime.formatted_offset(false) # => "-0600" + def formatted_offset(colon = true, alternate_utc_string = nil) + utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005 14:30:00 +0000" + def readable_inspect + to_s(:rfc822) + end + + # Converts self to a Ruby Date object; time portion is discarded + def to_date + ::Date.new(year, month, day) + end + + # Attempts to convert self to a Ruby Time object; returns self if out of range of Ruby Time class + # If self has an offset other than 0, self will just be returned unaltered, since there's no clean way to map it to a Time + def to_time + self.offset == 0 ? ::Time.utc_time(year, month, day, hour, min, sec) : self + end + + # To be able to keep Times, Dates and DateTimes interchangeable on conversions + def to_datetime + self + end + + # Converts datetime to an appropriate format for use in XML + def xmlschema + strftime("%Y-%m-%dT%H:%M:%S%Z") + end if RUBY_VERSION < '1.9' + + # Converts self to a floating-point number of seconds since the Unix epoch + def to_f + days_since_unix_epoch = self - ::DateTime.civil(1970) + (days_since_unix_epoch * 86_400).to_f + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/duplicable.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/duplicable.rb new file mode 100644 index 000000000..adbbfd8c6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/duplicable.rb @@ -0,0 +1,37 @@ +class Object + # Can you safely .dup this object? + # False for nil, false, true, symbols, and numbers; true otherwise. + def duplicable? + true + end +end + +class NilClass #:nodoc: + def duplicable? + false + end +end + +class FalseClass #:nodoc: + def duplicable? + false + end +end + +class TrueClass #:nodoc: + def duplicable? + false + end +end + +class Symbol #:nodoc: + def duplicable? + false + end +end + +class Numeric #:nodoc: + def duplicable? + false + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/enumerable.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/enumerable.rb new file mode 100644 index 000000000..f1469aa0e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/enumerable.rb @@ -0,0 +1,69 @@ +module Enumerable + # Ruby 1.8.7 introduces group_by, but the result isn't ordered. Override it. + remove_method(:group_by) if [].respond_to?(:group_by) && RUBY_VERSION < '1.9' + + # Collect an enumerable into sets, grouped by the result of a block. Useful, + # for example, for grouping records by date. + # + # Example: + # + # latest_transcripts.group_by(&:day).each do |day, transcripts| + # p "#{day} -> #{transcripts.map(&:class).join(', ')}" + # end + # "2006-03-01 -> Transcript" + # "2006-02-28 -> Transcript" + # "2006-02-27 -> Transcript, Transcript" + # "2006-02-26 -> Transcript, Transcript" + # "2006-02-25 -> Transcript" + # "2006-02-24 -> Transcript, Transcript" + # "2006-02-23 -> Transcript" + def group_by + inject ActiveSupport::OrderedHash.new do |grouped, element| + (grouped[yield(element)] ||= []) << element + grouped + end + end unless [].respond_to?(:group_by) + + # Calculates a sum from the elements. Examples: + # + # payments.sum { |p| p.price * p.tax_rate } + # payments.sum(&:price) + # + # The latter is a shortcut for: + # + # payments.inject { |sum, p| sum + p.price } + # + # It can also calculate the sum without the use of a block. + # + # [5, 15, 10].sum # => 30 + # ["foo", "bar"].sum # => "foobar" + # [[1, 2], [3, 1, 5]].sum => [1, 2, 3, 1, 5] + # + # The default sum of an empty list is zero. You can override this default: + # + # [].sum(Payment.new(0)) { |i| i.amount } # => Payment.new(0) + # + def sum(identity = 0, &block) + return identity unless size > 0 + + if block_given? + map(&block).sum + else + inject { |sum, element| sum + element } + end + end + + # Convert an enumerable to a hash. Examples: + # + # people.index_by(&:login) + # => { "nextangle" => <Person ...>, "chade-" => <Person ...>, ...} + # people.index_by { |person| "#{person.first_name} #{person.last_name}" } + # => { "Chade- Fowlersburg-e" => <Person ...>, "David Heinemeier Hansson" => <Person ...>, ...} + # + def index_by + inject({}) do |accum, elem| + accum[yield(elem)] = elem + accum + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/exception.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/exception.rb new file mode 100644 index 000000000..57c856833 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/exception.rb @@ -0,0 +1,41 @@ +module ActiveSupport + if RUBY_VERSION >= '1.9' + FrozenObjectError = RuntimeError + else + FrozenObjectError = TypeError + end +end + +class Exception # :nodoc: + def clean_message + Pathname.clean_within message + end + + TraceSubstitutions = [] + FrameworkRegexp = /generated|vendor|dispatch|ruby|script\/\w+/ + + def clean_backtrace + backtrace.collect do |line| + Pathname.clean_within(TraceSubstitutions.inject(line) do |result, (regexp, sub)| + result.gsub regexp, sub + end) + end + end + + def application_backtrace + before_application_frame = true + + trace = clean_backtrace.reject do |line| + non_app_frame = (line =~ FrameworkRegexp) + before_application_frame = false unless non_app_frame + non_app_frame && ! before_application_frame + end + + # If we didn't find any application frames, return an empty app trace. + before_application_frame ? [] : trace + end + + def framework_backtrace + clean_backtrace.grep FrameworkRegexp + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/file.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/file.rb new file mode 100644 index 000000000..45d93b220 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/file.rb @@ -0,0 +1,21 @@ +require 'tempfile' + +# Write to a file atomically. Useful for situations where you don't +# want other processes or threads to see half-written files. +# +# File.atomic_write("important.file") do |file| +# file.write("hello") +# end +# +# If your temp directory is not on the same filesystem as the file you're +# trying to write, you can provide a different temporary directory. +# +# File.atomic_write("/data/something.important", "/data/tmp") do |f| +# file.write("hello") +# end +def File.atomic_write(file_name, temp_dir = Dir.tmpdir) + temp_file = Tempfile.new(File.basename(file_name), temp_dir) + yield temp_file + temp_file.close + File.rename(temp_file.path, file_name) +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/float.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/float.rb new file mode 100644 index 000000000..86862b715 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/float.rb @@ -0,0 +1,5 @@ +require 'active_support/core_ext/float/rounding' + +class Float #:nodoc: + include ActiveSupport::CoreExtensions::Float::Rounding +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/float/rounding.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/float/rounding.rb new file mode 100644 index 000000000..062d46683 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/float/rounding.rb @@ -0,0 +1,24 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Float #:nodoc: + module Rounding + def self.included(base) #:nodoc: + base.class_eval do + alias_method :round_without_precision, :round + alias_method :round, :round_with_precision + end + end + + # Rounds the float with the specified precision. + # + # x = 1.337 + # x.round # => 1 + # x.round(1) # => 1.3 + # x.round(2) # => 1.34 + def round_with_precision(precision = nil) + precision.nil? ? round_without_precision : (self * (10 ** precision)).round / (10 ** precision).to_f + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash.rb new file mode 100644 index 000000000..6cbd9dd37 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash.rb @@ -0,0 +1,13 @@ +%w(keys indifferent_access reverse_merge conversions diff slice except).each do |ext| + require "active_support/core_ext/hash/#{ext}" +end + +class Hash #:nodoc: + include ActiveSupport::CoreExtensions::Hash::Keys + include ActiveSupport::CoreExtensions::Hash::IndifferentAccess + include ActiveSupport::CoreExtensions::Hash::ReverseMerge + include ActiveSupport::CoreExtensions::Hash::Conversions + include ActiveSupport::CoreExtensions::Hash::Diff + include ActiveSupport::CoreExtensions::Hash::Slice + include ActiveSupport::CoreExtensions::Hash::Except +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/conversions.rb new file mode 100644 index 000000000..2c606b401 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/conversions.rb @@ -0,0 +1,259 @@ +require 'date' +require 'cgi' +require 'builder' +require 'xmlsimple' + +# Locked down XmlSimple#xml_in_string +class XmlSimple + # Same as xml_in but doesn't try to smartly shoot itself in the foot. + def xml_in_string(string, options = nil) + handle_options('in', options) + + @doc = parse(string) + result = collapse(@doc.root) + + if @options['keeproot'] + merge({}, @doc.root.name, result) + else + result + end + end + + def self.xml_in_string(string, options = nil) + new.xml_in_string(string, options) + end +end + +# This module exists to decorate files deserialized using Hash.from_xml with +# the <tt>original_filename</tt> and <tt>content_type</tt> methods. +module FileLike #:nodoc: + attr_writer :original_filename, :content_type + + def original_filename + @original_filename || 'untitled' + end + + def content_type + @content_type || 'application/octet-stream' + end +end + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module Conversions + + XML_TYPE_NAMES = { + "Symbol" => "symbol", + "Fixnum" => "integer", + "Bignum" => "integer", + "BigDecimal" => "decimal", + "Float" => "float", + "Date" => "date", + "DateTime" => "datetime", + "Time" => "datetime", + "TrueClass" => "boolean", + "FalseClass" => "boolean" + } unless defined?(XML_TYPE_NAMES) + + XML_FORMATTING = { + "symbol" => Proc.new { |symbol| symbol.to_s }, + "date" => Proc.new { |date| date.to_s(:db) }, + "datetime" => Proc.new { |time| time.xmlschema }, + "binary" => Proc.new { |binary| ActiveSupport::Base64.encode64(binary) }, + "yaml" => Proc.new { |yaml| yaml.to_yaml } + } unless defined?(XML_FORMATTING) + + # TODO: use Time.xmlschema instead of Time.parse; + # use regexp instead of Date.parse + unless defined?(XML_PARSING) + XML_PARSING = { + "symbol" => Proc.new { |symbol| symbol.to_sym }, + "date" => Proc.new { |date| ::Date.parse(date) }, + "datetime" => Proc.new { |time| ::Time.parse(time).utc rescue ::DateTime.parse(time).utc }, + "integer" => Proc.new { |integer| integer.to_i }, + "float" => Proc.new { |float| float.to_f }, + "decimal" => Proc.new { |number| BigDecimal(number) }, + "boolean" => Proc.new { |boolean| %w(1 true).include?(boolean.strip) }, + "string" => Proc.new { |string| string.to_s }, + "yaml" => Proc.new { |yaml| YAML::load(yaml) rescue yaml }, + "base64Binary" => Proc.new { |bin| ActiveSupport::Base64.decode64(bin) }, + "file" => Proc.new do |file, entity| + f = StringIO.new(ActiveSupport::Base64.decode64(file)) + f.extend(FileLike) + f.original_filename = entity['name'] + f.content_type = entity['content_type'] + f + end + } + + XML_PARSING.update( + "double" => XML_PARSING["float"], + "dateTime" => XML_PARSING["datetime"] + ) + end + + def self.included(klass) + klass.extend(ClassMethods) + end + + # Converts a hash into a string suitable for use as a URL query string. An optional <tt>namespace</tt> can be + # passed to enclose the param names (see example below). + # + # ==== Example: + # { :name => 'David', :nationality => 'Danish' }.to_query # => "name=David&nationality=Danish" + # + # { :name => 'David', :nationality => 'Danish' }.to_query('user') # => "user%5Bname%5D=David&user%5Bnationality%5D=Danish" + def to_query(namespace = nil) + collect do |key, value| + value.to_query(namespace ? "#{namespace}[#{key}]" : key) + end.sort * '&' + end + + alias_method :to_param, :to_query + + def to_xml(options = {}) + options[:indent] ||= 2 + options.reverse_merge!({ :builder => Builder::XmlMarkup.new(:indent => options[:indent]), + :root => "hash" }) + options[:builder].instruct! unless options.delete(:skip_instruct) + dasherize = !options.has_key?(:dasherize) || options[:dasherize] + root = dasherize ? options[:root].to_s.dasherize : options[:root].to_s + + options[:builder].__send__(:method_missing, root) do + each do |key, value| + case value + when ::Hash + value.to_xml(options.merge({ :root => key, :skip_instruct => true })) + when ::Array + value.to_xml(options.merge({ :root => key, :children => key.to_s.singularize, :skip_instruct => true})) + when ::Method, ::Proc + # If the Method or Proc takes two arguments, then + # pass the suggested child element name. This is + # used if the Method or Proc will be operating over + # multiple records and needs to create an containing + # element that will contain the objects being + # serialized. + if 1 == value.arity + value.call(options.merge({ :root => key, :skip_instruct => true })) + else + value.call(options.merge({ :root => key, :skip_instruct => true }), key.to_s.singularize) + end + else + if value.respond_to?(:to_xml) + value.to_xml(options.merge({ :root => key, :skip_instruct => true })) + else + type_name = XML_TYPE_NAMES[value.class.name] + + key = dasherize ? key.to_s.dasherize : key.to_s + + attributes = options[:skip_types] || value.nil? || type_name.nil? ? { } : { :type => type_name } + if value.nil? + attributes[:nil] = true + end + + options[:builder].tag!(key, + XML_FORMATTING[type_name] ? XML_FORMATTING[type_name].call(value) : value, + attributes + ) + end + end + end + + yield options[:builder] if block_given? + end + + end + + module ClassMethods + def from_xml(xml) + # TODO: Refactor this into something much cleaner that doesn't rely on XmlSimple + typecast_xml_value(undasherize_keys(XmlSimple.xml_in_string(xml, + 'forcearray' => false, + 'forcecontent' => true, + 'keeproot' => true, + 'contentkey' => '__content__') + )) + end + + private + def typecast_xml_value(value) + case value.class.to_s + when 'Hash' + if value['type'] == 'array' + child_key, entries = value.detect { |k,v| k != 'type' } # child_key is throwaway + if entries.nil? || (c = value['__content__'] && c.blank?) + [] + else + case entries.class.to_s # something weird with classes not matching here. maybe singleton methods breaking is_a? + when "Array" + entries.collect { |v| typecast_xml_value(v) } + when "Hash" + [typecast_xml_value(entries)] + else + raise "can't typecast #{entries.inspect}" + end + end + elsif value.has_key?("__content__") + content = value["__content__"] + if parser = XML_PARSING[value["type"]] + if parser.arity == 2 + XML_PARSING[value["type"]].call(content, value) + else + XML_PARSING[value["type"]].call(content) + end + else + content + end + elsif value['type'] == 'string' && value['nil'] != 'true' + "" + # blank or nil parsed values are represented by nil + elsif value.blank? || value['nil'] == 'true' + nil + # If the type is the only element which makes it then + # this still makes the value nil, except if type is + # a XML node(where type['value'] is a Hash) + elsif value['type'] && value.size == 1 && !value['type'].is_a?(::Hash) + nil + else + xml_value = value.inject({}) do |h,(k,v)| + h[k] = typecast_xml_value(v) + h + end + + # Turn { :files => { :file => #<StringIO> } into { :files => #<StringIO> } so it is compatible with + # how multipart uploaded files from HTML appear + xml_value["file"].is_a?(StringIO) ? xml_value["file"] : xml_value + end + when 'Array' + value.map! { |i| typecast_xml_value(i) } + case value.length + when 0 then nil + when 1 then value.first + else value + end + when 'String' + value + else + raise "can't typecast #{value.class.name} - #{value.inspect}" + end + end + + def undasherize_keys(params) + case params.class.to_s + when "Hash" + params.inject({}) do |h,(k,v)| + h[k.to_s.tr("-", "_")] = undasherize_keys(v) + h + end + when "Array" + params.map { |v| undasherize_keys(v) } + else + params + end + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/diff.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/diff.rb new file mode 100644 index 000000000..6abd67882 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/diff.rb @@ -0,0 +1,19 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module Diff + # Returns a hash that represents the difference between two hashes. + # + # Examples: + # + # {1 => 2}.diff(1 => 2) # => {} + # {1 => 2}.diff(1 => 3) # => {1 => 2} + # {}.diff(1 => 2) # => {1 => 2} + # {1 => 2, 3 => 4}.diff(1 => 2) # => {3 => 4} + def diff(h2) + self.dup.delete_if { |k, v| h2[k] == v }.merge(h2.dup.delete_if { |k, v| self.has_key?(k) }) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/except.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/except.rb new file mode 100644 index 000000000..8362cd880 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/except.rb @@ -0,0 +1,24 @@ +require 'set' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + # Return a hash that includes everything but the given keys. This is useful for + # limiting a set of parameters to everything but a few known toggles: + # + # @person.update_attributes(params[:person].except(:admin)) + module Except + # Returns a new hash without the given keys. + def except(*keys) + rejected = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys) + reject { |key,| rejected.include?(key) } + end + + # Replaces the hash without only the given keys. + def except!(*keys) + replace(except(*keys)) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb new file mode 100644 index 000000000..c96c5160b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/indifferent_access.rb @@ -0,0 +1,137 @@ +# This class has dubious semantics and we only have it so that +# people can write params[:key] instead of params['key'] +# and they get the same value for both keys. + +class HashWithIndifferentAccess < Hash + def initialize(constructor = {}) + if constructor.is_a?(Hash) + super() + update(constructor) + else + super(constructor) + end + end + + def default(key = nil) + if key.is_a?(Symbol) && include?(key = key.to_s) + self[key] + else + super + end + end + + alias_method :regular_writer, :[]= unless method_defined?(:regular_writer) + alias_method :regular_update, :update unless method_defined?(:regular_update) + + # Assigns a new value to the hash: + # + # hash = HashWithIndifferentAccess.new + # hash[:key] = "value" + # + def []=(key, value) + regular_writer(convert_key(key), convert_value(value)) + end + + # Updates the instantized hash with values from the second: + # + # hash_1 = HashWithIndifferentAccess.new + # hash_1[:key] = "value" + # + # hash_2 = HashWithIndifferentAccess.new + # hash_2[:key] = "New Value!" + # + # hash_1.update(hash_2) # => {"key"=>"New Value!"} + # + def update(other_hash) + other_hash.each_pair { |key, value| regular_writer(convert_key(key), convert_value(value)) } + self + end + + alias_method :merge!, :update + + # Checks the hash for a key matching the argument passed in: + # + # hash = HashWithIndifferentAccess.new + # hash["key"] = "value" + # hash.key? :key # => true + # hash.key? "key" # => true + # + def key?(key) + super(convert_key(key)) + end + + alias_method :include?, :key? + alias_method :has_key?, :key? + alias_method :member?, :key? + + # Fetches the value for the specified key, same as doing hash[key] + def fetch(key, *extras) + super(convert_key(key), *extras) + end + + # Returns an array of the values at the specified indices: + # + # hash = HashWithIndifferentAccess.new + # hash[:a] = "x" + # hash[:b] = "y" + # hash.values_at("a", "b") # => ["x", "y"] + # + def values_at(*indices) + indices.collect {|key| self[convert_key(key)]} + end + + # Returns an exact copy of the hash. + def dup + HashWithIndifferentAccess.new(self) + end + + # Merges the instantized and the specified hashes together, giving precedence to the values from the second hash + # Does not overwrite the existing hash. + def merge(hash) + self.dup.update(hash) + end + + # Removes a specified key from the hash. + def delete(key) + super(convert_key(key)) + end + + def stringify_keys!; self end + def symbolize_keys!; self end + def to_options!; self end + + # Convert to a Hash with String keys. + def to_hash + Hash.new(default).merge(self) + end + + protected + def convert_key(key) + key.kind_of?(Symbol) ? key.to_s : key + end + + def convert_value(value) + case value + when Hash + value.with_indifferent_access + when Array + value.collect { |e| e.is_a?(Hash) ? e.with_indifferent_access : e } + else + value + end + end +end + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module IndifferentAccess #:nodoc: + def with_indifferent_access + hash = HashWithIndifferentAccess.new(self) + hash.default = self.default + hash + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/keys.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/keys.rb new file mode 100644 index 000000000..7312bcb41 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/keys.rb @@ -0,0 +1,52 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module Keys + # Return a new hash with all keys converted to strings. + def stringify_keys + inject({}) do |options, (key, value)| + options[key.to_s] = value + options + end + end + + # Destructively convert all keys to strings. + def stringify_keys! + keys.each do |key| + self[key.to_s] = delete(key) + end + self + end + + # Return a new hash with all keys converted to symbols. + def symbolize_keys + inject({}) do |options, (key, value)| + options[(key.to_sym rescue key) || key] = value + options + end + end + + # Destructively convert all keys to symbols. + def symbolize_keys! + self.replace(self.symbolize_keys) + end + + alias_method :to_options, :symbolize_keys + alias_method :to_options!, :symbolize_keys! + + # Validate all keys in a hash match *valid keys, raising ArgumentError on a mismatch. + # Note that keys are NOT treated indifferently, meaning if you use strings for keys but assert symbols + # as keys, this will fail. + # + # ==== Examples: + # { :name => "Rob", :years => "28" }.assert_valid_keys(:name, :age) # => raises "ArgumentError: Unknown key(s): years" + # { :name => "Rob", :age => "28" }.assert_valid_keys("name", "age") # => raises "ArgumentError: Unknown key(s): name, age" + # { :name => "Rob", :age => "28" }.assert_valid_keys(:name, :age) # => passes, raises nothing + def assert_valid_keys(*valid_keys) + unknown_keys = keys - [valid_keys].flatten + raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(", ")}") unless unknown_keys.empty? + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb new file mode 100644 index 000000000..7af10846e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/reverse_merge.rb @@ -0,0 +1,28 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + # Allows for reverse merging where its the keys in the calling hash that wins over those in the <tt>other_hash</tt>. + # This is particularly useful for initializing an incoming option hash with default values: + # + # def setup(options = {}) + # options.reverse_merge! :size => 25, :velocity => 10 + # end + # + # The default <tt>:size</tt> and <tt>:velocity</tt> is only set if the +options+ passed in doesn't already have those keys set. + module ReverseMerge + # Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second. + def reverse_merge(other_hash) + other_hash.merge(self) + end + + # Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second. + # Modifies the receiver in place. + def reverse_merge!(other_hash) + replace(reverse_merge(other_hash)) + end + + alias_method :reverse_update, :reverse_merge! + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/slice.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/slice.rb new file mode 100644 index 000000000..6fe5e0533 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/hash/slice.rb @@ -0,0 +1,28 @@ +require 'set' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + # Slice a hash to include only the given keys. This is useful for + # limiting an options hash to valid keys before passing to a method: + # + # def search(criteria = {}) + # assert_valid_keys(:mass, :velocity, :time) + # end + # + # search(options.slice(:mass, :velocity, :time)) + module Slice + # Returns a new hash with only the given keys. + def slice(*keys) + allowed = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys) + reject { |key,| !allowed.include?(key) } + end + + # Replaces the hash with only the given keys. + def slice!(*keys) + replace(slice(*keys)) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer.rb new file mode 100644 index 000000000..d1e6d76ac --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer.rb @@ -0,0 +1,7 @@ +require 'active_support/core_ext/integer/even_odd' +require 'active_support/core_ext/integer/inflections' + +class Integer #:nodoc: + include ActiveSupport::CoreExtensions::Integer::EvenOdd + include ActiveSupport::CoreExtensions::Integer::Inflections +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer/even_odd.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer/even_odd.rb new file mode 100644 index 000000000..b1d1e2806 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer/even_odd.rb @@ -0,0 +1,29 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Integer #:nodoc: + # For checking if a fixnum is even or odd. + # + # 2.even? # => true + # 2.odd? # => false + # 1.even? # => false + # 1.odd? # => true + # 0.even? # => true + # 0.odd? # => false + # -1.even? # => false + # -1.odd? # => true + module EvenOdd + def multiple_of?(number) + self % number == 0 + end + + def even? + multiple_of? 2 + end if RUBY_VERSION < '1.9' + + def odd? + !even? + end if RUBY_VERSION < '1.9' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer/inflections.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer/inflections.rb new file mode 100644 index 000000000..804702beb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/integer/inflections.rb @@ -0,0 +1,20 @@ +require 'active_support/inflector' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Integer #:nodoc: + module Inflections + # Ordinalize turns a number into an ordinal string used to denote the + # position in an ordered sequence such as 1st, 2nd, 3rd, 4th. + # + # 1.ordinalize # => "1st" + # 2.ordinalize # => "2nd" + # 1002.ordinalize # => "1002nd" + # 1003.ordinalize # => "1003rd" + def ordinalize + Inflector.ordinalize(self) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel.rb new file mode 100644 index 000000000..1922d804b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel.rb @@ -0,0 +1,5 @@ +require 'active_support/core_ext/kernel/daemonizing' +require 'active_support/core_ext/kernel/reporting' +require 'active_support/core_ext/kernel/agnostics' +require 'active_support/core_ext/kernel/requires' +require 'active_support/core_ext/kernel/debugger' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/agnostics.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/agnostics.rb new file mode 100644 index 000000000..c0cb4fb42 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/agnostics.rb @@ -0,0 +1,11 @@ +class Object + # Makes backticks behave (somewhat more) similarly on all platforms. + # On win32 `nonexistent_command` raises Errno::ENOENT; on Unix, the + # spawned shell prints a message to stderr and sets $?. We emulate + # Unix on the former but not the latter. + def `(command) #:nodoc: + super + rescue Errno::ENOENT => e + STDERR.puts "#$0: #{e}" + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb new file mode 100644 index 000000000..ed9d1f9bf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/daemonizing.rb @@ -0,0 +1,7 @@ +module Kernel + # Turns the current script into a daemon process that detaches from the console. + # It can be shut down with a TERM signal. + def daemonize + Process.daemon + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/debugger.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/debugger.rb new file mode 100644 index 000000000..c74d6cf88 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/debugger.rb @@ -0,0 +1,13 @@ +module Kernel + unless respond_to?(:debugger) + # Starts a debugging session if ruby-debug has been loaded (call script/server --debugger to do load it). + def debugger + RAILS_DEFAULT_LOGGER.info "\n***** Debugger requested, but was not available: Start server with --debugger to enable *****\n" + end + end + + def breakpoint + RAILS_DEFAULT_LOGGER.info "\n***** The 'breakpoint' command has been renamed 'debugger' -- please change *****\n" + debugger + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/reporting.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/reporting.rb new file mode 100644 index 000000000..0f101e8fa --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/reporting.rb @@ -0,0 +1,59 @@ +module Kernel + # Sets $VERBOSE to nil for the duration of the block and back to its original value afterwards. + # + # silence_warnings do + # value = noisy_call # no warning voiced + # end + # + # noisy_call # warning voiced + def silence_warnings + old_verbose, $VERBOSE = $VERBOSE, nil + yield + ensure + $VERBOSE = old_verbose + end + + # Sets $VERBOSE to true for the duration of the block and back to its original value afterwards. + def enable_warnings + old_verbose, $VERBOSE = $VERBOSE, true + yield + ensure + $VERBOSE = old_verbose + end + + # For compatibility + def silence_stderr #:nodoc: + silence_stream(STDERR) { yield } + end + + # Silences any stream for the duration of the block. + # + # silence_stream(STDOUT) do + # puts 'This will never be seen' + # end + # + # puts 'But this will' + def silence_stream(stream) + old_stream = stream.dup + stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null') + stream.sync = true + yield + ensure + stream.reopen(old_stream) + end + + # Blocks and ignores any exception passed as argument if raised within the block. + # + # suppress(ZeroDivisionError) do + # 1/0 + # puts "This code is NOT reached" + # end + # + # puts "This code gets executed and nothing related to ZeroDivisionError was seen" + def suppress(*exception_classes) + begin yield + rescue Exception => e + raise unless exception_classes.any? { |cls| e.kind_of?(cls) } + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/requires.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/requires.rb new file mode 100644 index 000000000..323fea49f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/kernel/requires.rb @@ -0,0 +1,24 @@ +module Kernel + # Require a library with fallback to RubyGems. Warnings during library + # loading are silenced to increase signal/noise for application warnings. + def require_library_or_gem(library_name) + silence_warnings do + begin + require library_name + rescue LoadError => cannot_require + # 1. Requiring the module is unsuccessful, maybe it's a gem and nobody required rubygems yet. Try. + begin + require 'rubygems' + rescue LoadError => rubygems_not_installed + raise cannot_require + end + # 2. Rubygems is installed and loaded. Try to load the library again + begin + require library_name + rescue LoadError => gem_not_installed + raise cannot_require + end + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/load_error.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/load_error.rb new file mode 100644 index 000000000..6165e9544 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/load_error.rb @@ -0,0 +1,38 @@ +class MissingSourceFile < LoadError #:nodoc: + attr_reader :path + def initialize(message, path) + super(message) + @path = path + end + + def is_missing?(path) + path.gsub(/\.rb$/, '') == self.path.gsub(/\.rb$/, '') + end + + def self.from_message(message) + REGEXPS.each do |regexp, capture| + match = regexp.match(message) + return MissingSourceFile.new(message, match[capture]) unless match.nil? + end + nil + end + + REGEXPS = [ + [/^no such file to load -- (.+)$/i, 1], + [/^Missing \w+ (file\s*)?([^\s]+.rb)$/i, 2], + [/^Missing API definition file in (.+)$/i, 1] + ] unless defined?(REGEXPS) +end + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module LoadErrorExtensions #:nodoc: + module LoadErrorClassMethods #:nodoc: + def new(*args) + (self == LoadError && MissingSourceFile.from_message(args.first)) || super + end + end + ::LoadError.extend(LoadErrorClassMethods) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/logger.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/logger.rb new file mode 100644 index 000000000..9c1fd274a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/logger.rb @@ -0,0 +1,16 @@ +# Adds the 'around_level' method to Logger. + +class Logger + def self.define_around_helper(level) + module_eval <<-end_eval + def around_#{level}(before_message, after_message, &block) + self.#{level}(before_message) + return_value = block.call(self) + self.#{level}(after_message) + return return_value + end + end_eval + end + [:debug, :info, :error, :fatal].each {|level| define_around_helper(level) } + +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module.rb new file mode 100644 index 000000000..da8d5b376 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module.rb @@ -0,0 +1,8 @@ +require 'active_support/core_ext/module/inclusion' +require 'active_support/core_ext/module/attribute_accessors' +require 'active_support/core_ext/module/attr_internal' +require 'active_support/core_ext/module/attr_accessor_with_default' +require 'active_support/core_ext/module/delegation' +require 'active_support/core_ext/module/introspection' +require 'active_support/core_ext/module/loading' +require 'active_support/core_ext/module/aliasing' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/aliasing.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/aliasing.rb new file mode 100644 index 000000000..1894e3b0a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/aliasing.rb @@ -0,0 +1,70 @@ +class Module + # Encapsulates the common pattern of: + # + # alias_method :foo_without_feature, :foo + # alias_method :foo, :foo_with_feature + # + # With this, you simply do: + # + # alias_method_chain :foo, :feature + # + # And both aliases are set up for you. + # + # Query and bang methods (foo?, foo!) keep the same punctuation: + # + # alias_method_chain :foo?, :feature + # + # is equivalent to + # + # alias_method :foo_without_feature?, :foo? + # alias_method :foo?, :foo_with_feature? + # + # so you can safely chain foo, foo?, and foo! with the same feature. + def alias_method_chain(target, feature) + # Strip out punctuation on predicates or bang methods since + # e.g. target?_without_feature is not a valid method name. + aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1 + yield(aliased_target, punctuation) if block_given? + + with_method, without_method = "#{aliased_target}_with_#{feature}#{punctuation}", "#{aliased_target}_without_#{feature}#{punctuation}" + + alias_method without_method, target + alias_method target, with_method + + case + when public_method_defined?(without_method) + public target + when protected_method_defined?(without_method) + protected target + when private_method_defined?(without_method) + private target + end + end + + # Allows you to make aliases for attributes, which includes + # getter, setter, and query methods. + # + # Example: + # + # class Content < ActiveRecord::Base + # # has a title attribute + # end + # + # class Email < Content + # alias_attribute :subject, :title + # end + # + # e = Email.find(1) + # e.title # => "Superstars" + # e.subject # => "Superstars" + # e.subject? # => true + # e.subject = "Megastars" + # e.title # => "Megastars" + def alias_attribute(new_name, old_name) + module_eval <<-STR, __FILE__, __LINE__+1 + def #{new_name}; self.#{old_name}; end + def #{new_name}?; self.#{old_name}?; end + def #{new_name}=(v); self.#{old_name} = v; end + STR + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb new file mode 100644 index 000000000..683789d85 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attr_accessor_with_default.rb @@ -0,0 +1,31 @@ +class Module + # Declare an attribute accessor with an initial default return value. + # + # To give attribute <tt>:age</tt> the initial value <tt>25</tt>: + # + # class Person + # attr_accessor_with_default :age, 25 + # end + # + # some_person.age + # => 25 + # some_person.age = 26 + # some_person.age + # => 26 + # + # To give attribute <tt>:element_name</tt> a dynamic default value, evaluated + # in scope of self: + # + # attr_accessor_with_default(:element_name) { name.underscore } + # + def attr_accessor_with_default(sym, default = nil, &block) + raise 'Default value or block required' unless !default.nil? || block + define_method(sym, block_given? ? block : Proc.new { default }) + module_eval(<<-EVAL, __FILE__, __LINE__) + def #{sym}=(value) + class << self; attr_reader :#{sym} end + @#{sym} = value + end + EVAL + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attr_internal.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attr_internal.rb new file mode 100644 index 000000000..b66c0d750 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attr_internal.rb @@ -0,0 +1,32 @@ +class Module + # Declares an attribute reader backed by an internally-named instance variable. + def attr_internal_reader(*attrs) + attrs.each do |attr| + module_eval "def #{attr}() #{attr_internal_ivar_name(attr)} end" + end + end + + # Declares an attribute writer backed by an internally-named instance variable. + def attr_internal_writer(*attrs) + attrs.each do |attr| + module_eval "def #{attr}=(v) #{attr_internal_ivar_name(attr)} = v end" + end + end + + # Declares an attribute reader and writer backed by an internally-named instance + # variable. + def attr_internal_accessor(*attrs) + attr_internal_reader(*attrs) + attr_internal_writer(*attrs) + end + + alias_method :attr_internal, :attr_internal_accessor + + private + mattr_accessor :attr_internal_naming_format + self.attr_internal_naming_format = '@_%s' + + def attr_internal_ivar_name(attr) + attr_internal_naming_format % attr + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb new file mode 100644 index 000000000..51e1c9af9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/attribute_accessors.rb @@ -0,0 +1,58 @@ +# Extends the module object with module and instance accessors for class attributes, +# just like the native attr* accessors for instance attributes. +# +# module AppConfiguration +# mattr_accessor :google_api_key +# self.google_api_key = "123456789" +# +# mattr_accessor :paypal_url +# self.paypal_url = "www.sandbox.paypal.com" +# end +# +# AppConfiguration.google_api_key = "overriding the api key!" +class Module + def mattr_reader(*syms) + syms.each do |sym| + next if sym.is_a?(Hash) + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym} + @@#{sym} + end + + def #{sym} + @@#{sym} + end + EOS + end + end + + def mattr_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym}=(obj) + @@#{sym} = obj + end + + #{" + def #{sym}=(obj) + @@#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def mattr_accessor(*syms) + mattr_reader(*syms) + mattr_writer(*syms) + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/delegation.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/delegation.rb new file mode 100644 index 000000000..e0b5f3e37 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/delegation.rb @@ -0,0 +1,64 @@ +class Module + # Provides a delegate class method to easily expose contained objects' methods + # as your own. Pass one or more methods (specified as symbols or strings) + # and the name of the target object as the final <tt>:to</tt> option (also a symbol + # or string). At least one method and the <tt>:to</tt> option are required. + # + # Delegation is particularly useful with Active Record associations: + # + # class Greeter < ActiveRecord::Base + # def hello() "hello" end + # def goodbye() "goodbye" end + # end + # + # class Foo < ActiveRecord::Base + # belongs_to :greeter + # delegate :hello, :to => :greeter + # end + # + # Foo.new.hello # => "hello" + # Foo.new.goodbye # => NoMethodError: undefined method `goodbye' for #<Foo:0x1af30c> + # + # Multiple delegates to the same target are allowed: + # + # class Foo < ActiveRecord::Base + # belongs_to :greeter + # delegate :hello, :goodbye, :to => :greeter + # end + # + # Foo.new.goodbye # => "goodbye" + # + # Methods can be delegated to instance variables, class variables, or constants + # by providing them as a symbols: + # + # class Foo + # CONSTANT_ARRAY = [0,1,2,3] + # @@class_array = [4,5,6,7] + # + # def initialize + # @instance_array = [8,9,10,11] + # end + # delegate :sum, :to => :CONSTANT_ARRAY + # delegate :min, :to => :@@class_array + # delegate :max, :to => :@instance_array + # end + # + # Foo.new.sum # => 6 + # Foo.new.min # => 4 + # Foo.new.max # => 11 + # + def delegate(*methods) + options = methods.pop + unless options.is_a?(Hash) && to = options[:to] + raise ArgumentError, "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, :to => :greeter)." + end + + methods.each do |method| + module_eval(<<-EOS, "(__DELEGATION__)", 1) + def #{method}(*args, &block) + #{to}.__send__(#{method.inspect}, *args, &block) + end + EOS + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/inclusion.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/inclusion.rb new file mode 100644 index 000000000..4f2384164 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/inclusion.rb @@ -0,0 +1,30 @@ +class Module + # Returns the classes in the current ObjectSpace where this module has been + # mixed in according to Module#included_modules. + # + # module M + # end + # + # module N + # include M + # end + # + # class C + # include M + # end + # + # class D < C + # end + # + # p M.included_in_classes # => [C, D] + # + def included_in_classes + classes = [] + ObjectSpace.each_object(Class) { |k| classes << k if k.included_modules.include?(self) } + + classes.reverse.inject([]) do |unique_classes, klass| + unique_classes << klass unless unique_classes.collect { |k| k.to_s }.include?(klass.to_s) + unique_classes + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/introspection.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/introspection.rb new file mode 100644 index 000000000..40bbebb7c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/introspection.rb @@ -0,0 +1,75 @@ +class Module + # Returns the module which contains this one according to its name. + # + # module M + # module N + # end + # end + # X = M::N + # + # p M::N.parent # => M + # p X.parent # => M + # + # The parent of top-level and anonymous modules is Object. + # + # p M.parent # => Object + # p Module.new.parent # => Object + # + def parent + parent_name = name.split('::')[0..-2] * '::' + parent_name.empty? ? Object : parent_name.constantize + end + + # Returns all the parents of this module according to its name, ordered from + # nested outwards. The receiver is not contained within the result. + # + # module M + # module N + # end + # end + # X = M::N + # + # p M.parents # => [Object] + # p M::N.parents # => [M, Object] + # p X.parents # => [M, Object] + # + def parents + parents = [] + parts = name.split('::')[0..-2] + until parts.empty? + parents << (parts * '::').constantize + parts.pop + end + parents << Object unless parents.include? Object + parents + end + + if RUBY_VERSION < '1.9' + # Returns the constants that have been defined locally by this object and + # not in an ancestor. This method is exact if running under Ruby 1.9. In + # previous versions it may miss some constants if their definition in some + # ancestor is identical to their definition in the receiver. + def local_constants + inherited = {} + + ancestors.each do |anc| + next if anc == self + anc.constants.each { |const| inherited[const] = anc.const_get(const) } + end + + constants.select do |const| + !inherited.key?(const) || inherited[const].object_id != const_get(const).object_id + end + end + else + def local_constants #:nodoc: + constants(false) + end + end + + # Returns the names of the constants defined locally rather than the + # constants themselves. See <tt>local_constants</tt>. + def local_constant_names + local_constants.map(&:to_s) + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/loading.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/loading.rb new file mode 100644 index 000000000..4b4b110b2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/module/loading.rb @@ -0,0 +1,23 @@ +class Module + # Returns String#underscore applied to the module name minus trailing classes. + # + # ActiveRecord.as_load_path # => "active_record" + # ActiveRecord::Associations.as_load_path # => "active_record/associations" + # ActiveRecord::Base.as_load_path # => "active_record" (Base is a class) + # + # The Kernel module gives an empty string by definition. + # + # Kernel.as_load_path # => "" + # Math.as_load_path # => "math" + def as_load_path + if self == Object || self == Kernel + '' + elsif is_a? Class + parent == self ? '' : parent.as_load_path + else + name.split('::').collect do |word| + word.underscore + end * '/' + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/name_error.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/name_error.rb new file mode 100644 index 000000000..49176c12d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/name_error.rb @@ -0,0 +1,17 @@ +# Add a +missing_name+ method to NameError instances. +class NameError #:nodoc: + # Add a method to obtain the missing name from a NameError. + def missing_name + $1 if /((::)?([A-Z]\w*)(::[A-Z]\w*)*)$/ =~ message + end + + # Was this exception raised because the given name was missing? + def missing_name?(name) + if name.is_a? Symbol + last_name = (missing_name || '').split('::').last + last_name == name.to_s + else + missing_name == name.to_s + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric.rb new file mode 100644 index 000000000..759b86b81 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric.rb @@ -0,0 +1,9 @@ +require 'active_support/core_ext/numeric/time' +require 'active_support/core_ext/numeric/bytes' +require 'active_support/core_ext/numeric/conversions' + +class Numeric #:nodoc: + include ActiveSupport::CoreExtensions::Numeric::Time + include ActiveSupport::CoreExtensions::Numeric::Bytes + include ActiveSupport::CoreExtensions::Numeric::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/bytes.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/bytes.rb new file mode 100644 index 000000000..56477673a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/bytes.rb @@ -0,0 +1,44 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Numeric #:nodoc: + # Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes + module Bytes + def bytes + self + end + alias :byte :bytes + + def kilobytes + self * 1024 + end + alias :kilobyte :kilobytes + + def megabytes + self * 1024.kilobytes + end + alias :megabyte :megabytes + + def gigabytes + self * 1024.megabytes + end + alias :gigabyte :gigabytes + + def terabytes + self * 1024.gigabytes + end + alias :terabyte :terabytes + + def petabytes + self * 1024.terabytes + end + alias :petabyte :petabytes + + def exabytes + self * 1024.petabytes + end + alias :exabyte :exabytes + + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/conversions.rb new file mode 100644 index 000000000..e652ae5ca --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/conversions.rb @@ -0,0 +1,19 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Numeric #:nodoc: + module Conversions + # Assumes self represents an offset from UTC in seconds (as returned from Time#utc_offset) + # and turns this into an +HH:MM formatted string. Example: + # + # -21_600.to_utc_offset_s # => "-06:00" + def to_utc_offset_s(colon=true) + seconds = self + sign = (seconds < 0 ? -1 : 1) + hours = seconds.abs / 3600 + minutes = (seconds.abs % 3600) / 60 + "%+03d%s%02d" % [ hours * sign, colon ? ":" : "", minutes ] + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/time.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/time.rb new file mode 100644 index 000000000..aac698f7a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/numeric/time.rb @@ -0,0 +1,91 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Numeric #:nodoc: + # Enables the use of time calculations and declarations, like 45.minutes + 2.hours + 4.years. + # + # These methods use Time#advance for precise date calculations when using from_now, ago, etc. + # as well as adding or subtracting their results from a Time object. For example: + # + # # equivalent to Time.now.advance(:months => 1) + # 1.month.from_now + # + # # equivalent to Time.now.advance(:years => 2) + # 2.years.from_now + # + # # equivalent to Time.now.advance(:months => 4, :years => 5) + # (4.months + 5.years).from_now + # + # While these methods provide precise calculation when used as in the examples above, care + # should be taken to note that this is not true if the result of `months', `years', etc is + # converted before use: + # + # # equivalent to 30.days.to_i.from_now + # 1.month.to_i.from_now + # + # # equivalent to 365.25.days.to_f.from_now + # 1.year.to_f.from_now + # + # In such cases, Ruby's core + # Date[http://stdlib.rubyonrails.org/libdoc/date/rdoc/index.html] and + # Time[http://stdlib.rubyonrails.org/libdoc/time/rdoc/index.html] should be used for precision + # date and time arithmetic + module Time + def seconds + ActiveSupport::Duration.new(self, [[:seconds, self]]) + end + alias :second :seconds + + def minutes + ActiveSupport::Duration.new(self * 60, [[:seconds, self * 60]]) + end + alias :minute :minutes + + def hours + ActiveSupport::Duration.new(self * 3600, [[:seconds, self * 3600]]) + end + alias :hour :hours + + def days + ActiveSupport::Duration.new(self * 24.hours, [[:days, self]]) + end + alias :day :days + + def weeks + ActiveSupport::Duration.new(self * 7.days, [[:days, self * 7]]) + end + alias :week :weeks + + def fortnights + ActiveSupport::Duration.new(self * 2.weeks, [[:days, self * 14]]) + end + alias :fortnight :fortnights + + def months + ActiveSupport::Duration.new(self * 30.days, [[:months, self]]) + end + alias :month :months + + def years + ActiveSupport::Duration.new(self * 365.25.days, [[:years, self]]) + end + alias :year :years + + # Reads best without arguments: 10.minutes.ago + def ago(time = ::Time.now) + time - self + end + + # Reads best with argument: 10.minutes.until(time) + alias :until :ago + + # Reads best with argument: 10.minutes.since(time) + def since(time = ::Time.now) + time + self + end + + # Reads best without arguments: 10.minutes.from_now + alias :from_now :since + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object.rb new file mode 100644 index 000000000..bbc7d8167 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object.rb @@ -0,0 +1,4 @@ +require 'active_support/core_ext/object/conversions' +require 'active_support/core_ext/object/extending' +require 'active_support/core_ext/object/instance_variables' +require 'active_support/core_ext/object/misc' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/conversions.rb new file mode 100644 index 000000000..ad752f0fc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/conversions.rb @@ -0,0 +1,14 @@ +class Object + # Alias of <tt>to_s</tt>. + def to_param + to_s + end + + # Converts an object into a string suitable for use as a URL query string, using the given <tt>key</tt> as the + # param name. + # + # Note: This method is defined as a default implementation for all Objects for Hash#to_query to work. + def to_query(key) + "#{CGI.escape(key.to_s)}=#{CGI.escape(to_param.to_s)}" + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/extending.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/extending.rb new file mode 100644 index 000000000..43a2be916 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/extending.rb @@ -0,0 +1,58 @@ +class Object + def remove_subclasses_of(*superclasses) #:nodoc: + Class.remove_class(*subclasses_of(*superclasses)) + end + + def subclasses_of(*superclasses) #:nodoc: + subclasses = [] + + # Exclude this class unless it's a subclass of our supers and is defined. + # We check defined? in case we find a removed class that has yet to be + # garbage collected. This also fails for anonymous classes -- please + # submit a patch if you have a workaround. + ObjectSpace.each_object(Class) do |k| + if superclasses.any? { |superclass| k < superclass } && + (k.name.blank? || eval("defined?(::#{k}) && ::#{k}.object_id == k.object_id")) + subclasses << k + end + end + + subclasses + end + + def extended_by #:nodoc: + ancestors = class << self; ancestors end + ancestors.select { |mod| mod.class == Module } - [ Object, Kernel ] + end + + def extend_with_included_modules_from(object) #:nodoc: + object.extended_by.each { |mod| extend mod } + end + + unless defined? instance_exec # 1.9 + module InstanceExecMethods #:nodoc: + end + include InstanceExecMethods + + # Evaluate the block with the given arguments within the context of + # this object, so self is set to the method receiver. + # + # From Mauricio's http://eigenclass.org/hiki/bounded+space+instance_exec + def instance_exec(*args, &block) + begin + old_critical, Thread.critical = Thread.critical, true + n = 0 + n += 1 while respond_to?(method_name = "__instance_exec#{n}") + InstanceExecMethods.module_eval { define_method(method_name, &block) } + ensure + Thread.critical = old_critical + end + + begin + send(method_name, *args) + ensure + InstanceExecMethods.module_eval { remove_method(method_name) } rescue nil + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/instance_variables.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/instance_variables.rb new file mode 100644 index 000000000..9f1d4ed2a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/instance_variables.rb @@ -0,0 +1,74 @@ +class Object + # Available in 1.8.6 and later. + unless respond_to?(:instance_variable_defined?) + def instance_variable_defined?(variable) + instance_variables.include?(variable.to_s) + end + end + + # Returns a hash that maps instance variable names without "@" to their + # corresponding values. Keys are strings both in Ruby 1.8 and 1.9. + # + # class C + # def initialize(x, y) + # @x, @y = x, y + # end + # end + # + # C.new(0, 1).instance_values # => {"x" => 0, "y" => 1} + def instance_values #:nodoc: + instance_variables.inject({}) do |values, name| + values[name.to_s[1..-1]] = instance_variable_get(name) + values + end + end + + # Returns an array of instance variable names including "@". They are strings + # both in Ruby 1.8 and 1.9. + # + # class C + # def initialize(x, y) + # @x, @y = x, y + # end + # end + # + # C.new(0, 1).instance_variable_names # => ["@y", "@x"] + if RUBY_VERSION >= '1.9' + def instance_variable_names + instance_variables.map(&:to_s) + end + else + alias_method :instance_variable_names, :instance_variables + end + + # Copies the instance variables of +object+ into +self+. + # + # Instance variable names in the +exclude+ array are ignored. If +object+ + # responds to <tt>protected_instance_variables</tt> the ones returned are + # also ignored. For example, Rails controllers implement that method. + # + # In both cases strings and symbols are understood, and they have to include + # the at sign. + # + # class C + # def initialize(x, y, z) + # @x, @y, @z = x, y, z + # end + # + # def protected_instance_variables + # %w(@z) + # end + # end + # + # a = C.new(0, 1, 2) + # b = C.new(3, 4, 5) + # + # a.copy_instance_variables_from(b, [:@y]) + # # a is now: @x = 3, @y = 1, @z = 2 + def copy_instance_variables_from(object, exclude = []) #:nodoc: + exclude += object.protected_instance_variables if object.respond_to? :protected_instance_variables + + vars = object.instance_variables.map(&:to_s) - exclude.map(&:to_s) + vars.each { |name| instance_variable_set(name, object.instance_variable_get(name)) } + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/misc.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/misc.rb new file mode 100644 index 000000000..8384a1232 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/object/misc.rb @@ -0,0 +1,59 @@ +class Object + unless respond_to?(:send!) + # Anticipating Ruby 1.9 neutering send + alias send! send + end + + # A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman. + # + # def foo + # returning values = [] do + # values << 'bar' + # values << 'baz' + # end + # end + # + # foo # => ['bar', 'baz'] + # + # def foo + # returning [] do |values| + # values << 'bar' + # values << 'baz' + # end + # end + # + # foo # => ['bar', 'baz'] + # + def returning(value) + yield(value) + value + end + + # An elegant way to refactor out common options + # + # with_options :order => 'created_at', :class_name => 'Comment' do |post| + # post.has_many :comments, :conditions => ['approved = ?', true], :dependent => :delete_all + # post.has_many :unapproved_comments, :conditions => ['approved = ?', false] + # post.has_many :all_comments + # end + # + # Can also be used with an explicit receiver: + # + # map.with_options :controller => "people" do |people| + # people.connect "/people", :action => "index" + # people.connect "/people/:id", :action => "show" + # end + # + def with_options(options) + yield ActiveSupport::OptionMerger.new(self, options) + end + + # A duck-type assistant method. For example, Active Support extends Date + # to define an acts_like_date? method, and extends Time to define + # acts_like_time?. As a result, we can do "x.acts_like?(:time)" and + # "x.acts_like?(:date)" to do duck-type-safe comparisons, since classes that + # we want to act like Time simply need to define an acts_like_time? method. + def acts_like?(duck) + respond_to? "acts_like_#{duck}?" + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/pathname.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/pathname.rb new file mode 100644 index 000000000..4c5318ee6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/pathname.rb @@ -0,0 +1,7 @@ +require 'pathname' +require 'active_support/core_ext/pathname/clean_within' + +class Pathname#:nodoc: + extend ActiveSupport::CoreExtensions::Pathname::CleanWithin +end + diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/pathname/clean_within.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/pathname/clean_within.rb new file mode 100644 index 000000000..ae03e1bc5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/pathname/clean_within.rb @@ -0,0 +1,14 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Pathname #:nodoc: + module CleanWithin + # Clean the paths contained in the provided string. + def clean_within(string) + string.gsub(%r{[\w. ]+(/[\w. ]+)+(\.rb)?(\b|$)}) do |path| + new(path).cleanpath + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/proc.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/proc.rb new file mode 100644 index 000000000..2ca23f62e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/proc.rb @@ -0,0 +1,12 @@ +class Proc #:nodoc: + def bind(object) + block, time = self, Time.now + (class << object; self end).class_eval do + method_name = "__bind_#{time.to_i}_#{time.usec}" + define_method(method_name, &block) + method = instance_method(method_name) + remove_method(method_name) + method + end.bind(object) + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/process.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/process.rb new file mode 100644 index 000000000..0b0bc6dc6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/process.rb @@ -0,0 +1 @@ +require 'active_support/core_ext/process/daemon' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/process/daemon.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/process/daemon.rb new file mode 100644 index 000000000..95ad5f8a5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/process/daemon.rb @@ -0,0 +1,25 @@ +if RUBY_VERSION < "1.9" + module Process + def self.daemon(nochdir = nil, noclose = nil) + exit if fork # Parent exits, child continues. + Process.setsid # Become session leader. + exit if fork # Zap session leader. See [1]. + + unless nochdir + Dir.chdir "/" # Release old working directory. + end + + File.umask 0000 # Ensure sensible umask. Adjust as needed. + + unless noclose + STDIN.reopen "/dev/null" # Free file descriptors and + STDOUT.reopen "/dev/null", "a" # point them somewhere sensible. + STDERR.reopen '/dev/null', 'a' + end + + trap("TERM") { exit } + + return 0 + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range.rb new file mode 100644 index 000000000..0d2b169e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range.rb @@ -0,0 +1,11 @@ +require 'active_support/core_ext/range/conversions' +require 'active_support/core_ext/range/overlaps' +require 'active_support/core_ext/range/include_range' +require 'active_support/core_ext/range/blockless_step' + +class Range #:nodoc: + include ActiveSupport::CoreExtensions::Range::Conversions + include ActiveSupport::CoreExtensions::Range::Overlaps + include ActiveSupport::CoreExtensions::Range::IncludeRange + include ActiveSupport::CoreExtensions::Range::BlocklessStep +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/blockless_step.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/blockless_step.rb new file mode 100644 index 000000000..39dac8563 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/blockless_step.rb @@ -0,0 +1,32 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Return an array when step is called without a block. + module BlocklessStep + def self.included(base) #:nodoc: + base.alias_method_chain :step, :blockless + end + + if RUBY_VERSION < '1.9' + def step_with_blockless(value, &block) + if block_given? + step_without_blockless(value, &block) + else + returning [] do |array| + step_without_blockless(value) { |step| array << step } + end + end + end + else + def step_with_blockless(value, &block) + if block_given? + step_without_blockless(value, &block) + else + step_without_blockless(value).to_a + end + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/conversions.rb new file mode 100644 index 000000000..932bdedad --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/conversions.rb @@ -0,0 +1,27 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Getting ranges in different convenient string representations and other objects + module Conversions + RANGE_FORMATS = { + :db => Proc.new { |start, stop| "BETWEEN '#{start.to_s(:db)}' AND '#{stop.to_s(:db)}'" } + } + + def self.included(base) #:nodoc: + base.class_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + # Gives a human readable format of the range. + # + # ==== Example: + # + # [1..100].to_formatted_s # => "1..100" + def to_formatted_s(format = :default) + RANGE_FORMATS[format] ? RANGE_FORMATS[format].call(first, last) : to_default_s + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/include_range.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/include_range.rb new file mode 100644 index 000000000..9a7d23569 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/include_range.rb @@ -0,0 +1,30 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Check if a Range includes another Range. + module IncludeRange + def self.included(base) #:nodoc: + base.alias_method_chain :include?, :range + end + + # Extends the default Range#include? to support range comparisons. + # (1..5).include?(1..5) # => true + # (1..5).include?(2..3) # => true + # (1..5).include?(2..6) # => false + # + # The native Range#include? behavior is untouched. + # ("a".."f").include?("c") # => true + # (5..9).include?(11) # => false + def include_with_range?(value) + if value.is_a?(::Range) + operator = exclude_end? ? :< : :<= + end_value = value.exclude_end? ? last.succ : last + include?(value.first) && (value.last <=> end_value).send(operator, 0) + else + include_without_range?(value) + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/overlaps.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/overlaps.rb new file mode 100644 index 000000000..43c69453e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/range/overlaps.rb @@ -0,0 +1,15 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Check if Ranges overlap. + module Overlaps + # Compare two ranges and see if they overlap eachother + # (1..5).overlaps?(4..6) # => true + # (1..5).overlaps?(7..9) # => false + def overlaps?(other) + include?(other.first) || other.include?(first) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string.rb new file mode 100644 index 000000000..25386af70 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string.rb @@ -0,0 +1,18 @@ +require 'active_support/core_ext/string/inflections' +require 'active_support/core_ext/string/conversions' +require 'active_support/core_ext/string/access' +require 'active_support/core_ext/string/starts_ends_with' +require 'active_support/core_ext/string/iterators' +require 'active_support/core_ext/string/unicode' +require 'active_support/core_ext/string/xchar' +require 'active_support/core_ext/string/filters' + +class String #:nodoc: + include ActiveSupport::CoreExtensions::String::Access + include ActiveSupport::CoreExtensions::String::Conversions + include ActiveSupport::CoreExtensions::String::Filters + include ActiveSupport::CoreExtensions::String::Inflections + include ActiveSupport::CoreExtensions::String::StartsEndsWith + include ActiveSupport::CoreExtensions::String::Iterators + include ActiveSupport::CoreExtensions::String::Unicode +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/access.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/access.rb new file mode 100644 index 000000000..1a949c0b7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/access.rb @@ -0,0 +1,82 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + unless '1.9'.respond_to?(:force_encoding) + # Makes it easier to access parts of a string, such as specific characters and substrings. + module Access + # Returns the character at the +position+ treating the string as an array (where 0 is the first character). + # + # Examples: + # "hello".at(0) # => "h" + # "hello".at(4) # => "o" + # "hello".at(10) # => nil + def at(position) + chars[position, 1].to_s + end + + # Returns the remaining of the string from the +position+ treating the string as an array (where 0 is the first character). + # + # Examples: + # "hello".from(0) # => "hello" + # "hello".from(2) # => "llo" + # "hello".from(10) # => nil + def from(position) + chars[position..-1].to_s + end + + # Returns the beginning of the string up to the +position+ treating the string as an array (where 0 is the first character). + # + # Examples: + # "hello".to(0) # => "h" + # "hello".to(2) # => "hel" + # "hello".to(10) # => "hello" + def to(position) + chars[0..position].to_s + end + + # Returns the first character of the string or the first +limit+ characters. + # + # Examples: + # "hello".first # => "h" + # "hello".first(2) # => "he" + # "hello".first(10) # => "hello" + def first(limit = 1) + chars[0..(limit - 1)].to_s + end + + # Returns the last character of the string or the last +limit+ characters. + # + # Examples: + # "hello".last # => "o" + # "hello".last(2) # => "lo" + # "hello".last(10) # => "hello" + def last(limit = 1) + (chars[(-limit)..-1] || self).to_s + end + end + else + module Access #:nodoc: + def at(position) + self[position] + end + + def from(position) + self[position..-1] + end + + def to(position) + self[0..position] + end + + def first(limit = 1) + self[0..(limit - 1)] + end + + def last(limit = 1) + from(-limit) || self + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/conversions.rb new file mode 100644 index 000000000..d4334dcef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/conversions.rb @@ -0,0 +1,28 @@ +require 'date' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # Converting strings to other objects + module Conversions + # 'a'.ord == 'a'[0] for Ruby 1.9 forward compatibility. + def ord + self[0] + end if RUBY_VERSION < '1.9' + + # Form can be either :utc (default) or :local. + def to_time(form = :utc) + ::Time.send("#{form}_time", *::Date._parse(self, false).values_at(:year, :mon, :mday, :hour, :min, :sec).map { |arg| arg || 0 }) + end + + def to_date + ::Date.new(*::Date._parse(self, false).values_at(:year, :mon, :mday)) + end + + def to_datetime + ::DateTime.civil(*::Date._parse(self, false).values_at(:year, :mon, :mday, :hour, :min, :sec).map { |arg| arg || 0 }) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/filters.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/filters.rb new file mode 100644 index 000000000..0329fbb8d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/filters.rb @@ -0,0 +1,26 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + module Filters + # Returns the string, first removing all whitespace on both ends of + # the string, and then changing remaining consecutive whitespace + # groups into one space each. + # + # Examples: + # %{ Multi-line + # string }.squish # => "Multi-line string" + # " foo bar \n \t boo".squish # => "foo bar boo" + def squish + dup.squish! + end + + # Performs a destructive squish. See String#squish. + def squish! + strip! + gsub!(/\s+/, ' ') + self + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/inflections.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/inflections.rb new file mode 100644 index 000000000..a009d7c08 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/inflections.rb @@ -0,0 +1,148 @@ +require 'active_support/inflector' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # String inflections define new methods on the String class to transform names for different purposes. + # For instance, you can figure out the name of a database from the name of a class. + # + # "ScaleScore".tableize # => "scale_scores" + module Inflections + # Returns the plural form of the word in the string. + # + # "post".pluralize # => "posts" + # "octopus".pluralize # => "octopi" + # "sheep".pluralize # => "sheep" + # "words".pluralize # => "words" + # "the blue mailman".pluralize # => "the blue mailmen" + # "CamelOctopus".pluralize # => "CamelOctopi" + def pluralize + Inflector.pluralize(self) + end + + # The reverse of +pluralize+, returns the singular form of a word in a string. + # + # "posts".singularize # => "post" + # "octopi".singularize # => "octopus" + # "sheep".singluarize # => "sheep" + # "word".singluarize # => "word" + # "the blue mailmen".singularize # => "the blue mailman" + # "CamelOctopi".singularize # => "CamelOctopus" + def singularize + Inflector.singularize(self) + end + + # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize + # is set to <tt>:lower</tt> then camelize produces lowerCamelCase. + # + # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces. + # + # "active_record".camelize # => "ActiveRecord" + # "active_record".camelize(:lower) # => "activeRecord" + # "active_record/errors".camelize # => "ActiveRecord::Errors" + # "active_record/errors".camelize(:lower) # => "activeRecord::Errors" + def camelize(first_letter = :upper) + case first_letter + when :upper then Inflector.camelize(self, true) + when :lower then Inflector.camelize(self, false) + end + end + alias_method :camelcase, :camelize + + # Capitalizes all the words and replaces some characters in the string to create + # a nicer looking title. +titleize+ is meant for creating pretty output. It is not + # used in the Rails internals. + # + # +titleize+ is also aliased as +titlecase+. + # + # "man from the boondocks".titleize # => "Man From The Boondocks" + # "x-men: the last stand".titleize # => "X Men: The Last Stand" + def titleize + Inflector.titleize(self) + end + alias_method :titlecase, :titleize + + # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string. + # + # +underscore+ will also change '::' to '/' to convert namespaces to paths. + # + # "ActiveRecord".underscore # => "active_record" + # "ActiveRecord::Errors".underscore # => active_record/errors + def underscore + Inflector.underscore(self) + end + + # Replaces underscores with dashes in the string. + # + # "puni_puni" # => "puni-puni" + def dasherize + Inflector.dasherize(self) + end + + # Removes the module part from the constant expression in the string. + # + # "ActiveRecord::CoreExtensions::String::Inflections".demodulize # => "Inflections" + # "Inflections".demodulize # => "Inflections" + def demodulize + Inflector.demodulize(self) + end + + # Creates the name of a table like Rails does for models to table names. This method + # uses the +pluralize+ method on the last word in the string. + # + # "RawScaledScorer".tableize # => "raw_scaled_scorers" + # "egg_and_ham".tableize # => "egg_and_hams" + # "fancyCategory".tableize # => "fancy_categories" + def tableize + Inflector.tableize(self) + end + + # Create a class name from a plural table name like Rails does for table names to models. + # Note that this returns a string and not a class. (To convert to an actual class + # follow +classify+ with +constantize+.) + # + # "egg_and_hams".classify # => "EggAndHam" + # "posts".classify # => "Post" + # + # Singular names are not handled correctly. + # + # "business".classify # => "Busines" + def classify + Inflector.classify(self) + end + + # Capitalizes the first word, turns underscores into spaces, and strips '_id'. + # Like +titleize+, this is meant for creating pretty output. + # + # "employee_salary" # => "Employee salary" + # "author_id" # => "Author" + def humanize + Inflector.humanize(self) + end + + # Creates a foreign key name from a class name. + # +separate_class_name_and_id_with_underscore+ sets whether + # the method should put '_' between the name and 'id'. + # + # Examples + # "Message".foreign_key # => "message_id" + # "Message".foreign_key(false) # => "messageid" + # "Admin::Post".foreign_key # => "post_id" + def foreign_key(separate_class_name_and_id_with_underscore = true) + Inflector.foreign_key(self, separate_class_name_and_id_with_underscore) + end + + # +constantize+ tries to find a declared constant with the name specified + # in the string. It raises a NameError when the name is not in CamelCase + # or is not initialized. + # + # Examples + # "Module".constantize # => Module + # "Class".constantize # => Class + def constantize + Inflector.constantize(self) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/iterators.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/iterators.rb new file mode 100644 index 000000000..66a08a5cd --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/iterators.rb @@ -0,0 +1,21 @@ +require 'strscan' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # Custom string iterators + module Iterators + def self.append_features(base) + super unless '1.9'.respond_to?(:each_char) + end + + # Yields a single-character string for each character in the string. + # When $KCODE = 'UTF8', multi-byte characters are yielded appropriately. + def each_char + scanner, char = StringScanner.new(self), /./mu + loop { yield(scanner.scan(char) || break) } + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb new file mode 100644 index 000000000..09f9a188b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/starts_ends_with.rb @@ -0,0 +1,35 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # Additional string tests. + module StartsEndsWith + def self.append_features(base) + if '1.8.7 and up'.respond_to?(:start_with?) + base.class_eval do + alias_method :starts_with?, :start_with? + alias_method :ends_with?, :end_with? + end + else + super + base.class_eval do + alias_method :start_with?, :starts_with? + alias_method :end_with?, :ends_with? + end + end + end + + # Does the string start with the specified +prefix+? + def starts_with?(prefix) + prefix = prefix.to_s + self[0, prefix.length] == prefix + end + + # Does the string end with the specified +suffix+? + def ends_with?(suffix) + suffix = suffix.to_s + self[-suffix.length, suffix.length] == suffix + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/unicode.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/unicode.rb new file mode 100644 index 000000000..5e20534d1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/unicode.rb @@ -0,0 +1,68 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + unless '1.9'.respond_to?(:force_encoding) + # Define methods for handling unicode data. + module Unicode + def self.append_features(base) + if '1.8.7'.respond_to?(:chars) + base.class_eval { remove_method :chars } + end + super + end + + # +chars+ is a Unicode safe proxy for string methods. It creates and returns an instance of the + # ActiveSupport::Multibyte::Chars class which encapsulates the original string. A Unicode safe version of all + # the String methods are defined on this proxy class. Undefined methods are forwarded to String, so all of the + # string overrides can also be called through the +chars+ proxy. + # + # name = 'Claus Müller' + # name.reverse # => "rell??M sualC" + # name.length # => 13 + # + # name.chars.reverse.to_s # => "rellüM sualC" + # name.chars.length # => 12 + # + # + # All the methods on the chars proxy which normally return a string will return a Chars object. This allows + # method chaining on the result of any of these methods. + # + # name.chars.reverse.length # => 12 + # + # The Char object tries to be as interchangeable with String objects as possible: sorting and comparing between + # String and Char work like expected. The bang! methods change the internal string representation in the Chars + # object. Interoperability problems can be resolved easily with a +to_s+ call. + # + # For more information about the methods defined on the Chars proxy see ActiveSupport::Multibyte::Chars and + # ActiveSupport::Multibyte::Handlers::UTF8Handler. + def chars + ActiveSupport::Multibyte::Chars.new(self) + end + + # Returns true if the string has UTF-8 semantics (a String used for purely byte resources is unlikely to have + # them), returns false otherwise. + def is_utf8? + ActiveSupport::Multibyte::Handlers::UTF8Handler.consumes?(self) + end + end + else + module Unicode #:nodoc: + def chars + self + end + + def is_utf8? + case encoding + when Encoding::UTF_8 + valid_encoding? + when Encoding::ASCII_8BIT + dup.force_encoding('UTF-8').valid_encoding? + else + false + end + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/xchar.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/xchar.rb new file mode 100644 index 000000000..df186e42d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/string/xchar.rb @@ -0,0 +1,11 @@ +begin + # See http://bogomips.org/fast_xs/ by Eric Wong + require 'fast_xs' + + class String + alias_method :original_xs, :to_xs if method_defined?(:to_xs) + alias_method :to_xs, :fast_xs + end +rescue LoadError + # fast_xs extension unavailable. +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/symbol.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/symbol.rb new file mode 100644 index 000000000..e4ac44380 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/symbol.rb @@ -0,0 +1,14 @@ +unless :to_proc.respond_to?(:to_proc) + class Symbol + # Turns the symbol into a simple proc, which is especially useful for enumerations. Examples: + # + # # The same as people.collect { |p| p.name } + # people.collect(&:name) + # + # # The same as people.select { |p| p.manager? }.collect { |p| p.salary } + # people.select(&:manager?).collect(&:salary) + def to_proc + Proc.new { |*args| args.shift.__send__(self, *args) } + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/test.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/test.rb new file mode 100644 index 000000000..c0b19bdc5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/test.rb @@ -0,0 +1 @@ +require 'active_support/core_ext/test/unit/assertions' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/test/unit/assertions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/test/unit/assertions.rb new file mode 100644 index 000000000..77fe325fb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/test/unit/assertions.rb @@ -0,0 +1,64 @@ +module Test + module Unit + #-- + # FIXME: no Proc#binding in Ruby 2, must change this API + #++ + module Assertions + # Test numeric difference between the return value of an expression as a result of what is evaluated + # in the yielded block. + # + # assert_difference 'Article.count' do + # post :create, :article => {...} + # end + # + # An arbitrary expression is passed in and evaluated. + # + # assert_difference 'assigns(:article).comments(:reload).size' do + # post :create, :comment => {...} + # end + # + # An arbitrary positive or negative difference can be specified. The default is +1. + # + # assert_difference 'Article.count', -1 do + # post :delete, :id => ... + # end + # + # An array of expressions can also be passed in and evaluated. + # + # assert_difference [ 'Article.count', 'Post.count' ], +2 do + # post :create, :article => {...} + # end + # + # A error message can be specified. + # + # assert_difference 'Article.count', -1, "An Article should be destroyed" do + # post :delete, :id => ... + # end + def assert_difference(expressions, difference = 1, message = nil, &block) + expression_evaluations = Array(expressions).collect{ |expression| lambda { eval(expression, block.send!(:binding)) } } + + original_values = expression_evaluations.inject([]) { |memo, expression| memo << expression.call } + yield + expression_evaluations.each_with_index do |expression, i| + assert_equal original_values[i] + difference, expression.call, message + end + end + + # Assertion that the numeric result of evaluating an expression is not changed before and after + # invoking the passed in block. + # + # assert_no_difference 'Article.count' do + # post :create, :article => invalid_attributes + # end + # + # A error message can be specified. + # + # assert_no_difference 'Article.count', "An Article should not be destroyed" do + # post :create, :article => invalid_attributes + # end + def assert_no_difference(expressions, message = nil, &block) + assert_difference expressions, 0, message, &block + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time.rb new file mode 100644 index 000000000..ea50511a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time.rb @@ -0,0 +1,21 @@ +require 'date' +require 'time' + +# Ruby 1.8-cvs and 1.9 define private Time#to_date +class Time + %w(to_date to_datetime).each do |method| + public method if private_instance_methods.include?(method) + end +end + +require 'active_support/core_ext/time/behavior' +require 'active_support/core_ext/time/calculations' +require 'active_support/core_ext/time/conversions' +require 'active_support/core_ext/time/zones' + +class Time#:nodoc: + include ActiveSupport::CoreExtensions::Time::Behavior + include ActiveSupport::CoreExtensions::Time::Calculations + include ActiveSupport::CoreExtensions::Time::Conversions + include ActiveSupport::CoreExtensions::Time::Zones +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/behavior.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/behavior.rb new file mode 100644 index 000000000..a5c0baacd --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/behavior.rb @@ -0,0 +1,13 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + module Behavior + # Enable more predictable duck-typing on Time-like classes. See + # Object#acts_like?. + def acts_like_time? + true + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/calculations.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/calculations.rb new file mode 100644 index 000000000..2cce78267 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/calculations.rb @@ -0,0 +1,276 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + # Enables the use of time calculations within Time itself + module Calculations + def self.included(base) #:nodoc: + base.extend ClassMethods + + base.class_eval do + alias_method :plus_without_duration, :+ + alias_method :+, :plus_with_duration + + alias_method :minus_without_duration, :- + alias_method :-, :minus_with_duration + + alias_method :minus_without_coercion, :- + alias_method :-, :minus_with_coercion + + alias_method :compare_without_coercion, :<=> + alias_method :<=>, :compare_with_coercion + end + end + + COMMON_YEAR_DAYS_IN_MONTH = [nil, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + + module ClassMethods + # Overriding case equality method so that it returns true for ActiveSupport::TimeWithZone instances + def ===(other) + other.is_a?(::Time) + end + + # Return the number of days in the given month. + # If no year is specified, it will use the current year. + def days_in_month(month, year = now.year) + return 29 if month == 2 && ::Date.gregorian_leap?(year) + COMMON_YEAR_DAYS_IN_MONTH[month] + end + + # Returns a new Time if requested year can be accommodated by Ruby's Time class + # (i.e., if year is within either 1970..2038 or 1902..2038, depending on system architecture); + # otherwise returns a DateTime + def time_with_datetime_fallback(utc_or_local, year, month=1, day=1, hour=0, min=0, sec=0, usec=0) + ::Time.send(utc_or_local, year, month, day, hour, min, sec, usec) + rescue + offset = utc_or_local.to_sym == :local ? ::DateTime.local_offset : 0 + ::DateTime.civil(year, month, day, hour, min, sec, offset) + end + + # Wraps class method +time_with_datetime_fallback+ with +utc_or_local+ set to <tt>:utc</tt>. + def utc_time(*args) + time_with_datetime_fallback(:utc, *args) + end + + # Wraps class method +time_with_datetime_fallback+ with +utc_or_local+ set to <tt>:local</tt>. + def local_time(*args) + time_with_datetime_fallback(:local, *args) + end + end + + # Seconds since midnight: Time.now.seconds_since_midnight + def seconds_since_midnight + self.to_i - self.change(:hour => 0).to_i + (self.usec/1.0e+6) + end + + # Returns a new Time where one or more of the elements have been changed according to the +options+ parameter. The time options + # (hour, minute, sec, usec) reset cascadingly, so if only the hour is passed, then minute, sec, and usec is set to 0. If the hour and + # minute is passed, then sec and usec is set to 0. + def change(options) + ::Time.send( + self.utc? ? :utc_time : :local_time, + options[:year] || self.year, + options[:month] || self.month, + options[:day] || self.day, + options[:hour] || self.hour, + options[:min] || (options[:hour] ? 0 : self.min), + options[:sec] || ((options[:hour] || options[:min]) ? 0 : self.sec), + options[:usec] || ((options[:hour] || options[:min] || options[:sec]) ? 0 : self.usec) + ) + end + + # Uses Date to provide precise Time calculations for years, months, and days. + # The +options+ parameter takes a hash with any of these keys: <tt>:years</tt>, + # <tt>:months</tt>, <tt>:weeks</tt>, <tt>:days</tt>, <tt>:hours</tt>, + # <tt>:minutes</tt>, <tt>:seconds</tt>. + def advance(options) + d = to_date.advance(options) + time_advanced_by_date = change(:year => d.year, :month => d.month, :day => d.day) + seconds_to_advance = (options[:seconds] || 0) + (options[:minutes] || 0) * 60 + (options[:hours] || 0) * 3600 + seconds_to_advance == 0 ? time_advanced_by_date : time_advanced_by_date.since(seconds_to_advance) + end + + # Returns a new Time representing the time a number of seconds ago, this is basically a wrapper around the Numeric extension + def ago(seconds) + self.since(-seconds) + end + + # Returns a new Time representing the time a number of seconds since the instance time, this is basically a wrapper around + # the Numeric extension. + def since(seconds) + f = seconds.since(self) + if ActiveSupport::Duration === seconds + f + else + initial_dst = self.dst? ? 1 : 0 + final_dst = f.dst? ? 1 : 0 + (seconds.abs >= 86400 && initial_dst != final_dst) ? f + (initial_dst - final_dst).hours : f + end + rescue + self.to_datetime.since(seconds) + end + alias :in :since + + # Returns a new Time representing the time a number of specified months ago + def months_ago(months) + advance(:months => -months) + end + + # Returns a new Time representing the time a number of specified months in the future + def months_since(months) + advance(:months => months) + end + + # Returns a new Time representing the time a number of specified years ago + def years_ago(years) + advance(:years => -years) + end + + # Returns a new Time representing the time a number of specified years in the future + def years_since(years) + advance(:years => years) + end + + # Short-hand for years_ago(1) + def last_year + years_ago(1) + end + + # Short-hand for years_since(1) + def next_year + years_since(1) + end + + + # Short-hand for months_ago(1) + def last_month + months_ago(1) + end + + # Short-hand for months_since(1) + def next_month + months_since(1) + end + + # Returns a new Time representing the "start" of this week (Monday, 0:00) + def beginning_of_week + days_to_monday = self.wday!=0 ? self.wday-1 : 6 + (self - days_to_monday.days).midnight + end + alias :monday :beginning_of_week + alias :at_beginning_of_week :beginning_of_week + + # Returns a new Time representing the end of this week (Sunday, 23:59:59) + def end_of_week + days_to_sunday = self.wday!=0 ? 7-self.wday : 0 + (self + days_to_sunday.days).end_of_day + end + alias :at_end_of_week :end_of_week + + # Returns a new Time representing the start of the given day in next week (default is Monday). + def next_week(day = :monday) + days_into_week = { :monday => 0, :tuesday => 1, :wednesday => 2, :thursday => 3, :friday => 4, :saturday => 5, :sunday => 6} + since(1.week).beginning_of_week.since(days_into_week[day].day).change(:hour => 0) + end + + # Returns a new Time representing the start of the day (0:00) + def beginning_of_day + (self - self.seconds_since_midnight).change(:usec => 0) + end + alias :midnight :beginning_of_day + alias :at_midnight :beginning_of_day + alias :at_beginning_of_day :beginning_of_day + + # Returns a new Time representing the end of the day (23:59:59) + def end_of_day + change(:hour => 23, :min => 59, :sec => 59) + end + + # Returns a new Time representing the start of the month (1st of the month, 0:00) + def beginning_of_month + #self - ((self.mday-1).days + self.seconds_since_midnight) + change(:day => 1,:hour => 0, :min => 0, :sec => 0, :usec => 0) + end + alias :at_beginning_of_month :beginning_of_month + + # Returns a new Time representing the end of the month (last day of the month, 0:00) + def end_of_month + #self - ((self.mday-1).days + self.seconds_since_midnight) + last_day = ::Time.days_in_month( self.month, self.year ) + change(:day => last_day, :hour => 23, :min => 59, :sec => 59, :usec => 0) + end + alias :at_end_of_month :end_of_month + + # Returns a new Time representing the start of the quarter (1st of january, april, july, october, 0:00) + def beginning_of_quarter + beginning_of_month.change(:month => [10, 7, 4, 1].detect { |m| m <= self.month }) + end + alias :at_beginning_of_quarter :beginning_of_quarter + + # Returns a new Time representing the end of the quarter (last day of march, june, september, december, 23:59:59) + def end_of_quarter + change(:month => [3, 6, 9, 12].detect { |m| m >= self.month }).end_of_month + end + alias :at_end_of_quarter :end_of_quarter + + # Returns a new Time representing the start of the year (1st of january, 0:00) + def beginning_of_year + change(:month => 1,:day => 1,:hour => 0, :min => 0, :sec => 0, :usec => 0) + end + alias :at_beginning_of_year :beginning_of_year + + # Returns a new Time representing the end of the year (31st of december, 23:59:59) + def end_of_year + change(:month => 12,:day => 31,:hour => 23, :min => 59, :sec => 59) + end + alias :at_end_of_year :end_of_year + + # Convenience method which returns a new Time representing the time 1 day ago + def yesterday + advance(:days => -1) + end + + # Convenience method which returns a new Time representing the time 1 day since the instance time + def tomorrow + advance(:days => 1) + end + + def plus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + other.since(self) + else + plus_without_duration(other) + end + end + + def minus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + other.until(self) + else + minus_without_duration(other) + end + end + + # Time#- can also be used to determine the number of seconds between two Time instances. + # We're layering on additional behavior so that ActiveSupport::TimeWithZone instances + # are coerced into values that Time#- will recognize + def minus_with_coercion(other) + other = other.comparable_time if other.respond_to?(:comparable_time) + minus_without_coercion(other) + end + + # Layers additional behavior on Time#<=> so that DateTime and ActiveSupport::TimeWithZone instances + # can be chronologically compared with a Time + def compare_with_coercion(other) + # if other is an ActiveSupport::TimeWithZone, coerce a Time instance from it so we can do <=> comparision + other = other.comparable_time if other.respond_to?(:comparable_time) + if other.acts_like?(:date) + # other is a Date/DateTime, so coerce self #to_datetime and hand off to DateTime#<=> + to_datetime.compare_without_coercion(other) + else + compare_without_coercion(other) + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/conversions.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/conversions.rb new file mode 100644 index 000000000..905400830 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/conversions.rb @@ -0,0 +1,89 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + # Converting times to formatted strings, dates, and datetimes. + module Conversions + DATE_FORMATS = { + :db => "%Y-%m-%d %H:%M:%S", + :number => "%Y%m%d%H%M%S", + :time => "%H:%M", + :short => "%d %b %H:%M", + :long => "%B %d, %Y %H:%M", + :long_ordinal => lambda { |time| time.strftime("%B #{time.day.ordinalize}, %Y %H:%M") }, + :rfc822 => "%a, %d %b %Y %H:%M:%S %z" + } + + def self.included(base) #:nodoc: + base.class_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + + # Converts to a formatted string. See DATE_FORMATS for builtin formats. + # + # This method is aliased to <tt>to_s</tt>. + # + # time = Time.now # => Thu Jan 18 06:10:17 CST 2007 + # + # time.to_formatted_s(:time) # => "06:10:17" + # time.to_s(:time) # => "06:10:17" + # + # time.to_formatted_s(:db) # => "2007-01-18 06:10:17" + # time.to_formatted_s(:short) # => "18 Jan 06:10" + # time.to_formatted_s(:long) # => "January 18, 2007 06:10" + # time.to_formatted_s(:long_ordinal) # => "January 18th, 2007 06:10" + # time.to_formatted_s(:rfc822) # => "Thu, 18 Jan 2007 06:10:17 -0600" + # + # == Adding your own time formats to +to_formatted_s+ + # You can add your own formats to the Time::DATE_FORMATS hash. + # Use the format name as the hash key and either a strftime string + # or Proc instance that takes a time argument as the value. + # + # # config/initializers/time_formats.rb + # Time::DATE_FORMATS[:month_and_year] = "%B %Y" + # Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } + def to_formatted_s(format = :default) + return to_default_s unless formatter = DATE_FORMATS[format] + formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter) + end + + # Returns the UTC offset as an +HH:MM formatted string. + # + # Time.local(2000).formatted_offset # => "-06:00" + # Time.local(2000).formatted_offset(false) # => "-0600" + def formatted_offset(colon = true, alternate_utc_string = nil) + utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Converts a Time object to a Date, dropping hour, minute, and second precision. + # + # my_time = Time.now # => Mon Nov 12 22:59:51 -0500 2007 + # my_time.to_date # => Mon, 12 Nov 2007 + # + # your_time = Time.parse("1/13/2009 1:13:03 P.M.") # => Tue Jan 13 13:13:03 -0500 2009 + # your_time.to_date # => Tue, 13 Jan 2009 + def to_date + ::Date.new(year, month, day) + end + + # A method to keep Time, Date and DateTime instances interchangeable on conversions. + # In this case, it simply returns +self+. + def to_time + self + end + + # Converts a Time instance to a Ruby DateTime instance, preserving UTC offset. + # + # my_time = Time.now # => Mon Nov 12 23:04:21 -0500 2007 + # my_time.to_datetime # => Mon, 12 Nov 2007 23:04:21 -0500 + # + # your_time = Time.parse("1/13/2009 1:13:03 P.M.") # => Tue Jan 13 13:13:03 -0500 2009 + # your_time.to_datetime # => Tue, 13 Jan 2009 13:13:03 -0500 + def to_datetime + ::DateTime.civil(year, month, day, hour, min, sec, Rational(utc_offset, 86400)) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/zones.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/zones.rb new file mode 100644 index 000000000..079ecdd48 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/core_ext/time/zones.rb @@ -0,0 +1,86 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + module Zones + def self.included(base) #:nodoc: + base.extend(ClassMethods) if base == ::Time # i.e., don't include class methods in DateTime + end + + module ClassMethods + attr_accessor :zone_default + + # Returns the TimeZone for the current request, if this has been set (via Time.zone=). + # If <tt>Time.zone</tt> has not been set for the current request, returns the TimeZone specified in <tt>config.time_zone</tt>. + def zone + Thread.current[:time_zone] || zone_default + end + + # Sets <tt>Time.zone</tt> to a TimeZone object for the current request/thread. + # + # This method accepts any of the following: + # + # * A Rails TimeZone object. + # * An identifier for a Rails TimeZone object (e.g., "Eastern Time (US & Canada)", <tt>-5.hours</tt>). + # * A TZInfo::Timezone object. + # * An identifier for a TZInfo::Timezone object (e.g., "America/New_York"). + # + # Here's an example of how you might set <tt>Time.zone</tt> on a per request basis -- <tt>current_user.time_zone</tt> + # just needs to return a string identifying the user's preferred TimeZone: + # + # class ApplicationController < ActionController::Base + # before_filter :set_time_zone + # + # def set_time_zone + # Time.zone = current_user.time_zone + # end + # end + def zone=(time_zone) + Thread.current[:time_zone] = get_zone(time_zone) + end + + # Allows override of <tt>Time.zone</tt> locally inside supplied block; resets <tt>Time.zone</tt> to existing value when done. + def use_zone(time_zone) + old_zone, ::Time.zone = ::Time.zone, get_zone(time_zone) + yield + ensure + ::Time.zone = old_zone + end + + # Returns <tt>Time.zone.now</tt> when <tt>config.time_zone</tt> is set, otherwise just returns <tt>Time.now</tt>. + def current + ::Time.zone_default ? ::Time.zone.now : ::Time.now + end + + private + def get_zone(time_zone) + return time_zone if time_zone.nil? || time_zone.is_a?(TimeZone) + # lookup timezone based on identifier (unless we've been passed a TZInfo::Timezone) + unless time_zone.respond_to?(:period_for_local) + time_zone = TimeZone[time_zone] || TZInfo::Timezone.get(time_zone) rescue nil + end + # Return if a TimeZone instance, or wrap in a TimeZone instance if a TZInfo::Timezone + if time_zone + time_zone.is_a?(TimeZone) ? time_zone : TimeZone.create(time_zone.name, nil, time_zone) + end + end + end + + # Returns the simultaneous time in <tt>Time.zone</tt>. + # + # Time.zone = 'Hawaii' # => 'Hawaii' + # Time.utc(2000).in_time_zone # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + # + # This method is similar to Time#localtime, except that it uses <tt>Time.zone</tt> as the local zone + # instead of the operating system's time zone. + # + # You can also pass in a TimeZone instance or string that identifies a TimeZone as an argument, + # and the conversion will be based on that zone instead of <tt>Time.zone</tt>. + # + # Time.utc(2000).in_time_zone('Alaska') # => Fri, 31 Dec 1999 15:00:00 AKST -09:00 + def in_time_zone(zone = ::Time.zone) + ActiveSupport::TimeWithZone.new(utc? ? self : getutc, ::Time.send!(:get_zone, zone)) + end + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/dependencies.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/dependencies.rb new file mode 100644 index 000000000..da2ece610 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/dependencies.rb @@ -0,0 +1,552 @@ +require 'set' +require 'active_support/core_ext/module/attribute_accessors' +require 'active_support/core_ext/load_error' +require 'active_support/core_ext/kernel' + +module Dependencies #:nodoc: + extend self + + # Should we turn on Ruby warnings on the first load of dependent files? + mattr_accessor :warnings_on_first_load + self.warnings_on_first_load = false + + # All files ever loaded. + mattr_accessor :history + self.history = Set.new + + # All files currently loaded. + mattr_accessor :loaded + self.loaded = Set.new + + # Should we load files or require them? + mattr_accessor :mechanism + self.mechanism = :load + + # The set of directories from which we may automatically load files. Files + # under these directories will be reloaded on each request in development mode, + # unless the directory also appears in load_once_paths. + mattr_accessor :load_paths + self.load_paths = [] + + # The set of directories from which automatically loaded constants are loaded + # only once. All directories in this set must also be present in +load_paths+. + mattr_accessor :load_once_paths + self.load_once_paths = [] + + # An array of qualified constant names that have been loaded. Adding a name to + # this array will cause it to be unloaded the next time Dependencies are cleared. + mattr_accessor :autoloaded_constants + self.autoloaded_constants = [] + + # An array of constant names that need to be unloaded on every request. Used + # to allow arbitrary constants to be marked for unloading. + mattr_accessor :explicitly_unloadable_constants + self.explicitly_unloadable_constants = [] + + # Set to true to enable logging of const_missing and file loads + mattr_accessor :log_activity + self.log_activity = false + + # An internal stack used to record which constants are loaded by any block. + mattr_accessor :constant_watch_stack + self.constant_watch_stack = [] + + def load? + mechanism == :load + end + + def depend_on(file_name, swallow_load_errors = false) + path = search_for_file(file_name) + require_or_load(path || file_name) + rescue LoadError + raise unless swallow_load_errors + end + + def associate_with(file_name) + depend_on(file_name, true) + end + + def clear + log_call + loaded.clear + remove_unloadable_constants! + end + + def require_or_load(file_name, const_path = nil) + log_call file_name, const_path + file_name = $1 if file_name =~ /^(.*)\.rb$/ + expanded = File.expand_path(file_name) + return if loaded.include?(expanded) + + # Record that we've seen this file *before* loading it to avoid an + # infinite loop with mutual dependencies. + loaded << expanded + + begin + if load? + log "loading #{file_name}" + + # Enable warnings iff this file has not been loaded before and + # warnings_on_first_load is set. + load_args = ["#{file_name}.rb"] + load_args << const_path unless const_path.nil? + + if !warnings_on_first_load or history.include?(expanded) + result = load_file(*load_args) + else + enable_warnings { result = load_file(*load_args) } + end + else + log "requiring #{file_name}" + result = require file_name + end + rescue Exception + loaded.delete expanded + raise + end + + # Record history *after* loading so first load gets warnings. + history << expanded + return result + end + + # Is the provided constant path defined? + def qualified_const_defined?(path) + raise NameError, "#{path.inspect} is not a valid constant name!" unless + /^(::)?([A-Z]\w*)(::[A-Z]\w*)*$/ =~ path + + names = path.to_s.split('::') + names.shift if names.first.empty? + + # We can't use defined? because it will invoke const_missing for the parent + # of the name we are checking. + names.inject(Object) do |mod, name| + return false unless uninherited_const_defined?(mod, name) + mod.const_get name + end + return true + end + + if Module.method(:const_defined?).arity == 1 + # Does this module define this constant? + # Wrapper to accomodate changing Module#const_defined? in Ruby 1.9 + def uninherited_const_defined?(mod, const) + mod.const_defined?(const) + end + else + def uninherited_const_defined?(mod, const) #:nodoc: + mod.const_defined?(const, false) + end + end + + # Given +path+, a filesystem path to a ruby file, return an array of constant + # paths which would cause Dependencies to attempt to load this file. + def loadable_constants_for_path(path, bases = load_paths) + path = $1 if path =~ /\A(.*)\.rb\Z/ + expanded_path = File.expand_path(path) + + bases.collect do |root| + expanded_root = File.expand_path(root) + next unless %r{\A#{Regexp.escape(expanded_root)}(/|\\)} =~ expanded_path + + nesting = expanded_path[(expanded_root.size)..-1] + nesting = nesting[1..-1] if nesting && nesting[0] == ?/ + next if nesting.blank? + + [ + nesting.camelize, + # Special case: application.rb might define ApplicationControlller. + ('ApplicationController' if nesting == 'application') + ] + end.flatten.compact.uniq + end + + # Search for a file in load_paths matching the provided suffix. + def search_for_file(path_suffix) + path_suffix = path_suffix + '.rb' unless path_suffix.ends_with? '.rb' + load_paths.each do |root| + path = File.join(root, path_suffix) + return path if File.file? path + end + nil # Gee, I sure wish we had first_match ;-) + end + + # Does the provided path_suffix correspond to an autoloadable module? + # Instead of returning a boolean, the autoload base for this module is returned. + def autoloadable_module?(path_suffix) + load_paths.each do |load_path| + return load_path if File.directory? File.join(load_path, path_suffix) + end + nil + end + + def load_once_path?(path) + load_once_paths.any? { |base| path.starts_with? base } + end + + # Attempt to autoload the provided module name by searching for a directory + # matching the expect path suffix. If found, the module is created and assigned + # to +into+'s constants with the name +const_name+. Provided that the directory + # was loaded from a reloadable base path, it is added to the set of constants + # that are to be unloaded. + def autoload_module!(into, const_name, qualified_name, path_suffix) + return nil unless base_path = autoloadable_module?(path_suffix) + mod = Module.new + into.const_set const_name, mod + autoloaded_constants << qualified_name unless load_once_paths.include?(base_path) + return mod + end + + # Load the file at the provided path. +const_paths+ is a set of qualified + # constant names. When loading the file, Dependencies will watch for the + # addition of these constants. Each that is defined will be marked as + # autoloaded, and will be removed when Dependencies.clear is next called. + # + # If the second parameter is left off, then Dependencies will construct a set + # of names that the file at +path+ may define. See + # +loadable_constants_for_path+ for more details. + def load_file(path, const_paths = loadable_constants_for_path(path)) + log_call path, const_paths + const_paths = [const_paths].compact unless const_paths.is_a? Array + parent_paths = const_paths.collect { |const_path| /(.*)::[^:]+\Z/ =~ const_path ? $1 : :Object } + + result = nil + newly_defined_paths = new_constants_in(*parent_paths) do + result = load_without_new_constant_marking path + end + + autoloaded_constants.concat newly_defined_paths unless load_once_path?(path) + autoloaded_constants.uniq! + log "loading #{path} defined #{newly_defined_paths * ', '}" unless newly_defined_paths.empty? + return result + end + + # Return the constant path for the provided parent and constant name. + def qualified_name_for(mod, name) + mod_name = to_constant_name mod + (%w(Object Kernel).include? mod_name) ? name.to_s : "#{mod_name}::#{name}" + end + + # Load the constant named +const_name+ which is missing from +from_mod+. If + # it is not possible to load the constant into from_mod, try its parent module + # using const_missing. + def load_missing_constant(from_mod, const_name) + log_call from_mod, const_name + if from_mod == Kernel + if ::Object.const_defined?(const_name) + log "Returning Object::#{const_name} for Kernel::#{const_name}" + return ::Object.const_get(const_name) + else + log "Substituting Object for Kernel" + from_mod = Object + end + end + + # If we have an anonymous module, all we can do is attempt to load from Object. + from_mod = Object if from_mod.name.blank? + + unless qualified_const_defined?(from_mod.name) && from_mod.name.constantize.object_id == from_mod.object_id + raise ArgumentError, "A copy of #{from_mod} has been removed from the module tree but is still active!" + end + + raise ArgumentError, "#{from_mod} is not missing constant #{const_name}!" if uninherited_const_defined?(from_mod, const_name) + + qualified_name = qualified_name_for from_mod, const_name + path_suffix = qualified_name.underscore + name_error = NameError.new("uninitialized constant #{qualified_name}") + + file_path = search_for_file(path_suffix) + if file_path && ! loaded.include?(File.expand_path(file_path)) # We found a matching file to load + require_or_load file_path + raise LoadError, "Expected #{file_path} to define #{qualified_name}" unless uninherited_const_defined?(from_mod, const_name) + return from_mod.const_get(const_name) + elsif mod = autoload_module!(from_mod, const_name, qualified_name, path_suffix) + return mod + elsif (parent = from_mod.parent) && parent != from_mod && + ! from_mod.parents.any? { |p| uninherited_const_defined?(p, const_name) } + # If our parents do not have a constant named +const_name+ then we are free + # to attempt to load upwards. If they do have such a constant, then this + # const_missing must be due to from_mod::const_name, which should not + # return constants from from_mod's parents. + begin + return parent.const_missing(const_name) + rescue NameError => e + raise unless e.missing_name? qualified_name_for(parent, const_name) + raise name_error + end + else + raise name_error + end + end + + # Remove the constants that have been autoloaded, and those that have been + # marked for unloading. + def remove_unloadable_constants! + autoloaded_constants.each { |const| remove_constant const } + autoloaded_constants.clear + explicitly_unloadable_constants.each { |const| remove_constant const } + end + + # Determine if the given constant has been automatically loaded. + def autoloaded?(desc) + # No name => anonymous module. + return false if desc.is_a?(Module) && desc.name.blank? + name = to_constant_name desc + return false unless qualified_const_defined? name + return autoloaded_constants.include?(name) + end + + # Will the provided constant descriptor be unloaded? + def will_unload?(const_desc) + autoloaded?(desc) || + explicitly_unloadable_constants.include?(to_constant_name(const_desc)) + end + + # Mark the provided constant name for unloading. This constant will be + # unloaded on each request, not just the next one. + def mark_for_unload(const_desc) + name = to_constant_name const_desc + if explicitly_unloadable_constants.include? name + return false + else + explicitly_unloadable_constants << name + return true + end + end + + # Run the provided block and detect the new constants that were loaded during + # its execution. Constants may only be regarded as 'new' once -- so if the + # block calls +new_constants_in+ again, then the constants defined within the + # inner call will not be reported in this one. + # + # If the provided block does not run to completion, and instead raises an + # exception, any new constants are regarded as being only partially defined + # and will be removed immediately. + def new_constants_in(*descs) + log_call(*descs) + + # Build the watch frames. Each frame is a tuple of + # [module_name_as_string, constants_defined_elsewhere] + watch_frames = descs.collect do |desc| + if desc.is_a? Module + mod_name = desc.name + initial_constants = desc.local_constant_names + elsif desc.is_a?(String) || desc.is_a?(Symbol) + mod_name = desc.to_s + + # Handle the case where the module has yet to be defined. + initial_constants = if qualified_const_defined?(mod_name) + mod_name.constantize.local_constant_names + else + [] + end + else + raise Argument, "#{desc.inspect} does not describe a module!" + end + + [mod_name, initial_constants] + end + + constant_watch_stack.concat watch_frames + + aborting = true + begin + yield # Now yield to the code that is to define new constants. + aborting = false + ensure + # Find the new constants. + new_constants = watch_frames.collect do |mod_name, prior_constants| + # Module still doesn't exist? Treat it as if it has no constants. + next [] unless qualified_const_defined?(mod_name) + + mod = mod_name.constantize + next [] unless mod.is_a? Module + new_constants = mod.local_constant_names - prior_constants + + # Make sure no other frames takes credit for these constants. + constant_watch_stack.each do |frame_name, constants| + constants.concat new_constants if frame_name == mod_name + end + + new_constants.collect do |suffix| + mod_name == "Object" ? suffix : "#{mod_name}::#{suffix}" + end + end.flatten + + log "New constants: #{new_constants * ', '}" + + if aborting + log "Error during loading, removing partially loaded constants " + new_constants.each { |name| remove_constant name } + new_constants.clear + end + end + + return new_constants + ensure + # Remove the stack frames that we added. + if defined?(watch_frames) && ! watch_frames.blank? + frame_ids = watch_frames.collect(&:object_id) + constant_watch_stack.delete_if do |watch_frame| + frame_ids.include? watch_frame.object_id + end + end + end + + class LoadingModule #:nodoc: + # Old style environment.rb referenced this method directly. Please note, it doesn't + # actually *do* anything any more. + def self.root(*args) + if defined?(RAILS_DEFAULT_LOGGER) + RAILS_DEFAULT_LOGGER.warn "Your environment.rb uses the old syntax, it may not continue to work in future releases." + RAILS_DEFAULT_LOGGER.warn "For upgrade instructions please see: http://manuals.rubyonrails.com/read/book/19" + end + end + end + + # Convert the provided const desc to a qualified constant name (as a string). + # A module, class, symbol, or string may be provided. + def to_constant_name(desc) #:nodoc: + name = case desc + when String then desc.starts_with?('::') ? desc[2..-1] : desc + when Symbol then desc.to_s + when Module + raise ArgumentError, "Anonymous modules have no name to be referenced by" if desc.name.blank? + desc.name + else raise TypeError, "Not a valid constant descriptor: #{desc.inspect}" + end + end + + def remove_constant(const) #:nodoc: + return false unless qualified_const_defined? const + + const = $1 if /\A::(.*)\Z/ =~ const.to_s + names = const.to_s.split('::') + if names.size == 1 # It's under Object + parent = Object + else + parent = (names[0..-2] * '::').constantize + end + + log "removing constant #{const}" + parent.instance_eval { remove_const names.last } + return true + end + +protected + def log_call(*args) + if defined?(RAILS_DEFAULT_LOGGER) && RAILS_DEFAULT_LOGGER && log_activity + arg_str = args.collect(&:inspect) * ', ' + /in `([a-z_\?\!]+)'/ =~ caller(1).first + selector = $1 || '<unknown>' + log "called #{selector}(#{arg_str})" + end + end + + def log(msg) + if defined?(RAILS_DEFAULT_LOGGER) && RAILS_DEFAULT_LOGGER && log_activity + RAILS_DEFAULT_LOGGER.debug "Dependencies: #{msg}" + end + end + +end + +Object.instance_eval do + define_method(:require_or_load) { |file_name| Dependencies.require_or_load(file_name) } unless Object.respond_to?(:require_or_load) + define_method(:require_dependency) { |file_name| Dependencies.depend_on(file_name) } unless Object.respond_to?(:require_dependency) + define_method(:require_association) { |file_name| Dependencies.associate_with(file_name) } unless Object.respond_to?(:require_association) +end + +class Module #:nodoc: + # Rename the original handler so we can chain it to the new one + alias :rails_original_const_missing :const_missing + + # Use const_missing to autoload associations so we don't have to + # require_association when using single-table inheritance. + def const_missing(class_id) + Dependencies.load_missing_constant self, class_id + end + + def unloadable(const_desc = self) + super(const_desc) + end + +end + +class Class + def const_missing(const_name) + if [Object, Kernel].include?(self) || parent == self + super + else + begin + begin + Dependencies.load_missing_constant self, const_name + rescue NameError + parent.send :const_missing, const_name + end + rescue NameError => e + # Make sure that the name we are missing is the one that caused the error + parent_qualified_name = Dependencies.qualified_name_for parent, const_name + raise unless e.missing_name? parent_qualified_name + qualified_name = Dependencies.qualified_name_for self, const_name + raise NameError.new("uninitialized constant #{qualified_name}").copy_blame!(e) + end + end + end +end + +class Object + alias_method :load_without_new_constant_marking, :load + + def load(file, *extras) #:nodoc: + Dependencies.new_constants_in(Object) { super } + rescue Exception => exception # errors from loading file + exception.blame_file! file + raise + end + + def require(file, *extras) #:nodoc: + Dependencies.new_constants_in(Object) { super } + rescue Exception => exception # errors from required file + exception.blame_file! file + raise + end + + # Mark the given constant as unloadable. Unloadable constants are removed each + # time dependencies are cleared. + # + # Note that marking a constant for unloading need only be done once. Setup + # or init scripts may list each unloadable constant that may need unloading; + # each constant will be removed for every subsequent clear, as opposed to for + # the first clear. + # + # The provided constant descriptor may be a (non-anonymous) module or class, + # or a qualified constant name as a string or symbol. + # + # Returns true if the constant was not previously marked for unloading, false + # otherwise. + def unloadable(const_desc) + Dependencies.mark_for_unload const_desc + end +end + +# Add file-blaming to exceptions +class Exception #:nodoc: + def blame_file!(file) + (@blamed_files ||= []).unshift file + end + + def blamed_files + @blamed_files ||= [] + end + + def describe_blame + return nil if blamed_files.empty? + "This error occurred while loading the following files:\n #{blamed_files.join "\n "}" + end + + def copy_blame!(exc) + @blamed_files = exc.blamed_files.clone + self + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/deprecation.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/deprecation.rb new file mode 100644 index 000000000..758aef544 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/deprecation.rb @@ -0,0 +1,205 @@ +require 'yaml' + +module ActiveSupport + module Deprecation #:nodoc: + mattr_accessor :debug + self.debug = false + + # Choose the default warn behavior according to RAILS_ENV. + # Ignore deprecation warnings in production. + DEFAULT_BEHAVIORS = { + 'test' => Proc.new { |message, callstack| + $stderr.puts(message) + $stderr.puts callstack.join("\n ") if debug + }, + 'development' => Proc.new { |message, callstack| + logger = defined?(::RAILS_DEFAULT_LOGGER) ? ::RAILS_DEFAULT_LOGGER : Logger.new($stderr) + logger.warn message + logger.debug callstack.join("\n ") if debug + } + } + + class << self + def warn(message = nil, callstack = caller) + behavior.call(deprecation_message(callstack, message), callstack) if behavior && !silenced? + end + + def default_behavior + if defined?(RAILS_ENV) + DEFAULT_BEHAVIORS[RAILS_ENV.to_s] + else + DEFAULT_BEHAVIORS['test'] + end + end + + # Have deprecations been silenced? + def silenced? + @silenced = false unless defined?(@silenced) + @silenced + end + + # Silence deprecation warnings within the block. + def silence + old_silenced, @silenced = @silenced, true + yield + ensure + @silenced = old_silenced + end + + attr_writer :silenced + + + private + def deprecation_message(callstack, message = nil) + message ||= "You are using deprecated behavior which will be removed from Rails 2.0." + "DEPRECATION WARNING: #{message} See http://www.rubyonrails.org/deprecation for details. #{deprecation_caller_message(callstack)}" + end + + def deprecation_caller_message(callstack) + file, line, method = extract_callstack(callstack) + if file + if line && method + "(called from #{method} at #{file}:#{line})" + else + "(called from #{file}:#{line})" + end + end + end + + def extract_callstack(callstack) + if md = callstack.first.match(/^(.+?):(\d+)(?::in `(.*?)')?/) + md.captures + else + callstack.first + end + end + end + + # Behavior is a block that takes a message argument. + mattr_accessor :behavior + self.behavior = default_behavior + + # Warnings are not silenced by default. + self.silenced = false + + module ClassMethods #:nodoc: + # Declare that a method has been deprecated. + def deprecate(*method_names) + options = method_names.extract_options! + method_names = method_names + options.keys + method_names.each do |method_name| + alias_method_chain(method_name, :deprecation) do |target, punctuation| + class_eval(<<-EOS, __FILE__, __LINE__) + def #{target}_with_deprecation#{punctuation}(*args, &block) + ::ActiveSupport::Deprecation.warn(self.class.deprecated_method_warning(:#{method_name}, #{options[method_name].inspect}), caller) + #{target}_without_deprecation#{punctuation}(*args, &block) + end + EOS + end + end + end + + def deprecated_method_warning(method_name, message=nil) + warning = "#{method_name} is deprecated and will be removed from Rails #{deprecation_horizon}" + case message + when Symbol then "#{warning} (use #{message} instead)" + when String then "#{warning} (#{message})" + else warning + end + end + + def deprecation_horizon + '2.0' + end + end + + module Assertions #:nodoc: + def assert_deprecated(match = nil, &block) + result, warnings = collect_deprecations(&block) + assert !warnings.empty?, "Expected a deprecation warning within the block but received none" + if match + match = Regexp.new(Regexp.escape(match)) unless match.is_a?(Regexp) + assert warnings.any? { |w| w =~ match }, "No deprecation warning matched #{match}: #{warnings.join(', ')}" + end + result + end + + def assert_not_deprecated(&block) + result, deprecations = collect_deprecations(&block) + assert deprecations.empty?, "Expected no deprecation warning within the block but received #{deprecations.size}: \n #{deprecations * "\n "}" + result + end + + private + def collect_deprecations + old_behavior = ActiveSupport::Deprecation.behavior + deprecations = [] + ActiveSupport::Deprecation.behavior = Proc.new do |message, callstack| + deprecations << message + end + result = yield + [result, deprecations] + ensure + ActiveSupport::Deprecation.behavior = old_behavior + end + end + + # Stand-in for <tt>@request</tt>, <tt>@attributes</tt>, <tt>@params</tt>, etc. + # which emits deprecation warnings on any method call (except +inspect+). + class DeprecatedInstanceVariableProxy #:nodoc: + silence_warnings do + instance_methods.each { |m| undef_method m unless m =~ /^__/ } + end + + def initialize(instance, method, var = "@#{method}") + @instance, @method, @var = instance, method, var + end + + # Don't give a deprecation warning on inspect since test/unit and error + # logs rely on it for diagnostics. + def inspect + target.inspect + end + + private + def method_missing(called, *args, &block) + warn caller, called, args + target.__send__(called, *args, &block) + end + + def target + @instance.__send__(@method) + end + + def warn(callstack, called, args) + ActiveSupport::Deprecation.warn("#{@var} is deprecated! Call #{@method}.#{called} instead of #{@var}.#{called}. Args: #{args.inspect}", callstack) + end + end + + end +end + +class Module + include ActiveSupport::Deprecation::ClassMethods +end + +require 'test/unit/error' + +module Test + module Unit + class TestCase + include ActiveSupport::Deprecation::Assertions + end + + class Error # :nodoc: + # Silence warnings when reporting test errors. + def message_with_silenced_deprecation + ActiveSupport::Deprecation.silence do + message_without_silenced_deprecation + end + end + + alias_method_chain :message, :silenced_deprecation + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/duration.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/duration.rb new file mode 100644 index 000000000..8eae85d38 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/duration.rb @@ -0,0 +1,96 @@ +module ActiveSupport + # Provides accurate date and time measurements using Date#advance and + # Time#advance, respectively. It mainly supports the methods on Numeric, + # such as in this example: + # + # 1.month.ago # equivalent to Time.now.advance(:months => -1) + class Duration < BasicObject + attr_accessor :value, :parts + + def initialize(value, parts) #:nodoc: + @value, @parts = value, parts + end + + # Adds another Duration or a Numeric to this Duration. Numeric values + # are treated as seconds. + def +(other) + if Duration === other + Duration.new(value + other.value, @parts + other.parts) + else + Duration.new(value + other, @parts + [[:seconds, other]]) + end + end + + # Subtracts another Duration or a Numeric from this Duration. Numeric + # values are treated as seconds. + def -(other) + self + (-other) + end + + def -@ #:nodoc: + Duration.new(-value, parts.map { |type,number| [type, -number] }) + end + + def is_a?(klass) #:nodoc: + klass == Duration || super + end + + # Returns true if <tt>other</tt> is also a Duration instance with the + # same <tt>value</tt>, or if <tt>other == value</tt>. + def ==(other) + if Duration === other + other.value == value + else + other == value + end + end + + def self.===(other) #:nodoc: + other.is_a?(Duration) rescue super + end + + # Calculates a new Time or Date that is as far in the future + # as this Duration represents. + def since(time = ::Time.current) + sum(1, time) + end + alias :from_now :since + + # Calculates a new Time or Date that is as far in the past + # as this Duration represents. + def ago(time = ::Time.current) + sum(-1, time) + end + alias :until :ago + + def inspect #:nodoc: + consolidated = parts.inject(::Hash.new(0)) { |h,part| h[part.first] += part.last; h } + [:years, :months, :days, :minutes, :seconds].map do |length| + n = consolidated[length] + "#{n} #{n == 1 ? length.to_s.singularize : length.to_s}" if n.nonzero? + end.compact.to_sentence + end + + protected + + def sum(sign, time = ::Time.current) #:nodoc: + parts.inject(time) do |t,(type,number)| + if t.acts_like?(:time) || t.acts_like?(:date) + if type == :seconds + t.since(sign * number) + else + t.advance(type => sign * number) + end + else + raise ::ArgumentError, "expected a time or date, got #{time.inspect}" + end + end + end + + private + + def method_missing(method, *args, &block) #:nodoc: + value.send(method, *args) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/gzip.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/gzip.rb new file mode 100644 index 000000000..35a50e9a7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/gzip.rb @@ -0,0 +1,25 @@ +require 'zlib' +require 'stringio' + +module ActiveSupport + # A convenient wrapper for the zlib standard library that allows compression/decompression of strings with gzip. + module Gzip + class Stream < StringIO + def close; rewind; end + end + + # Decompresses a gzipped string. + def self.decompress(source) + Zlib::GzipReader.new(StringIO.new(source)).read + end + + # Compresses a string using gzip. + def self.compress(source) + output = Stream.new + gz = Zlib::GzipWriter.new(output) + gz.write(source) + gz.close + output.string + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/inflections.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/inflections.rb new file mode 100644 index 000000000..967722c2b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/inflections.rb @@ -0,0 +1,53 @@ +Inflector.inflections do |inflect| + inflect.plural(/$/, 's') + inflect.plural(/s$/i, 's') + inflect.plural(/(ax|test)is$/i, '\1es') + inflect.plural(/(octop|vir)us$/i, '\1i') + inflect.plural(/(alias|status)$/i, '\1es') + inflect.plural(/(bu)s$/i, '\1ses') + inflect.plural(/(buffal|tomat)o$/i, '\1oes') + inflect.plural(/([ti])um$/i, '\1a') + inflect.plural(/sis$/i, 'ses') + inflect.plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves') + inflect.plural(/(hive)$/i, '\1s') + inflect.plural(/([^aeiouy]|qu)y$/i, '\1ies') + inflect.plural(/(x|ch|ss|sh)$/i, '\1es') + inflect.plural(/(matr|vert|ind)(?:ix|ex)$/i, '\1ices') + inflect.plural(/([m|l])ouse$/i, '\1ice') + inflect.plural(/^(ox)$/i, '\1en') + inflect.plural(/(quiz)$/i, '\1zes') + + inflect.singular(/s$/i, '') + inflect.singular(/(n)ews$/i, '\1ews') + inflect.singular(/([ti])a$/i, '\1um') + inflect.singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i, '\1\2sis') + inflect.singular(/(^analy)ses$/i, '\1sis') + inflect.singular(/([^f])ves$/i, '\1fe') + inflect.singular(/(hive)s$/i, '\1') + inflect.singular(/(tive)s$/i, '\1') + inflect.singular(/([lr])ves$/i, '\1f') + inflect.singular(/([^aeiouy]|qu)ies$/i, '\1y') + inflect.singular(/(s)eries$/i, '\1eries') + inflect.singular(/(m)ovies$/i, '\1ovie') + inflect.singular(/(x|ch|ss|sh)es$/i, '\1') + inflect.singular(/([m|l])ice$/i, '\1ouse') + inflect.singular(/(bus)es$/i, '\1') + inflect.singular(/(o)es$/i, '\1') + inflect.singular(/(shoe)s$/i, '\1') + inflect.singular(/(cris|ax|test)es$/i, '\1is') + inflect.singular(/(octop|vir)i$/i, '\1us') + inflect.singular(/(alias|status)es$/i, '\1') + inflect.singular(/^(ox)en/i, '\1') + inflect.singular(/(vert|ind)ices$/i, '\1ex') + inflect.singular(/(matr)ices$/i, '\1ix') + inflect.singular(/(quiz)zes$/i, '\1') + + inflect.irregular('person', 'people') + inflect.irregular('man', 'men') + inflect.irregular('child', 'children') + inflect.irregular('sex', 'sexes') + inflect.irregular('move', 'moves') + inflect.irregular('cow', 'kine') + + inflect.uncountable(%w(equipment information rice money species series fish sheep)) +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/inflector.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/inflector.rb new file mode 100644 index 000000000..a4fd61931 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/inflector.rb @@ -0,0 +1,308 @@ +require 'singleton' + +# The Inflector transforms words from singular to plural, class names to table names, modularized class names to ones without, +# and class names to foreign keys. The default inflections for pluralization, singularization, and uncountable words are kept +# in inflections.rb. +# +# The Rails core team has stated patches for the inflections library will not be accepted +# in order to avoid breaking legacy applications which may be relying on errant inflections. +# If you discover an incorrect inflection and require it for your application, you'll need +# to correct it yourself (explained below). +module Inflector + # A singleton instance of this class is yielded by Inflector.inflections, which can then be used to specify additional + # inflection rules. Examples: + # + # Inflector.inflections do |inflect| + # inflect.plural /^(ox)$/i, '\1\2en' + # inflect.singular /^(ox)en/i, '\1' + # + # inflect.irregular 'octopus', 'octopi' + # + # inflect.uncountable "equipment" + # end + # + # New rules are added at the top. So in the example above, the irregular rule for octopus will now be the first of the + # pluralization and singularization rules that is runs. This guarantees that your rules run before any of the rules that may + # already have been loaded. + class Inflections + include Singleton + + attr_reader :plurals, :singulars, :uncountables + + def initialize + @plurals, @singulars, @uncountables = [], [], [] + end + + # Specifies a new pluralization rule and its replacement. The rule can either be a string or a regular expression. + # The replacement should always be a string that may include references to the matched data from the rule. + def plural(rule, replacement) + @plurals.insert(0, [rule, replacement]) + end + + # Specifies a new singularization rule and its replacement. The rule can either be a string or a regular expression. + # The replacement should always be a string that may include references to the matched data from the rule. + def singular(rule, replacement) + @singulars.insert(0, [rule, replacement]) + end + + # Specifies a new irregular that applies to both pluralization and singularization at the same time. This can only be used + # for strings, not regular expressions. You simply pass the irregular in singular and plural form. + # + # Examples: + # irregular 'octopus', 'octopi' + # irregular 'person', 'people' + def irregular(singular, plural) + if singular[0,1].upcase == plural[0,1].upcase + plural(Regexp.new("(#{singular[0,1]})#{singular[1..-1]}$", "i"), '\1' + plural[1..-1]) + singular(Regexp.new("(#{plural[0,1]})#{plural[1..-1]}$", "i"), '\1' + singular[1..-1]) + else + plural(Regexp.new("#{singular[0,1].upcase}(?i)#{singular[1..-1]}$"), plural[0,1].upcase + plural[1..-1]) + plural(Regexp.new("#{singular[0,1].downcase}(?i)#{singular[1..-1]}$"), plural[0,1].downcase + plural[1..-1]) + singular(Regexp.new("#{plural[0,1].upcase}(?i)#{plural[1..-1]}$"), singular[0,1].upcase + singular[1..-1]) + singular(Regexp.new("#{plural[0,1].downcase}(?i)#{plural[1..-1]}$"), singular[0,1].downcase + singular[1..-1]) + end + end + + # Add uncountable words that shouldn't be attempted inflected. + # + # Examples: + # uncountable "money" + # uncountable "money", "information" + # uncountable %w( money information rice ) + def uncountable(*words) + (@uncountables << words).flatten! + end + + # Clears the loaded inflections within a given scope (default is <tt>:all</tt>). + # Give the scope as a symbol of the inflection type, the options are: <tt>:plurals</tt>, + # <tt>:singulars</tt>, <tt>:uncountables</tt>. + # + # Examples: + # clear :all + # clear :plurals + def clear(scope = :all) + case scope + when :all + @plurals, @singulars, @uncountables = [], [], [] + else + instance_variable_set "@#{scope}", [] + end + end + end + + extend self + + # Yields a singleton instance of Inflector::Inflections so you can specify additional + # inflector rules. + # + # Example: + # Inflector.inflections do |inflect| + # inflect.uncountable "rails" + # end + def inflections + if block_given? + yield Inflections.instance + else + Inflections.instance + end + end + + # Returns the plural form of the word in the string. + # + # Examples: + # "post".pluralize # => "posts" + # "octopus".pluralize # => "octopi" + # "sheep".pluralize # => "sheep" + # "words".pluralize # => "words" + # "the blue mailman".pluralize # => "the blue mailmen" + # "CamelOctopus".pluralize # => "CamelOctopi" + def pluralize(word) + result = word.to_s.dup + + if word.empty? || inflections.uncountables.include?(result.downcase) + result + else + inflections.plurals.each { |(rule, replacement)| break if result.gsub!(rule, replacement) } + result + end + end + + # The reverse of +pluralize+, returns the singular form of a word in a string. + # + # Examples: + # "posts".singularize # => "post" + # "octopi".singularize # => "octopus" + # "sheep".singluarize # => "sheep" + # "word".singluarize # => "word" + # "the blue mailmen".singularize # => "the blue mailman" + # "CamelOctopi".singularize # => "CamelOctopus" + def singularize(word) + result = word.to_s.dup + + if inflections.uncountables.include?(result.downcase) + result + else + inflections.singulars.each { |(rule, replacement)| break if result.gsub!(rule, replacement) } + result + end + end + + # By default, +camelize+ converts strings to UpperCamelCase. If the argument to +camelize+ + # is set to <tt>:lower</tt> then +camelize+ produces lowerCamelCase. + # + # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces. + # + # Examples: + # "active_record".camelize # => "ActiveRecord" + # "active_record".camelize(:lower) # => "activeRecord" + # "active_record/errors".camelize # => "ActiveRecord::Errors" + # "active_record/errors".camelize(:lower) # => "activeRecord::Errors" + def camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true) + if first_letter_in_uppercase + lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } + else + lower_case_and_underscored_word.first + camelize(lower_case_and_underscored_word)[1..-1] + end + end + + # Capitalizes all the words and replaces some characters in the string to create + # a nicer looking title. +titleize+ is meant for creating pretty output. It is not + # used in the Rails internals. + # + # +titleize+ is also aliased as as +titlecase+. + # + # Examples: + # "man from the boondocks".titleize # => "Man From The Boondocks" + # "x-men: the last stand".titleize # => "X Men: The Last Stand" + def titleize(word) + humanize(underscore(word)).gsub(/\b('?[a-z])/) { $1.capitalize } + end + + # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string. + # + # Changes '::' to '/' to convert namespaces to paths. + # + # Examples: + # "ActiveRecord".underscore # => "active_record" + # "ActiveRecord::Errors".underscore # => active_record/errors + def underscore(camel_cased_word) + camel_cased_word.to_s.gsub(/::/, '/'). + gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). + gsub(/([a-z\d])([A-Z])/,'\1_\2'). + tr("-", "_"). + downcase + end + + # Replaces underscores with dashes in the string. + # + # Example: + # "puni_puni" # => "puni-puni" + def dasherize(underscored_word) + underscored_word.gsub(/_/, '-') + end + + # Capitalizes the first word and turns underscores into spaces and strips a + # trailing "_id", if any. Like +titleize+, this is meant for creating pretty output. + # + # Examples: + # "employee_salary" # => "Employee salary" + # "author_id" # => "Author" + def humanize(lower_case_and_underscored_word) + lower_case_and_underscored_word.to_s.gsub(/_id$/, "").gsub(/_/, " ").capitalize + end + + # Removes the module part from the expression in the string. + # + # Examples: + # "ActiveRecord::CoreExtensions::String::Inflections".demodulize # => "Inflections" + # "Inflections".demodulize # => "Inflections" + def demodulize(class_name_in_module) + class_name_in_module.to_s.gsub(/^.*::/, '') + end + + # Create the name of a table like Rails does for models to table names. This method + # uses the +pluralize+ method on the last word in the string. + # + # Examples + # "RawScaledScorer".tableize # => "raw_scaled_scorers" + # "egg_and_ham".tableize # => "egg_and_hams" + # "fancyCategory".tableize # => "fancy_categories" + def tableize(class_name) + pluralize(underscore(class_name)) + end + + # Create a class name from a plural table name like Rails does for table names to models. + # Note that this returns a string and not a Class. (To convert to an actual class + # follow +classify+ with +constantize+.) + # + # Examples: + # "egg_and_hams".classify # => "EggAndHam" + # "posts".classify # => "Post" + # + # Singular names are not handled correctly: + # "business".classify # => "Busines" + def classify(table_name) + # strip out any leading schema name + camelize(singularize(table_name.to_s.sub(/.*\./, ''))) + end + + # Creates a foreign key name from a class name. + # +separate_class_name_and_id_with_underscore+ sets whether + # the method should put '_' between the name and 'id'. + # + # Examples: + # "Message".foreign_key # => "message_id" + # "Message".foreign_key(false) # => "messageid" + # "Admin::Post".foreign_key # => "post_id" + def foreign_key(class_name, separate_class_name_and_id_with_underscore = true) + underscore(demodulize(class_name)) + (separate_class_name_and_id_with_underscore ? "_id" : "id") + end + + # Tries to find a constant with the name specified in the argument string: + # + # "Module".constantize # => Module + # "Test::Unit".constantize # => Test::Unit + # + # The name is assumed to be the one of a top-level constant, no matter whether + # it starts with "::" or not. No lexical context is taken into account: + # + # C = 'outside' + # module M + # C = 'inside' + # C # => 'inside' + # "C".constantize # => 'outside', same as ::C + # end + # + # NameError is raised when the name is not in CamelCase or the constant is + # unknown. + def constantize(camel_cased_word) + unless /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ =~ camel_cased_word + raise NameError, "#{camel_cased_word.inspect} is not a valid constant name!" + end + + Object.module_eval("::#{$1}", __FILE__, __LINE__) + end + + # Turns a number into an ordinal string used to denote the position in an + # ordered sequence such as 1st, 2nd, 3rd, 4th. + # + # Examples: + # ordinalize(1) # => "1st" + # ordinalize(2) # => "2nd" + # ordinalize(1002) # => "1002nd" + # ordinalize(1003) # => "1003rd" + def ordinalize(number) + if (11..13).include?(number.to_i % 100) + "#{number}th" + else + case number.to_i % 10 + when 1; "#{number}st" + when 2; "#{number}nd" + when 3; "#{number}rd" + else "#{number}th" + end + end + end +end + +require File.dirname(__FILE__) + '/inflections' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json.rb new file mode 100644 index 000000000..54a7becd0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json.rb @@ -0,0 +1,23 @@ +module ActiveSupport + # If true, use ISO 8601 format for dates and times. Otherwise, fall back to the Active Support legacy format. + mattr_accessor :use_standard_json_time_format + + class << self + def escape_html_entities_in_json + @escape_html_entities_in_json + end + + def escape_html_entities_in_json=(value) + ActiveSupport::JSON::Encoding.escape_regex = \ + if value + /[\010\f\n\r\t"\\><&]/ + else + /[\010\f\n\r\t"\\]/ + end + @escape_html_entities_in_json = value + end + end +end + +require 'active_support/json/encoding' +require 'active_support/json/decoding' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/decoding.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/decoding.rb new file mode 100644 index 000000000..fdb219dbf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/decoding.rb @@ -0,0 +1,63 @@ +require 'yaml' +require 'strscan' + +module ActiveSupport + module JSON + class ParseError < StandardError + end + + class << self + # Converts a JSON string into a Ruby object. + def decode(json) + YAML.load(convert_json_to_yaml(json)) + rescue ArgumentError => e + raise ParseError, "Invalid JSON string" + end + + protected + # matches YAML-formatted dates + DATE_REGEX = /^\d{4}-\d{2}-\d{2}|\d{4}-\d{1,2}-\d{1,2}[ \t]+\d{1,2}:\d{2}:\d{2}(\.[0-9]*)?(([ \t]*)Z|[-+]\d{2}?(:\d{2})?)?$/ + + # Ensure that ":" and "," are always followed by a space + def convert_json_to_yaml(json) #:nodoc: + scanner, quoting, marks, pos, times = StringScanner.new(json), false, [], nil, [] + while scanner.scan_until(/(\\['"]|['":,\\]|\\.)/) + case char = scanner[1] + when '"', "'" + if !quoting + quoting = char + pos = scanner.pos + elsif quoting == char + if json[pos..scanner.pos-2] =~ DATE_REGEX + # found a date, track the exact positions of the quotes so we can remove them later. + # oh, and increment them for each current mark, each one is an extra padded space that bumps + # the position in the final YAML output + total_marks = marks.size + times << pos+total_marks << scanner.pos+total_marks + end + quoting = false + end + when ":","," + marks << scanner.pos - 1 unless quoting + end + end + + if marks.empty? + json.gsub(/\\\//, '/') + else + left_pos = [-1].push(*marks) + right_pos = marks << json.length + output = [] + left_pos.each_with_index do |left, i| + output << json[left.succ..right_pos[i]] + end + output = output * " " + + times.each { |i| output[i-1] = ' ' } + output.gsub!(/\\\//, '/') + output + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/date.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/date.rb new file mode 100644 index 000000000..cb9419d29 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/date.rb @@ -0,0 +1,14 @@ +class Date + # Returns a JSON string representing the date. + # + # ==== Example: + # Date.new(2005,2,1).to_json + # # => "2005/02/01" + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + %("#{strftime("%Y-%m-%d")}") + else + %("#{strftime("%Y/%m/%d")}") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/date_time.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/date_time.rb new file mode 100644 index 000000000..d41c3e978 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/date_time.rb @@ -0,0 +1,14 @@ +class DateTime + # Returns a JSON string representing the datetime. + # + # ==== Example: + # DateTime.civil(2005,2,1,15,15,10).to_json + # # => "2005/02/01 15:15:10 +0000" + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + xmlschema.inspect + else + %("#{strftime("%Y/%m/%d %H:%M:%S %z")}") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/enumerable.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/enumerable.rb new file mode 100644 index 000000000..881b1d62c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/enumerable.rb @@ -0,0 +1,12 @@ +module Enumerable + # Returns a JSON string representing the enumerable. Any +options+ + # given will be passed on to its elements. For example: + # + # users = User.find(:all) + # # => users.to_json(:only => :name) + # + # will pass the <tt>:only => :name</tt> option to each user. + def to_json(options = {}) #:nodoc: + "[#{map { |value| ActiveSupport::JSON.encode(value, options) } * ', '}]" + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/false_class.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/false_class.rb new file mode 100644 index 000000000..bf0844334 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/false_class.rb @@ -0,0 +1,5 @@ +class FalseClass + def to_json(options = nil) #:nodoc: + 'false' + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/hash.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/hash.rb new file mode 100644 index 000000000..b9bdd55fa --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/hash.rb @@ -0,0 +1,47 @@ +class Hash + # Returns a JSON string representing the hash. + # + # Without any +options+, the returned JSON string will include all + # the hash keys. For example: + # + # { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json + # # => {"name": "Konata Izumi", 1: 2, "age": 16} + # + # The keys in the JSON string are unordered due to the nature of hashes. + # + # The <tt>:only</tt> and <tt>:except</tt> options can be used to limit the + # attributes included, and will accept 1 or more hash keys to include/exclude. + # + # { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json(:only => [:name, 'age']) + # # => {"name": "Konata Izumi", "age": 16} + # + # { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json(:except => 1) + # # => {"name": "Konata Izumi", "age": 16} + # + # The +options+ also filter down to any hash values. This is particularly + # useful for converting hashes containing ActiveRecord objects or any object + # that responds to options in their <tt>to_json</tt> method. For example: + # + # users = User.find(:all) + # { :users => users, :count => users.size }.to_json(:include => :posts) + # + # would pass the <tt>:include => :posts</tt> option to <tt>users</tt>, + # allowing the posts association in the User model to be converted to JSON + # as well. + def to_json(options = {}) #:nodoc: + hash_keys = self.keys + + if options[:except] + hash_keys = hash_keys - Array(options[:except]) + elsif options[:only] + hash_keys = hash_keys & Array(options[:only]) + end + + returning result = '{' do + result << hash_keys.map do |key| + "#{ActiveSupport::JSON.encode(key)}: #{ActiveSupport::JSON.encode(self[key], options)}" + end * ', ' + result << '}' + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/nil_class.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/nil_class.rb new file mode 100644 index 000000000..4763471ac --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/nil_class.rb @@ -0,0 +1,5 @@ +class NilClass + def to_json(options = nil) #:nodoc: + 'null' + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/numeric.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/numeric.rb new file mode 100644 index 000000000..38713fb36 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/numeric.rb @@ -0,0 +1,5 @@ +class Numeric + def to_json(options = nil) #:nodoc: + to_s + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/object.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/object.rb new file mode 100644 index 000000000..ca215d496 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/object.rb @@ -0,0 +1,6 @@ +class Object + # Dumps object in JSON (JavaScript Object Notation). See www.json.org for more info. + def to_json(options = {}) + ActiveSupport::JSON.encode(instance_values, options) + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/regexp.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/regexp.rb new file mode 100644 index 000000000..b6116b70b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/regexp.rb @@ -0,0 +1,5 @@ +class Regexp + def to_json(options = nil) #:nodoc: + inspect + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/string.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/string.rb new file mode 100644 index 000000000..5ef797955 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/string.rb @@ -0,0 +1,36 @@ +module ActiveSupport + module JSON + module Encoding + mattr_accessor :escape_regex + + ESCAPED_CHARS = { + "\010" => '\b', + "\f" => '\f', + "\n" => '\n', + "\r" => '\r', + "\t" => '\t', + '"' => '\"', + '\\' => '\\\\', + '>' => '\u003E', + '<' => '\u003C', + '&' => '\u0026' + } + end + end +end + +ActiveSupport.escape_html_entities_in_json = true + +class String + def to_json(options = nil) #:nodoc: + json = '"' + gsub(ActiveSupport::JSON::Encoding.escape_regex) { |s| + ActiveSupport::JSON::Encoding::ESCAPED_CHARS[s] + } + json.force_encoding('ascii-8bit') if respond_to?(:force_encoding) + json.gsub(/([\xC0-\xDF][\x80-\xBF]| + [\xE0-\xEF][\x80-\xBF]{2}| + [\xF0-\xF7][\x80-\xBF]{3})+/nx) { |s| + s.unpack("U*").pack("n*").unpack("H*")[0].gsub(/.{4}/, '\\\\u\&') + } + '"' + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/symbol.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/symbol.rb new file mode 100644 index 000000000..485112f97 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/symbol.rb @@ -0,0 +1,5 @@ +class Symbol + def to_json(options = {}) #:nodoc: + ActiveSupport::JSON.encode(to_s, options) + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/time.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/time.rb new file mode 100644 index 000000000..57ed3c9e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/time.rb @@ -0,0 +1,14 @@ +class Time + # Returns a JSON string representing the time. + # + # ==== Example: + # Time.utc(2005,2,1,15,15,10).to_json + # # => 2005/02/01 15:15:10 +0000" + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + xmlschema.inspect + else + %("#{strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)}") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/true_class.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/true_class.rb new file mode 100644 index 000000000..037d812b3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoders/true_class.rb @@ -0,0 +1,5 @@ +class TrueClass + def to_json(options = nil) #:nodoc: + 'true' + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoding.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoding.rb new file mode 100644 index 000000000..8650e3422 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/encoding.rb @@ -0,0 +1,37 @@ +require 'active_support/json/variable' +require 'active_support/json/encoders/object' # Require explicitly for rdoc. +Dir["#{File.dirname(__FILE__)}/encoders/**/*.rb"].each do |file| + basename = File.basename(file, '.rb') + unless basename == 'object' + require "active_support/json/encoders/#{basename}" + end +end + +module ActiveSupport + module JSON + class CircularReferenceError < StandardError + end + + class << self + REFERENCE_STACK_VARIABLE = :json_reference_stack #:nodoc: + + # Converts a Ruby object into a JSON string. + def encode(value, options = {}) + raise_on_circular_reference(value) do + value.send(:to_json, options) + end + end + + protected + def raise_on_circular_reference(value) #:nodoc: + stack = Thread.current[REFERENCE_STACK_VARIABLE] ||= [] + raise CircularReferenceError, 'object references itself' if + stack.include? value + stack << value + yield + ensure + stack.pop + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/json/variable.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/json/variable.rb new file mode 100644 index 000000000..7fd23b0a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/json/variable.rb @@ -0,0 +1,10 @@ +module ActiveSupport + module JSON + # A string that returns itself as its JSON-encoded form. + class Variable < String + def to_json(options=nil) + self + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte.rb new file mode 100644 index 000000000..27c0d180a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte.rb @@ -0,0 +1,9 @@ +module ActiveSupport + module Multibyte #:nodoc: + DEFAULT_NORMALIZATION_FORM = :kc + NORMALIZATIONS_FORMS = [:c, :kc, :d, :kd] + UNICODE_VERSION = '5.0.0' + end +end + +require 'active_support/multibyte/chars' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/chars.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/chars.rb new file mode 100644 index 000000000..185d03020 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/chars.rb @@ -0,0 +1,137 @@ +require 'active_support/multibyte/handlers/utf8_handler' +require 'active_support/multibyte/handlers/passthru_handler' + +# Encapsulates all the functionality related to the Chars proxy. +module ActiveSupport::Multibyte #:nodoc: + # Chars enables you to work transparently with multibyte encodings in the Ruby String class without having extensive + # knowledge about the encoding. A Chars object accepts a string upon initialization and proxies String methods in an + # encoding safe manner. All the normal String methods are also implemented on the proxy. + # + # String methods are proxied through the Chars object, and can be accessed through the +chars+ method. Methods + # which would normally return a String object now return a Chars object so methods can be chained. + # + # "The Perfect String ".chars.downcase.strip.normalize # => "the perfect string" + # + # Chars objects are perfectly interchangeable with String objects as long as no explicit class checks are made. + # If certain methods do explicitly check the class, call +to_s+ before you pass chars objects to them. + # + # bad.explicit_checking_method "T".chars.downcase.to_s + # + # The actual operations on the string are delegated to handlers. Theoretically handlers can be implemented for + # any encoding, but the default handler handles UTF-8. This handler is set during initialization, if you want to + # use you own handler, you can set it on the Chars class. Look at the UTF8Handler source for an example how to + # implement your own handler. If you your own handler to work on anything but UTF-8 you probably also + # want to override Chars#handler. + # + # ActiveSupport::Multibyte::Chars.handler = MyHandler + # + # Note that a few methods are defined on Chars instead of the handler because they are defined on Object or Kernel + # and method_missing can't catch them. + class Chars + + attr_reader :string # The contained string + alias_method :to_s, :string + + include Comparable + + # The magic method to make String and Chars comparable + def to_str + # Using any other ways of overriding the String itself will lead you all the way from infinite loops to + # core dumps. Don't go there. + @string + end + + # Make duck-typing with String possible + def respond_to?(method, include_priv = false) + super || @string.respond_to?(method, include_priv) || + handler.respond_to?(method, include_priv) || + (method.to_s =~ /(.*)!/ && handler.respond_to?($1, include_priv)) || + false + end + + # Create a new Chars instance. + def initialize(str) + @string = str.respond_to?(:string) ? str.string : str + end + + # Returns -1, 0 or +1 depending on whether the Chars object is to be sorted before, equal or after the + # object on the right side of the operation. It accepts any object that implements +to_s+. See String.<=> + # for more details. + def <=>(other); @string <=> other.to_s; end + + # Works just like String#split, with the exception that the items in the resulting list are Chars + # instances instead of String. This makes chaining methods easier. + def split(*args) + @string.split(*args).map { |i| i.chars } + end + + # Gsub works exactly the same as gsub on a normal string. + def gsub(*a, &b); @string.gsub(*a, &b).chars; end + + # Like String.=~ only it returns the character offset (in codepoints) instead of the byte offset. + def =~(other) + handler.translate_offset(@string, @string =~ other) + end + + # Try to forward all undefined methods to the handler, when a method is not defined on the handler, send it to + # the contained string. Method_missing is also responsible for making the bang! methods destructive. + def method_missing(m, *a, &b) + begin + # Simulate methods with a ! at the end because we can't touch the enclosed string from the handlers. + if m.to_s =~ /^(.*)\!$/ && handler.respond_to?($1) + result = handler.send($1, @string, *a, &b) + if result == @string + result = nil + else + @string.replace result + end + elsif handler.respond_to?(m) + result = handler.send(m, @string, *a, &b) + else + result = @string.send(m, *a, &b) + end + rescue Handlers::EncodingError + @string.replace handler.tidy_bytes(@string) + retry + end + + if result.kind_of?(String) + result.chars + else + result + end + end + + # Set the handler class for the Char objects. + def self.handler=(klass) + @@handler = klass + end + + # Returns the proper handler for the contained string depending on $KCODE and the encoding of the string. This + # method is used internally to always redirect messages to the proper classes depending on the context. + def handler + if utf8_pragma? + @@handler + else + ActiveSupport::Multibyte::Handlers::PassthruHandler + end + end + + private + + # +utf8_pragma+ checks if it can send this string to the handlers. It makes sure @string isn't nil and $KCODE is + # set to 'UTF8'. + def utf8_pragma? + !@string.nil? && ($KCODE == 'UTF8') + end + end +end + +# When we can load the utf8proc library, override normalization with the faster methods +begin + require 'utf8proc_native' + require 'active_support/multibyte/handlers/utf8_handler_proc' + ActiveSupport::Multibyte::Chars.handler = ActiveSupport::Multibyte::Handlers::UTF8HandlerProc +rescue LoadError + ActiveSupport::Multibyte::Chars.handler = ActiveSupport::Multibyte::Handlers::UTF8Handler +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/generators/generate_tables.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/generators/generate_tables.rb new file mode 100644 index 000000000..7f807585c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/generators/generate_tables.rb @@ -0,0 +1,149 @@ +#!/usr/bin/env ruby +begin + require File.dirname(__FILE__) + '/../../../active_support' +rescue IOError +end +require 'open-uri' +require 'tmpdir' + +module ActiveSupport::Multibyte::Handlers #:nodoc: + class UnicodeDatabase #:nodoc: + def self.load + [Hash.new(Codepoint.new),[],{},{}] + end + end + + class UnicodeTableGenerator #:nodoc: + BASE_URI = "http://www.unicode.org/Public/#{ActiveSupport::Multibyte::UNICODE_VERSION}/ucd/" + SOURCES = { + :codepoints => BASE_URI + 'UnicodeData.txt', + :composition_exclusion => BASE_URI + 'CompositionExclusions.txt', + :grapheme_break_property => BASE_URI + 'auxiliary/GraphemeBreakProperty.txt', + :cp1252 => 'http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT' + } + + def initialize + @ucd = UnicodeDatabase.new + + default = Codepoint.new + default.combining_class = 0 + default.uppercase_mapping = 0 + default.lowercase_mapping = 0 + @ucd.codepoints = Hash.new(default) + + @ucd.composition_exclusion = [] + @ucd.composition_map = {} + @ucd.boundary = {} + @ucd.cp1252 = {} + end + + def parse_codepoints(line) + codepoint = Codepoint.new + raise "Could not parse input." unless line =~ /^ + ([0-9A-F]+); # code + ([^;]+); # name + ([A-Z]+); # general category + ([0-9]+); # canonical combining class + ([A-Z]+); # bidi class + (<([A-Z]*)>)? # decomposition type + ((\ ?[0-9A-F]+)*); # decompomposition mapping + ([0-9]*); # decimal digit + ([0-9]*); # digit + ([^;]*); # numeric + ([YN]*); # bidi mirrored + ([^;]*); # unicode 1.0 name + ([^;]*); # iso comment + ([0-9A-F]*); # simple uppercase mapping + ([0-9A-F]*); # simple lowercase mapping + ([0-9A-F]*)$/ix # simple titlecase mapping + codepoint.code = $1.hex + #codepoint.name = $2 + #codepoint.category = $3 + codepoint.combining_class = Integer($4) + #codepoint.bidi_class = $5 + codepoint.decomp_type = $7 + codepoint.decomp_mapping = ($8=='') ? nil : $8.split.collect { |element| element.hex } + #codepoint.bidi_mirrored = ($13=='Y') ? true : false + codepoint.uppercase_mapping = ($16=='') ? 0 : $16.hex + codepoint.lowercase_mapping = ($17=='') ? 0 : $17.hex + #codepoint.titlecase_mapping = ($18=='') ? nil : $18.hex + @ucd.codepoints[codepoint.code] = codepoint + end + + def parse_grapheme_break_property(line) + if line =~ /^([0-9A-F\.]+)\s*;\s*([\w]+)\s*#/ + type = $2.downcase.intern + @ucd.boundary[type] ||= [] + if $1.include? '..' + parts = $1.split '..' + @ucd.boundary[type] << (parts[0].hex..parts[1].hex) + else + @ucd.boundary[type] << $1.hex + end + end + end + + def parse_composition_exclusion(line) + if line =~ /^([0-9A-F]+)/i + @ucd.composition_exclusion << $1.hex + end + end + + def parse_cp1252(line) + if line =~ /^([0-9A-Fx]+)\s([0-9A-Fx]+)/i + @ucd.cp1252[$1.hex] = $2.hex + end + end + + def create_composition_map + @ucd.codepoints.each do |_, cp| + if !cp.nil? and cp.combining_class == 0 and cp.decomp_type.nil? and !cp.decomp_mapping.nil? and cp.decomp_mapping.length == 2 and @ucd[cp.decomp_mapping[0]].combining_class == 0 and !@ucd.composition_exclusion.include?(cp.code) + @ucd.composition_map[cp.decomp_mapping[0]] ||= {} + @ucd.composition_map[cp.decomp_mapping[0]][cp.decomp_mapping[1]] = cp.code + end + end + end + + def normalize_boundary_map + @ucd.boundary.each do |k,v| + if [:lf, :cr].include? k + @ucd.boundary[k] = v[0] + end + end + end + + def parse + SOURCES.each do |type, url| + filename = File.join(Dir.tmpdir, "#{url.split('/').last}") + unless File.exist?(filename) + $stderr.puts "Downloading #{url.split('/').last}" + File.open(filename, 'wb') do |target| + open(url) do |source| + source.each_line { |line| target.write line } + end + end + end + File.open(filename) do |file| + file.each_line { |line| send "parse_#{type}".intern, line } + end + end + create_composition_map + normalize_boundary_map + end + + def dump_to(filename) + File.open(filename, 'wb') do |f| + f.write Marshal.dump([@ucd.codepoints, @ucd.composition_exclusion, @ucd.composition_map, @ucd.boundary, @ucd.cp1252]) + end + end + end +end + +if __FILE__ == $0 + filename = ActiveSupport::Multibyte::Handlers::UnicodeDatabase.filename + generator = ActiveSupport::Multibyte::Handlers::UnicodeTableGenerator.new + generator.parse + print "Writing to: #{filename}" + generator.dump_to filename + puts " (#{File.size(filename)} bytes)" +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/passthru_handler.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/passthru_handler.rb new file mode 100644 index 000000000..916215c2c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/passthru_handler.rb @@ -0,0 +1,9 @@ +# Chars uses this handler when $KCODE is not set to 'UTF8'. Because this handler doesn't define any methods all call +# will be forwarded to String. +class ActiveSupport::Multibyte::Handlers::PassthruHandler #:nodoc: + + # Return the original byteoffset + def self.translate_offset(string, byte_offset) #:nodoc: + byte_offset + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb new file mode 100644 index 000000000..aa9c16f57 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/utf8_handler.rb @@ -0,0 +1,564 @@ +# Contains all the handlers and helper classes +module ActiveSupport::Multibyte::Handlers #:nodoc: + class EncodingError < ArgumentError #:nodoc: + end + + class Codepoint #:nodoc: + attr_accessor :code, :combining_class, :decomp_type, :decomp_mapping, :uppercase_mapping, :lowercase_mapping + end + + class UnicodeDatabase #:nodoc: + attr_writer :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252 + + # self-expiring methods that lazily load the Unicode database and then return the value. + [:codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252].each do |attr_name| + class_eval(<<-EOS, __FILE__, __LINE__) + def #{attr_name} + load + @#{attr_name} + end + EOS + end + + # Shortcut to ucd.codepoints[] + def [](index); codepoints[index]; end + + # Returns the directory in which the data files are stored + def self.dirname + File.dirname(__FILE__) + '/../../values/' + end + + # Returns the filename for the data file for this version + def self.filename + File.expand_path File.join(dirname, "unicode_tables.dat") + end + + # Loads the unicode database and returns all the internal objects of UnicodeDatabase + # Once the values have been loaded, define attr_reader methods for the instance variables. + def load + begin + @codepoints, @composition_exclusion, @composition_map, @boundary, @cp1252 = File.open(self.class.filename, 'rb') { |f| Marshal.load f.read } + rescue Exception => e + raise IOError.new("Couldn't load the unicode tables for UTF8Handler (#{e.message}), handler is unusable") + end + @codepoints ||= Hash.new(Codepoint.new) + @composition_exclusion ||= [] + @composition_map ||= {} + @boundary ||= {} + @cp1252 ||= {} + + # Redefine the === method so we can write shorter rules for grapheme cluster breaks + @boundary.each do |k,_| + @boundary[k].instance_eval do + def ===(other) + detect { |i| i === other } ? true : false + end + end if @boundary[k].kind_of?(Array) + end + + # define attr_reader methods for the instance variables + class << self + attr_reader :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252 + end + end + end + + # UTF8Handler implements Unicode aware operations for strings, these operations will be used by the Chars + # proxy when $KCODE is set to 'UTF8'. + class UTF8Handler + # Hangul character boundaries and properties + HANGUL_SBASE = 0xAC00 + HANGUL_LBASE = 0x1100 + HANGUL_VBASE = 0x1161 + HANGUL_TBASE = 0x11A7 + HANGUL_LCOUNT = 19 + HANGUL_VCOUNT = 21 + HANGUL_TCOUNT = 28 + HANGUL_NCOUNT = HANGUL_VCOUNT * HANGUL_TCOUNT + HANGUL_SCOUNT = 11172 + HANGUL_SLAST = HANGUL_SBASE + HANGUL_SCOUNT + HANGUL_JAMO_FIRST = 0x1100 + HANGUL_JAMO_LAST = 0x11FF + + # All the unicode whitespace + UNICODE_WHITESPACE = [ + (0x0009..0x000D).to_a, # White_Space # Cc [5] <control-0009>..<control-000D> + 0x0020, # White_Space # Zs SPACE + 0x0085, # White_Space # Cc <control-0085> + 0x00A0, # White_Space # Zs NO-BREAK SPACE + 0x1680, # White_Space # Zs OGHAM SPACE MARK + 0x180E, # White_Space # Zs MONGOLIAN VOWEL SEPARATOR + (0x2000..0x200A).to_a, # White_Space # Zs [11] EN QUAD..HAIR SPACE + 0x2028, # White_Space # Zl LINE SEPARATOR + 0x2029, # White_Space # Zp PARAGRAPH SEPARATOR + 0x202F, # White_Space # Zs NARROW NO-BREAK SPACE + 0x205F, # White_Space # Zs MEDIUM MATHEMATICAL SPACE + 0x3000, # White_Space # Zs IDEOGRAPHIC SPACE + ].flatten.freeze + + # BOM (byte order mark) can also be seen as whitespace, it's a non-rendering character used to distinguish + # between little and big endian. This is not an issue in utf-8, so it must be ignored. + UNICODE_LEADERS_AND_TRAILERS = UNICODE_WHITESPACE + [65279] # ZERO-WIDTH NO-BREAK SPACE aka BOM + + # Borrowed from the Kconv library by Shinji KONO - (also as seen on the W3C site) + UTF8_PAT = /\A(?: + [\x00-\x7f] | + [\xc2-\xdf] [\x80-\xbf] | + \xe0 [\xa0-\xbf] [\x80-\xbf] | + [\xe1-\xef] [\x80-\xbf] [\x80-\xbf] | + \xf0 [\x90-\xbf] [\x80-\xbf] [\x80-\xbf] | + [\xf1-\xf3] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] | + \xf4 [\x80-\x8f] [\x80-\xbf] [\x80-\xbf] + )*\z/xn + + # Returns a regular expression pattern that matches the passed Unicode codepoints + def self.codepoints_to_pattern(array_of_codepoints) #:nodoc: + array_of_codepoints.collect{ |e| [e].pack 'U*' }.join('|') + end + UNICODE_TRAILERS_PAT = /(#{codepoints_to_pattern(UNICODE_LEADERS_AND_TRAILERS)})+\Z/ + UNICODE_LEADERS_PAT = /\A(#{codepoints_to_pattern(UNICODE_LEADERS_AND_TRAILERS)})+/ + + class << self + + # /// + # /// BEGIN String method overrides + # /// + + # Inserts the passed string at specified codepoint offsets + def insert(str, offset, fragment) + str.replace( + u_unpack(str).insert( + offset, + u_unpack(fragment) + ).flatten.pack('U*') + ) + end + + # Returns the position of the passed argument in the string, counting in codepoints + def index(str, *args) + bidx = str.index(*args) + bidx ? (u_unpack(str.slice(0...bidx)).size) : nil + end + + # Works just like the indexed replace method on string, except instead of byte offsets you specify + # character offsets. + # + # Example: + # + # s = "Müller" + # s.chars[2] = "e" # Replace character with offset 2 + # s # => "Müeler" + # + # s = "Müller" + # s.chars[1, 2] = "ö" # Replace 2 characters at character offset 1 + # s # => "Möler" + def []=(str, *args) + replace_by = args.pop + # Indexed replace with regular expressions already works + return str[*args] = replace_by if args.first.is_a?(Regexp) + result = u_unpack(str) + if args[0].is_a?(Fixnum) + raise IndexError, "index #{args[0]} out of string" if args[0] >= result.length + min = args[0] + max = args[1].nil? ? min : (min + args[1] - 1) + range = Range.new(min, max) + replace_by = [replace_by].pack('U') if replace_by.is_a?(Fixnum) + elsif args.first.is_a?(Range) + raise RangeError, "#{args[0]} out of range" if args[0].min >= result.length + range = args[0] + else + needle = args[0].to_s + min = index(str, needle) + max = min + length(needle) - 1 + range = Range.new(min, max) + end + result[range] = u_unpack(replace_by) + str.replace(result.pack('U*')) + end + + # Works just like String#rjust, only integer specifies characters instead of bytes. + # + # Example: + # + # "¾ cup".chars.rjust(8).to_s + # # => " ¾ cup" + # + # "¾ cup".chars.rjust(8, " ").to_s # Use non-breaking whitespace + # # => " ¾ cup" + def rjust(str, integer, padstr=' ') + justify(str, integer, :right, padstr) + end + + # Works just like String#ljust, only integer specifies characters instead of bytes. + # + # Example: + # + # "¾ cup".chars.rjust(8).to_s + # # => "¾ cup " + # + # "¾ cup".chars.rjust(8, " ").to_s # Use non-breaking whitespace + # # => "¾ cup " + def ljust(str, integer, padstr=' ') + justify(str, integer, :left, padstr) + end + + # Works just like String#center, only integer specifies characters instead of bytes. + # + # Example: + # + # "¾ cup".chars.center(8).to_s + # # => " ¾ cup " + # + # "¾ cup".chars.center(8, " ").to_s # Use non-breaking whitespace + # # => " ¾ cup " + def center(str, integer, padstr=' ') + justify(str, integer, :center, padstr) + end + + # Does Unicode-aware rstrip + def rstrip(str) + str.gsub(UNICODE_TRAILERS_PAT, '') + end + + # Does Unicode-aware lstrip + def lstrip(str) + str.gsub(UNICODE_LEADERS_PAT, '') + end + + # Removed leading and trailing whitespace + def strip(str) + str.gsub(UNICODE_LEADERS_PAT, '').gsub(UNICODE_TRAILERS_PAT, '') + end + + # Returns the number of codepoints in the string + def size(str) + u_unpack(str).size + end + alias_method :length, :size + + # Reverses codepoints in the string. + def reverse(str) + u_unpack(str).reverse.pack('U*') + end + + # Implements Unicode-aware slice with codepoints. Slicing on one point returns the codepoints for that + # character. + def slice(str, *args) + if args.size > 2 + raise ArgumentError, "wrong number of arguments (#{args.size} for 1)" # Do as if we were native + elsif (args.size == 2 && !(args.first.is_a?(Numeric) || args.first.is_a?(Regexp))) + raise TypeError, "cannot convert #{args.first.class} into Integer" # Do as if we were native + elsif (args.size == 2 && !args[1].is_a?(Numeric)) + raise TypeError, "cannot convert #{args[1].class} into Integer" # Do as if we were native + elsif args[0].kind_of? Range + cps = u_unpack(str).slice(*args) + cps.nil? ? nil : cps.pack('U*') + elsif args[0].kind_of? Regexp + str.slice(*args) + elsif args.size == 1 && args[0].kind_of?(Numeric) + u_unpack(str)[args[0]] + else + u_unpack(str).slice(*args).pack('U*') + end + end + alias_method :[], :slice + + # Convert characters in the string to uppercase + def upcase(str); to_case :uppercase_mapping, str; end + + # Convert characters in the string to lowercase + def downcase(str); to_case :lowercase_mapping, str; end + + # Returns a copy of +str+ with the first character converted to uppercase and the remainder to lowercase + def capitalize(str) + upcase(slice(str, 0..0)) + downcase(slice(str, 1..-1) || '') + end + + # /// + # /// Extra String methods for unicode operations + # /// + + # Returns the KC normalization of the string by default. NFKC is considered the best normalization form for + # passing strings to databases and validations. + # + # * <tt>str</tt> - The string to perform normalization on. + # * <tt>form</tt> - The form you want to normalize in. Should be one of the following: + # <tt>:c</tt>, <tt>:kc</tt>, <tt>:d</tt>, or <tt>:kd</tt>. Default is + # ActiveSupport::Multibyte::DEFAULT_NORMALIZATION_FORM. + def normalize(str, form=ActiveSupport::Multibyte::DEFAULT_NORMALIZATION_FORM) + # See http://www.unicode.org/reports/tr15, Table 1 + codepoints = u_unpack(str) + case form + when :d + reorder_characters(decompose_codepoints(:canonical, codepoints)) + when :c + compose_codepoints reorder_characters(decompose_codepoints(:canonical, codepoints)) + when :kd + reorder_characters(decompose_codepoints(:compatability, codepoints)) + when :kc + compose_codepoints reorder_characters(decompose_codepoints(:compatability, codepoints)) + else + raise ArgumentError, "#{form} is not a valid normalization variant", caller + end.pack('U*') + end + + # Perform decomposition on the characters in the string + def decompose(str) + decompose_codepoints(:canonical, u_unpack(str)).pack('U*') + end + + # Perform composition on the characters in the string + def compose(str) + compose_codepoints u_unpack(str).pack('U*') + end + + # /// + # /// BEGIN Helper methods for unicode operation + # /// + + # Used to translate an offset from bytes to characters, for instance one received from a regular expression match + def translate_offset(str, byte_offset) + return nil if byte_offset.nil? + return 0 if str == '' + chunk = str[0..byte_offset] + begin + begin + chunk.unpack('U*').length - 1 + rescue ArgumentError => e + chunk = str[0..(byte_offset+=1)] + # Stop retrying at the end of the string + raise e unless byte_offset < chunk.length + # We damaged a character, retry + retry + end + # Catch the ArgumentError so we can throw our own + rescue ArgumentError + raise EncodingError.new('malformed UTF-8 character') + end + end + + # Checks if the string is valid UTF8. + def consumes?(str) + # Unpack is a little bit faster than regular expressions + begin + str.unpack('U*') + true + rescue ArgumentError + false + end + end + + # Returns the number of grapheme clusters in the string. This method is very likely to be moved or renamed + # in future versions. + def g_length(str) + g_unpack(str).length + end + + # Replaces all the non-utf-8 bytes by their iso-8859-1 or cp1252 equivalent resulting in a valid utf-8 string + def tidy_bytes(str) + str.split(//u).map do |c| + if !UTF8_PAT.match(c) + n = c.unpack('C')[0] + n < 128 ? n.chr : + n < 160 ? [UCD.cp1252[n] || n].pack('U') : + n < 192 ? "\xC2" + n.chr : "\xC3" + (n-64).chr + else + c + end + end.join + end + + protected + + # Detect whether the codepoint is in a certain character class. Primarily used by the + # grapheme cluster support. + def in_char_class?(codepoint, classes) + classes.detect { |c| UCD.boundary[c] === codepoint } ? true : false + end + + # Unpack the string at codepoints boundaries + def u_unpack(str) + begin + str.unpack 'U*' + rescue ArgumentError + raise EncodingError.new('malformed UTF-8 character') + end + end + + # Unpack the string at grapheme boundaries instead of codepoint boundaries + def g_unpack(str) + codepoints = u_unpack(str) + unpacked = [] + pos = 0 + marker = 0 + eoc = codepoints.length + while(pos < eoc) + pos += 1 + previous = codepoints[pos-1] + current = codepoints[pos] + if ( + # CR X LF + one = ( previous == UCD.boundary[:cr] and current == UCD.boundary[:lf] ) or + # L X (L|V|LV|LVT) + two = ( UCD.boundary[:l] === previous and in_char_class?(current, [:l,:v,:lv,:lvt]) ) or + # (LV|V) X (V|T) + three = ( in_char_class?(previous, [:lv,:v]) and in_char_class?(current, [:v,:t]) ) or + # (LVT|T) X (T) + four = ( in_char_class?(previous, [:lvt,:t]) and UCD.boundary[:t] === current ) or + # X Extend + five = (UCD.boundary[:extend] === current) + ) + else + unpacked << codepoints[marker..pos-1] + marker = pos + end + end + unpacked + end + + # Reverse operation of g_unpack + def g_pack(unpacked) + unpacked.flatten + end + + # Justifies a string in a certain way. Valid values for <tt>way</tt> are <tt>:right</tt>, <tt>:left</tt> and + # <tt>:center</tt>. Is primarily used as a helper method by <tt>rjust</tt>, <tt>ljust</tt> and <tt>center</tt>. + def justify(str, integer, way, padstr=' ') + raise ArgumentError, "zero width padding" if padstr.length == 0 + padsize = integer - size(str) + padsize = padsize > 0 ? padsize : 0 + case way + when :right + str.dup.insert(0, padding(padsize, padstr)) + when :left + str.dup.insert(-1, padding(padsize, padstr)) + when :center + lpad = padding((padsize / 2.0).floor, padstr) + rpad = padding((padsize / 2.0).ceil, padstr) + str.dup.insert(0, lpad).insert(-1, rpad) + end + end + + # Generates a padding string of a certain size. + def padding(padsize, padstr=' ') + if padsize != 0 + slice(padstr * ((padsize / size(padstr)) + 1), 0, padsize) + else + '' + end + end + + # Convert characters to a different case + def to_case(way, str) + u_unpack(str).map do |codepoint| + cp = UCD[codepoint] + unless cp.nil? + ncp = cp.send(way) + ncp > 0 ? ncp : codepoint + else + codepoint + end + end.pack('U*') + end + + # Re-order codepoints so the string becomes canonical + def reorder_characters(codepoints) + length = codepoints.length- 1 + pos = 0 + while pos < length do + cp1, cp2 = UCD[codepoints[pos]], UCD[codepoints[pos+1]] + if (cp1.combining_class > cp2.combining_class) && (cp2.combining_class > 0) + codepoints[pos..pos+1] = cp2.code, cp1.code + pos += (pos > 0 ? -1 : 1) + else + pos += 1 + end + end + codepoints + end + + # Decompose composed characters to the decomposed form + def decompose_codepoints(type, codepoints) + codepoints.inject([]) do |decomposed, cp| + # if it's a hangul syllable starter character + if HANGUL_SBASE <= cp and cp < HANGUL_SLAST + sindex = cp - HANGUL_SBASE + ncp = [] # new codepoints + ncp << HANGUL_LBASE + sindex / HANGUL_NCOUNT + ncp << HANGUL_VBASE + (sindex % HANGUL_NCOUNT) / HANGUL_TCOUNT + tindex = sindex % HANGUL_TCOUNT + ncp << (HANGUL_TBASE + tindex) unless tindex == 0 + decomposed.concat ncp + # if the codepoint is decomposable in with the current decomposition type + elsif (ncp = UCD[cp].decomp_mapping) and (!UCD[cp].decomp_type || type == :compatability) + decomposed.concat decompose_codepoints(type, ncp.dup) + else + decomposed << cp + end + end + end + + # Compose decomposed characters to the composed form + def compose_codepoints(codepoints) + pos = 0 + eoa = codepoints.length - 1 + starter_pos = 0 + starter_char = codepoints[0] + previous_combining_class = -1 + while pos < eoa + pos += 1 + lindex = starter_char - HANGUL_LBASE + # -- Hangul + if 0 <= lindex and lindex < HANGUL_LCOUNT + vindex = codepoints[starter_pos+1] - HANGUL_VBASE rescue vindex = -1 + if 0 <= vindex and vindex < HANGUL_VCOUNT + tindex = codepoints[starter_pos+2] - HANGUL_TBASE rescue tindex = -1 + if 0 <= tindex and tindex < HANGUL_TCOUNT + j = starter_pos + 2 + eoa -= 2 + else + tindex = 0 + j = starter_pos + 1 + eoa -= 1 + end + codepoints[starter_pos..j] = (lindex * HANGUL_VCOUNT + vindex) * HANGUL_TCOUNT + tindex + HANGUL_SBASE + end + starter_pos += 1 + starter_char = codepoints[starter_pos] + # -- Other characters + else + current_char = codepoints[pos] + current = UCD[current_char] + if current.combining_class > previous_combining_class + if ref = UCD.composition_map[starter_char] + composition = ref[current_char] + else + composition = nil + end + unless composition.nil? + codepoints[starter_pos] = composition + starter_char = composition + codepoints.delete_at pos + eoa -= 1 + pos -= 1 + previous_combining_class = -1 + else + previous_combining_class = current.combining_class + end + else + previous_combining_class = current.combining_class + end + if current.combining_class == 0 + starter_pos = pos + starter_char = codepoints[pos] + end + end + end + codepoints + end + + # UniCode Database + UCD = UnicodeDatabase.new + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/utf8_handler_proc.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/utf8_handler_proc.rb new file mode 100644 index 000000000..f10eecc62 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/multibyte/handlers/utf8_handler_proc.rb @@ -0,0 +1,43 @@ +# Methods in this handler call functions in the utf8proc ruby extension. These are significantly faster than the +# pure ruby versions. Chars automatically uses this handler when it can load the utf8proc extension. For +# documentation on handler methods see UTF8Handler. +class ActiveSupport::Multibyte::Handlers::UTF8HandlerProc < ActiveSupport::Multibyte::Handlers::UTF8Handler #:nodoc: + class << self + def normalize(str, form=ActiveSupport::Multibyte::DEFAULT_NORMALIZATION_FORM) #:nodoc: + codepoints = str.unpack('U*') + case form + when :d + utf8map(str, :stable) + when :c + utf8map(str, :stable, :compose) + when :kd + utf8map(str, :stable, :compat) + when :kc + utf8map(str, :stable, :compose, :compat) + else + raise ArgumentError, "#{form} is not a valid normalization variant", caller + end + end + + def decompose(str) #:nodoc: + utf8map(str, :stable) + end + + def downcase(str) #:nodoc:c + utf8map(str, :casefold) + end + + protected + + def utf8map(str, *option_array) #:nodoc: + options = 0 + option_array.each do |option| + flag = Utf8Proc::Options[option] + raise ArgumentError, "Unknown argument given to utf8map." unless + flag + options |= flag + end + return Utf8Proc::utf8map(str, options) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/option_merger.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/option_merger.rb new file mode 100644 index 000000000..1a4ff9db9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/option_merger.rb @@ -0,0 +1,25 @@ +module ActiveSupport + class OptionMerger #:nodoc: + instance_methods.each do |method| + undef_method(method) if method !~ /^(__|instance_eval|class|object_id)/ + end + + def initialize(context, options) + @context, @options = context, options + end + + private + def method_missing(method, *arguments, &block) + merge_argument_options! arguments + @context.send!(method, *arguments, &block) + end + + def merge_argument_options!(arguments) + arguments << if arguments.last.respond_to? :to_hash + @options.merge(arguments.pop) + else + @options.dup + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/ordered_hash.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/ordered_hash.rb new file mode 100644 index 000000000..6993621ef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/ordered_hash.rb @@ -0,0 +1,43 @@ +# OrderedHash is namespaced to prevent conflicts with other implementations +module ActiveSupport + # Hash is ordered in Ruby 1.9! + if RUBY_VERSION >= '1.9' + OrderedHash = ::Hash + else + class OrderedHash < Array #:nodoc: + def []=(key, value) + if pair = assoc(key) + pair.pop + pair << value + else + self << [key, value] + end + end + + def [](key) + pair = assoc(key) + pair ? pair.last : nil + end + + def delete(key) + pair = assoc(key) + pair ? array_index = index(pair) : nil + array_index ? delete_at(array_index).last : nil + end + + def keys + collect { |key, value| key } + end + + def values + collect { |key, value| value } + end + + def to_hash + returning({}) do |hash| + each { |array| hash[array[0]] = array[1] } + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/ordered_options.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/ordered_options.rb new file mode 100644 index 000000000..306376e9a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/ordered_options.rb @@ -0,0 +1,17 @@ +class OrderedOptions < ActiveSupport::OrderedHash #:nodoc: + def []=(key, value) + super(key.to_sym, value) + end + + def [](key) + super(key.to_sym) + end + + def method_missing(name, *args) + if name.to_s =~ /(.*)=$/ + self[$1.to_sym] = args.first + else + self[name] + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/test_case.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/test_case.rb new file mode 100644 index 000000000..67cde1556 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/test_case.rb @@ -0,0 +1,13 @@ +require 'test/unit/testcase' +require 'active_support/testing/setup_and_teardown' +require 'active_support/testing/default' + +# TODO: move to core_ext +class Test::Unit::TestCase #:nodoc: + include ActiveSupport::Testing::SetupAndTeardown +end + +module ActiveSupport + class TestCase < Test::Unit::TestCase + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/testing/default.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/testing/default.rb new file mode 100644 index 000000000..a0bd6303c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/testing/default.rb @@ -0,0 +1,9 @@ +module ActiveSupport + module Testing + module Default #:nodoc: + # Placeholder so test/unit ignores test cases without any tests. + def default_test + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/testing/setup_and_teardown.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/testing/setup_and_teardown.rb new file mode 100644 index 000000000..ed8e34510 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/testing/setup_and_teardown.rb @@ -0,0 +1,93 @@ +module ActiveSupport + module Testing + module SetupAndTeardown + # For compatibility with Ruby < 1.8.6 + PASSTHROUGH_EXCEPTIONS = + if defined?(Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS) + Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS + else + [NoMemoryError, SignalException, Interrupt, SystemExit] + end + + def self.included(base) + base.send :include, ActiveSupport::Callbacks + base.define_callbacks :setup, :teardown + + begin + require 'mocha' + base.alias_method_chain :run, :callbacks_and_mocha + rescue LoadError + base.alias_method_chain :run, :callbacks + end + end + + # This redefinition is unfortunate but test/unit shows us no alternative. + def run_with_callbacks(result) #:nodoc: + return if @method_name.to_s == "default_test" + + yield(Test::Unit::TestCase::STARTED, name) + @_result = result + begin + run_callbacks :setup + setup + __send__(@method_name) + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue *PASSTHROUGH_EXCEPTIONS + raise + rescue Exception + add_error($!) + ensure + begin + teardown + run_callbacks :teardown, :enumerator => :reverse_each + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue *PASSTHROUGH_EXCEPTIONS + raise + rescue Exception + add_error($!) + end + end + result.add_run + yield(Test::Unit::TestCase::FINISHED, name) + end + + # Doubly unfortunate: mocha does the same so we have to hax their hax. + def run_with_callbacks_and_mocha(result) + return if @method_name.to_s == "default_test" + + yield(Test::Unit::TestCase::STARTED, name) + @_result = result + begin + mocha_setup + begin + run_callbacks :setup + setup + __send__(@method_name) + mocha_verify { add_assertion } + rescue Mocha::ExpectationError => e + add_failure(e.message, e.backtrace) + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue StandardError, ScriptError + add_error($!) + ensure + begin + teardown + run_callbacks :teardown, :enumerator => :reverse_each + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue StandardError, ScriptError + add_error($!) + end + end + ensure + mocha_teardown + end + result.add_run + yield(Test::Unit::TestCase::FINISHED, name) + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/time_with_zone.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/time_with_zone.rb new file mode 100644 index 000000000..bfc5b1603 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/time_with_zone.rb @@ -0,0 +1,283 @@ +require 'tzinfo' +module ActiveSupport + # A Time-like class that can represent a time in any time zone. Necessary because standard Ruby Time instances are + # limited to UTC and the system's <tt>ENV['TZ']</tt> zone. + # + # You shouldn't ever need to create a TimeWithZone instance directly via <tt>new</tt> -- instead, Rails provides the methods + # +local+, +parse+, +at+ and +now+ on TimeZone instances, and +in_time_zone+ on Time and DateTime instances, for a more + # user-friendly syntax. Examples: + # + # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' + # Time.zone.local(2007, 2, 10, 15, 30, 45) # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # Time.zone.parse('2007-02-01 15:30:45') # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # Time.zone.at(1170361845) # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # Time.zone.now # => Sun, 18 May 2008 13:07:55 EDT -04:00 + # Time.utc(2007, 2, 10, 20, 30, 45).in_time_zone # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # + # See TimeZone and ActiveSupport::CoreExtensions::Time::Zones for further documentation for these methods. + # + # TimeWithZone instances implement the same API as Ruby Time instances, so that Time and TimeWithZone instances are interchangable. Examples: + # + # t = Time.zone.now # => Sun, 18 May 2008 13:27:25 EDT -04:00 + # t.hour # => 13 + # t.dst? # => true + # t.utc_offset # => -14400 + # t.zone # => "EDT" + # t.to_s(:rfc822) # => "Sun, 18 May 2008 13:27:25 -0400" + # t + 1.day # => Mon, 19 May 2008 13:27:25 EDT -04:00 + # t.beginning_of_year # => Tue, 01 Jan 2008 00:00:00 EST -05:00 + # t > Time.utc(1999) # => true + # t.is_a?(Time) # => true + # t.is_a?(ActiveSupport::TimeWithZone) # => true + class TimeWithZone + include Comparable + attr_reader :time_zone + + def initialize(utc_time, time_zone, local_time = nil, period = nil) + @utc, @time_zone, @time = utc_time, time_zone, local_time + @period = @utc ? period : get_period_and_ensure_valid_local_time + end + + # Returns a Time or DateTime instance that represents the time in +time_zone+. + def time + @time ||= period.to_local(@utc) + end + + # Returns a Time or DateTime instance that represents the time in UTC. + def utc + @utc ||= period.to_utc(@time) + end + alias_method :comparable_time, :utc + alias_method :getgm, :utc + alias_method :getutc, :utc + alias_method :gmtime, :utc + + # Returns the underlying TZInfo::TimezonePeriod. + def period + @period ||= time_zone.period_for_utc(@utc) + end + + # Returns the simultaneous time in <tt>Time.zone</tt>, or the specified zone. + def in_time_zone(new_zone = ::Time.zone) + return self if time_zone == new_zone + utc.in_time_zone(new_zone) + end + + # Returns a <tt>Time.local()</tt> instance of the simultaneous time in your system's <tt>ENV['TZ']</tt> zone + def localtime + utc.getlocal + end + alias_method :getlocal, :localtime + + def dst? + period.dst? + end + alias_method :isdst, :dst? + + def utc? + time_zone.name == 'UTC' + end + alias_method :gmt?, :utc? + + def utc_offset + period.utc_total_offset + end + alias_method :gmt_offset, :utc_offset + alias_method :gmtoff, :utc_offset + + def formatted_offset(colon = true, alternate_utc_string = nil) + utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Time uses +zone+ to display the time zone abbreviation, so we're duck-typing it. + def zone + period.zone_identifier.to_s + end + + def inspect + "#{time.strftime('%a, %d %b %Y %H:%M:%S')} #{zone} #{formatted_offset}" + end + + def xmlschema + "#{time.strftime("%Y-%m-%dT%H:%M:%S")}#{formatted_offset(true, 'Z')}" + end + alias_method :iso8601, :xmlschema + + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + xmlschema.inspect + else + %("#{time.strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)}") + end + end + + def to_yaml(options = {}) + if options.kind_of?(YAML::Emitter) + utc.to_yaml(options) + else + time.to_yaml(options).gsub('Z', formatted_offset(true, 'Z')) + end + end + + def httpdate + utc.httpdate + end + + def rfc2822 + to_s(:rfc822) + end + alias_method :rfc822, :rfc2822 + + # <tt>:db</tt> format outputs time in UTC; all others output time in local. + # Uses TimeWithZone's +strftime+, so <tt>%Z</tt> and <tt>%z</tt> work correctly. + def to_s(format = :default) + return utc.to_s(format) if format == :db + if formatter = ::Time::DATE_FORMATS[format] + formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter) + else + "#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby 1.9 Time#to_s format + end + end + + # Replaces <tt>%Z</tt> and <tt>%z</tt> directives with +zone+ and +formatted_offset+, respectively, before passing to + # Time#strftime, so that zone information is correct + def strftime(format) + format = format.gsub('%Z', zone).gsub('%z', formatted_offset(false)) + time.strftime(format) + end + + # Use the time in UTC for comparisons. + def <=>(other) + utc <=> other + end + + def between?(min, max) + utc.between?(min, max) + end + + def eql?(other) + utc == other + end + + # If wrapped +time+ is a DateTime, use DateTime#since instead of <tt>+</tt>. + # Otherwise, just pass on to +method_missing+. + def +(other) + result = utc.acts_like?(:date) ? utc.since(other) : utc + other rescue utc.since(other) + result.in_time_zone(time_zone) + end + + # If a time-like object is passed in, compare it with +utc+. + # Else if wrapped +time+ is a DateTime, use DateTime#ago instead of DateTime#-. + # Otherwise, just pass on to +method_missing+. + def -(other) + if other.acts_like?(:time) + utc - other + else + result = utc.acts_like?(:date) ? utc.ago(other) : utc - other rescue utc.ago(other) + result.in_time_zone(time_zone) + end + end + + def since(other) + utc.since(other).in_time_zone(time_zone) + end + + def ago(other) + utc.ago(other).in_time_zone(time_zone) + end + + def advance(options) + utc.advance(options).in_time_zone(time_zone) + end + + %w(year mon month day mday hour min sec).each do |method_name| + class_eval <<-EOV + def #{method_name} + time.#{method_name} + end + EOV + end + + def usec + time.respond_to?(:usec) ? time.usec : 0 + end + + def to_a + [time.sec, time.min, time.hour, time.day, time.mon, time.year, time.wday, time.yday, dst?, zone] + end + + def to_f + utc.to_f + end + + def to_i + utc.to_i + end + alias_method :hash, :to_i + alias_method :tv_sec, :to_i + + # A TimeWithZone acts like a Time, so just return +self+. + def to_time + self + end + + def to_datetime + utc.to_datetime.new_offset(Rational(utc_offset, 86_400)) + end + + # So that +self+ <tt>acts_like?(:time)</tt>. + def acts_like_time? + true + end + + # Say we're a Time to thwart type checking. + def is_a?(klass) + klass == ::Time || super + end + alias_method :kind_of?, :is_a? + + # Neuter freeze because freezing can cause problems with lazy loading of attributes. + def freeze + self + end + + def marshal_dump + [utc, time_zone.name, time] + end + + def marshal_load(variables) + initialize(variables[0], ::Time.send!(:get_zone, variables[1]), variables[2]) + end + + # Ensure proxy class responds to all methods that underlying time instance responds to. + def respond_to?(sym, include_priv = false) + # consistently respond false to acts_like?(:date), regardless of whether #time is a Time or DateTime + return false if sym.to_s == 'acts_like_date?' + super || time.respond_to?(sym, include_priv) + end + + # Send the missing method to +time+ instance, and wrap result in a new TimeWithZone with the existing +time_zone+. + def method_missing(sym, *args, &block) + result = time.__send__(sym, *args, &block) + result.acts_like?(:time) ? self.class.new(nil, time_zone, result) : result + end + + private + def get_period_and_ensure_valid_local_time + # we don't want a Time.local instance enforcing its own DST rules as well, + # so transfer time values to a utc constructor if necessary + @time = transfer_time_values_to_utc_constructor(@time) unless @time.utc? + begin + @time_zone.period_for_local(@time) + rescue ::TZInfo::PeriodNotFound + # time is in the "spring forward" hour gap, so we're moving the time forward one hour and trying again + @time += 1.hour + retry + end + end + + def transfer_time_values_to_utc_constructor(time) + ::Time.utc_time(time.year, time.month, time.day, time.hour, time.min, time.sec, time.respond_to?(:usec) ? time.usec : 0) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/values/time_zone.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/values/time_zone.rb new file mode 100644 index 000000000..a71c819fb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/values/time_zone.rb @@ -0,0 +1,394 @@ +# The TimeZone class serves as a wrapper around TZInfo::Timezone instances. It allows us to do the following: +# +# * Limit the set of zones provided by TZInfo to a meaningful subset of 142 zones. +# * Retrieve and display zones with a friendlier name (e.g., "Eastern Time (US & Canada)" instead of "America/New_York"). +# * Lazily load TZInfo::Timezone instances only when they're needed. +# * Create ActiveSupport::TimeWithZone instances via TimeZone's +local+, +parse+, +at+ and +now+ methods. +# +# If you set <tt>config.time_zone</tt> in the Rails Initializer, you can access this TimeZone object via <tt>Time.zone</tt>: +# +# # environment.rb: +# Rails::Initializer.run do |config| +# config.time_zone = "Eastern Time (US & Canada)" +# end +# +# Time.zone # => #<TimeZone:0x514834...> +# Time.zone.name # => "Eastern Time (US & Canada)" +# Time.zone.now # => Sun, 18 May 2008 14:30:44 EDT -04:00 +# +# The version of TZInfo bundled with Active Support only includes the definitions necessary to support the zones +# defined by the TimeZone class. If you need to use zones that aren't defined by TimeZone, you'll need to install the TZInfo gem +# (if a recent version of the gem is installed locally, this will be used instead of the bundled version.) +class TimeZone + unless const_defined?(:MAPPING) + # Keys are Rails TimeZone names, values are TZInfo identifiers + MAPPING = { + "International Date Line West" => "Pacific/Midway", + "Midway Island" => "Pacific/Midway", + "Samoa" => "Pacific/Pago_Pago", + "Hawaii" => "Pacific/Honolulu", + "Alaska" => "America/Juneau", + "Pacific Time (US & Canada)" => "America/Los_Angeles", + "Tijuana" => "America/Tijuana", + "Mountain Time (US & Canada)" => "America/Denver", + "Arizona" => "America/Phoenix", + "Chihuahua" => "America/Chihuahua", + "Mazatlan" => "America/Mazatlan", + "Central Time (US & Canada)" => "America/Chicago", + "Saskatchewan" => "America/Regina", + "Guadalajara" => "America/Mexico_City", + "Mexico City" => "America/Mexico_City", + "Monterrey" => "America/Monterrey", + "Central America" => "America/Guatemala", + "Eastern Time (US & Canada)" => "America/New_York", + "Indiana (East)" => "America/Indiana/Indianapolis", + "Bogota" => "America/Bogota", + "Lima" => "America/Lima", + "Quito" => "America/Lima", + "Atlantic Time (Canada)" => "America/Halifax", + "Caracas" => "America/Caracas", + "La Paz" => "America/La_Paz", + "Santiago" => "America/Santiago", + "Newfoundland" => "America/St_Johns", + "Brasilia" => "America/Argentina/Buenos_Aires", + "Buenos Aires" => "America/Argentina/Buenos_Aires", + "Georgetown" => "America/Argentina/San_Juan", + "Greenland" => "America/Godthab", + "Mid-Atlantic" => "Atlantic/South_Georgia", + "Azores" => "Atlantic/Azores", + "Cape Verde Is." => "Atlantic/Cape_Verde", + "Dublin" => "Europe/Dublin", + "Edinburgh" => "Europe/Dublin", + "Lisbon" => "Europe/Lisbon", + "London" => "Europe/London", + "Casablanca" => "Africa/Casablanca", + "Monrovia" => "Africa/Monrovia", + "UTC" => "Etc/UTC", + "Belgrade" => "Europe/Belgrade", + "Bratislava" => "Europe/Bratislava", + "Budapest" => "Europe/Budapest", + "Ljubljana" => "Europe/Ljubljana", + "Prague" => "Europe/Prague", + "Sarajevo" => "Europe/Sarajevo", + "Skopje" => "Europe/Skopje", + "Warsaw" => "Europe/Warsaw", + "Zagreb" => "Europe/Zagreb", + "Brussels" => "Europe/Brussels", + "Copenhagen" => "Europe/Copenhagen", + "Madrid" => "Europe/Madrid", + "Paris" => "Europe/Paris", + "Amsterdam" => "Europe/Amsterdam", + "Berlin" => "Europe/Berlin", + "Bern" => "Europe/Berlin", + "Rome" => "Europe/Rome", + "Stockholm" => "Europe/Stockholm", + "Vienna" => "Europe/Vienna", + "West Central Africa" => "Africa/Algiers", + "Bucharest" => "Europe/Bucharest", + "Cairo" => "Africa/Cairo", + "Helsinki" => "Europe/Helsinki", + "Kyev" => "Europe/Kiev", + "Riga" => "Europe/Riga", + "Sofia" => "Europe/Sofia", + "Tallinn" => "Europe/Tallinn", + "Vilnius" => "Europe/Vilnius", + "Athens" => "Europe/Athens", + "Istanbul" => "Europe/Istanbul", + "Minsk" => "Europe/Minsk", + "Jerusalem" => "Asia/Jerusalem", + "Harare" => "Africa/Harare", + "Pretoria" => "Africa/Johannesburg", + "Moscow" => "Europe/Moscow", + "St. Petersburg" => "Europe/Moscow", + "Volgograd" => "Europe/Moscow", + "Kuwait" => "Asia/Kuwait", + "Riyadh" => "Asia/Riyadh", + "Nairobi" => "Africa/Nairobi", + "Baghdad" => "Asia/Baghdad", + "Tehran" => "Asia/Tehran", + "Abu Dhabi" => "Asia/Muscat", + "Muscat" => "Asia/Muscat", + "Baku" => "Asia/Baku", + "Tbilisi" => "Asia/Tbilisi", + "Yerevan" => "Asia/Yerevan", + "Kabul" => "Asia/Kabul", + "Ekaterinburg" => "Asia/Yekaterinburg", + "Islamabad" => "Asia/Karachi", + "Karachi" => "Asia/Karachi", + "Tashkent" => "Asia/Tashkent", + "Chennai" => "Asia/Kolkata", + "Kolkata" => "Asia/Kolkata", + "Mumbai" => "Asia/Kolkata", + "New Delhi" => "Asia/Kolkata", + "Kathmandu" => "Asia/Katmandu", + "Astana" => "Asia/Dhaka", + "Dhaka" => "Asia/Dhaka", + "Sri Jayawardenepura" => "Asia/Dhaka", + "Almaty" => "Asia/Almaty", + "Novosibirsk" => "Asia/Novosibirsk", + "Rangoon" => "Asia/Rangoon", + "Bangkok" => "Asia/Bangkok", + "Hanoi" => "Asia/Bangkok", + "Jakarta" => "Asia/Jakarta", + "Krasnoyarsk" => "Asia/Krasnoyarsk", + "Beijing" => "Asia/Shanghai", + "Chongqing" => "Asia/Chongqing", + "Hong Kong" => "Asia/Hong_Kong", + "Urumqi" => "Asia/Urumqi", + "Kuala Lumpur" => "Asia/Kuala_Lumpur", + "Singapore" => "Asia/Singapore", + "Taipei" => "Asia/Taipei", + "Perth" => "Australia/Perth", + "Irkutsk" => "Asia/Irkutsk", + "Ulaan Bataar" => "Asia/Ulaanbaatar", + "Seoul" => "Asia/Seoul", + "Osaka" => "Asia/Tokyo", + "Sapporo" => "Asia/Tokyo", + "Tokyo" => "Asia/Tokyo", + "Yakutsk" => "Asia/Yakutsk", + "Darwin" => "Australia/Darwin", + "Adelaide" => "Australia/Adelaide", + "Canberra" => "Australia/Melbourne", + "Melbourne" => "Australia/Melbourne", + "Sydney" => "Australia/Sydney", + "Brisbane" => "Australia/Brisbane", + "Hobart" => "Australia/Hobart", + "Vladivostok" => "Asia/Vladivostok", + "Guam" => "Pacific/Guam", + "Port Moresby" => "Pacific/Port_Moresby", + "Magadan" => "Asia/Magadan", + "Solomon Is." => "Asia/Magadan", + "New Caledonia" => "Pacific/Noumea", + "Fiji" => "Pacific/Fiji", + "Kamchatka" => "Asia/Kamchatka", + "Marshall Is." => "Pacific/Majuro", + "Auckland" => "Pacific/Auckland", + "Wellington" => "Pacific/Auckland", + "Nuku'alofa" => "Pacific/Tongatapu" + }.each { |name, zone| name.freeze; zone.freeze } + MAPPING.freeze + end + + include Comparable + attr_reader :name + + # Create a new TimeZone object with the given name and offset. The + # offset is the number of seconds that this time zone is offset from UTC + # (GMT). Seconds were chosen as the offset unit because that is the unit that + # Ruby uses to represent time zone offsets (see Time#utc_offset). + def initialize(name, utc_offset, tzinfo = nil) + @name = name + @utc_offset = utc_offset + @tzinfo = tzinfo + end + + def utc_offset + @utc_offset ||= tzinfo.current_period.utc_offset + end + + # Returns the offset of this time zone as a formatted string, of the + # format "+HH:MM". + def formatted_offset(colon=true, alternate_utc_string = nil) + utc_offset == 0 && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Compare this time zone to the parameter. The two are comapred first on + # their offsets, and then by name. + def <=>(zone) + result = (utc_offset <=> zone.utc_offset) + result = (name <=> zone.name) if result == 0 + result + end + + # Returns a textual representation of this time zone. + def to_s + "(GMT#{formatted_offset}) #{name}" + end + + # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from given values. Example: + # + # Time.zone = "Hawaii" # => "Hawaii" + # Time.zone.local(2007, 2, 1, 15, 30, 45) # => Thu, 01 Feb 2007 15:30:45 HST -10:00 + def local(*args) + time = Time.utc_time(*args) + ActiveSupport::TimeWithZone.new(nil, self, time) + end + + # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from number of seconds since the Unix epoch. Example: + # + # Time.zone = "Hawaii" # => "Hawaii" + # Time.utc(2000).to_f # => 946684800.0 + # Time.zone.at(946684800.0) # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + def at(secs) + utc = Time.at(secs).utc rescue DateTime.civil(1970).since(secs) + utc.in_time_zone(self) + end + + # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from parsed string. Example: + # + # Time.zone = "Hawaii" # => "Hawaii" + # Time.zone.parse('1999-12-31 14:00:00') # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + # + # If upper components are missing from the string, they are supplied from TimeZone#now: + # + # Time.zone.now # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + # Time.zone.parse('22:30:00') # => Fri, 31 Dec 1999 22:30:00 HST -10:00 + def parse(str, now=now) + date_parts = Date._parse(str) + return if date_parts.blank? + time = Time.parse(str, now) rescue DateTime.parse(str) + if date_parts[:offset].nil? + ActiveSupport::TimeWithZone.new(nil, self, time) + else + time.in_time_zone(self) + end + end + + # Returns an ActiveSupport::TimeWithZone instance representing the current time + # in the time zone represented by +self+. Example: + # + # Time.zone = 'Hawaii' # => "Hawaii" + # Time.zone.now # => Wed, 23 Jan 2008 20:24:27 HST -10:00 + def now + Time.now.utc.in_time_zone(self) + end + + # Return the current date in this time zone. + def today + tzinfo.now.to_date + end + + # Adjust the given time to the simultaneous time in the time zone represented by +self+. Returns a + # Time.utc() instance -- if you want an ActiveSupport::TimeWithZone instance, use Time#in_time_zone() instead. + def utc_to_local(time) + tzinfo.utc_to_local(time) + end + + # Adjust the given time to the simultaneous time in UTC. Returns a Time.utc() instance. + def local_to_utc(time, dst=true) + tzinfo.local_to_utc(time, dst) + end + + # Available so that TimeZone instances respond like TZInfo::Timezone instances + def period_for_utc(time) + tzinfo.period_for_utc(time) + end + + # Available so that TimeZone instances respond like TZInfo::Timezone instances + def period_for_local(time, dst=true) + tzinfo.period_for_local(time, dst) + end + + # TODO: Preload instead of lazy load for thread safety + def tzinfo + @tzinfo ||= TZInfo::Timezone.get(MAPPING[name]) + end + + unless const_defined?(:ZONES) + ZONES = [] + ZONES_MAP = {} + [[-39_600, "International Date Line West", "Midway Island", "Samoa" ], + [-36_000, "Hawaii" ], + [-32_400, "Alaska" ], + [-28_800, "Pacific Time (US & Canada)", "Tijuana" ], + [-25_200, "Mountain Time (US & Canada)", "Chihuahua", "Mazatlan", + "Arizona" ], + [-21_600, "Central Time (US & Canada)", "Saskatchewan", "Guadalajara", + "Mexico City", "Monterrey", "Central America" ], + [-18_000, "Eastern Time (US & Canada)", "Indiana (East)", "Bogota", + "Lima", "Quito" ], + [-14_400, "Atlantic Time (Canada)", "Caracas", "La Paz", "Santiago" ], + [-12_600, "Newfoundland" ], + [-10_800, "Brasilia", "Buenos Aires", "Georgetown", "Greenland" ], + [ -7_200, "Mid-Atlantic" ], + [ -3_600, "Azores", "Cape Verde Is." ], + [ 0, "Dublin", "Edinburgh", "Lisbon", "London", "Casablanca", + "Monrovia", "UTC" ], + [ 3_600, "Belgrade", "Bratislava", "Budapest", "Ljubljana", "Prague", + "Sarajevo", "Skopje", "Warsaw", "Zagreb", "Brussels", + "Copenhagen", "Madrid", "Paris", "Amsterdam", "Berlin", + "Bern", "Rome", "Stockholm", "Vienna", + "West Central Africa" ], + [ 7_200, "Bucharest", "Cairo", "Helsinki", "Kyev", "Riga", "Sofia", + "Tallinn", "Vilnius", "Athens", "Istanbul", "Minsk", + "Jerusalem", "Harare", "Pretoria" ], + [ 10_800, "Moscow", "St. Petersburg", "Volgograd", "Kuwait", "Riyadh", + "Nairobi", "Baghdad" ], + [ 12_600, "Tehran" ], + [ 14_400, "Abu Dhabi", "Muscat", "Baku", "Tbilisi", "Yerevan" ], + [ 16_200, "Kabul" ], + [ 18_000, "Ekaterinburg", "Islamabad", "Karachi", "Tashkent" ], + [ 19_800, "Chennai", "Kolkata", "Mumbai", "New Delhi" ], + [ 20_700, "Kathmandu" ], + [ 21_600, "Astana", "Dhaka", "Sri Jayawardenepura", "Almaty", + "Novosibirsk" ], + [ 23_400, "Rangoon" ], + [ 25_200, "Bangkok", "Hanoi", "Jakarta", "Krasnoyarsk" ], + [ 28_800, "Beijing", "Chongqing", "Hong Kong", "Urumqi", + "Kuala Lumpur", "Singapore", "Taipei", "Perth", "Irkutsk", + "Ulaan Bataar" ], + [ 32_400, "Seoul", "Osaka", "Sapporo", "Tokyo", "Yakutsk" ], + [ 34_200, "Darwin", "Adelaide" ], + [ 36_000, "Canberra", "Melbourne", "Sydney", "Brisbane", "Hobart", + "Vladivostok", "Guam", "Port Moresby" ], + [ 39_600, "Magadan", "Solomon Is.", "New Caledonia" ], + [ 43_200, "Fiji", "Kamchatka", "Marshall Is.", "Auckland", + "Wellington" ], + [ 46_800, "Nuku'alofa" ]]. + each do |offset, *places| + places.each do |place| + place.freeze + zone = new(place, offset) + ZONES << zone + ZONES_MAP[place] = zone + end + end + ZONES.sort! + ZONES.freeze + ZONES_MAP.freeze + + US_ZONES = ZONES.find_all { |z| z.name =~ /US|Arizona|Indiana|Hawaii|Alaska/ } + US_ZONES.freeze + end + + class << self + alias_method :create, :new + + # Return a TimeZone instance with the given name, or +nil+ if no + # such TimeZone instance exists. (This exists to support the use of + # this class with the +composed_of+ macro.) + def new(name) + self[name] + end + + # Return an array of all TimeZone objects. There are multiple + # TimeZone objects per time zone, in many cases, to make it easier + # for users to find their own time zone. + def all + ZONES + end + + # Locate a specific time zone object. If the argument is a string, it + # is interpreted to mean the name of the timezone to locate. If it is a + # numeric value it is either the hour offset, or the second offset, of the + # timezone to find. (The first one with that offset will be returned.) + # Returns +nil+ if no such time zone is known to the system. + def [](arg) + case arg + when String + ZONES_MAP[arg] + when Numeric, ActiveSupport::Duration + arg *= 3600 if arg.abs <= 13 + all.find { |z| z.utc_offset == arg.to_i } + else + raise ArgumentError, "invalid argument to TimeZone[]: #{arg.inspect}" + end + end + + # A convenience method for returning a collection of TimeZone objects + # for time zones in the USA. + def us_zones + US_ZONES + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/values/unicode_tables.dat b/vendor/rails-2.1.0/activesupport/lib/active_support/values/unicode_tables.dat Binary files differnew file mode 100644 index 000000000..35edb148c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/values/unicode_tables.dat diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor.rb new file mode 100644 index 000000000..cdbcedc75 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor.rb @@ -0,0 +1,26 @@ +# Prefer gems to the bundled libs. +require 'rubygems' + +begin + gem 'builder', '~> 2.1.2' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/builder-2.1.2" +end + +begin + gem 'xml-simple', '~> 1.0.11' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/xml-simple-1.0.11" +end + +begin + gem 'memcache-client', '~> 1.5.0' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/memcache-client-1.5.0" +end + +begin + gem 'tzinfo', '~> 0.3.8' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/tzinfo-0.3.8" +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb new file mode 100644 index 000000000..da6034d9c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/blankslate.rb @@ -0,0 +1,113 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +###################################################################### +# BlankSlate provides an abstract base class with no predefined +# methods (except for <tt>\_\_send__</tt> and <tt>\_\_id__</tt>). +# BlankSlate is useful as a base class when writing classes that +# depend upon <tt>method_missing</tt> (e.g. dynamic proxies). +# +class BlankSlate + class << self + + # Hide the method named +name+ in the BlankSlate class. Don't + # hide +instance_eval+ or any method beginning with "__". + def hide(name) + if instance_methods.include?(name.to_s) and + name !~ /^(__|instance_eval)/ + @hidden_methods ||= {} + @hidden_methods[name.to_sym] = instance_method(name) + undef_method name + end + end + + def find_hidden_method(name) + @hidden_methods ||= {} + @hidden_methods[name] || superclass.find_hidden_method(name) + end + + # Redefine a previously hidden method so that it may be called on a blank + # slate object. + def reveal(name) + bound_method = nil + unbound_method = find_hidden_method(name) + fail "Don't know how to reveal method '#{name}'" unless unbound_method + define_method(name) do |*args| + bound_method ||= unbound_method.bind(self) + bound_method.call(*args) + end + end + end + + instance_methods.each { |m| hide(m) } +end + +###################################################################### +# Since Ruby is very dynamic, methods added to the ancestors of +# BlankSlate <em>after BlankSlate is defined</em> will show up in the +# list of available BlankSlate methods. We handle this by defining a +# hook in the Object and Kernel classes that will hide any method +# defined after BlankSlate has been loaded. +# +module Kernel + class << self + alias_method :blank_slate_method_added, :method_added + + # Detect method additions to Kernel and remove them in the + # BlankSlate class. + def method_added(name) + result = blank_slate_method_added(name) + return result if self != Kernel + BlankSlate.hide(name) + result + end + end +end + +###################################################################### +# Same as above, except in Object. +# +class Object + class << self + alias_method :blank_slate_method_added, :method_added + + # Detect method additions to Object and remove them in the + # BlankSlate class. + def method_added(name) + result = blank_slate_method_added(name) + return result if self != Object + BlankSlate.hide(name) + result + end + + def find_hidden_method(name) + nil + end + end +end + +###################################################################### +# Also, modules included into Object need to be scanned and have their +# instance methods removed from blank slate. In theory, modules +# included into Kernel would have to be removed as well, but a +# "feature" of Ruby prevents late includes into modules from being +# exposed in the first place. +# +class Module + alias blankslate_original_append_features append_features + def append_features(mod) + result = blankslate_original_append_features(mod) + return result if mod != Object + instance_methods.each do |name| + BlankSlate.hide(name) + end + result + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb new file mode 100644 index 000000000..971927766 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder.rb @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby + +#-- +# Copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'builder/xmlmarkup' +require 'builder/xmlevents' diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb new file mode 100644 index 000000000..2935b6f1d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'blankslate' + +###################################################################### +# BlankSlate has been promoted to a top level name and is now +# available as a standalone gem. We make the name available in the +# Builder namespace for compatibility. +# +module Builder + BlankSlate = ::BlankSlate +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb new file mode 100644 index 000000000..e086a1b13 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/css.rb @@ -0,0 +1,250 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org). +# Copyright 2005 by Scott Barron (scott@elitists.net). +# All rights reserved. +# +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +# +# Much of this is taken from Jim's work in xmlbase.rb and xmlmarkup.rb. +# Documentation has also been copied and pasted and modified to reflect +# that we're building CSS here instead of XML. Jim is conducting the +# orchestra here and I'm just off in the corner playing a flute. +#++ + +# Provide a flexible and easy to use Builder for creating Cascading +# Style Sheets (CSS). + + +require 'builder/blankslate' + +module Builder + + # Create a Cascading Style Sheet (CSS) using Ruby. + # + # Example usage: + # + # css = Builder::CSS.new + # + # text_color = '#7F7F7F' + # preferred_fonts = 'Helvetica, Arial, sans_serif' + # + # css.comment! 'This is our stylesheet' + # css.body { + # background_color '#FAFAFA' + # font_size 'small' + # font_family preferred_fonts + # color text_color + # } + # + # css.id!('navbar') { + # width '500px' + # } + # + # css.class!('navitem') { + # color 'red' + # } + # + # css.a :hover { + # text_decoration 'underline' + # } + # + # css.div(:id => 'menu') { + # background 'green' + # } + # + # css.div(:class => 'foo') { + # background 'red' + # } + # + # This will yield the following stylesheet: + # + # /* This is our stylesheet */ + # body { + # background_color: #FAFAFA; + # font_size: small; + # font_family: Helvetica, Arial, sans_serif; + # color: #7F7F7F; + # } + # + # #navbar { + # width: 500px; + # } + # + # .navitem { + # color: red; + # } + # + # a:hover { + # text_decoration: underline; + # } + # + # div#menu { + # background: green; + # } + # + # div.foo { + # background: red; + # } + # + class CSS < BlankSlate + + # Create a CSS builder. + # + # out:: Object receiving the markup.1 +out+ must respond to + # <tt><<</tt>. + # indent:: Number of spaces used for indentation (0 implies no + # indentation and no line breaks). + # + def initialize(indent=2) + @indent = indent + @target = [] + @parts = [] + @library = {} + end + + def +(part) + _join_with_op! '+' + self + end + + def >>(part) + _join_with_op! '' + self + end + + def >(part) + _join_with_op! '>' + self + end + + def |(part) + _join_with_op! ',' + self + end + + # Return the target of the builder + def target! + @target * '' + end + + # Create a comment string in the output. + def comment!(comment_text) + @target << "/* #{comment_text} */\n" + end + + def id!(arg, &block) + _start_container('#'+arg.to_s, nil, block_given?) + _css_block(block) if block + _unify_block + self + end + + def class!(arg, &block) + _start_container('.'+arg.to_s, nil, block_given?) + _css_block(block) if block + _unify_block + self + end + + def store!(sym, &block) + @library[sym] = block.to_proc + end + + def group!(*args, &block) + args.each do |arg| + if arg.is_a?(Symbol) + instance_eval(&@library[arg]) + else + instance_eval(&arg) + end + _text ', ' unless arg == args.last + end + if block + _css_block(block) + _unify_block + end + end + + def method_missing(sym, *args, &block) + sym = "#{sym}:#{args.shift}" if args.first.kind_of?(Symbol) + if block + _start_container(sym, args.first) + _css_block(block) + _unify_block + elsif @in_block + _indent + _css_line(sym, *args) + _newline + return self + else + _start_container(sym, args.first, false) + _unify_block + end + self + end + + # "Cargo culted" from Jim who also "cargo culted" it. See xmlbase.rb. + def nil? + false + end + + private + def _unify_block + @target << @parts * '' + @parts = [] + end + + def _join_with_op!(op) + rhs, lhs = @target.pop, @target.pop + @target << "#{lhs} #{op} #{rhs}" + end + + def _text(text) + @parts << text + end + + def _css_block(block) + _newline + _nested_structures(block) + _end_container + _end_block + end + + def _end_block + _newline + _newline + end + + def _newline + _text "\n" + end + + def _indent + _text ' ' * @indent + end + + def _nested_structures(block) + @in_block = true + self.instance_eval(&block) + @in_block = false + end + + def _start_container(sym, atts = {}, with_bracket = true) + selector = sym.to_s + selector << ".#{atts[:class]}" if atts && atts[:class] + selector << '#' + "#{atts[:id]}" if atts && atts[:id] + @parts << "#{selector}#{with_bracket ? ' {' : ''}" + end + + def _end_container + @parts << "}" + end + + def _css_line(sym, *args) + _text("#{sym.to_s.gsub('_','-')}: #{args * ' '};") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb new file mode 100644 index 000000000..8bdbd0589 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb @@ -0,0 +1,115 @@ +#!/usr/bin/env ruby + +# The XChar library is provided courtesy of Sam Ruby (See +# http://intertwingly.net/stories/2005/09/28/xchar.rb) + +# -------------------------------------------------------------------- + +# If the Builder::XChar module is not currently defined, fail on any +# name clashes in standard library classes. + +module Builder + def self.check_for_name_collision(klass, method_name, defined_constant=nil) + if klass.instance_methods.include?(method_name.to_s) + fail RuntimeError, + "Name Collision: Method '#{method_name}' is already defined in #{klass}" + end + end +end + +if ! defined?(Builder::XChar) + Builder.check_for_name_collision(String, "to_xs") + Builder.check_for_name_collision(Fixnum, "xchr") +end + +###################################################################### +module Builder + + #################################################################### + # XML Character converter, from Sam Ruby: + # (see http://intertwingly.net/stories/2005/09/28/xchar.rb). + # + module XChar # :nodoc: + + # See + # http://intertwingly.net/stories/2004/04/14/i18n.html#CleaningWindows + # for details. + CP1252 = { # :nodoc: + 128 => 8364, # euro sign + 130 => 8218, # single low-9 quotation mark + 131 => 402, # latin small letter f with hook + 132 => 8222, # double low-9 quotation mark + 133 => 8230, # horizontal ellipsis + 134 => 8224, # dagger + 135 => 8225, # double dagger + 136 => 710, # modifier letter circumflex accent + 137 => 8240, # per mille sign + 138 => 352, # latin capital letter s with caron + 139 => 8249, # single left-pointing angle quotation mark + 140 => 338, # latin capital ligature oe + 142 => 381, # latin capital letter z with caron + 145 => 8216, # left single quotation mark + 146 => 8217, # right single quotation mark + 147 => 8220, # left double quotation mark + 148 => 8221, # right double quotation mark + 149 => 8226, # bullet + 150 => 8211, # en dash + 151 => 8212, # em dash + 152 => 732, # small tilde + 153 => 8482, # trade mark sign + 154 => 353, # latin small letter s with caron + 155 => 8250, # single right-pointing angle quotation mark + 156 => 339, # latin small ligature oe + 158 => 382, # latin small letter z with caron + 159 => 376, # latin capital letter y with diaeresis + } + + # See http://www.w3.org/TR/REC-xml/#dt-chardata for details. + PREDEFINED = { + 38 => '&', # ampersand + 60 => '<', # left angle bracket + 62 => '>', # right angle bracket + } + + # See http://www.w3.org/TR/REC-xml/#charsets for details. + VALID = [ + 0x9, 0xA, 0xD, + (0x20..0xD7FF), + (0xE000..0xFFFD), + (0x10000..0x10FFFF) + ] + end + +end + + +###################################################################### +# Enhance the Fixnum class with a XML escaped character conversion. +# +class Fixnum + XChar = Builder::XChar if ! defined?(XChar) + + # XML escaped version of chr + def xchr + n = XChar::CP1252[self] || self + case n when *XChar::VALID + XChar::PREDEFINED[n] or (n<128 ? n.chr : "&##{n};") + else + '*' + end + end +end + + +###################################################################### +# Enhance the String class with a XML escaped character version of +# to_s. +# +class String + # XML escaped version of to_s + def to_xs + unpack('U*').map {|n| n.xchr}.join # ASCII, UTF-8 + rescue + unpack('C*').map {|n| n.xchr}.join # ISO-8859-1, WIN-1252 + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb new file mode 100644 index 000000000..ace4b56d5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb @@ -0,0 +1,139 @@ +#!/usr/bin/env ruby + +require 'builder/blankslate' + +module Builder + + # Generic error for builder + class IllegalBlockError < RuntimeError; end + + # XmlBase is a base class for building XML builders. See + # Builder::XmlMarkup and Builder::XmlEvents for examples. + class XmlBase < BlankSlate + + # Create an XML markup builder. + # + # out:: Object receiving the markup. +out+ must respond to + # <tt><<</tt>. + # indent:: Number of spaces used for indentation (0 implies no + # indentation and no line breaks). + # initial:: Level of initial indentation. + # + def initialize(indent=0, initial=0) + @indent = indent + @level = initial + end + + # Create a tag named +sym+. Other than the first argument which + # is the tag name, the arguments are the same as the tags + # implemented via <tt>method_missing</tt>. + def tag!(sym, *args, &block) + method_missing(sym.to_sym, *args, &block) + end + + # Create XML markup based on the name of the method. This method + # is never invoked directly, but is called for each markup method + # in the markup block. + def method_missing(sym, *args, &block) + text = nil + attrs = nil + sym = "#{sym}:#{args.shift}" if args.first.kind_of?(Symbol) + args.each do |arg| + case arg + when Hash + attrs ||= {} + attrs.merge!(arg) + else + text ||= '' + text << arg.to_s + end + end + if block + unless text.nil? + raise ArgumentError, "XmlMarkup cannot mix a text argument with a block" + end + _indent + _start_tag(sym, attrs) + _newline + _nested_structures(block) + _indent + _end_tag(sym) + _newline + elsif text.nil? + _indent + _start_tag(sym, attrs, true) + _newline + else + _indent + _start_tag(sym, attrs) + text! text + _end_tag(sym) + _newline + end + @target + end + + # Append text to the output target. Escape any markup. May be + # used within the markup brackets as: + # + # builder.p { |b| b.br; b.text! "HI" } #=> <p><br/>HI</p> + def text!(text) + _text(_escape(text)) + end + + # Append text to the output target without escaping any markup. + # May be used within the markup brackets as: + # + # builder.p { |x| x << "<br/>HI" } #=> <p><br/>HI</p> + # + # This is useful when using non-builder enabled software that + # generates strings. Just insert the string directly into the + # builder without changing the inserted markup. + # + # It is also useful for stacking builder objects. Builders only + # use <tt><<</tt> to append to the target, so by supporting this + # method/operation builders can use other builders as their + # targets. + def <<(text) + _text(text) + end + + # For some reason, nil? is sent to the XmlMarkup object. If nil? + # is not defined and method_missing is invoked, some strange kind + # of recursion happens. Since nil? won't ever be an XML tag, it + # is pretty safe to define it here. (Note: this is an example of + # cargo cult programming, + # cf. http://fishbowl.pastiche.org/2004/10/13/cargo_cult_programming). + def nil? + false + end + + private + + require 'builder/xchar' + def _escape(text) + text.to_xs + end + + def _escape_quote(text) + _escape(text).gsub(%r{"}, '"') # " WART + end + + def _newline + return if @indent == 0 + text! "\n" + end + + def _indent + return if @indent == 0 || @level == 0 + text!(" " * (@level * @indent)) + end + + def _nested_structures(block) + @level += 1 + block.call(self) + ensure + @level -= 1 + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb new file mode 100644 index 000000000..91fcd21e1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb @@ -0,0 +1,63 @@ +#!/usr/bin/env ruby + +#-- +# Copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'builder/xmlmarkup' + +module Builder + + # Create a series of SAX-like XML events (e.g. start_tag, end_tag) + # from the markup code. XmlEvent objects are used in a way similar + # to XmlMarkup objects, except that a series of events are generated + # and passed to a handler rather than generating character-based + # markup. + # + # Usage: + # xe = Builder::XmlEvents.new(hander) + # xe.title("HI") # Sends start_tag/end_tag/text messages to the handler. + # + # Indentation may also be selected by providing value for the + # indentation size and initial indentation level. + # + # xe = Builder::XmlEvents.new(handler, indent_size, initial_indent_level) + # + # == XML Event Handler + # + # The handler object must expect the following events. + # + # [<tt>start_tag(tag, attrs)</tt>] + # Announces that a new tag has been found. +tag+ is the name of + # the tag and +attrs+ is a hash of attributes for the tag. + # + # [<tt>end_tag(tag)</tt>] + # Announces that an end tag for +tag+ has been found. + # + # [<tt>text(text)</tt>] + # Announces that a string of characters (+text+) has been found. + # A series of characters may be broken up into more than one + # +text+ call, so the client cannot assume that a single + # callback contains all the text data. + # + class XmlEvents < XmlMarkup + def text!(text) + @target.text(text) + end + + def _start_tag(sym, attrs, end_too=false) + @target.start_tag(sym, attrs) + _end_tag(sym) if end_too + end + + def _end_tag(sym) + @target.end_tag(sym) + end + end + +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb new file mode 100644 index 000000000..ec59dddc3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb @@ -0,0 +1,328 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +# Provide a flexible and easy to use Builder for creating XML markup. +# See XmlBuilder for usage details. + +require 'builder/xmlbase' + +module Builder + + # Create XML markup easily. All (well, almost all) methods sent to + # an XmlMarkup object will be translated to the equivalent XML + # markup. Any method with a block will be treated as an XML markup + # tag with nested markup in the block. + # + # Examples will demonstrate this easier than words. In the + # following, +xm+ is an +XmlMarkup+ object. + # + # xm.em("emphasized") # => <em>emphasized</em> + # xm.em { xmm.b("emp & bold") } # => <em><b>emph & bold</b></em> + # xm.a("A Link", "href"=>"http://onestepback.org") + # # => <a href="http://onestepback.org">A Link</a> + # xm.div { br } # => <div><br/></div> + # xm.target("name"=>"compile", "option"=>"fast") + # # => <target option="fast" name="compile"\> + # # NOTE: order of attributes is not specified. + # + # xm.instruct! # <?xml version="1.0" encoding="UTF-8"?> + # xm.html { # <html> + # xm.head { # <head> + # xm.title("History") # <title>History</title> + # } # </head> + # xm.body { # <body> + # xm.comment! "HI" # <! -- HI --> + # xm.h1("Header") # <h1>Header</h1> + # xm.p("paragraph") # <p>paragraph</p> + # } # </body> + # } # </html> + # + # == Notes: + # + # * The order that attributes are inserted in markup tags is + # undefined. + # + # * Sometimes you wish to insert text without enclosing tags. Use + # the <tt>text!</tt> method to accomplish this. + # + # Example: + # + # xm.div { # <div> + # xm.text! "line"; xm.br # line<br/> + # xm.text! "another line"; xmbr # another line<br/> + # } # </div> + # + # * The special XML characters <, >, and & are converted to <, + # > and & automatically. Use the <tt><<</tt> operation to + # insert text without modification. + # + # * Sometimes tags use special characters not allowed in ruby + # identifiers. Use the <tt>tag!</tt> method to handle these + # cases. + # + # Example: + # + # xml.tag!("SOAP:Envelope") { ... } + # + # will produce ... + # + # <SOAP:Envelope> ... </SOAP:Envelope>" + # + # <tt>tag!</tt> will also take text and attribute arguments (after + # the tag name) like normal markup methods. (But see the next + # bullet item for a better way to handle XML namespaces). + # + # * Direct support for XML namespaces is now available. If the + # first argument to a tag call is a symbol, it will be joined to + # the tag to produce a namespace:tag combination. It is easier to + # show this than describe it. + # + # xml.SOAP :Envelope do ... end + # + # Just put a space before the colon in a namespace to produce the + # right form for builder (e.g. "<tt>SOAP:Envelope</tt>" => + # "<tt>xml.SOAP :Envelope</tt>") + # + # * XmlMarkup builds the markup in any object (called a _target_) + # that accepts the <tt><<</tt> method. If no target is given, + # then XmlMarkup defaults to a string target. + # + # Examples: + # + # xm = Builder::XmlMarkup.new + # result = xm.title("yada") + # # result is a string containing the markup. + # + # buffer = "" + # xm = Builder::XmlMarkup.new(buffer) + # # The markup is appended to buffer (using <<) + # + # xm = Builder::XmlMarkup.new(STDOUT) + # # The markup is written to STDOUT (using <<) + # + # xm = Builder::XmlMarkup.new + # x2 = Builder::XmlMarkup.new(:target=>xm) + # # Markup written to +x2+ will be send to +xm+. + # + # * Indentation is enabled by providing the number of spaces to + # indent for each level as a second argument to XmlBuilder.new. + # Initial indentation may be specified using a third parameter. + # + # Example: + # + # xm = Builder.new(:indent=>2) + # # xm will produce nicely formatted and indented XML. + # + # xm = Builder.new(:indent=>2, :margin=>4) + # # xm will produce nicely formatted and indented XML with 2 + # # spaces per indent and an over all indentation level of 4. + # + # builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2) + # builder.name { |b| b.first("Jim"); b.last("Weirich) } + # # prints: + # # <name> + # # <first>Jim</first> + # # <last>Weirich</last> + # # </name> + # + # * The instance_eval implementation which forces self to refer to + # the message receiver as self is now obsolete. We now use normal + # block calls to execute the markup block. This means that all + # markup methods must now be explicitly send to the xml builder. + # For instance, instead of + # + # xml.div { strong("text") } + # + # you need to write: + # + # xml.div { xml.strong("text") } + # + # Although more verbose, the subtle change in semantics within the + # block was found to be prone to error. To make this change a + # little less cumbersome, the markup block now gets the markup + # object sent as an argument, allowing you to use a shorter alias + # within the block. + # + # For example: + # + # xml_builder = Builder::XmlMarkup.new + # xml_builder.div { |xml| + # xml.stong("text") + # } + # + class XmlMarkup < XmlBase + + # Create an XML markup builder. Parameters are specified by an + # option hash. + # + # :target=><em>target_object</em>:: + # Object receiving the markup. +out+ must respond to the + # <tt><<</tt> operator. The default is a plain string target. + # + # :indent=><em>indentation</em>:: + # Number of spaces used for indentation. The default is no + # indentation and no line breaks. + # + # :margin=><em>initial_indentation_level</em>:: + # Amount of initial indentation (specified in levels, not + # spaces). + # + # :escape_attrs=><b>OBSOLETE</em>:: + # The :escape_attrs option is no longer supported by builder + # (and will be quietly ignored). String attribute values are + # now automatically escaped. If you need unescaped attribute + # values (perhaps you are using entities in the attribute + # values), then give the value as a Symbol. This allows much + # finer control over escaping attribute values. + # + def initialize(options={}) + indent = options[:indent] || 0 + margin = options[:margin] || 0 + super(indent, margin) + @target = options[:target] || "" + end + + # Return the target of the builder. + def target! + @target + end + + def comment!(comment_text) + _ensure_no_block block_given? + _special("<!-- ", " -->", comment_text, nil) + end + + # Insert an XML declaration into the XML markup. + # + # For example: + # + # xml.declare! :ELEMENT, :blah, "yada" + # # => <!ELEMENT blah "yada"> + def declare!(inst, *args, &block) + _indent + @target << "<!#{inst}" + args.each do |arg| + case arg + when String + @target << %{ "#{arg}"} # " WART + when Symbol + @target << " #{arg}" + end + end + if block_given? + @target << " [" + _newline + _nested_structures(block) + @target << "]" + end + @target << ">" + _newline + end + + # Insert a processing instruction into the XML markup. E.g. + # + # For example: + # + # xml.instruct! + # #=> <?xml version="1.0" encoding="UTF-8"?> + # xml.instruct! :aaa, :bbb=>"ccc" + # #=> <?aaa bbb="ccc"?> + # + def instruct!(directive_tag=:xml, attrs={}) + _ensure_no_block block_given? + if directive_tag == :xml + a = { :version=>"1.0", :encoding=>"UTF-8" } + attrs = a.merge attrs + end + _special( + "<?#{directive_tag}", + "?>", + nil, + attrs, + [:version, :encoding, :standalone]) + end + + # Insert a CDATA section into the XML markup. + # + # For example: + # + # xml.cdata!("text to be included in cdata") + # #=> <![CDATA[text to be included in cdata]]> + # + def cdata!(text) + _ensure_no_block block_given? + _special("<![CDATA[", "]]>", text, nil) + end + + private + + # NOTE: All private methods of a builder object are prefixed when + # a "_" character to avoid possible conflict with XML tag names. + + # Insert text directly in to the builder's target. + def _text(text) + @target << text + end + + # Insert special instruction. + def _special(open, close, data=nil, attrs=nil, order=[]) + _indent + @target << open + @target << data if data + _insert_attributes(attrs, order) if attrs + @target << close + _newline + end + + # Start an XML tag. If <tt>end_too</tt> is true, then the start + # tag is also the end tag (e.g. <br/> + def _start_tag(sym, attrs, end_too=false) + @target << "<#{sym}" + _insert_attributes(attrs) + @target << "/" if end_too + @target << ">" + end + + # Insert an ending tag. + def _end_tag(sym) + @target << "</#{sym}>" + end + + # Insert the attributes (given in the hash). + def _insert_attributes(attrs, order=[]) + return if attrs.nil? + order.each do |k| + v = attrs[k] + @target << %{ #{k}="#{_attr_value(v)}"} if v # " WART + end + attrs.each do |k, v| + @target << %{ #{k}="#{_attr_value(v)}"} unless order.member?(k) # " WART + end + end + + def _attr_value(value) + case value + when Symbol + value.to_s + else + _escape_quote(value.to_s) + end + end + + def _ensure_no_block(got_block) + if got_block + fail IllegalBlockError, + "Blocks are not allowed on XML instructions" + end + end + + end + +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/memcache-client-1.5.0/memcache.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/memcache-client-1.5.0/memcache.rb new file mode 100644 index 000000000..dda7f2c30 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/memcache-client-1.5.0/memcache.rb @@ -0,0 +1,849 @@ +# All original code copyright 2005, 2006, 2007 Bob Cottrell, Eric Hodel, +# The Robot Co-op. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the names of the authors nor the names of their contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +require 'socket' +require 'thread' +require 'timeout' +require 'rubygems' + +class String + + ## + # Uses the ITU-T polynomial in the CRC32 algorithm. + + def crc32_ITU_T + n = length + r = 0xFFFFFFFF + + n.times do |i| + r ^= self[i] + 8.times do + if (r & 1) != 0 then + r = (r>>1) ^ 0xEDB88320 + else + r >>= 1 + end + end + end + + r ^ 0xFFFFFFFF + end + +end + +## +# A Ruby client library for memcached. +# +# This is intended to provide access to basic memcached functionality. It +# does not attempt to be complete implementation of the entire API, but it is +# approaching a complete implementation. + +class MemCache + + ## + # The version of MemCache you are using. + + VERSION = '1.5.0' + + ## + # Default options for the cache object. + + DEFAULT_OPTIONS = { + :namespace => nil, + :readonly => false, + :multithread => false, + } + + ## + # Default memcached port. + + DEFAULT_PORT = 11211 + + ## + # Default memcached server weight. + + DEFAULT_WEIGHT = 1 + + ## + # The amount of time to wait for a response from a memcached server. If a + # response is not completed within this time, the connection to the server + # will be closed and an error will be raised. + + attr_accessor :request_timeout + + ## + # The namespace for this instance + + attr_reader :namespace + + ## + # The multithread setting for this instance + + attr_reader :multithread + + ## + # The servers this client talks to. Play at your own peril. + + attr_reader :servers + + ## + # Accepts a list of +servers+ and a list of +opts+. +servers+ may be + # omitted. See +servers=+ for acceptable server list arguments. + # + # Valid options for +opts+ are: + # + # [:namespace] Prepends this value to all keys added or retrieved. + # [:readonly] Raises an exeception on cache writes when true. + # [:multithread] Wraps cache access in a Mutex for thread safety. + # + # Other options are ignored. + + def initialize(*args) + servers = [] + opts = {} + + case args.length + when 0 then # NOP + when 1 then + arg = args.shift + case arg + when Hash then opts = arg + when Array then servers = arg + when String then servers = [arg] + else raise ArgumentError, 'first argument must be Array, Hash or String' + end + when 2 then + servers, opts = args + else + raise ArgumentError, "wrong number of arguments (#{args.length} for 2)" + end + + opts = DEFAULT_OPTIONS.merge opts + @namespace = opts[:namespace] + @readonly = opts[:readonly] + @multithread = opts[:multithread] + @mutex = Mutex.new if @multithread + @buckets = [] + self.servers = servers + end + + ## + # Returns a string representation of the cache object. + + def inspect + "<MemCache: %d servers, %d buckets, ns: %p, ro: %p>" % + [@servers.length, @buckets.length, @namespace, @readonly] + end + + ## + # Returns whether there is at least one active server for the object. + + def active? + not @servers.empty? + end + + ## + # Returns whether or not the cache object was created read only. + + def readonly? + @readonly + end + + ## + # Set the servers that the requests will be distributed between. Entries + # can be either strings of the form "hostname:port" or + # "hostname:port:weight" or MemCache::Server objects. + + def servers=(servers) + # Create the server objects. + @servers = servers.collect do |server| + case server + when String + host, port, weight = server.split ':', 3 + port ||= DEFAULT_PORT + weight ||= DEFAULT_WEIGHT + Server.new self, host, port, weight + when Server + if server.memcache.multithread != @multithread then + raise ArgumentError, "can't mix threaded and non-threaded servers" + end + server + else + raise TypeError, "cannot convert #{server.class} into MemCache::Server" + end + end + + # Create an array of server buckets for weight selection of servers. + @buckets = [] + @servers.each do |server| + server.weight.times { @buckets.push(server) } + end + end + + ## + # Deceremets the value for +key+ by +amount+ and returns the new value. + # +key+ must already exist. If +key+ is not an integer, it is assumed to be + # 0. +key+ can not be decremented below 0. + + def decr(key, amount = 1) + server, cache_key = request_setup key + + if @multithread then + threadsafe_cache_decr server, cache_key, amount + else + cache_decr server, cache_key, amount + end + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Retrieves +key+ from memcache. If +raw+ is false, the value will be + # unmarshalled. + + def get(key, raw = false) + server, cache_key = request_setup key + + value = if @multithread then + threadsafe_cache_get server, cache_key + else + cache_get server, cache_key + end + + return nil if value.nil? + + value = Marshal.load value unless raw + + return value + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Retrieves multiple values from memcached in parallel, if possible. + # + # The memcached protocol supports the ability to retrieve multiple + # keys in a single request. Pass in an array of keys to this method + # and it will: + # + # 1. map the key to the appropriate memcached server + # 2. send a single request to each server that has one or more key values + # + # Returns a hash of values. + # + # cache["a"] = 1 + # cache["b"] = 2 + # cache.get_multi "a", "b" # => { "a" => 1, "b" => 2 } + + def get_multi(*keys) + raise MemCacheError, 'No active servers' unless active? + + keys.flatten! + key_count = keys.length + cache_keys = {} + server_keys = Hash.new { |h,k| h[k] = [] } + + # map keys to servers + keys.each do |key| + server, cache_key = request_setup key + cache_keys[cache_key] = key + server_keys[server] << cache_key + end + + results = {} + + server_keys.each do |server, keys_for_server| + keys_for_server = keys_for_server.join ' ' + values = if @multithread then + threadsafe_cache_get_multi server, keys_for_server + else + cache_get_multi server, keys_for_server + end + values.each do |key, value| + results[cache_keys[key]] = Marshal.load value + end + end + + return results + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Increments the value for +key+ by +amount+ and retruns the new value. + # +key+ must already exist. If +key+ is not an integer, it is assumed to be + # 0. + + def incr(key, amount = 1) + server, cache_key = request_setup key + + if @multithread then + threadsafe_cache_incr server, cache_key, amount + else + cache_incr server, cache_key, amount + end + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Add +key+ to the cache with value +value+ that expires in +expiry+ + # seconds. If +raw+ is true, +value+ will not be Marshalled. + # + # Warning: Readers should not call this method in the event of a cache miss; + # see MemCache#add. + + def set(key, value, expiry = 0, raw = false) + raise MemCacheError, "Update of readonly cache" if @readonly + server, cache_key = request_setup key + socket = server.socket + + value = Marshal.dump value unless raw + command = "set #{cache_key} 0 #{expiry} #{value.size}\r\n#{value}\r\n" + + begin + @mutex.lock if @multithread + socket.write command + result = socket.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + ensure + @mutex.unlock if @multithread + end + end + + ## + # Add +key+ to the cache with value +value+ that expires in +expiry+ + # seconds, but only if +key+ does not already exist in the cache. + # If +raw+ is true, +value+ will not be Marshalled. + # + # Readers should call this method in the event of a cache miss, not + # MemCache#set or MemCache#[]=. + + def add(key, value, expiry = 0, raw = false) + raise MemCacheError, "Update of readonly cache" if @readonly + server, cache_key = request_setup key + socket = server.socket + + value = Marshal.dump value unless raw + command = "add #{cache_key} 0 #{expiry} #{value.size}\r\n#{value}\r\n" + + begin + @mutex.lock if @multithread + socket.write command + result = socket.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + ensure + @mutex.unlock if @multithread + end + end + + ## + # Removes +key+ from the cache in +expiry+ seconds. + + def delete(key, expiry = 0) + @mutex.lock if @multithread + + raise MemCacheError, "No active servers" unless active? + cache_key = make_cache_key key + server = get_server_for_key cache_key + + sock = server.socket + raise MemCacheError, "No connection to server" if sock.nil? + + begin + sock.write "delete #{cache_key} #{expiry}\r\n" + result = sock.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + end + ensure + @mutex.unlock if @multithread + end + + ## + # Flush the cache from all memcache servers. + + def flush_all + raise MemCacheError, 'No active servers' unless active? + raise MemCacheError, "Update of readonly cache" if @readonly + begin + @mutex.lock if @multithread + @servers.each do |server| + begin + sock = server.socket + raise MemCacheError, "No connection to server" if sock.nil? + sock.write "flush_all\r\n" + result = sock.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + end + end + ensure + @mutex.unlock if @multithread + end + end + + ## + # Reset the connection to all memcache servers. This should be called if + # there is a problem with a cache lookup that might have left the connection + # in a corrupted state. + + def reset + @servers.each { |server| server.close } + end + + ## + # Returns statistics for each memcached server. An explanation of the + # statistics can be found in the memcached docs: + # + # http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt + # + # Example: + # + # >> pp CACHE.stats + # {"localhost:11211"=> + # {"bytes"=>4718, + # "pid"=>20188, + # "connection_structures"=>4, + # "time"=>1162278121, + # "pointer_size"=>32, + # "limit_maxbytes"=>67108864, + # "cmd_get"=>14532, + # "version"=>"1.2.0", + # "bytes_written"=>432583, + # "cmd_set"=>32, + # "get_misses"=>0, + # "total_connections"=>19, + # "curr_connections"=>3, + # "curr_items"=>4, + # "uptime"=>1557, + # "get_hits"=>14532, + # "total_items"=>32, + # "rusage_system"=>0.313952, + # "rusage_user"=>0.119981, + # "bytes_read"=>190619}} + # => nil + + def stats + raise MemCacheError, "No active servers" unless active? + server_stats = {} + + @servers.each do |server| + sock = server.socket + raise MemCacheError, "No connection to server" if sock.nil? + + value = nil + begin + sock.write "stats\r\n" + stats = {} + while line = sock.gets do + raise_on_error_response! line + break if line == "END\r\n" + if line =~ /\ASTAT ([\w]+) ([\w\.\:]+)/ then + name, value = $1, $2 + stats[name] = case name + when 'version' + value + when 'rusage_user', 'rusage_system' then + seconds, microseconds = value.split(/:/, 2) + microseconds ||= 0 + Float(seconds) + (Float(microseconds) / 1_000_000) + else + if value =~ /\A\d+\Z/ then + value.to_i + else + value + end + end + end + end + server_stats["#{server.host}:#{server.port}"] = stats + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + end + end + + server_stats + end + + ## + # Shortcut to get a value from the cache. + + alias [] get + + ## + # Shortcut to save a value in the cache. This method does not set an + # expiration on the entry. Use set to specify an explicit expiry. + + def []=(key, value) + set key, value + end + + protected + + ## + # Create a key for the cache, incorporating the namespace qualifier if + # requested. + + def make_cache_key(key) + if namespace.nil? then + key + else + "#{@namespace}:#{key}" + end + end + + ## + # Pick a server to handle the request based on a hash of the key. + + def get_server_for_key(key) + raise ArgumentError, "illegal character in key #{key.inspect}" if + key =~ /\s/ + raise ArgumentError, "key too long #{key.inspect}" if key.length > 250 + raise MemCacheError, "No servers available" if @servers.empty? + return @servers.first if @servers.length == 1 + + hkey = hash_for key + + 20.times do |try| + server = @buckets[hkey % @buckets.nitems] + return server if server.alive? + hkey += hash_for "#{try}#{key}" + end + + raise MemCacheError, "No servers available" + end + + ## + # Returns an interoperable hash value for +key+. (I think, docs are + # sketchy for down servers). + + def hash_for(key) + (key.crc32_ITU_T >> 16) & 0x7fff + end + + ## + # Performs a raw decr for +cache_key+ from +server+. Returns nil if not + # found. + + def cache_decr(server, cache_key, amount) + socket = server.socket + socket.write "decr #{cache_key} #{amount}\r\n" + text = socket.gets + raise_on_error_response! text + return nil if text == "NOT_FOUND\r\n" + return text.to_i + end + + ## + # Fetches the raw data for +cache_key+ from +server+. Returns nil on cache + # miss. + + def cache_get(server, cache_key) + socket = server.socket + socket.write "get #{cache_key}\r\n" + keyline = socket.gets # "VALUE <key> <flags> <bytes>\r\n" + + if keyline.nil? then + server.close + raise MemCacheError, "lost connection to #{server.host}:#{server.port}" + end + + raise_on_error_response! keyline + return nil if keyline == "END\r\n" + + unless keyline =~ /(\d+)\r/ then + server.close + raise MemCacheError, "unexpected response #{keyline.inspect}" + end + value = socket.read $1.to_i + socket.read 2 # "\r\n" + socket.gets # "END\r\n" + return value + end + + ## + # Fetches +cache_keys+ from +server+ using a multi-get. + + def cache_get_multi(server, cache_keys) + values = {} + socket = server.socket + socket.write "get #{cache_keys}\r\n" + + while keyline = socket.gets do + return values if keyline == "END\r\n" + raise_on_error_response! keyline + + unless keyline =~ /\AVALUE (.+) (.+) (.+)/ then + server.close + raise MemCacheError, "unexpected response #{keyline.inspect}" + end + + key, data_length = $1, $3 + values[$1] = socket.read data_length.to_i + socket.read(2) # "\r\n" + end + + server.close + raise MemCacheError, "lost connection to #{server.host}:#{server.port}" + end + + ## + # Performs a raw incr for +cache_key+ from +server+. Returns nil if not + # found. + + def cache_incr(server, cache_key, amount) + socket = server.socket + socket.write "incr #{cache_key} #{amount}\r\n" + text = socket.gets + raise_on_error_response! text + return nil if text == "NOT_FOUND\r\n" + return text.to_i + end + + ## + # Handles +error+ from +server+. + + def handle_error(server, error) + server.close if server + new_error = MemCacheError.new error.message + new_error.set_backtrace error.backtrace + raise new_error + end + + ## + # Performs setup for making a request with +key+ from memcached. Returns + # the server to fetch the key from and the complete key to use. + + def request_setup(key) + raise MemCacheError, 'No active servers' unless active? + cache_key = make_cache_key key + server = get_server_for_key cache_key + raise MemCacheError, 'No connection to server' if server.socket.nil? + return server, cache_key + end + + def threadsafe_cache_decr(server, cache_key, amount) # :nodoc: + @mutex.lock + cache_decr server, cache_key, amount + ensure + @mutex.unlock + end + + def threadsafe_cache_get(server, cache_key) # :nodoc: + @mutex.lock + cache_get server, cache_key + ensure + @mutex.unlock + end + + def threadsafe_cache_get_multi(socket, cache_keys) # :nodoc: + @mutex.lock + cache_get_multi socket, cache_keys + ensure + @mutex.unlock + end + + def threadsafe_cache_incr(server, cache_key, amount) # :nodoc: + @mutex.lock + cache_incr server, cache_key, amount + ensure + @mutex.unlock + end + + def raise_on_error_response!(response) + if response =~ /\A(?:CLIENT_|SERVER_)?ERROR (.*)/ + raise MemCacheError, $1.strip + end + end + + + ## + # This class represents a memcached server instance. + + class Server + + ## + # The amount of time to wait to establish a connection with a memcached + # server. If a connection cannot be established within this time limit, + # the server will be marked as down. + + CONNECT_TIMEOUT = 0.25 + + ## + # The amount of time to wait before attempting to re-establish a + # connection with a server that is marked dead. + + RETRY_DELAY = 30.0 + + ## + # The host the memcached server is running on. + + attr_reader :host + + ## + # The port the memcached server is listening on. + + attr_reader :port + + ## + # The weight given to the server. + + attr_reader :weight + + ## + # The time of next retry if the connection is dead. + + attr_reader :retry + + ## + # A text status string describing the state of the server. + + attr_reader :status + + ## + # Create a new MemCache::Server object for the memcached instance + # listening on the given host and port, weighted by the given weight. + + def initialize(memcache, host, port = DEFAULT_PORT, weight = DEFAULT_WEIGHT) + raise ArgumentError, "No host specified" if host.nil? or host.empty? + raise ArgumentError, "No port specified" if port.nil? or port.to_i.zero? + + @memcache = memcache + @host = host + @port = port.to_i + @weight = weight.to_i + + @multithread = @memcache.multithread + @mutex = Mutex.new + + @sock = nil + @retry = nil + @status = 'NOT CONNECTED' + end + + ## + # Return a string representation of the server object. + + def inspect + "<MemCache::Server: %s:%d [%d] (%s)>" % [@host, @port, @weight, @status] + end + + ## + # Check whether the server connection is alive. This will cause the + # socket to attempt to connect if it isn't already connected and or if + # the server was previously marked as down and the retry time has + # been exceeded. + + def alive? + !!socket + end + + ## + # Try to connect to the memcached server targeted by this object. + # Returns the connected socket object on success or nil on failure. + + def socket + @mutex.lock if @multithread + return @sock if @sock and not @sock.closed? + + @sock = nil + + # If the host was dead, don't retry for a while. + return if @retry and @retry > Time.now + + # Attempt to connect if not already connected. + begin + @sock = timeout CONNECT_TIMEOUT do + TCPSocket.new @host, @port + end + if Socket.constants.include? 'TCP_NODELAY' then + @sock.setsockopt Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1 + end + @retry = nil + @status = 'CONNECTED' + rescue SocketError, SystemCallError, IOError, Timeout::Error => err + mark_dead err.message + end + + return @sock + ensure + @mutex.unlock if @multithread + end + + ## + # Close the connection to the memcached server targeted by this + # object. The server is not considered dead. + + def close + @mutex.lock if @multithread + @sock.close if @sock && !@sock.closed? + @sock = nil + @retry = nil + @status = "NOT CONNECTED" + ensure + @mutex.unlock if @multithread + end + + private + + ## + # Mark the server as dead and close its socket. + + def mark_dead(reason = "Unknown error") + @sock.close if @sock && !@sock.closed? + @sock = nil + @retry = Time.now + RETRY_DELAY + + @status = sprintf "DEAD: %s, will retry at %s", reason, @retry + end + end + + ## + # Base MemCache exception class. + + class MemCacheError < RuntimeError; end + +end + diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo.rb new file mode 100644 index 000000000..c8bdbeec5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo.rb @@ -0,0 +1,33 @@ +#-- +# Copyright (c) 2005-2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +# Add the directory containing this file to the start of the load path if it +# isn't there already. +$:.unshift(File.dirname(__FILE__)) unless + $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__))) + +require 'tzinfo/timezone' +# require 'tzinfo/country' +# require 'tzinfo/tzdataparser' +# require 'tzinfo/timezone_proxy' +require 'tzinfo/data_timezone' +require 'tzinfo/linked_timezone'
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone.rb new file mode 100644 index 000000000..5eccbdf0d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone.rb @@ -0,0 +1,47 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/info_timezone' + +module TZInfo + + # A Timezone based on a DataTimezoneInfo. + 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). + # + # If no TimezonePeriod could be found, PeriodNotFound is raised. + def period_for_utc(utc) + info.period_for_utc(utc) + end + + # Returns the set of TimezonePeriod instances that are valid for the given + # 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 +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone_info.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone_info.rb new file mode 100644 index 000000000..f34fabc36 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone_info.rb @@ -0,0 +1,226 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/time_or_datetime' +require 'tzinfo/timezone_info' +require 'tzinfo/timezone_offset_info' +require 'tzinfo/timezone_period' +require 'tzinfo/timezone_transition_info' + +module TZInfo + # Thrown if no offsets have been defined when calling period_for_utc or + # periods_for_local. Indicates an error in the timezone data. + class NoOffsetsDefined < StandardError + end + + # Represents a (non-linked) timezone defined in a data module. + class DataTimezoneInfo < TimezoneInfo #:nodoc: + + # Constructs a new TimezoneInfo with its identifier. + def initialize(identifier) + super(identifier) + @offsets = {} + @transitions = [] + end + + # Defines a offset. The id uniquely identifies this offset within the + # timezone. utc_offset and std_offset define the offset in seconds of + # standard time from UTC and daylight savings from standard time + # respectively. abbreviation describes the timezone offset (e.g. GMT, BST, + # EST or EDT). + # + # The first offset to be defined is treated as the offset that applies + # until the first transition. This will usually be in Local Mean Time (LMT). + # + # ArgumentError will be raised if the id is already defined. + def offset(id, utc_offset, std_offset, abbreviation) + raise ArgumentError, 'Offset already defined' if @offsets.has_key?(id) + + offset = TimezoneOffsetInfo.new(utc_offset, std_offset, abbreviation) + @offsets[id] = offset + @previous_offset = offset unless @previous_offset + end + + # Defines a transition. Transitions must be defined in chronological order. + # ArgumentError will be raised if a transition is added out of order. + # offset_id refers to an id defined with offset. ArgumentError will be + # raised if the offset_id cannot be found. numerator_or_time and + # denomiator specify the time the transition occurs as. See + # TimezoneTransitionInfo for more detail about specifying times. + def transition(year, month, offset_id, numerator_or_time, denominator = nil) + offset = @offsets[offset_id] + raise ArgumentError, 'Offset not found' unless offset + + if @transitions_index + if year < @last_year || (year == @last_year && month < @last_month) + raise ArgumentError, 'Transitions must be increasing date order' + end + + # Record the position of the first transition with this index. + index = transition_index(year, month) + @transitions_index[index] ||= @transitions.length + + # Fill in any gaps + (index - 1).downto(0) do |i| + break if @transitions_index[i] + @transitions_index[i] = @transitions.length + end + else + @transitions_index = [@transitions.length] + @start_year = year + @start_month = month + end + + @transitions << TimezoneTransitionInfo.new(offset, @previous_offset, + numerator_or_time, denominator) + @last_year = year + @last_month = month + @previous_offset = offset + end + + # Returns the TimezonePeriod for the given UTC time. + # Raises NoOffsetsDefined if no offsets have been defined. + def period_for_utc(utc) + unless @transitions.empty? + utc = TimeOrDateTime.wrap(utc) + index = transition_index(utc.year, utc.mon) + + start_transition = nil + start = transition_before_end(index) + if start + start.downto(0) do |i| + if @transitions[i].at <= utc + start_transition = @transitions[i] + break + end + end + end + + end_transition = nil + start = transition_after_start(index) + if start + start.upto(@transitions.length - 1) do |i| + if @transitions[i].at > utc + end_transition = @transitions[i] + break + end + end + end + + if start_transition || end_transition + TimezonePeriod.new(start_transition, end_transition) + else + # Won't happen since there are transitions. Must always find one + # transition that is either >= or < the specified time. + raise 'No transitions found in search' + end + else + raise NoOffsetsDefined, 'No offsets have been defined' unless @previous_offset + TimezonePeriod.new(nil, nil, @previous_offset) + end + end + + # Returns the set of TimezonePeriods for the given local time as an array. + # Results returned are ordered by increasing UTC start date. + # Returns an empty array if no periods are found for the given time. + # Raises NoOffsetsDefined if no offsets have been defined. + def periods_for_local(local) + unless @transitions.empty? + local = TimeOrDateTime.wrap(local) + index = transition_index(local.year, local.mon) + + result = [] + + start_index = transition_after_start(index - 1) + if start_index && @transitions[start_index].local_end > local + if start_index > 0 + if @transitions[start_index - 1].local_start <= local + result << TimezonePeriod.new(@transitions[start_index - 1], @transitions[start_index]) + end + else + result << TimezonePeriod.new(nil, @transitions[start_index]) + end + end + + end_index = transition_before_end(index + 1) + + if end_index + start_index = end_index unless start_index + + start_index.upto(transition_before_end(index + 1)) do |i| + if @transitions[i].local_start <= local + if i + 1 < @transitions.length + if @transitions[i + 1].local_end > local + result << TimezonePeriod.new(@transitions[i], @transitions[i + 1]) + end + else + result << TimezonePeriod.new(@transitions[i], nil) + end + end + end + end + + result + else + raise NoOffsetsDefined, 'No offsets have been defined' unless @previous_offset + [TimezonePeriod.new(nil, nil, @previous_offset)] + end + end + + private + # Returns the index into the @transitions_index array for a given year + # and month. + def transition_index(year, month) + index = (year - @start_year) * 2 + index += 1 if month > 6 + index -= 1 if @start_month > 6 + index + end + + # Returns the index into @transitions of the first transition that occurs + # on or after the start of the given index into @transitions_index. + # Returns nil if there are no such transitions. + def transition_after_start(index) + if index >= @transitions_index.length + nil + else + index = 0 if index < 0 + @transitions_index[index] + end + end + + # Returns the index into @transitions of the first transition that occurs + # before the end of the given index into @transitions_index. + # Returns nil if there are no such transitions. + def transition_before_end(index) + index = index + 1 + + if index <= 0 + nil + elsif index >= @transitions_index.length + @transitions.length - 1 + else + @transitions_index[index] - 1 + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Algiers.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Algiers.rb new file mode 100644 index 000000000..8c5f25577 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Algiers.rb @@ -0,0 +1,55 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Algiers + include TimezoneDefinition + + timezone 'Africa/Algiers' do |tz| + tz.offset :o0, 732, 0, :LMT + tz.offset :o1, 561, 0, :PMT + tz.offset :o2, 0, 0, :WET + tz.offset :o3, 0, 3600, :WEST + tz.offset :o4, 3600, 0, :CET + tz.offset :o5, 3600, 3600, :CEST + + tz.transition 1891, 3, :o1, 2170625843, 900 + tz.transition 1911, 3, :o2, 69670267013, 28800 + tz.transition 1916, 6, :o3, 58104707, 24 + tz.transition 1916, 10, :o2, 58107323, 24 + tz.transition 1917, 3, :o3, 58111499, 24 + tz.transition 1917, 10, :o2, 58116227, 24 + tz.transition 1918, 3, :o3, 58119899, 24 + tz.transition 1918, 10, :o2, 58124963, 24 + tz.transition 1919, 3, :o3, 58128467, 24 + tz.transition 1919, 10, :o2, 58133699, 24 + tz.transition 1920, 2, :o3, 58136867, 24 + tz.transition 1920, 10, :o2, 58142915, 24 + tz.transition 1921, 3, :o3, 58146323, 24 + tz.transition 1921, 6, :o2, 58148699, 24 + tz.transition 1939, 9, :o3, 58308443, 24 + tz.transition 1939, 11, :o2, 4859173, 2 + tz.transition 1940, 2, :o4, 29156215, 12 + tz.transition 1944, 4, :o5, 58348405, 24 + tz.transition 1944, 10, :o4, 4862743, 2 + tz.transition 1945, 4, :o5, 58357141, 24 + tz.transition 1945, 9, :o4, 58361147, 24 + tz.transition 1946, 10, :o2, 58370411, 24 + tz.transition 1956, 1, :o4, 4871003, 2 + tz.transition 1963, 4, :o2, 58515203, 24 + tz.transition 1971, 4, :o3, 41468400 + tz.transition 1971, 9, :o2, 54774000 + tz.transition 1977, 5, :o3, 231724800 + tz.transition 1977, 10, :o4, 246236400 + tz.transition 1978, 3, :o5, 259545600 + tz.transition 1978, 9, :o4, 275274000 + tz.transition 1979, 10, :o2, 309740400 + tz.transition 1980, 4, :o3, 325468800 + tz.transition 1980, 10, :o2, 341802000 + tz.transition 1981, 5, :o4, 357523200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Cairo.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Cairo.rb new file mode 100644 index 000000000..6e6daf352 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Cairo.rb @@ -0,0 +1,219 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Cairo + include TimezoneDefinition + + timezone 'Africa/Cairo' do |tz| + tz.offset :o0, 7500, 0, :LMT + tz.offset :o1, 7200, 0, :EET + tz.offset :o2, 7200, 3600, :EEST + + tz.transition 1900, 9, :o1, 695604503, 288 + tz.transition 1940, 7, :o2, 29157905, 12 + tz.transition 1940, 9, :o1, 19439227, 8 + tz.transition 1941, 4, :o2, 29161193, 12 + tz.transition 1941, 9, :o1, 19442027, 8 + tz.transition 1942, 3, :o2, 29165405, 12 + tz.transition 1942, 10, :o1, 19445275, 8 + tz.transition 1943, 3, :o2, 29169785, 12 + tz.transition 1943, 10, :o1, 19448235, 8 + tz.transition 1944, 3, :o2, 29174177, 12 + tz.transition 1944, 10, :o1, 19451163, 8 + tz.transition 1945, 4, :o2, 29178737, 12 + tz.transition 1945, 10, :o1, 19454083, 8 + tz.transition 1957, 5, :o2, 29231621, 12 + tz.transition 1957, 9, :o1, 19488899, 8 + tz.transition 1958, 4, :o2, 29235893, 12 + tz.transition 1958, 9, :o1, 19491819, 8 + tz.transition 1959, 4, :o2, 58480547, 24 + tz.transition 1959, 9, :o1, 4873683, 2 + tz.transition 1960, 4, :o2, 58489331, 24 + tz.transition 1960, 9, :o1, 4874415, 2 + tz.transition 1961, 4, :o2, 58498091, 24 + tz.transition 1961, 9, :o1, 4875145, 2 + tz.transition 1962, 4, :o2, 58506851, 24 + tz.transition 1962, 9, :o1, 4875875, 2 + tz.transition 1963, 4, :o2, 58515611, 24 + tz.transition 1963, 9, :o1, 4876605, 2 + tz.transition 1964, 4, :o2, 58524395, 24 + tz.transition 1964, 9, :o1, 4877337, 2 + tz.transition 1965, 4, :o2, 58533155, 24 + tz.transition 1965, 9, :o1, 4878067, 2 + tz.transition 1966, 4, :o2, 58541915, 24 + tz.transition 1966, 10, :o1, 4878799, 2 + tz.transition 1967, 4, :o2, 58550675, 24 + tz.transition 1967, 10, :o1, 4879529, 2 + tz.transition 1968, 4, :o2, 58559459, 24 + tz.transition 1968, 10, :o1, 4880261, 2 + tz.transition 1969, 4, :o2, 58568219, 24 + tz.transition 1969, 10, :o1, 4880991, 2 + tz.transition 1970, 4, :o2, 10364400 + tz.transition 1970, 10, :o1, 23587200 + tz.transition 1971, 4, :o2, 41900400 + tz.transition 1971, 10, :o1, 55123200 + tz.transition 1972, 4, :o2, 73522800 + tz.transition 1972, 10, :o1, 86745600 + tz.transition 1973, 4, :o2, 105058800 + tz.transition 1973, 10, :o1, 118281600 + tz.transition 1974, 4, :o2, 136594800 + tz.transition 1974, 10, :o1, 149817600 + tz.transition 1975, 4, :o2, 168130800 + tz.transition 1975, 10, :o1, 181353600 + tz.transition 1976, 4, :o2, 199753200 + tz.transition 1976, 10, :o1, 212976000 + tz.transition 1977, 4, :o2, 231289200 + tz.transition 1977, 10, :o1, 244512000 + tz.transition 1978, 4, :o2, 262825200 + tz.transition 1978, 10, :o1, 276048000 + tz.transition 1979, 4, :o2, 294361200 + tz.transition 1979, 10, :o1, 307584000 + tz.transition 1980, 4, :o2, 325983600 + tz.transition 1980, 10, :o1, 339206400 + tz.transition 1981, 4, :o2, 357519600 + tz.transition 1981, 10, :o1, 370742400 + tz.transition 1982, 7, :o2, 396399600 + tz.transition 1982, 10, :o1, 402278400 + tz.transition 1983, 7, :o2, 426812400 + tz.transition 1983, 10, :o1, 433814400 + tz.transition 1984, 4, :o2, 452214000 + tz.transition 1984, 10, :o1, 465436800 + tz.transition 1985, 4, :o2, 483750000 + tz.transition 1985, 10, :o1, 496972800 + tz.transition 1986, 4, :o2, 515286000 + tz.transition 1986, 10, :o1, 528508800 + tz.transition 1987, 4, :o2, 546822000 + tz.transition 1987, 10, :o1, 560044800 + tz.transition 1988, 4, :o2, 578444400 + tz.transition 1988, 10, :o1, 591667200 + tz.transition 1989, 5, :o2, 610412400 + tz.transition 1989, 10, :o1, 623203200 + tz.transition 1990, 4, :o2, 641516400 + tz.transition 1990, 10, :o1, 654739200 + tz.transition 1991, 4, :o2, 673052400 + tz.transition 1991, 10, :o1, 686275200 + tz.transition 1992, 4, :o2, 704674800 + tz.transition 1992, 10, :o1, 717897600 + tz.transition 1993, 4, :o2, 736210800 + tz.transition 1993, 10, :o1, 749433600 + tz.transition 1994, 4, :o2, 767746800 + tz.transition 1994, 10, :o1, 780969600 + tz.transition 1995, 4, :o2, 799020000 + tz.transition 1995, 9, :o1, 812322000 + tz.transition 1996, 4, :o2, 830469600 + tz.transition 1996, 9, :o1, 843771600 + tz.transition 1997, 4, :o2, 861919200 + tz.transition 1997, 9, :o1, 875221200 + tz.transition 1998, 4, :o2, 893368800 + tz.transition 1998, 9, :o1, 906670800 + tz.transition 1999, 4, :o2, 925423200 + tz.transition 1999, 9, :o1, 938725200 + tz.transition 2000, 4, :o2, 956872800 + tz.transition 2000, 9, :o1, 970174800 + tz.transition 2001, 4, :o2, 988322400 + tz.transition 2001, 9, :o1, 1001624400 + tz.transition 2002, 4, :o2, 1019772000 + tz.transition 2002, 9, :o1, 1033074000 + tz.transition 2003, 4, :o2, 1051221600 + tz.transition 2003, 9, :o1, 1064523600 + tz.transition 2004, 4, :o2, 1083276000 + tz.transition 2004, 9, :o1, 1096578000 + tz.transition 2005, 4, :o2, 1114725600 + tz.transition 2005, 9, :o1, 1128027600 + tz.transition 2006, 4, :o2, 1146175200 + tz.transition 2006, 9, :o1, 1158872400 + tz.transition 2007, 4, :o2, 1177624800 + tz.transition 2007, 9, :o1, 1189112400 + tz.transition 2008, 4, :o2, 1209074400 + tz.transition 2008, 8, :o1, 1219957200 + tz.transition 2009, 4, :o2, 1240524000 + tz.transition 2009, 8, :o1, 1251406800 + tz.transition 2010, 4, :o2, 1272578400 + tz.transition 2010, 8, :o1, 1282856400 + tz.transition 2011, 4, :o2, 1304028000 + tz.transition 2011, 8, :o1, 1314306000 + tz.transition 2012, 4, :o2, 1335477600 + tz.transition 2012, 8, :o1, 1346360400 + tz.transition 2013, 4, :o2, 1366927200 + tz.transition 2013, 8, :o1, 1377810000 + tz.transition 2014, 4, :o2, 1398376800 + tz.transition 2014, 8, :o1, 1409259600 + tz.transition 2015, 4, :o2, 1429826400 + tz.transition 2015, 8, :o1, 1440709200 + tz.transition 2016, 4, :o2, 1461880800 + tz.transition 2016, 8, :o1, 1472158800 + tz.transition 2017, 4, :o2, 1493330400 + tz.transition 2017, 8, :o1, 1504213200 + tz.transition 2018, 4, :o2, 1524780000 + tz.transition 2018, 8, :o1, 1535662800 + tz.transition 2019, 4, :o2, 1556229600 + tz.transition 2019, 8, :o1, 1567112400 + tz.transition 2020, 4, :o2, 1587679200 + tz.transition 2020, 8, :o1, 1598562000 + tz.transition 2021, 4, :o2, 1619733600 + tz.transition 2021, 8, :o1, 1630011600 + tz.transition 2022, 4, :o2, 1651183200 + tz.transition 2022, 8, :o1, 1661461200 + tz.transition 2023, 4, :o2, 1682632800 + tz.transition 2023, 8, :o1, 1693515600 + tz.transition 2024, 4, :o2, 1714082400 + tz.transition 2024, 8, :o1, 1724965200 + tz.transition 2025, 4, :o2, 1745532000 + tz.transition 2025, 8, :o1, 1756414800 + tz.transition 2026, 4, :o2, 1776981600 + tz.transition 2026, 8, :o1, 1787864400 + tz.transition 2027, 4, :o2, 1809036000 + tz.transition 2027, 8, :o1, 1819314000 + tz.transition 2028, 4, :o2, 1840485600 + tz.transition 2028, 8, :o1, 1851368400 + tz.transition 2029, 4, :o2, 1871935200 + tz.transition 2029, 8, :o1, 1882818000 + tz.transition 2030, 4, :o2, 1903384800 + tz.transition 2030, 8, :o1, 1914267600 + tz.transition 2031, 4, :o2, 1934834400 + tz.transition 2031, 8, :o1, 1945717200 + tz.transition 2032, 4, :o2, 1966888800 + tz.transition 2032, 8, :o1, 1977166800 + tz.transition 2033, 4, :o2, 1998338400 + tz.transition 2033, 8, :o1, 2008616400 + tz.transition 2034, 4, :o2, 2029788000 + tz.transition 2034, 8, :o1, 2040670800 + tz.transition 2035, 4, :o2, 2061237600 + tz.transition 2035, 8, :o1, 2072120400 + tz.transition 2036, 4, :o2, 2092687200 + tz.transition 2036, 8, :o1, 2103570000 + tz.transition 2037, 4, :o2, 2124136800 + tz.transition 2037, 8, :o1, 2135019600 + tz.transition 2038, 4, :o2, 29586521, 12 + tz.transition 2038, 8, :o1, 19725299, 8 + tz.transition 2039, 4, :o2, 29590889, 12 + tz.transition 2039, 8, :o1, 19728211, 8 + tz.transition 2040, 4, :o2, 29595257, 12 + tz.transition 2040, 8, :o1, 19731179, 8 + tz.transition 2041, 4, :o2, 29599625, 12 + tz.transition 2041, 8, :o1, 19734091, 8 + tz.transition 2042, 4, :o2, 29603993, 12 + tz.transition 2042, 8, :o1, 19737003, 8 + tz.transition 2043, 4, :o2, 29608361, 12 + tz.transition 2043, 8, :o1, 19739915, 8 + tz.transition 2044, 4, :o2, 29612813, 12 + tz.transition 2044, 8, :o1, 19742827, 8 + tz.transition 2045, 4, :o2, 29617181, 12 + tz.transition 2045, 8, :o1, 19745795, 8 + tz.transition 2046, 4, :o2, 29621549, 12 + tz.transition 2046, 8, :o1, 19748707, 8 + tz.transition 2047, 4, :o2, 29625917, 12 + tz.transition 2047, 8, :o1, 19751619, 8 + tz.transition 2048, 4, :o2, 29630285, 12 + tz.transition 2048, 8, :o1, 19754531, 8 + tz.transition 2049, 4, :o2, 29634737, 12 + tz.transition 2049, 8, :o1, 19757443, 8 + tz.transition 2050, 4, :o2, 29639105, 12 + tz.transition 2050, 8, :o1, 19760355, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Casablanca.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Casablanca.rb new file mode 100644 index 000000000..10d28e761 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Casablanca.rb @@ -0,0 +1,38 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Casablanca + include TimezoneDefinition + + timezone 'Africa/Casablanca' do |tz| + tz.offset :o0, -1820, 0, :LMT + tz.offset :o1, 0, 0, :WET + tz.offset :o2, 0, 3600, :WEST + tz.offset :o3, 3600, 0, :CET + + tz.transition 1913, 10, :o1, 10454687371, 4320 + tz.transition 1939, 9, :o2, 4859037, 2 + tz.transition 1939, 11, :o1, 58310075, 24 + tz.transition 1940, 2, :o2, 4859369, 2 + tz.transition 1945, 11, :o1, 58362659, 24 + tz.transition 1950, 6, :o2, 4866887, 2 + tz.transition 1950, 10, :o1, 58406003, 24 + tz.transition 1967, 6, :o2, 2439645, 1 + tz.transition 1967, 9, :o1, 58554347, 24 + tz.transition 1974, 6, :o2, 141264000 + tz.transition 1974, 8, :o1, 147222000 + tz.transition 1976, 5, :o2, 199756800 + tz.transition 1976, 7, :o1, 207702000 + tz.transition 1977, 5, :o2, 231292800 + tz.transition 1977, 9, :o1, 244249200 + tz.transition 1978, 6, :o2, 265507200 + tz.transition 1978, 8, :o1, 271033200 + tz.transition 1984, 3, :o3, 448243200 + tz.transition 1985, 12, :o1, 504918000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Harare.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Harare.rb new file mode 100644 index 000000000..070c95ae0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Harare.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Harare + include TimezoneDefinition + + timezone 'Africa/Harare' do |tz| + tz.offset :o0, 7452, 0, :LMT + tz.offset :o1, 7200, 0, :CAT + + tz.transition 1903, 2, :o1, 1932939531, 800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Johannesburg.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Johannesburg.rb new file mode 100644 index 000000000..f0af0d8e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Johannesburg.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Johannesburg + include TimezoneDefinition + + timezone 'Africa/Johannesburg' do |tz| + tz.offset :o0, 6720, 0, :LMT + tz.offset :o1, 5400, 0, :SAST + tz.offset :o2, 7200, 0, :SAST + tz.offset :o3, 7200, 3600, :SAST + + tz.transition 1892, 2, :o1, 108546139, 45 + tz.transition 1903, 2, :o2, 38658791, 16 + tz.transition 1942, 9, :o3, 4861245, 2 + tz.transition 1943, 3, :o2, 58339307, 24 + tz.transition 1943, 9, :o3, 4861973, 2 + tz.transition 1944, 3, :o2, 58348043, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Monrovia.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Monrovia.rb new file mode 100644 index 000000000..40e711fa4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Monrovia.rb @@ -0,0 +1,22 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Monrovia + include TimezoneDefinition + + timezone 'Africa/Monrovia' do |tz| + tz.offset :o0, -2588, 0, :LMT + tz.offset :o1, -2588, 0, :MMT + tz.offset :o2, -2670, 0, :LRT + tz.offset :o3, 0, 0, :GMT + + tz.transition 1882, 1, :o1, 52022445047, 21600 + tz.transition 1919, 3, :o2, 52315600247, 21600 + tz.transition 1972, 5, :o3, 73529070 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Nairobi.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Nairobi.rb new file mode 100644 index 000000000..7b0a2f43b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Nairobi.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Nairobi + include TimezoneDefinition + + timezone 'Africa/Nairobi' do |tz| + tz.offset :o0, 8836, 0, :LMT + tz.offset :o1, 10800, 0, :EAT + tz.offset :o2, 9000, 0, :BEAT + tz.offset :o3, 9885, 0, :BEAUT + + tz.transition 1928, 6, :o1, 52389253391, 21600 + tz.transition 1929, 12, :o2, 19407819, 8 + tz.transition 1939, 12, :o3, 116622211, 48 + tz.transition 1959, 12, :o1, 14036742061, 5760 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/Buenos_Aires.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/Buenos_Aires.rb new file mode 100644 index 000000000..7536f7553 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/Buenos_Aires.rb @@ -0,0 +1,166 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Argentina + module Buenos_Aires + include TimezoneDefinition + + timezone 'America/Argentina/Buenos_Aires' do |tz| + tz.offset :o0, -14028, 0, :LMT + tz.offset :o1, -15408, 0, :CMT + tz.offset :o2, -14400, 0, :ART + tz.offset :o3, -14400, 3600, :ARST + tz.offset :o4, -10800, 0, :ART + tz.offset :o5, -10800, 3600, :ARST + + tz.transition 1894, 10, :o1, 17374555169, 7200 + tz.transition 1920, 5, :o2, 1453467407, 600 + tz.transition 1930, 12, :o3, 7278935, 3 + tz.transition 1931, 4, :o2, 19411461, 8 + tz.transition 1931, 10, :o3, 7279889, 3 + tz.transition 1932, 3, :o2, 19414141, 8 + tz.transition 1932, 11, :o3, 7281038, 3 + tz.transition 1933, 3, :o2, 19417061, 8 + tz.transition 1933, 11, :o3, 7282133, 3 + tz.transition 1934, 3, :o2, 19419981, 8 + tz.transition 1934, 11, :o3, 7283228, 3 + tz.transition 1935, 3, :o2, 19422901, 8 + tz.transition 1935, 11, :o3, 7284323, 3 + tz.transition 1936, 3, :o2, 19425829, 8 + tz.transition 1936, 11, :o3, 7285421, 3 + tz.transition 1937, 3, :o2, 19428749, 8 + tz.transition 1937, 11, :o3, 7286516, 3 + tz.transition 1938, 3, :o2, 19431669, 8 + tz.transition 1938, 11, :o3, 7287611, 3 + tz.transition 1939, 3, :o2, 19434589, 8 + tz.transition 1939, 11, :o3, 7288706, 3 + tz.transition 1940, 3, :o2, 19437517, 8 + tz.transition 1940, 7, :o3, 7289435, 3 + tz.transition 1941, 6, :o2, 19441285, 8 + tz.transition 1941, 10, :o3, 7290848, 3 + tz.transition 1943, 8, :o2, 19447501, 8 + tz.transition 1943, 10, :o3, 7293038, 3 + tz.transition 1946, 3, :o2, 19455045, 8 + tz.transition 1946, 10, :o3, 7296284, 3 + tz.transition 1963, 10, :o2, 19506429, 8 + tz.transition 1963, 12, :o3, 7315136, 3 + tz.transition 1964, 3, :o2, 19507645, 8 + tz.transition 1964, 10, :o3, 7316051, 3 + tz.transition 1965, 3, :o2, 19510565, 8 + tz.transition 1965, 10, :o3, 7317146, 3 + tz.transition 1966, 3, :o2, 19513485, 8 + tz.transition 1966, 10, :o3, 7318241, 3 + tz.transition 1967, 4, :o2, 19516661, 8 + tz.transition 1967, 10, :o3, 7319294, 3 + tz.transition 1968, 4, :o2, 19519629, 8 + tz.transition 1968, 10, :o3, 7320407, 3 + tz.transition 1969, 4, :o2, 19522541, 8 + tz.transition 1969, 10, :o4, 7321499, 3 + tz.transition 1974, 1, :o5, 128142000 + tz.transition 1974, 5, :o4, 136605600 + tz.transition 1988, 12, :o5, 596948400 + tz.transition 1989, 3, :o4, 605066400 + tz.transition 1989, 10, :o5, 624423600 + tz.transition 1990, 3, :o4, 636516000 + tz.transition 1990, 10, :o5, 656478000 + tz.transition 1991, 3, :o4, 667965600 + tz.transition 1991, 10, :o5, 687927600 + tz.transition 1992, 3, :o4, 699415200 + tz.transition 1992, 10, :o5, 719377200 + tz.transition 1993, 3, :o4, 731469600 + tz.transition 1999, 10, :o3, 938919600 + tz.transition 2000, 3, :o4, 952052400 + tz.transition 2007, 12, :o5, 1198983600 + tz.transition 2008, 3, :o4, 1205632800 + tz.transition 2008, 10, :o5, 1223175600 + tz.transition 2009, 3, :o4, 1237082400 + tz.transition 2009, 10, :o5, 1254625200 + tz.transition 2010, 3, :o4, 1269136800 + tz.transition 2010, 10, :o5, 1286074800 + tz.transition 2011, 3, :o4, 1300586400 + tz.transition 2011, 10, :o5, 1317524400 + tz.transition 2012, 3, :o4, 1332036000 + tz.transition 2012, 10, :o5, 1349578800 + tz.transition 2013, 3, :o4, 1363485600 + tz.transition 2013, 10, :o5, 1381028400 + tz.transition 2014, 3, :o4, 1394935200 + tz.transition 2014, 10, :o5, 1412478000 + tz.transition 2015, 3, :o4, 1426384800 + tz.transition 2015, 10, :o5, 1443927600 + tz.transition 2016, 3, :o4, 1458439200 + tz.transition 2016, 10, :o5, 1475377200 + tz.transition 2017, 3, :o4, 1489888800 + tz.transition 2017, 10, :o5, 1506826800 + tz.transition 2018, 3, :o4, 1521338400 + tz.transition 2018, 10, :o5, 1538881200 + tz.transition 2019, 3, :o4, 1552788000 + tz.transition 2019, 10, :o5, 1570330800 + tz.transition 2020, 3, :o4, 1584237600 + tz.transition 2020, 10, :o5, 1601780400 + tz.transition 2021, 3, :o4, 1616292000 + tz.transition 2021, 10, :o5, 1633230000 + tz.transition 2022, 3, :o4, 1647741600 + tz.transition 2022, 10, :o5, 1664679600 + tz.transition 2023, 3, :o4, 1679191200 + tz.transition 2023, 10, :o5, 1696129200 + tz.transition 2024, 3, :o4, 1710640800 + tz.transition 2024, 10, :o5, 1728183600 + tz.transition 2025, 3, :o4, 1742090400 + tz.transition 2025, 10, :o5, 1759633200 + tz.transition 2026, 3, :o4, 1773540000 + tz.transition 2026, 10, :o5, 1791082800 + tz.transition 2027, 3, :o4, 1805594400 + tz.transition 2027, 10, :o5, 1822532400 + tz.transition 2028, 3, :o4, 1837044000 + tz.transition 2028, 10, :o5, 1853982000 + tz.transition 2029, 3, :o4, 1868493600 + tz.transition 2029, 10, :o5, 1886036400 + tz.transition 2030, 3, :o4, 1899943200 + tz.transition 2030, 10, :o5, 1917486000 + tz.transition 2031, 3, :o4, 1931392800 + tz.transition 2031, 10, :o5, 1948935600 + tz.transition 2032, 3, :o4, 1963447200 + tz.transition 2032, 10, :o5, 1980385200 + tz.transition 2033, 3, :o4, 1994896800 + tz.transition 2033, 10, :o5, 2011834800 + tz.transition 2034, 3, :o4, 2026346400 + tz.transition 2034, 10, :o5, 2043284400 + tz.transition 2035, 3, :o4, 2057796000 + tz.transition 2035, 10, :o5, 2075338800 + tz.transition 2036, 3, :o4, 2089245600 + tz.transition 2036, 10, :o5, 2106788400 + tz.transition 2037, 3, :o4, 2120695200 + tz.transition 2037, 10, :o5, 2138238000 + tz.transition 2038, 3, :o4, 29586043, 12 + tz.transition 2038, 10, :o5, 19725597, 8 + tz.transition 2039, 3, :o4, 29590411, 12 + tz.transition 2039, 10, :o5, 19728509, 8 + tz.transition 2040, 3, :o4, 29594779, 12 + tz.transition 2040, 10, :o5, 19731477, 8 + tz.transition 2041, 3, :o4, 29599147, 12 + tz.transition 2041, 10, :o5, 19734389, 8 + tz.transition 2042, 3, :o4, 29603515, 12 + tz.transition 2042, 10, :o5, 19737301, 8 + tz.transition 2043, 3, :o4, 29607883, 12 + tz.transition 2043, 10, :o5, 19740213, 8 + tz.transition 2044, 3, :o4, 29612335, 12 + tz.transition 2044, 10, :o5, 19743125, 8 + tz.transition 2045, 3, :o4, 29616703, 12 + tz.transition 2045, 10, :o5, 19746037, 8 + tz.transition 2046, 3, :o4, 29621071, 12 + tz.transition 2046, 10, :o5, 19749005, 8 + tz.transition 2047, 3, :o4, 29625439, 12 + tz.transition 2047, 10, :o5, 19751917, 8 + tz.transition 2048, 3, :o4, 29629807, 12 + tz.transition 2048, 10, :o5, 19754829, 8 + tz.transition 2049, 3, :o4, 29634259, 12 + tz.transition 2049, 10, :o5, 19757741, 8 + tz.transition 2050, 3, :o4, 29638627, 12 + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/San_Juan.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/San_Juan.rb new file mode 100644 index 000000000..a5413612e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/San_Juan.rb @@ -0,0 +1,170 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Argentina + module San_Juan + include TimezoneDefinition + + timezone 'America/Argentina/San_Juan' do |tz| + tz.offset :o0, -16444, 0, :LMT + tz.offset :o1, -15408, 0, :CMT + tz.offset :o2, -14400, 0, :ART + tz.offset :o3, -14400, 3600, :ARST + tz.offset :o4, -10800, 0, :ART + tz.offset :o5, -10800, 3600, :ARST + tz.offset :o6, -14400, 0, :WART + + tz.transition 1894, 10, :o1, 52123666111, 21600 + tz.transition 1920, 5, :o2, 1453467407, 600 + tz.transition 1930, 12, :o3, 7278935, 3 + tz.transition 1931, 4, :o2, 19411461, 8 + tz.transition 1931, 10, :o3, 7279889, 3 + tz.transition 1932, 3, :o2, 19414141, 8 + tz.transition 1932, 11, :o3, 7281038, 3 + tz.transition 1933, 3, :o2, 19417061, 8 + tz.transition 1933, 11, :o3, 7282133, 3 + tz.transition 1934, 3, :o2, 19419981, 8 + tz.transition 1934, 11, :o3, 7283228, 3 + tz.transition 1935, 3, :o2, 19422901, 8 + tz.transition 1935, 11, :o3, 7284323, 3 + tz.transition 1936, 3, :o2, 19425829, 8 + tz.transition 1936, 11, :o3, 7285421, 3 + tz.transition 1937, 3, :o2, 19428749, 8 + tz.transition 1937, 11, :o3, 7286516, 3 + tz.transition 1938, 3, :o2, 19431669, 8 + tz.transition 1938, 11, :o3, 7287611, 3 + tz.transition 1939, 3, :o2, 19434589, 8 + tz.transition 1939, 11, :o3, 7288706, 3 + tz.transition 1940, 3, :o2, 19437517, 8 + tz.transition 1940, 7, :o3, 7289435, 3 + tz.transition 1941, 6, :o2, 19441285, 8 + tz.transition 1941, 10, :o3, 7290848, 3 + tz.transition 1943, 8, :o2, 19447501, 8 + tz.transition 1943, 10, :o3, 7293038, 3 + tz.transition 1946, 3, :o2, 19455045, 8 + tz.transition 1946, 10, :o3, 7296284, 3 + tz.transition 1963, 10, :o2, 19506429, 8 + tz.transition 1963, 12, :o3, 7315136, 3 + tz.transition 1964, 3, :o2, 19507645, 8 + tz.transition 1964, 10, :o3, 7316051, 3 + tz.transition 1965, 3, :o2, 19510565, 8 + tz.transition 1965, 10, :o3, 7317146, 3 + tz.transition 1966, 3, :o2, 19513485, 8 + tz.transition 1966, 10, :o3, 7318241, 3 + tz.transition 1967, 4, :o2, 19516661, 8 + tz.transition 1967, 10, :o3, 7319294, 3 + tz.transition 1968, 4, :o2, 19519629, 8 + tz.transition 1968, 10, :o3, 7320407, 3 + tz.transition 1969, 4, :o2, 19522541, 8 + tz.transition 1969, 10, :o4, 7321499, 3 + tz.transition 1974, 1, :o5, 128142000 + tz.transition 1974, 5, :o4, 136605600 + tz.transition 1988, 12, :o5, 596948400 + tz.transition 1989, 3, :o4, 605066400 + tz.transition 1989, 10, :o5, 624423600 + tz.transition 1990, 3, :o4, 636516000 + tz.transition 1990, 10, :o5, 656478000 + tz.transition 1991, 3, :o6, 667792800 + tz.transition 1991, 5, :o4, 673588800 + tz.transition 1991, 10, :o5, 687927600 + tz.transition 1992, 3, :o4, 699415200 + tz.transition 1992, 10, :o5, 719377200 + tz.transition 1993, 3, :o4, 731469600 + tz.transition 1999, 10, :o3, 938919600 + tz.transition 2000, 3, :o4, 952052400 + tz.transition 2004, 5, :o6, 1085972400 + tz.transition 2004, 7, :o4, 1090728000 + tz.transition 2007, 12, :o5, 1198983600 + tz.transition 2008, 3, :o4, 1205632800 + tz.transition 2008, 10, :o5, 1223175600 + tz.transition 2009, 3, :o4, 1237082400 + tz.transition 2009, 10, :o5, 1254625200 + tz.transition 2010, 3, :o4, 1269136800 + tz.transition 2010, 10, :o5, 1286074800 + tz.transition 2011, 3, :o4, 1300586400 + tz.transition 2011, 10, :o5, 1317524400 + tz.transition 2012, 3, :o4, 1332036000 + tz.transition 2012, 10, :o5, 1349578800 + tz.transition 2013, 3, :o4, 1363485600 + tz.transition 2013, 10, :o5, 1381028400 + tz.transition 2014, 3, :o4, 1394935200 + tz.transition 2014, 10, :o5, 1412478000 + tz.transition 2015, 3, :o4, 1426384800 + tz.transition 2015, 10, :o5, 1443927600 + tz.transition 2016, 3, :o4, 1458439200 + tz.transition 2016, 10, :o5, 1475377200 + tz.transition 2017, 3, :o4, 1489888800 + tz.transition 2017, 10, :o5, 1506826800 + tz.transition 2018, 3, :o4, 1521338400 + tz.transition 2018, 10, :o5, 1538881200 + tz.transition 2019, 3, :o4, 1552788000 + tz.transition 2019, 10, :o5, 1570330800 + tz.transition 2020, 3, :o4, 1584237600 + tz.transition 2020, 10, :o5, 1601780400 + tz.transition 2021, 3, :o4, 1616292000 + tz.transition 2021, 10, :o5, 1633230000 + tz.transition 2022, 3, :o4, 1647741600 + tz.transition 2022, 10, :o5, 1664679600 + tz.transition 2023, 3, :o4, 1679191200 + tz.transition 2023, 10, :o5, 1696129200 + tz.transition 2024, 3, :o4, 1710640800 + tz.transition 2024, 10, :o5, 1728183600 + tz.transition 2025, 3, :o4, 1742090400 + tz.transition 2025, 10, :o5, 1759633200 + tz.transition 2026, 3, :o4, 1773540000 + tz.transition 2026, 10, :o5, 1791082800 + tz.transition 2027, 3, :o4, 1805594400 + tz.transition 2027, 10, :o5, 1822532400 + tz.transition 2028, 3, :o4, 1837044000 + tz.transition 2028, 10, :o5, 1853982000 + tz.transition 2029, 3, :o4, 1868493600 + tz.transition 2029, 10, :o5, 1886036400 + tz.transition 2030, 3, :o4, 1899943200 + tz.transition 2030, 10, :o5, 1917486000 + tz.transition 2031, 3, :o4, 1931392800 + tz.transition 2031, 10, :o5, 1948935600 + tz.transition 2032, 3, :o4, 1963447200 + tz.transition 2032, 10, :o5, 1980385200 + tz.transition 2033, 3, :o4, 1994896800 + tz.transition 2033, 10, :o5, 2011834800 + tz.transition 2034, 3, :o4, 2026346400 + tz.transition 2034, 10, :o5, 2043284400 + tz.transition 2035, 3, :o4, 2057796000 + tz.transition 2035, 10, :o5, 2075338800 + tz.transition 2036, 3, :o4, 2089245600 + tz.transition 2036, 10, :o5, 2106788400 + tz.transition 2037, 3, :o4, 2120695200 + tz.transition 2037, 10, :o5, 2138238000 + tz.transition 2038, 3, :o4, 29586043, 12 + tz.transition 2038, 10, :o5, 19725597, 8 + tz.transition 2039, 3, :o4, 29590411, 12 + tz.transition 2039, 10, :o5, 19728509, 8 + tz.transition 2040, 3, :o4, 29594779, 12 + tz.transition 2040, 10, :o5, 19731477, 8 + tz.transition 2041, 3, :o4, 29599147, 12 + tz.transition 2041, 10, :o5, 19734389, 8 + tz.transition 2042, 3, :o4, 29603515, 12 + tz.transition 2042, 10, :o5, 19737301, 8 + tz.transition 2043, 3, :o4, 29607883, 12 + tz.transition 2043, 10, :o5, 19740213, 8 + tz.transition 2044, 3, :o4, 29612335, 12 + tz.transition 2044, 10, :o5, 19743125, 8 + tz.transition 2045, 3, :o4, 29616703, 12 + tz.transition 2045, 10, :o5, 19746037, 8 + tz.transition 2046, 3, :o4, 29621071, 12 + tz.transition 2046, 10, :o5, 19749005, 8 + tz.transition 2047, 3, :o4, 29625439, 12 + tz.transition 2047, 10, :o5, 19751917, 8 + tz.transition 2048, 3, :o4, 29629807, 12 + tz.transition 2048, 10, :o5, 19754829, 8 + tz.transition 2049, 3, :o4, 29634259, 12 + tz.transition 2049, 10, :o5, 19757741, 8 + tz.transition 2050, 3, :o4, 29638627, 12 + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Bogota.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Bogota.rb new file mode 100644 index 000000000..ef96435c6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Bogota.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Bogota + include TimezoneDefinition + + timezone 'America/Bogota' do |tz| + tz.offset :o0, -17780, 0, :LMT + tz.offset :o1, -17780, 0, :BMT + tz.offset :o2, -18000, 0, :COT + tz.offset :o3, -18000, 3600, :COST + + tz.transition 1884, 3, :o1, 10407954409, 4320 + tz.transition 1914, 11, :o2, 10456385929, 4320 + tz.transition 1992, 5, :o3, 704869200 + tz.transition 1993, 4, :o2, 733896000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Caracas.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Caracas.rb new file mode 100644 index 000000000..27392a540 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Caracas.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Caracas + include TimezoneDefinition + + timezone 'America/Caracas' do |tz| + tz.offset :o0, -16064, 0, :LMT + tz.offset :o1, -16060, 0, :CMT + tz.offset :o2, -16200, 0, :VET + tz.offset :o3, -14400, 0, :VET + + tz.transition 1890, 1, :o1, 1627673863, 675 + tz.transition 1912, 2, :o2, 10452001043, 4320 + tz.transition 1965, 1, :o3, 39020187, 16 + tz.transition 2007, 12, :o2, 1197183600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chicago.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chicago.rb new file mode 100644 index 000000000..0996857cf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chicago.rb @@ -0,0 +1,283 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Chicago + include TimezoneDefinition + + timezone 'America/Chicago' do |tz| + tz.offset :o0, -21036, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + tz.offset :o3, -18000, 0, :EST + tz.offset :o4, -21600, 3600, :CWT + tz.offset :o5, -21600, 3600, :CPT + + tz.transition 1883, 11, :o1, 9636533, 4 + tz.transition 1918, 3, :o2, 14530103, 6 + tz.transition 1918, 10, :o1, 58125451, 24 + tz.transition 1919, 3, :o2, 14532287, 6 + tz.transition 1919, 10, :o1, 58134187, 24 + tz.transition 1920, 6, :o2, 14534933, 6 + tz.transition 1920, 10, :o1, 58143091, 24 + tz.transition 1921, 3, :o2, 14536655, 6 + tz.transition 1921, 10, :o1, 58151827, 24 + tz.transition 1922, 4, :o2, 14539049, 6 + tz.transition 1922, 9, :o1, 58159723, 24 + tz.transition 1923, 4, :o2, 14541233, 6 + tz.transition 1923, 9, :o1, 58168627, 24 + tz.transition 1924, 4, :o2, 14543417, 6 + tz.transition 1924, 9, :o1, 58177363, 24 + tz.transition 1925, 4, :o2, 14545601, 6 + tz.transition 1925, 9, :o1, 58186099, 24 + tz.transition 1926, 4, :o2, 14547785, 6 + tz.transition 1926, 9, :o1, 58194835, 24 + tz.transition 1927, 4, :o2, 14549969, 6 + tz.transition 1927, 9, :o1, 58203571, 24 + tz.transition 1928, 4, :o2, 14552195, 6 + tz.transition 1928, 9, :o1, 58212475, 24 + tz.transition 1929, 4, :o2, 14554379, 6 + tz.transition 1929, 9, :o1, 58221211, 24 + tz.transition 1930, 4, :o2, 14556563, 6 + tz.transition 1930, 9, :o1, 58229947, 24 + tz.transition 1931, 4, :o2, 14558747, 6 + tz.transition 1931, 9, :o1, 58238683, 24 + tz.transition 1932, 4, :o2, 14560931, 6 + tz.transition 1932, 9, :o1, 58247419, 24 + tz.transition 1933, 4, :o2, 14563157, 6 + tz.transition 1933, 9, :o1, 58256155, 24 + tz.transition 1934, 4, :o2, 14565341, 6 + tz.transition 1934, 9, :o1, 58265059, 24 + tz.transition 1935, 4, :o2, 14567525, 6 + tz.transition 1935, 9, :o1, 58273795, 24 + tz.transition 1936, 3, :o3, 14569373, 6 + tz.transition 1936, 11, :o1, 58283707, 24 + tz.transition 1937, 4, :o2, 14571893, 6 + tz.transition 1937, 9, :o1, 58291267, 24 + tz.transition 1938, 4, :o2, 14574077, 6 + tz.transition 1938, 9, :o1, 58300003, 24 + tz.transition 1939, 4, :o2, 14576303, 6 + tz.transition 1939, 9, :o1, 58308739, 24 + tz.transition 1940, 4, :o2, 14578487, 6 + tz.transition 1940, 9, :o1, 58317643, 24 + tz.transition 1941, 4, :o2, 14580671, 6 + tz.transition 1941, 9, :o1, 58326379, 24 + tz.transition 1942, 2, :o4, 14582399, 6 + tz.transition 1945, 8, :o5, 58360379, 24 + tz.transition 1945, 9, :o1, 58361491, 24 + tz.transition 1946, 4, :o2, 14591633, 6 + tz.transition 1946, 9, :o1, 58370227, 24 + tz.transition 1947, 4, :o2, 14593817, 6 + tz.transition 1947, 9, :o1, 58378963, 24 + tz.transition 1948, 4, :o2, 14596001, 6 + tz.transition 1948, 9, :o1, 58387699, 24 + tz.transition 1949, 4, :o2, 14598185, 6 + tz.transition 1949, 9, :o1, 58396435, 24 + tz.transition 1950, 4, :o2, 14600411, 6 + tz.transition 1950, 9, :o1, 58405171, 24 + tz.transition 1951, 4, :o2, 14602595, 6 + tz.transition 1951, 9, :o1, 58414075, 24 + tz.transition 1952, 4, :o2, 14604779, 6 + tz.transition 1952, 9, :o1, 58422811, 24 + tz.transition 1953, 4, :o2, 14606963, 6 + tz.transition 1953, 9, :o1, 58431547, 24 + tz.transition 1954, 4, :o2, 14609147, 6 + tz.transition 1954, 9, :o1, 58440283, 24 + tz.transition 1955, 4, :o2, 14611331, 6 + tz.transition 1955, 10, :o1, 58449859, 24 + tz.transition 1956, 4, :o2, 14613557, 6 + tz.transition 1956, 10, :o1, 58458595, 24 + tz.transition 1957, 4, :o2, 14615741, 6 + tz.transition 1957, 10, :o1, 58467331, 24 + tz.transition 1958, 4, :o2, 14617925, 6 + tz.transition 1958, 10, :o1, 58476067, 24 + tz.transition 1959, 4, :o2, 14620109, 6 + tz.transition 1959, 10, :o1, 58484803, 24 + tz.transition 1960, 4, :o2, 14622293, 6 + tz.transition 1960, 10, :o1, 58493707, 24 + tz.transition 1961, 4, :o2, 14624519, 6 + tz.transition 1961, 10, :o1, 58502443, 24 + tz.transition 1962, 4, :o2, 14626703, 6 + tz.transition 1962, 10, :o1, 58511179, 24 + tz.transition 1963, 4, :o2, 14628887, 6 + tz.transition 1963, 10, :o1, 58519915, 24 + tz.transition 1964, 4, :o2, 14631071, 6 + tz.transition 1964, 10, :o1, 58528651, 24 + tz.transition 1965, 4, :o2, 14633255, 6 + tz.transition 1965, 10, :o1, 58537555, 24 + tz.transition 1966, 4, :o2, 14635439, 6 + tz.transition 1966, 10, :o1, 58546291, 24 + tz.transition 1967, 4, :o2, 14637665, 6 + tz.transition 1967, 10, :o1, 58555027, 24 + tz.transition 1968, 4, :o2, 14639849, 6 + tz.transition 1968, 10, :o1, 58563763, 24 + tz.transition 1969, 4, :o2, 14642033, 6 + tz.transition 1969, 10, :o1, 58572499, 24 + tz.transition 1970, 4, :o2, 9964800 + tz.transition 1970, 10, :o1, 25686000 + tz.transition 1971, 4, :o2, 41414400 + tz.transition 1971, 10, :o1, 57740400 + tz.transition 1972, 4, :o2, 73468800 + tz.transition 1972, 10, :o1, 89190000 + tz.transition 1973, 4, :o2, 104918400 + tz.transition 1973, 10, :o1, 120639600 + tz.transition 1974, 1, :o2, 126691200 + tz.transition 1974, 10, :o1, 152089200 + tz.transition 1975, 2, :o2, 162374400 + tz.transition 1975, 10, :o1, 183538800 + tz.transition 1976, 4, :o2, 199267200 + tz.transition 1976, 10, :o1, 215593200 + tz.transition 1977, 4, :o2, 230716800 + tz.transition 1977, 10, :o1, 247042800 + tz.transition 1978, 4, :o2, 262771200 + tz.transition 1978, 10, :o1, 278492400 + tz.transition 1979, 4, :o2, 294220800 + tz.transition 1979, 10, :o1, 309942000 + tz.transition 1980, 4, :o2, 325670400 + tz.transition 1980, 10, :o1, 341391600 + tz.transition 1981, 4, :o2, 357120000 + tz.transition 1981, 10, :o1, 372841200 + tz.transition 1982, 4, :o2, 388569600 + tz.transition 1982, 10, :o1, 404895600 + tz.transition 1983, 4, :o2, 420019200 + tz.transition 1983, 10, :o1, 436345200 + tz.transition 1984, 4, :o2, 452073600 + tz.transition 1984, 10, :o1, 467794800 + tz.transition 1985, 4, :o2, 483523200 + tz.transition 1985, 10, :o1, 499244400 + tz.transition 1986, 4, :o2, 514972800 + tz.transition 1986, 10, :o1, 530694000 + tz.transition 1987, 4, :o2, 544608000 + tz.transition 1987, 10, :o1, 562143600 + tz.transition 1988, 4, :o2, 576057600 + tz.transition 1988, 10, :o1, 594198000 + tz.transition 1989, 4, :o2, 607507200 + tz.transition 1989, 10, :o1, 625647600 + tz.transition 1990, 4, :o2, 638956800 + tz.transition 1990, 10, :o1, 657097200 + tz.transition 1991, 4, :o2, 671011200 + tz.transition 1991, 10, :o1, 688546800 + tz.transition 1992, 4, :o2, 702460800 + tz.transition 1992, 10, :o1, 719996400 + tz.transition 1993, 4, :o2, 733910400 + tz.transition 1993, 10, :o1, 752050800 + tz.transition 1994, 4, :o2, 765360000 + tz.transition 1994, 10, :o1, 783500400 + tz.transition 1995, 4, :o2, 796809600 + tz.transition 1995, 10, :o1, 814950000 + tz.transition 1996, 4, :o2, 828864000 + tz.transition 1996, 10, :o1, 846399600 + tz.transition 1997, 4, :o2, 860313600 + tz.transition 1997, 10, :o1, 877849200 + tz.transition 1998, 4, :o2, 891763200 + tz.transition 1998, 10, :o1, 909298800 + tz.transition 1999, 4, :o2, 923212800 + tz.transition 1999, 10, :o1, 941353200 + tz.transition 2000, 4, :o2, 954662400 + tz.transition 2000, 10, :o1, 972802800 + tz.transition 2001, 4, :o2, 986112000 + tz.transition 2001, 10, :o1, 1004252400 + tz.transition 2002, 4, :o2, 1018166400 + tz.transition 2002, 10, :o1, 1035702000 + tz.transition 2003, 4, :o2, 1049616000 + tz.transition 2003, 10, :o1, 1067151600 + tz.transition 2004, 4, :o2, 1081065600 + tz.transition 2004, 10, :o1, 1099206000 + tz.transition 2005, 4, :o2, 1112515200 + tz.transition 2005, 10, :o1, 1130655600 + tz.transition 2006, 4, :o2, 1143964800 + tz.transition 2006, 10, :o1, 1162105200 + tz.transition 2007, 3, :o2, 1173600000 + tz.transition 2007, 11, :o1, 1194159600 + tz.transition 2008, 3, :o2, 1205049600 + tz.transition 2008, 11, :o1, 1225609200 + tz.transition 2009, 3, :o2, 1236499200 + tz.transition 2009, 11, :o1, 1257058800 + tz.transition 2010, 3, :o2, 1268553600 + tz.transition 2010, 11, :o1, 1289113200 + tz.transition 2011, 3, :o2, 1300003200 + tz.transition 2011, 11, :o1, 1320562800 + tz.transition 2012, 3, :o2, 1331452800 + tz.transition 2012, 11, :o1, 1352012400 + tz.transition 2013, 3, :o2, 1362902400 + tz.transition 2013, 11, :o1, 1383462000 + tz.transition 2014, 3, :o2, 1394352000 + tz.transition 2014, 11, :o1, 1414911600 + tz.transition 2015, 3, :o2, 1425801600 + tz.transition 2015, 11, :o1, 1446361200 + tz.transition 2016, 3, :o2, 1457856000 + tz.transition 2016, 11, :o1, 1478415600 + tz.transition 2017, 3, :o2, 1489305600 + tz.transition 2017, 11, :o1, 1509865200 + tz.transition 2018, 3, :o2, 1520755200 + tz.transition 2018, 11, :o1, 1541314800 + tz.transition 2019, 3, :o2, 1552204800 + tz.transition 2019, 11, :o1, 1572764400 + tz.transition 2020, 3, :o2, 1583654400 + tz.transition 2020, 11, :o1, 1604214000 + tz.transition 2021, 3, :o2, 1615708800 + tz.transition 2021, 11, :o1, 1636268400 + tz.transition 2022, 3, :o2, 1647158400 + tz.transition 2022, 11, :o1, 1667718000 + tz.transition 2023, 3, :o2, 1678608000 + tz.transition 2023, 11, :o1, 1699167600 + tz.transition 2024, 3, :o2, 1710057600 + tz.transition 2024, 11, :o1, 1730617200 + tz.transition 2025, 3, :o2, 1741507200 + tz.transition 2025, 11, :o1, 1762066800 + tz.transition 2026, 3, :o2, 1772956800 + tz.transition 2026, 11, :o1, 1793516400 + tz.transition 2027, 3, :o2, 1805011200 + tz.transition 2027, 11, :o1, 1825570800 + tz.transition 2028, 3, :o2, 1836460800 + tz.transition 2028, 11, :o1, 1857020400 + tz.transition 2029, 3, :o2, 1867910400 + tz.transition 2029, 11, :o1, 1888470000 + tz.transition 2030, 3, :o2, 1899360000 + tz.transition 2030, 11, :o1, 1919919600 + tz.transition 2031, 3, :o2, 1930809600 + tz.transition 2031, 11, :o1, 1951369200 + tz.transition 2032, 3, :o2, 1962864000 + tz.transition 2032, 11, :o1, 1983423600 + tz.transition 2033, 3, :o2, 1994313600 + tz.transition 2033, 11, :o1, 2014873200 + tz.transition 2034, 3, :o2, 2025763200 + tz.transition 2034, 11, :o1, 2046322800 + tz.transition 2035, 3, :o2, 2057212800 + tz.transition 2035, 11, :o1, 2077772400 + tz.transition 2036, 3, :o2, 2088662400 + tz.transition 2036, 11, :o1, 2109222000 + tz.transition 2037, 3, :o2, 2120112000 + tz.transition 2037, 11, :o1, 2140671600 + tz.transition 2038, 3, :o2, 14792981, 6 + tz.transition 2038, 11, :o1, 59177635, 24 + tz.transition 2039, 3, :o2, 14795165, 6 + tz.transition 2039, 11, :o1, 59186371, 24 + tz.transition 2040, 3, :o2, 14797349, 6 + tz.transition 2040, 11, :o1, 59195107, 24 + tz.transition 2041, 3, :o2, 14799533, 6 + tz.transition 2041, 11, :o1, 59203843, 24 + tz.transition 2042, 3, :o2, 14801717, 6 + tz.transition 2042, 11, :o1, 59212579, 24 + tz.transition 2043, 3, :o2, 14803901, 6 + tz.transition 2043, 11, :o1, 59221315, 24 + tz.transition 2044, 3, :o2, 14806127, 6 + tz.transition 2044, 11, :o1, 59230219, 24 + tz.transition 2045, 3, :o2, 14808311, 6 + tz.transition 2045, 11, :o1, 59238955, 24 + tz.transition 2046, 3, :o2, 14810495, 6 + tz.transition 2046, 11, :o1, 59247691, 24 + tz.transition 2047, 3, :o2, 14812679, 6 + tz.transition 2047, 11, :o1, 59256427, 24 + tz.transition 2048, 3, :o2, 14814863, 6 + tz.transition 2048, 11, :o1, 59265163, 24 + tz.transition 2049, 3, :o2, 14817089, 6 + tz.transition 2049, 11, :o1, 59274067, 24 + tz.transition 2050, 3, :o2, 14819273, 6 + tz.transition 2050, 11, :o1, 59282803, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chihuahua.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chihuahua.rb new file mode 100644 index 000000000..1710b57c7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chihuahua.rb @@ -0,0 +1,136 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Chihuahua + include TimezoneDefinition + + timezone 'America/Chihuahua' do |tz| + tz.offset :o0, -25460, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -21600, 0, :CST + tz.offset :o3, -21600, 3600, :CDT + tz.offset :o4, -25200, 3600, :MDT + + tz.transition 1922, 1, :o1, 58153339, 24 + tz.transition 1927, 6, :o2, 9700171, 4 + tz.transition 1930, 11, :o1, 9705183, 4 + tz.transition 1931, 5, :o2, 9705855, 4 + tz.transition 1931, 10, :o1, 9706463, 4 + tz.transition 1932, 4, :o2, 58243171, 24 + tz.transition 1996, 4, :o3, 828864000 + tz.transition 1996, 10, :o2, 846399600 + tz.transition 1997, 4, :o3, 860313600 + tz.transition 1997, 10, :o2, 877849200 + tz.transition 1998, 4, :o4, 891766800 + tz.transition 1998, 10, :o1, 909302400 + tz.transition 1999, 4, :o4, 923216400 + tz.transition 1999, 10, :o1, 941356800 + tz.transition 2000, 4, :o4, 954666000 + tz.transition 2000, 10, :o1, 972806400 + tz.transition 2001, 5, :o4, 989139600 + tz.transition 2001, 9, :o1, 1001836800 + tz.transition 2002, 4, :o4, 1018170000 + tz.transition 2002, 10, :o1, 1035705600 + tz.transition 2003, 4, :o4, 1049619600 + tz.transition 2003, 10, :o1, 1067155200 + tz.transition 2004, 4, :o4, 1081069200 + tz.transition 2004, 10, :o1, 1099209600 + tz.transition 2005, 4, :o4, 1112518800 + tz.transition 2005, 10, :o1, 1130659200 + tz.transition 2006, 4, :o4, 1143968400 + tz.transition 2006, 10, :o1, 1162108800 + tz.transition 2007, 4, :o4, 1175418000 + tz.transition 2007, 10, :o1, 1193558400 + tz.transition 2008, 4, :o4, 1207472400 + tz.transition 2008, 10, :o1, 1225008000 + tz.transition 2009, 4, :o4, 1238922000 + tz.transition 2009, 10, :o1, 1256457600 + tz.transition 2010, 4, :o4, 1270371600 + tz.transition 2010, 10, :o1, 1288512000 + tz.transition 2011, 4, :o4, 1301821200 + tz.transition 2011, 10, :o1, 1319961600 + tz.transition 2012, 4, :o4, 1333270800 + tz.transition 2012, 10, :o1, 1351411200 + tz.transition 2013, 4, :o4, 1365325200 + tz.transition 2013, 10, :o1, 1382860800 + tz.transition 2014, 4, :o4, 1396774800 + tz.transition 2014, 10, :o1, 1414310400 + tz.transition 2015, 4, :o4, 1428224400 + tz.transition 2015, 10, :o1, 1445760000 + tz.transition 2016, 4, :o4, 1459674000 + tz.transition 2016, 10, :o1, 1477814400 + tz.transition 2017, 4, :o4, 1491123600 + tz.transition 2017, 10, :o1, 1509264000 + tz.transition 2018, 4, :o4, 1522573200 + tz.transition 2018, 10, :o1, 1540713600 + tz.transition 2019, 4, :o4, 1554627600 + tz.transition 2019, 10, :o1, 1572163200 + tz.transition 2020, 4, :o4, 1586077200 + tz.transition 2020, 10, :o1, 1603612800 + tz.transition 2021, 4, :o4, 1617526800 + tz.transition 2021, 10, :o1, 1635667200 + tz.transition 2022, 4, :o4, 1648976400 + tz.transition 2022, 10, :o1, 1667116800 + tz.transition 2023, 4, :o4, 1680426000 + tz.transition 2023, 10, :o1, 1698566400 + tz.transition 2024, 4, :o4, 1712480400 + tz.transition 2024, 10, :o1, 1730016000 + tz.transition 2025, 4, :o4, 1743930000 + tz.transition 2025, 10, :o1, 1761465600 + tz.transition 2026, 4, :o4, 1775379600 + tz.transition 2026, 10, :o1, 1792915200 + tz.transition 2027, 4, :o4, 1806829200 + tz.transition 2027, 10, :o1, 1824969600 + tz.transition 2028, 4, :o4, 1838278800 + tz.transition 2028, 10, :o1, 1856419200 + tz.transition 2029, 4, :o4, 1869728400 + tz.transition 2029, 10, :o1, 1887868800 + tz.transition 2030, 4, :o4, 1901782800 + tz.transition 2030, 10, :o1, 1919318400 + tz.transition 2031, 4, :o4, 1933232400 + tz.transition 2031, 10, :o1, 1950768000 + tz.transition 2032, 4, :o4, 1964682000 + tz.transition 2032, 10, :o1, 1982822400 + tz.transition 2033, 4, :o4, 1996131600 + tz.transition 2033, 10, :o1, 2014272000 + tz.transition 2034, 4, :o4, 2027581200 + tz.transition 2034, 10, :o1, 2045721600 + tz.transition 2035, 4, :o4, 2059030800 + tz.transition 2035, 10, :o1, 2077171200 + tz.transition 2036, 4, :o4, 2091085200 + tz.transition 2036, 10, :o1, 2108620800 + tz.transition 2037, 4, :o4, 2122534800 + tz.transition 2037, 10, :o1, 2140070400 + tz.transition 2038, 4, :o4, 19724143, 8 + tz.transition 2038, 10, :o1, 14794367, 6 + tz.transition 2039, 4, :o4, 19727055, 8 + tz.transition 2039, 10, :o1, 14796551, 6 + tz.transition 2040, 4, :o4, 19729967, 8 + tz.transition 2040, 10, :o1, 14798735, 6 + tz.transition 2041, 4, :o4, 19732935, 8 + tz.transition 2041, 10, :o1, 14800919, 6 + tz.transition 2042, 4, :o4, 19735847, 8 + tz.transition 2042, 10, :o1, 14803103, 6 + tz.transition 2043, 4, :o4, 19738759, 8 + tz.transition 2043, 10, :o1, 14805287, 6 + tz.transition 2044, 4, :o4, 19741671, 8 + tz.transition 2044, 10, :o1, 14807513, 6 + tz.transition 2045, 4, :o4, 19744583, 8 + tz.transition 2045, 10, :o1, 14809697, 6 + tz.transition 2046, 4, :o4, 19747495, 8 + tz.transition 2046, 10, :o1, 14811881, 6 + tz.transition 2047, 4, :o4, 19750463, 8 + tz.transition 2047, 10, :o1, 14814065, 6 + tz.transition 2048, 4, :o4, 19753375, 8 + tz.transition 2048, 10, :o1, 14816249, 6 + tz.transition 2049, 4, :o4, 19756287, 8 + tz.transition 2049, 10, :o1, 14818475, 6 + tz.transition 2050, 4, :o4, 19759199, 8 + tz.transition 2050, 10, :o1, 14820659, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Denver.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Denver.rb new file mode 100644 index 000000000..1c1efb5ff --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Denver.rb @@ -0,0 +1,204 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Denver + include TimezoneDefinition + + timezone 'America/Denver' do |tz| + tz.offset :o0, -25196, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -25200, 3600, :MDT + tz.offset :o3, -25200, 3600, :MWT + tz.offset :o4, -25200, 3600, :MPT + + tz.transition 1883, 11, :o1, 57819199, 24 + tz.transition 1918, 3, :o2, 19373471, 8 + tz.transition 1918, 10, :o1, 14531363, 6 + tz.transition 1919, 3, :o2, 19376383, 8 + tz.transition 1919, 10, :o1, 14533547, 6 + tz.transition 1920, 3, :o2, 19379295, 8 + tz.transition 1920, 10, :o1, 14535773, 6 + tz.transition 1921, 3, :o2, 19382207, 8 + tz.transition 1921, 5, :o1, 14536991, 6 + tz.transition 1942, 2, :o3, 19443199, 8 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 14590373, 6 + tz.transition 1965, 4, :o2, 19511007, 8 + tz.transition 1965, 10, :o1, 14634389, 6 + tz.transition 1966, 4, :o2, 19513919, 8 + tz.transition 1966, 10, :o1, 14636573, 6 + tz.transition 1967, 4, :o2, 19516887, 8 + tz.transition 1967, 10, :o1, 14638757, 6 + tz.transition 1968, 4, :o2, 19519799, 8 + tz.transition 1968, 10, :o1, 14640941, 6 + tz.transition 1969, 4, :o2, 19522711, 8 + tz.transition 1969, 10, :o1, 14643125, 6 + tz.transition 1970, 4, :o2, 9968400 + tz.transition 1970, 10, :o1, 25689600 + tz.transition 1971, 4, :o2, 41418000 + tz.transition 1971, 10, :o1, 57744000 + tz.transition 1972, 4, :o2, 73472400 + tz.transition 1972, 10, :o1, 89193600 + tz.transition 1973, 4, :o2, 104922000 + tz.transition 1973, 10, :o1, 120643200 + tz.transition 1974, 1, :o2, 126694800 + tz.transition 1974, 10, :o1, 152092800 + tz.transition 1975, 2, :o2, 162378000 + tz.transition 1975, 10, :o1, 183542400 + tz.transition 1976, 4, :o2, 199270800 + tz.transition 1976, 10, :o1, 215596800 + tz.transition 1977, 4, :o2, 230720400 + tz.transition 1977, 10, :o1, 247046400 + tz.transition 1978, 4, :o2, 262774800 + tz.transition 1978, 10, :o1, 278496000 + tz.transition 1979, 4, :o2, 294224400 + tz.transition 1979, 10, :o1, 309945600 + tz.transition 1980, 4, :o2, 325674000 + tz.transition 1980, 10, :o1, 341395200 + tz.transition 1981, 4, :o2, 357123600 + tz.transition 1981, 10, :o1, 372844800 + tz.transition 1982, 4, :o2, 388573200 + tz.transition 1982, 10, :o1, 404899200 + tz.transition 1983, 4, :o2, 420022800 + tz.transition 1983, 10, :o1, 436348800 + tz.transition 1984, 4, :o2, 452077200 + tz.transition 1984, 10, :o1, 467798400 + tz.transition 1985, 4, :o2, 483526800 + tz.transition 1985, 10, :o1, 499248000 + tz.transition 1986, 4, :o2, 514976400 + tz.transition 1986, 10, :o1, 530697600 + tz.transition 1987, 4, :o2, 544611600 + tz.transition 1987, 10, :o1, 562147200 + tz.transition 1988, 4, :o2, 576061200 + tz.transition 1988, 10, :o1, 594201600 + tz.transition 1989, 4, :o2, 607510800 + tz.transition 1989, 10, :o1, 625651200 + tz.transition 1990, 4, :o2, 638960400 + tz.transition 1990, 10, :o1, 657100800 + tz.transition 1991, 4, :o2, 671014800 + tz.transition 1991, 10, :o1, 688550400 + tz.transition 1992, 4, :o2, 702464400 + tz.transition 1992, 10, :o1, 720000000 + tz.transition 1993, 4, :o2, 733914000 + tz.transition 1993, 10, :o1, 752054400 + tz.transition 1994, 4, :o2, 765363600 + tz.transition 1994, 10, :o1, 783504000 + tz.transition 1995, 4, :o2, 796813200 + tz.transition 1995, 10, :o1, 814953600 + tz.transition 1996, 4, :o2, 828867600 + tz.transition 1996, 10, :o1, 846403200 + tz.transition 1997, 4, :o2, 860317200 + tz.transition 1997, 10, :o1, 877852800 + tz.transition 1998, 4, :o2, 891766800 + tz.transition 1998, 10, :o1, 909302400 + tz.transition 1999, 4, :o2, 923216400 + tz.transition 1999, 10, :o1, 941356800 + tz.transition 2000, 4, :o2, 954666000 + tz.transition 2000, 10, :o1, 972806400 + tz.transition 2001, 4, :o2, 986115600 + tz.transition 2001, 10, :o1, 1004256000 + tz.transition 2002, 4, :o2, 1018170000 + tz.transition 2002, 10, :o1, 1035705600 + tz.transition 2003, 4, :o2, 1049619600 + tz.transition 2003, 10, :o1, 1067155200 + tz.transition 2004, 4, :o2, 1081069200 + tz.transition 2004, 10, :o1, 1099209600 + tz.transition 2005, 4, :o2, 1112518800 + tz.transition 2005, 10, :o1, 1130659200 + tz.transition 2006, 4, :o2, 1143968400 + tz.transition 2006, 10, :o1, 1162108800 + tz.transition 2007, 3, :o2, 1173603600 + tz.transition 2007, 11, :o1, 1194163200 + tz.transition 2008, 3, :o2, 1205053200 + tz.transition 2008, 11, :o1, 1225612800 + tz.transition 2009, 3, :o2, 1236502800 + tz.transition 2009, 11, :o1, 1257062400 + tz.transition 2010, 3, :o2, 1268557200 + tz.transition 2010, 11, :o1, 1289116800 + tz.transition 2011, 3, :o2, 1300006800 + tz.transition 2011, 11, :o1, 1320566400 + tz.transition 2012, 3, :o2, 1331456400 + tz.transition 2012, 11, :o1, 1352016000 + tz.transition 2013, 3, :o2, 1362906000 + tz.transition 2013, 11, :o1, 1383465600 + tz.transition 2014, 3, :o2, 1394355600 + tz.transition 2014, 11, :o1, 1414915200 + tz.transition 2015, 3, :o2, 1425805200 + tz.transition 2015, 11, :o1, 1446364800 + tz.transition 2016, 3, :o2, 1457859600 + tz.transition 2016, 11, :o1, 1478419200 + tz.transition 2017, 3, :o2, 1489309200 + tz.transition 2017, 11, :o1, 1509868800 + tz.transition 2018, 3, :o2, 1520758800 + tz.transition 2018, 11, :o1, 1541318400 + tz.transition 2019, 3, :o2, 1552208400 + tz.transition 2019, 11, :o1, 1572768000 + tz.transition 2020, 3, :o2, 1583658000 + tz.transition 2020, 11, :o1, 1604217600 + tz.transition 2021, 3, :o2, 1615712400 + tz.transition 2021, 11, :o1, 1636272000 + tz.transition 2022, 3, :o2, 1647162000 + tz.transition 2022, 11, :o1, 1667721600 + tz.transition 2023, 3, :o2, 1678611600 + tz.transition 2023, 11, :o1, 1699171200 + tz.transition 2024, 3, :o2, 1710061200 + tz.transition 2024, 11, :o1, 1730620800 + tz.transition 2025, 3, :o2, 1741510800 + tz.transition 2025, 11, :o1, 1762070400 + tz.transition 2026, 3, :o2, 1772960400 + tz.transition 2026, 11, :o1, 1793520000 + tz.transition 2027, 3, :o2, 1805014800 + tz.transition 2027, 11, :o1, 1825574400 + tz.transition 2028, 3, :o2, 1836464400 + tz.transition 2028, 11, :o1, 1857024000 + tz.transition 2029, 3, :o2, 1867914000 + tz.transition 2029, 11, :o1, 1888473600 + tz.transition 2030, 3, :o2, 1899363600 + tz.transition 2030, 11, :o1, 1919923200 + tz.transition 2031, 3, :o2, 1930813200 + tz.transition 2031, 11, :o1, 1951372800 + tz.transition 2032, 3, :o2, 1962867600 + tz.transition 2032, 11, :o1, 1983427200 + tz.transition 2033, 3, :o2, 1994317200 + tz.transition 2033, 11, :o1, 2014876800 + tz.transition 2034, 3, :o2, 2025766800 + tz.transition 2034, 11, :o1, 2046326400 + tz.transition 2035, 3, :o2, 2057216400 + tz.transition 2035, 11, :o1, 2077776000 + tz.transition 2036, 3, :o2, 2088666000 + tz.transition 2036, 11, :o1, 2109225600 + tz.transition 2037, 3, :o2, 2120115600 + tz.transition 2037, 11, :o1, 2140675200 + tz.transition 2038, 3, :o2, 19723975, 8 + tz.transition 2038, 11, :o1, 14794409, 6 + tz.transition 2039, 3, :o2, 19726887, 8 + tz.transition 2039, 11, :o1, 14796593, 6 + tz.transition 2040, 3, :o2, 19729799, 8 + tz.transition 2040, 11, :o1, 14798777, 6 + tz.transition 2041, 3, :o2, 19732711, 8 + tz.transition 2041, 11, :o1, 14800961, 6 + tz.transition 2042, 3, :o2, 19735623, 8 + tz.transition 2042, 11, :o1, 14803145, 6 + tz.transition 2043, 3, :o2, 19738535, 8 + tz.transition 2043, 11, :o1, 14805329, 6 + tz.transition 2044, 3, :o2, 19741503, 8 + tz.transition 2044, 11, :o1, 14807555, 6 + tz.transition 2045, 3, :o2, 19744415, 8 + tz.transition 2045, 11, :o1, 14809739, 6 + tz.transition 2046, 3, :o2, 19747327, 8 + tz.transition 2046, 11, :o1, 14811923, 6 + tz.transition 2047, 3, :o2, 19750239, 8 + tz.transition 2047, 11, :o1, 14814107, 6 + tz.transition 2048, 3, :o2, 19753151, 8 + tz.transition 2048, 11, :o1, 14816291, 6 + tz.transition 2049, 3, :o2, 19756119, 8 + tz.transition 2049, 11, :o1, 14818517, 6 + tz.transition 2050, 3, :o2, 19759031, 8 + tz.transition 2050, 11, :o1, 14820701, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Godthab.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Godthab.rb new file mode 100644 index 000000000..1e05518b0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Godthab.rb @@ -0,0 +1,161 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Godthab + include TimezoneDefinition + + timezone 'America/Godthab' do |tz| + tz.offset :o0, -12416, 0, :LMT + tz.offset :o1, -10800, 0, :WGT + tz.offset :o2, -10800, 3600, :WGST + + tz.transition 1916, 7, :o1, 3268448069, 1350 + tz.transition 1980, 4, :o2, 323845200 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Guatemala.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Guatemala.rb new file mode 100644 index 000000000..a2bf73401 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Guatemala.rb @@ -0,0 +1,27 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Guatemala + include TimezoneDefinition + + timezone 'America/Guatemala' do |tz| + tz.offset :o0, -21724, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + + tz.transition 1918, 10, :o1, 52312429831, 21600 + tz.transition 1973, 11, :o2, 123055200 + tz.transition 1974, 2, :o1, 130914000 + tz.transition 1983, 5, :o2, 422344800 + tz.transition 1983, 9, :o1, 433054800 + tz.transition 1991, 3, :o2, 669708000 + tz.transition 1991, 9, :o1, 684219600 + tz.transition 2006, 4, :o2, 1146376800 + tz.transition 2006, 10, :o1, 1159678800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Halifax.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Halifax.rb new file mode 100644 index 000000000..d25ae775b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Halifax.rb @@ -0,0 +1,274 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Halifax + include TimezoneDefinition + + timezone 'America/Halifax' do |tz| + tz.offset :o0, -15264, 0, :LMT + tz.offset :o1, -14400, 0, :AST + tz.offset :o2, -14400, 3600, :ADT + tz.offset :o3, -14400, 3600, :AWT + tz.offset :o4, -14400, 3600, :APT + + tz.transition 1902, 6, :o1, 724774703, 300 + tz.transition 1916, 4, :o2, 7262864, 3 + tz.transition 1916, 10, :o1, 19369101, 8 + tz.transition 1918, 4, :o2, 9686791, 4 + tz.transition 1918, 10, :o1, 58125545, 24 + tz.transition 1920, 5, :o2, 7267361, 3 + tz.transition 1920, 8, :o1, 19380525, 8 + tz.transition 1921, 5, :o2, 7268447, 3 + tz.transition 1921, 9, :o1, 19383501, 8 + tz.transition 1922, 4, :o2, 7269524, 3 + tz.transition 1922, 9, :o1, 19386421, 8 + tz.transition 1923, 5, :o2, 7270637, 3 + tz.transition 1923, 9, :o1, 19389333, 8 + tz.transition 1924, 5, :o2, 7271729, 3 + tz.transition 1924, 9, :o1, 19392349, 8 + tz.transition 1925, 5, :o2, 7272821, 3 + tz.transition 1925, 9, :o1, 19395373, 8 + tz.transition 1926, 5, :o2, 7273955, 3 + tz.transition 1926, 9, :o1, 19398173, 8 + tz.transition 1927, 5, :o2, 7275005, 3 + tz.transition 1927, 9, :o1, 19401197, 8 + tz.transition 1928, 5, :o2, 7276139, 3 + tz.transition 1928, 9, :o1, 19403989, 8 + tz.transition 1929, 5, :o2, 7277231, 3 + tz.transition 1929, 9, :o1, 19406861, 8 + tz.transition 1930, 5, :o2, 7278323, 3 + tz.transition 1930, 9, :o1, 19409877, 8 + tz.transition 1931, 5, :o2, 7279415, 3 + tz.transition 1931, 9, :o1, 19412901, 8 + tz.transition 1932, 5, :o2, 7280486, 3 + tz.transition 1932, 9, :o1, 19415813, 8 + tz.transition 1933, 4, :o2, 7281578, 3 + tz.transition 1933, 10, :o1, 19418781, 8 + tz.transition 1934, 5, :o2, 7282733, 3 + tz.transition 1934, 9, :o1, 19421573, 8 + tz.transition 1935, 6, :o2, 7283867, 3 + tz.transition 1935, 9, :o1, 19424605, 8 + tz.transition 1936, 6, :o2, 7284962, 3 + tz.transition 1936, 9, :o1, 19427405, 8 + tz.transition 1937, 5, :o2, 7285967, 3 + tz.transition 1937, 9, :o1, 19430429, 8 + tz.transition 1938, 5, :o2, 7287059, 3 + tz.transition 1938, 9, :o1, 19433341, 8 + tz.transition 1939, 5, :o2, 7288235, 3 + tz.transition 1939, 9, :o1, 19436253, 8 + tz.transition 1940, 5, :o2, 7289264, 3 + tz.transition 1940, 9, :o1, 19439221, 8 + tz.transition 1941, 5, :o2, 7290356, 3 + tz.transition 1941, 9, :o1, 19442133, 8 + tz.transition 1942, 2, :o3, 9721599, 4 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 58361489, 24 + tz.transition 1946, 4, :o2, 9727755, 4 + tz.transition 1946, 9, :o1, 58370225, 24 + tz.transition 1947, 4, :o2, 9729211, 4 + tz.transition 1947, 9, :o1, 58378961, 24 + tz.transition 1948, 4, :o2, 9730667, 4 + tz.transition 1948, 9, :o1, 58387697, 24 + tz.transition 1949, 4, :o2, 9732123, 4 + tz.transition 1949, 9, :o1, 58396433, 24 + tz.transition 1951, 4, :o2, 9735063, 4 + tz.transition 1951, 9, :o1, 58414073, 24 + tz.transition 1952, 4, :o2, 9736519, 4 + tz.transition 1952, 9, :o1, 58422809, 24 + tz.transition 1953, 4, :o2, 9737975, 4 + tz.transition 1953, 9, :o1, 58431545, 24 + tz.transition 1954, 4, :o2, 9739431, 4 + tz.transition 1954, 9, :o1, 58440281, 24 + tz.transition 1956, 4, :o2, 9742371, 4 + tz.transition 1956, 9, :o1, 58457921, 24 + tz.transition 1957, 4, :o2, 9743827, 4 + tz.transition 1957, 9, :o1, 58466657, 24 + tz.transition 1958, 4, :o2, 9745283, 4 + tz.transition 1958, 9, :o1, 58475393, 24 + tz.transition 1959, 4, :o2, 9746739, 4 + tz.transition 1959, 9, :o1, 58484129, 24 + tz.transition 1962, 4, :o2, 9751135, 4 + tz.transition 1962, 10, :o1, 58511177, 24 + tz.transition 1963, 4, :o2, 9752591, 4 + tz.transition 1963, 10, :o1, 58519913, 24 + tz.transition 1964, 4, :o2, 9754047, 4 + tz.transition 1964, 10, :o1, 58528649, 24 + tz.transition 1965, 4, :o2, 9755503, 4 + tz.transition 1965, 10, :o1, 58537553, 24 + tz.transition 1966, 4, :o2, 9756959, 4 + tz.transition 1966, 10, :o1, 58546289, 24 + tz.transition 1967, 4, :o2, 9758443, 4 + tz.transition 1967, 10, :o1, 58555025, 24 + tz.transition 1968, 4, :o2, 9759899, 4 + tz.transition 1968, 10, :o1, 58563761, 24 + tz.transition 1969, 4, :o2, 9761355, 4 + tz.transition 1969, 10, :o1, 58572497, 24 + tz.transition 1970, 4, :o2, 9957600 + tz.transition 1970, 10, :o1, 25678800 + tz.transition 1971, 4, :o2, 41407200 + tz.transition 1971, 10, :o1, 57733200 + tz.transition 1972, 4, :o2, 73461600 + tz.transition 1972, 10, :o1, 89182800 + tz.transition 1973, 4, :o2, 104911200 + tz.transition 1973, 10, :o1, 120632400 + tz.transition 1974, 4, :o2, 136360800 + tz.transition 1974, 10, :o1, 152082000 + tz.transition 1975, 4, :o2, 167810400 + tz.transition 1975, 10, :o1, 183531600 + tz.transition 1976, 4, :o2, 199260000 + tz.transition 1976, 10, :o1, 215586000 + tz.transition 1977, 4, :o2, 230709600 + tz.transition 1977, 10, :o1, 247035600 + tz.transition 1978, 4, :o2, 262764000 + tz.transition 1978, 10, :o1, 278485200 + tz.transition 1979, 4, :o2, 294213600 + tz.transition 1979, 10, :o1, 309934800 + tz.transition 1980, 4, :o2, 325663200 + tz.transition 1980, 10, :o1, 341384400 + tz.transition 1981, 4, :o2, 357112800 + tz.transition 1981, 10, :o1, 372834000 + tz.transition 1982, 4, :o2, 388562400 + tz.transition 1982, 10, :o1, 404888400 + tz.transition 1983, 4, :o2, 420012000 + tz.transition 1983, 10, :o1, 436338000 + tz.transition 1984, 4, :o2, 452066400 + tz.transition 1984, 10, :o1, 467787600 + tz.transition 1985, 4, :o2, 483516000 + tz.transition 1985, 10, :o1, 499237200 + tz.transition 1986, 4, :o2, 514965600 + tz.transition 1986, 10, :o1, 530686800 + tz.transition 1987, 4, :o2, 544600800 + tz.transition 1987, 10, :o1, 562136400 + tz.transition 1988, 4, :o2, 576050400 + tz.transition 1988, 10, :o1, 594190800 + tz.transition 1989, 4, :o2, 607500000 + tz.transition 1989, 10, :o1, 625640400 + tz.transition 1990, 4, :o2, 638949600 + tz.transition 1990, 10, :o1, 657090000 + tz.transition 1991, 4, :o2, 671004000 + tz.transition 1991, 10, :o1, 688539600 + tz.transition 1992, 4, :o2, 702453600 + tz.transition 1992, 10, :o1, 719989200 + tz.transition 1993, 4, :o2, 733903200 + tz.transition 1993, 10, :o1, 752043600 + tz.transition 1994, 4, :o2, 765352800 + tz.transition 1994, 10, :o1, 783493200 + tz.transition 1995, 4, :o2, 796802400 + tz.transition 1995, 10, :o1, 814942800 + tz.transition 1996, 4, :o2, 828856800 + tz.transition 1996, 10, :o1, 846392400 + tz.transition 1997, 4, :o2, 860306400 + tz.transition 1997, 10, :o1, 877842000 + tz.transition 1998, 4, :o2, 891756000 + tz.transition 1998, 10, :o1, 909291600 + tz.transition 1999, 4, :o2, 923205600 + tz.transition 1999, 10, :o1, 941346000 + tz.transition 2000, 4, :o2, 954655200 + tz.transition 2000, 10, :o1, 972795600 + tz.transition 2001, 4, :o2, 986104800 + tz.transition 2001, 10, :o1, 1004245200 + tz.transition 2002, 4, :o2, 1018159200 + tz.transition 2002, 10, :o1, 1035694800 + tz.transition 2003, 4, :o2, 1049608800 + tz.transition 2003, 10, :o1, 1067144400 + tz.transition 2004, 4, :o2, 1081058400 + tz.transition 2004, 10, :o1, 1099198800 + tz.transition 2005, 4, :o2, 1112508000 + tz.transition 2005, 10, :o1, 1130648400 + tz.transition 2006, 4, :o2, 1143957600 + tz.transition 2006, 10, :o1, 1162098000 + tz.transition 2007, 3, :o2, 1173592800 + tz.transition 2007, 11, :o1, 1194152400 + tz.transition 2008, 3, :o2, 1205042400 + tz.transition 2008, 11, :o1, 1225602000 + tz.transition 2009, 3, :o2, 1236492000 + tz.transition 2009, 11, :o1, 1257051600 + tz.transition 2010, 3, :o2, 1268546400 + tz.transition 2010, 11, :o1, 1289106000 + tz.transition 2011, 3, :o2, 1299996000 + tz.transition 2011, 11, :o1, 1320555600 + tz.transition 2012, 3, :o2, 1331445600 + tz.transition 2012, 11, :o1, 1352005200 + tz.transition 2013, 3, :o2, 1362895200 + tz.transition 2013, 11, :o1, 1383454800 + tz.transition 2014, 3, :o2, 1394344800 + tz.transition 2014, 11, :o1, 1414904400 + tz.transition 2015, 3, :o2, 1425794400 + tz.transition 2015, 11, :o1, 1446354000 + tz.transition 2016, 3, :o2, 1457848800 + tz.transition 2016, 11, :o1, 1478408400 + tz.transition 2017, 3, :o2, 1489298400 + tz.transition 2017, 11, :o1, 1509858000 + tz.transition 2018, 3, :o2, 1520748000 + tz.transition 2018, 11, :o1, 1541307600 + tz.transition 2019, 3, :o2, 1552197600 + tz.transition 2019, 11, :o1, 1572757200 + tz.transition 2020, 3, :o2, 1583647200 + tz.transition 2020, 11, :o1, 1604206800 + tz.transition 2021, 3, :o2, 1615701600 + tz.transition 2021, 11, :o1, 1636261200 + tz.transition 2022, 3, :o2, 1647151200 + tz.transition 2022, 11, :o1, 1667710800 + tz.transition 2023, 3, :o2, 1678600800 + tz.transition 2023, 11, :o1, 1699160400 + tz.transition 2024, 3, :o2, 1710050400 + tz.transition 2024, 11, :o1, 1730610000 + tz.transition 2025, 3, :o2, 1741500000 + tz.transition 2025, 11, :o1, 1762059600 + tz.transition 2026, 3, :o2, 1772949600 + tz.transition 2026, 11, :o1, 1793509200 + tz.transition 2027, 3, :o2, 1805004000 + tz.transition 2027, 11, :o1, 1825563600 + tz.transition 2028, 3, :o2, 1836453600 + tz.transition 2028, 11, :o1, 1857013200 + tz.transition 2029, 3, :o2, 1867903200 + tz.transition 2029, 11, :o1, 1888462800 + tz.transition 2030, 3, :o2, 1899352800 + tz.transition 2030, 11, :o1, 1919912400 + tz.transition 2031, 3, :o2, 1930802400 + tz.transition 2031, 11, :o1, 1951362000 + tz.transition 2032, 3, :o2, 1962856800 + tz.transition 2032, 11, :o1, 1983416400 + tz.transition 2033, 3, :o2, 1994306400 + tz.transition 2033, 11, :o1, 2014866000 + tz.transition 2034, 3, :o2, 2025756000 + tz.transition 2034, 11, :o1, 2046315600 + tz.transition 2035, 3, :o2, 2057205600 + tz.transition 2035, 11, :o1, 2077765200 + tz.transition 2036, 3, :o2, 2088655200 + tz.transition 2036, 11, :o1, 2109214800 + tz.transition 2037, 3, :o2, 2120104800 + tz.transition 2037, 11, :o1, 2140664400 + tz.transition 2038, 3, :o2, 9861987, 4 + tz.transition 2038, 11, :o1, 59177633, 24 + tz.transition 2039, 3, :o2, 9863443, 4 + tz.transition 2039, 11, :o1, 59186369, 24 + tz.transition 2040, 3, :o2, 9864899, 4 + tz.transition 2040, 11, :o1, 59195105, 24 + tz.transition 2041, 3, :o2, 9866355, 4 + tz.transition 2041, 11, :o1, 59203841, 24 + tz.transition 2042, 3, :o2, 9867811, 4 + tz.transition 2042, 11, :o1, 59212577, 24 + tz.transition 2043, 3, :o2, 9869267, 4 + tz.transition 2043, 11, :o1, 59221313, 24 + tz.transition 2044, 3, :o2, 9870751, 4 + tz.transition 2044, 11, :o1, 59230217, 24 + tz.transition 2045, 3, :o2, 9872207, 4 + tz.transition 2045, 11, :o1, 59238953, 24 + tz.transition 2046, 3, :o2, 9873663, 4 + tz.transition 2046, 11, :o1, 59247689, 24 + tz.transition 2047, 3, :o2, 9875119, 4 + tz.transition 2047, 11, :o1, 59256425, 24 + tz.transition 2048, 3, :o2, 9876575, 4 + tz.transition 2048, 11, :o1, 59265161, 24 + tz.transition 2049, 3, :o2, 9878059, 4 + tz.transition 2049, 11, :o1, 59274065, 24 + tz.transition 2050, 3, :o2, 9879515, 4 + tz.transition 2050, 11, :o1, 59282801, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Indiana/Indianapolis.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Indiana/Indianapolis.rb new file mode 100644 index 000000000..f1430f6c2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Indiana/Indianapolis.rb @@ -0,0 +1,149 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Indiana + module Indianapolis + include TimezoneDefinition + + timezone 'America/Indiana/Indianapolis' do |tz| + tz.offset :o0, -20678, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + tz.offset :o3, -21600, 3600, :CWT + tz.offset :o4, -21600, 3600, :CPT + tz.offset :o5, -18000, 0, :EST + tz.offset :o6, -18000, 3600, :EDT + + tz.transition 1883, 11, :o1, 9636533, 4 + tz.transition 1918, 3, :o2, 14530103, 6 + tz.transition 1918, 10, :o1, 58125451, 24 + tz.transition 1919, 3, :o2, 14532287, 6 + tz.transition 1919, 10, :o1, 58134187, 24 + tz.transition 1941, 6, :o2, 14581007, 6 + tz.transition 1941, 9, :o1, 58326379, 24 + tz.transition 1942, 2, :o3, 14582399, 6 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 58361491, 24 + tz.transition 1946, 4, :o2, 14591633, 6 + tz.transition 1946, 9, :o1, 58370227, 24 + tz.transition 1947, 4, :o2, 14593817, 6 + tz.transition 1947, 9, :o1, 58378963, 24 + tz.transition 1948, 4, :o2, 14596001, 6 + tz.transition 1948, 9, :o1, 58387699, 24 + tz.transition 1949, 4, :o2, 14598185, 6 + tz.transition 1949, 9, :o1, 58396435, 24 + tz.transition 1950, 4, :o2, 14600411, 6 + tz.transition 1950, 9, :o1, 58405171, 24 + tz.transition 1951, 4, :o2, 14602595, 6 + tz.transition 1951, 9, :o1, 58414075, 24 + tz.transition 1952, 4, :o2, 14604779, 6 + tz.transition 1952, 9, :o1, 58422811, 24 + tz.transition 1953, 4, :o2, 14606963, 6 + tz.transition 1953, 9, :o1, 58431547, 24 + tz.transition 1954, 4, :o2, 14609147, 6 + tz.transition 1954, 9, :o1, 58440283, 24 + tz.transition 1955, 4, :o5, 14611331, 6 + tz.transition 1957, 9, :o1, 58466659, 24 + tz.transition 1958, 4, :o5, 14617925, 6 + tz.transition 1969, 4, :o6, 58568131, 24 + tz.transition 1969, 10, :o5, 9762083, 4 + tz.transition 1970, 4, :o6, 9961200 + tz.transition 1970, 10, :o5, 25682400 + tz.transition 2006, 4, :o6, 1143961200 + tz.transition 2006, 10, :o5, 1162101600 + tz.transition 2007, 3, :o6, 1173596400 + tz.transition 2007, 11, :o5, 1194156000 + tz.transition 2008, 3, :o6, 1205046000 + tz.transition 2008, 11, :o5, 1225605600 + tz.transition 2009, 3, :o6, 1236495600 + tz.transition 2009, 11, :o5, 1257055200 + tz.transition 2010, 3, :o6, 1268550000 + tz.transition 2010, 11, :o5, 1289109600 + tz.transition 2011, 3, :o6, 1299999600 + tz.transition 2011, 11, :o5, 1320559200 + tz.transition 2012, 3, :o6, 1331449200 + tz.transition 2012, 11, :o5, 1352008800 + tz.transition 2013, 3, :o6, 1362898800 + tz.transition 2013, 11, :o5, 1383458400 + tz.transition 2014, 3, :o6, 1394348400 + tz.transition 2014, 11, :o5, 1414908000 + tz.transition 2015, 3, :o6, 1425798000 + tz.transition 2015, 11, :o5, 1446357600 + tz.transition 2016, 3, :o6, 1457852400 + tz.transition 2016, 11, :o5, 1478412000 + tz.transition 2017, 3, :o6, 1489302000 + tz.transition 2017, 11, :o5, 1509861600 + tz.transition 2018, 3, :o6, 1520751600 + tz.transition 2018, 11, :o5, 1541311200 + tz.transition 2019, 3, :o6, 1552201200 + tz.transition 2019, 11, :o5, 1572760800 + tz.transition 2020, 3, :o6, 1583650800 + tz.transition 2020, 11, :o5, 1604210400 + tz.transition 2021, 3, :o6, 1615705200 + tz.transition 2021, 11, :o5, 1636264800 + tz.transition 2022, 3, :o6, 1647154800 + tz.transition 2022, 11, :o5, 1667714400 + tz.transition 2023, 3, :o6, 1678604400 + tz.transition 2023, 11, :o5, 1699164000 + tz.transition 2024, 3, :o6, 1710054000 + tz.transition 2024, 11, :o5, 1730613600 + tz.transition 2025, 3, :o6, 1741503600 + tz.transition 2025, 11, :o5, 1762063200 + tz.transition 2026, 3, :o6, 1772953200 + tz.transition 2026, 11, :o5, 1793512800 + tz.transition 2027, 3, :o6, 1805007600 + tz.transition 2027, 11, :o5, 1825567200 + tz.transition 2028, 3, :o6, 1836457200 + tz.transition 2028, 11, :o5, 1857016800 + tz.transition 2029, 3, :o6, 1867906800 + tz.transition 2029, 11, :o5, 1888466400 + tz.transition 2030, 3, :o6, 1899356400 + tz.transition 2030, 11, :o5, 1919916000 + tz.transition 2031, 3, :o6, 1930806000 + tz.transition 2031, 11, :o5, 1951365600 + tz.transition 2032, 3, :o6, 1962860400 + tz.transition 2032, 11, :o5, 1983420000 + tz.transition 2033, 3, :o6, 1994310000 + tz.transition 2033, 11, :o5, 2014869600 + tz.transition 2034, 3, :o6, 2025759600 + tz.transition 2034, 11, :o5, 2046319200 + tz.transition 2035, 3, :o6, 2057209200 + tz.transition 2035, 11, :o5, 2077768800 + tz.transition 2036, 3, :o6, 2088658800 + tz.transition 2036, 11, :o5, 2109218400 + tz.transition 2037, 3, :o6, 2120108400 + tz.transition 2037, 11, :o5, 2140668000 + tz.transition 2038, 3, :o6, 59171923, 24 + tz.transition 2038, 11, :o5, 9862939, 4 + tz.transition 2039, 3, :o6, 59180659, 24 + tz.transition 2039, 11, :o5, 9864395, 4 + tz.transition 2040, 3, :o6, 59189395, 24 + tz.transition 2040, 11, :o5, 9865851, 4 + tz.transition 2041, 3, :o6, 59198131, 24 + tz.transition 2041, 11, :o5, 9867307, 4 + tz.transition 2042, 3, :o6, 59206867, 24 + tz.transition 2042, 11, :o5, 9868763, 4 + tz.transition 2043, 3, :o6, 59215603, 24 + tz.transition 2043, 11, :o5, 9870219, 4 + tz.transition 2044, 3, :o6, 59224507, 24 + tz.transition 2044, 11, :o5, 9871703, 4 + tz.transition 2045, 3, :o6, 59233243, 24 + tz.transition 2045, 11, :o5, 9873159, 4 + tz.transition 2046, 3, :o6, 59241979, 24 + tz.transition 2046, 11, :o5, 9874615, 4 + tz.transition 2047, 3, :o6, 59250715, 24 + tz.transition 2047, 11, :o5, 9876071, 4 + tz.transition 2048, 3, :o6, 59259451, 24 + tz.transition 2048, 11, :o5, 9877527, 4 + tz.transition 2049, 3, :o6, 59268355, 24 + tz.transition 2049, 11, :o5, 9879011, 4 + tz.transition 2050, 3, :o6, 59277091, 24 + tz.transition 2050, 11, :o5, 9880467, 4 + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Juneau.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Juneau.rb new file mode 100644 index 000000000..f646f3f54 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Juneau.rb @@ -0,0 +1,194 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Juneau + include TimezoneDefinition + + timezone 'America/Juneau' do |tz| + tz.offset :o0, 54139, 0, :LMT + tz.offset :o1, -32261, 0, :LMT + tz.offset :o2, -28800, 0, :PST + tz.offset :o3, -28800, 3600, :PWT + tz.offset :o4, -28800, 3600, :PPT + tz.offset :o5, -28800, 3600, :PDT + tz.offset :o6, -32400, 0, :YST + tz.offset :o7, -32400, 0, :AKST + tz.offset :o8, -32400, 3600, :AKDT + + tz.transition 1867, 10, :o1, 207641393861, 86400 + tz.transition 1900, 8, :o2, 208677805061, 86400 + tz.transition 1942, 2, :o3, 29164799, 12 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o2, 19453831, 8 + tz.transition 1969, 4, :o5, 29284067, 12 + tz.transition 1969, 10, :o2, 19524167, 8 + tz.transition 1970, 4, :o5, 9972000 + tz.transition 1970, 10, :o2, 25693200 + tz.transition 1971, 4, :o5, 41421600 + tz.transition 1971, 10, :o2, 57747600 + tz.transition 1972, 4, :o5, 73476000 + tz.transition 1972, 10, :o2, 89197200 + tz.transition 1973, 4, :o5, 104925600 + tz.transition 1973, 10, :o2, 120646800 + tz.transition 1974, 1, :o5, 126698400 + tz.transition 1974, 10, :o2, 152096400 + tz.transition 1975, 2, :o5, 162381600 + tz.transition 1975, 10, :o2, 183546000 + tz.transition 1976, 4, :o5, 199274400 + tz.transition 1976, 10, :o2, 215600400 + tz.transition 1977, 4, :o5, 230724000 + tz.transition 1977, 10, :o2, 247050000 + tz.transition 1978, 4, :o5, 262778400 + tz.transition 1978, 10, :o2, 278499600 + tz.transition 1979, 4, :o5, 294228000 + tz.transition 1979, 10, :o2, 309949200 + tz.transition 1980, 4, :o5, 325677600 + tz.transition 1980, 10, :o2, 341398800 + tz.transition 1981, 4, :o5, 357127200 + tz.transition 1981, 10, :o2, 372848400 + tz.transition 1982, 4, :o5, 388576800 + tz.transition 1982, 10, :o2, 404902800 + tz.transition 1983, 4, :o5, 420026400 + tz.transition 1983, 10, :o6, 436352400 + tz.transition 1983, 11, :o7, 439030800 + tz.transition 1984, 4, :o8, 452084400 + tz.transition 1984, 10, :o7, 467805600 + tz.transition 1985, 4, :o8, 483534000 + tz.transition 1985, 10, :o7, 499255200 + tz.transition 1986, 4, :o8, 514983600 + tz.transition 1986, 10, :o7, 530704800 + tz.transition 1987, 4, :o8, 544618800 + tz.transition 1987, 10, :o7, 562154400 + tz.transition 1988, 4, :o8, 576068400 + tz.transition 1988, 10, :o7, 594208800 + tz.transition 1989, 4, :o8, 607518000 + tz.transition 1989, 10, :o7, 625658400 + tz.transition 1990, 4, :o8, 638967600 + tz.transition 1990, 10, :o7, 657108000 + tz.transition 1991, 4, :o8, 671022000 + tz.transition 1991, 10, :o7, 688557600 + tz.transition 1992, 4, :o8, 702471600 + tz.transition 1992, 10, :o7, 720007200 + tz.transition 1993, 4, :o8, 733921200 + tz.transition 1993, 10, :o7, 752061600 + tz.transition 1994, 4, :o8, 765370800 + tz.transition 1994, 10, :o7, 783511200 + tz.transition 1995, 4, :o8, 796820400 + tz.transition 1995, 10, :o7, 814960800 + tz.transition 1996, 4, :o8, 828874800 + tz.transition 1996, 10, :o7, 846410400 + tz.transition 1997, 4, :o8, 860324400 + tz.transition 1997, 10, :o7, 877860000 + tz.transition 1998, 4, :o8, 891774000 + tz.transition 1998, 10, :o7, 909309600 + tz.transition 1999, 4, :o8, 923223600 + tz.transition 1999, 10, :o7, 941364000 + tz.transition 2000, 4, :o8, 954673200 + tz.transition 2000, 10, :o7, 972813600 + tz.transition 2001, 4, :o8, 986122800 + tz.transition 2001, 10, :o7, 1004263200 + tz.transition 2002, 4, :o8, 1018177200 + tz.transition 2002, 10, :o7, 1035712800 + tz.transition 2003, 4, :o8, 1049626800 + tz.transition 2003, 10, :o7, 1067162400 + tz.transition 2004, 4, :o8, 1081076400 + tz.transition 2004, 10, :o7, 1099216800 + tz.transition 2005, 4, :o8, 1112526000 + tz.transition 2005, 10, :o7, 1130666400 + tz.transition 2006, 4, :o8, 1143975600 + tz.transition 2006, 10, :o7, 1162116000 + tz.transition 2007, 3, :o8, 1173610800 + tz.transition 2007, 11, :o7, 1194170400 + tz.transition 2008, 3, :o8, 1205060400 + tz.transition 2008, 11, :o7, 1225620000 + tz.transition 2009, 3, :o8, 1236510000 + tz.transition 2009, 11, :o7, 1257069600 + tz.transition 2010, 3, :o8, 1268564400 + tz.transition 2010, 11, :o7, 1289124000 + tz.transition 2011, 3, :o8, 1300014000 + tz.transition 2011, 11, :o7, 1320573600 + tz.transition 2012, 3, :o8, 1331463600 + tz.transition 2012, 11, :o7, 1352023200 + tz.transition 2013, 3, :o8, 1362913200 + tz.transition 2013, 11, :o7, 1383472800 + tz.transition 2014, 3, :o8, 1394362800 + tz.transition 2014, 11, :o7, 1414922400 + tz.transition 2015, 3, :o8, 1425812400 + tz.transition 2015, 11, :o7, 1446372000 + tz.transition 2016, 3, :o8, 1457866800 + tz.transition 2016, 11, :o7, 1478426400 + tz.transition 2017, 3, :o8, 1489316400 + tz.transition 2017, 11, :o7, 1509876000 + tz.transition 2018, 3, :o8, 1520766000 + tz.transition 2018, 11, :o7, 1541325600 + tz.transition 2019, 3, :o8, 1552215600 + tz.transition 2019, 11, :o7, 1572775200 + tz.transition 2020, 3, :o8, 1583665200 + tz.transition 2020, 11, :o7, 1604224800 + tz.transition 2021, 3, :o8, 1615719600 + tz.transition 2021, 11, :o7, 1636279200 + tz.transition 2022, 3, :o8, 1647169200 + tz.transition 2022, 11, :o7, 1667728800 + tz.transition 2023, 3, :o8, 1678618800 + tz.transition 2023, 11, :o7, 1699178400 + tz.transition 2024, 3, :o8, 1710068400 + tz.transition 2024, 11, :o7, 1730628000 + tz.transition 2025, 3, :o8, 1741518000 + tz.transition 2025, 11, :o7, 1762077600 + tz.transition 2026, 3, :o8, 1772967600 + tz.transition 2026, 11, :o7, 1793527200 + tz.transition 2027, 3, :o8, 1805022000 + tz.transition 2027, 11, :o7, 1825581600 + tz.transition 2028, 3, :o8, 1836471600 + tz.transition 2028, 11, :o7, 1857031200 + tz.transition 2029, 3, :o8, 1867921200 + tz.transition 2029, 11, :o7, 1888480800 + tz.transition 2030, 3, :o8, 1899370800 + tz.transition 2030, 11, :o7, 1919930400 + tz.transition 2031, 3, :o8, 1930820400 + tz.transition 2031, 11, :o7, 1951380000 + tz.transition 2032, 3, :o8, 1962874800 + tz.transition 2032, 11, :o7, 1983434400 + tz.transition 2033, 3, :o8, 1994324400 + tz.transition 2033, 11, :o7, 2014884000 + tz.transition 2034, 3, :o8, 2025774000 + tz.transition 2034, 11, :o7, 2046333600 + tz.transition 2035, 3, :o8, 2057223600 + tz.transition 2035, 11, :o7, 2077783200 + tz.transition 2036, 3, :o8, 2088673200 + tz.transition 2036, 11, :o7, 2109232800 + tz.transition 2037, 3, :o8, 2120122800 + tz.transition 2037, 11, :o7, 2140682400 + tz.transition 2038, 3, :o8, 59171927, 24 + tz.transition 2038, 11, :o7, 29588819, 12 + tz.transition 2039, 3, :o8, 59180663, 24 + tz.transition 2039, 11, :o7, 29593187, 12 + tz.transition 2040, 3, :o8, 59189399, 24 + tz.transition 2040, 11, :o7, 29597555, 12 + tz.transition 2041, 3, :o8, 59198135, 24 + tz.transition 2041, 11, :o7, 29601923, 12 + tz.transition 2042, 3, :o8, 59206871, 24 + tz.transition 2042, 11, :o7, 29606291, 12 + tz.transition 2043, 3, :o8, 59215607, 24 + tz.transition 2043, 11, :o7, 29610659, 12 + tz.transition 2044, 3, :o8, 59224511, 24 + tz.transition 2044, 11, :o7, 29615111, 12 + tz.transition 2045, 3, :o8, 59233247, 24 + tz.transition 2045, 11, :o7, 29619479, 12 + tz.transition 2046, 3, :o8, 59241983, 24 + tz.transition 2046, 11, :o7, 29623847, 12 + tz.transition 2047, 3, :o8, 59250719, 24 + tz.transition 2047, 11, :o7, 29628215, 12 + tz.transition 2048, 3, :o8, 59259455, 24 + tz.transition 2048, 11, :o7, 29632583, 12 + tz.transition 2049, 3, :o8, 59268359, 24 + tz.transition 2049, 11, :o7, 29637035, 12 + tz.transition 2050, 3, :o8, 59277095, 24 + tz.transition 2050, 11, :o7, 29641403, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/La_Paz.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/La_Paz.rb new file mode 100644 index 000000000..45c907899 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/La_Paz.rb @@ -0,0 +1,22 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module La_Paz + include TimezoneDefinition + + timezone 'America/La_Paz' do |tz| + tz.offset :o0, -16356, 0, :LMT + tz.offset :o1, -16356, 0, :CMT + tz.offset :o2, -16356, 3600, :BOST + tz.offset :o3, -14400, 0, :BOT + + tz.transition 1890, 1, :o1, 17361854563, 7200 + tz.transition 1931, 10, :o2, 17471733763, 7200 + tz.transition 1932, 3, :o3, 17472871063, 7200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Lima.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Lima.rb new file mode 100644 index 000000000..af68ac29f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Lima.rb @@ -0,0 +1,35 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Lima + include TimezoneDefinition + + timezone 'America/Lima' do |tz| + tz.offset :o0, -18492, 0, :LMT + tz.offset :o1, -18516, 0, :LMT + tz.offset :o2, -18000, 0, :PET + tz.offset :o3, -18000, 3600, :PEST + + tz.transition 1890, 1, :o1, 17361854741, 7200 + tz.transition 1908, 7, :o2, 17410685143, 7200 + tz.transition 1938, 1, :o3, 58293593, 24 + tz.transition 1938, 4, :o2, 7286969, 3 + tz.transition 1938, 9, :o3, 58300001, 24 + tz.transition 1939, 3, :o2, 7288046, 3 + tz.transition 1939, 9, :o3, 58308737, 24 + tz.transition 1940, 3, :o2, 7289138, 3 + tz.transition 1986, 1, :o3, 504939600 + tz.transition 1986, 4, :o2, 512712000 + tz.transition 1987, 1, :o3, 536475600 + tz.transition 1987, 4, :o2, 544248000 + tz.transition 1990, 1, :o3, 631170000 + tz.transition 1990, 4, :o2, 638942400 + tz.transition 1994, 1, :o3, 757400400 + tz.transition 1994, 4, :o2, 765172800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Los_Angeles.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Los_Angeles.rb new file mode 100644 index 000000000..16007fd67 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Los_Angeles.rb @@ -0,0 +1,232 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Los_Angeles + include TimezoneDefinition + + timezone 'America/Los_Angeles' do |tz| + tz.offset :o0, -28378, 0, :LMT + tz.offset :o1, -28800, 0, :PST + tz.offset :o2, -28800, 3600, :PDT + tz.offset :o3, -28800, 3600, :PWT + tz.offset :o4, -28800, 3600, :PPT + + tz.transition 1883, 11, :o1, 7227400, 3 + tz.transition 1918, 3, :o2, 29060207, 12 + tz.transition 1918, 10, :o1, 19375151, 8 + tz.transition 1919, 3, :o2, 29064575, 12 + tz.transition 1919, 10, :o1, 19378063, 8 + tz.transition 1942, 2, :o3, 29164799, 12 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 19453831, 8 + tz.transition 1948, 3, :o2, 29191499, 12 + tz.transition 1949, 1, :o1, 19463343, 8 + tz.transition 1950, 4, :o2, 29200823, 12 + tz.transition 1950, 9, :o1, 19468391, 8 + tz.transition 1951, 4, :o2, 29205191, 12 + tz.transition 1951, 9, :o1, 19471359, 8 + tz.transition 1952, 4, :o2, 29209559, 12 + tz.transition 1952, 9, :o1, 19474271, 8 + tz.transition 1953, 4, :o2, 29213927, 12 + tz.transition 1953, 9, :o1, 19477183, 8 + tz.transition 1954, 4, :o2, 29218295, 12 + tz.transition 1954, 9, :o1, 19480095, 8 + tz.transition 1955, 4, :o2, 29222663, 12 + tz.transition 1955, 9, :o1, 19483007, 8 + tz.transition 1956, 4, :o2, 29227115, 12 + tz.transition 1956, 9, :o1, 19485975, 8 + tz.transition 1957, 4, :o2, 29231483, 12 + tz.transition 1957, 9, :o1, 19488887, 8 + tz.transition 1958, 4, :o2, 29235851, 12 + tz.transition 1958, 9, :o1, 19491799, 8 + tz.transition 1959, 4, :o2, 29240219, 12 + tz.transition 1959, 9, :o1, 19494711, 8 + tz.transition 1960, 4, :o2, 29244587, 12 + tz.transition 1960, 9, :o1, 19497623, 8 + tz.transition 1961, 4, :o2, 29249039, 12 + tz.transition 1961, 9, :o1, 19500535, 8 + tz.transition 1962, 4, :o2, 29253407, 12 + tz.transition 1962, 10, :o1, 19503727, 8 + tz.transition 1963, 4, :o2, 29257775, 12 + tz.transition 1963, 10, :o1, 19506639, 8 + tz.transition 1964, 4, :o2, 29262143, 12 + tz.transition 1964, 10, :o1, 19509551, 8 + tz.transition 1965, 4, :o2, 29266511, 12 + tz.transition 1965, 10, :o1, 19512519, 8 + tz.transition 1966, 4, :o2, 29270879, 12 + tz.transition 1966, 10, :o1, 19515431, 8 + tz.transition 1967, 4, :o2, 29275331, 12 + tz.transition 1967, 10, :o1, 19518343, 8 + tz.transition 1968, 4, :o2, 29279699, 12 + tz.transition 1968, 10, :o1, 19521255, 8 + tz.transition 1969, 4, :o2, 29284067, 12 + tz.transition 1969, 10, :o1, 19524167, 8 + tz.transition 1970, 4, :o2, 9972000 + tz.transition 1970, 10, :o1, 25693200 + tz.transition 1971, 4, :o2, 41421600 + tz.transition 1971, 10, :o1, 57747600 + tz.transition 1972, 4, :o2, 73476000 + tz.transition 1972, 10, :o1, 89197200 + tz.transition 1973, 4, :o2, 104925600 + tz.transition 1973, 10, :o1, 120646800 + tz.transition 1974, 1, :o2, 126698400 + tz.transition 1974, 10, :o1, 152096400 + tz.transition 1975, 2, :o2, 162381600 + tz.transition 1975, 10, :o1, 183546000 + tz.transition 1976, 4, :o2, 199274400 + tz.transition 1976, 10, :o1, 215600400 + tz.transition 1977, 4, :o2, 230724000 + tz.transition 1977, 10, :o1, 247050000 + tz.transition 1978, 4, :o2, 262778400 + tz.transition 1978, 10, :o1, 278499600 + tz.transition 1979, 4, :o2, 294228000 + tz.transition 1979, 10, :o1, 309949200 + tz.transition 1980, 4, :o2, 325677600 + tz.transition 1980, 10, :o1, 341398800 + tz.transition 1981, 4, :o2, 357127200 + tz.transition 1981, 10, :o1, 372848400 + tz.transition 1982, 4, :o2, 388576800 + tz.transition 1982, 10, :o1, 404902800 + tz.transition 1983, 4, :o2, 420026400 + tz.transition 1983, 10, :o1, 436352400 + tz.transition 1984, 4, :o2, 452080800 + tz.transition 1984, 10, :o1, 467802000 + tz.transition 1985, 4, :o2, 483530400 + tz.transition 1985, 10, :o1, 499251600 + tz.transition 1986, 4, :o2, 514980000 + tz.transition 1986, 10, :o1, 530701200 + tz.transition 1987, 4, :o2, 544615200 + tz.transition 1987, 10, :o1, 562150800 + tz.transition 1988, 4, :o2, 576064800 + tz.transition 1988, 10, :o1, 594205200 + tz.transition 1989, 4, :o2, 607514400 + tz.transition 1989, 10, :o1, 625654800 + tz.transition 1990, 4, :o2, 638964000 + tz.transition 1990, 10, :o1, 657104400 + tz.transition 1991, 4, :o2, 671018400 + tz.transition 1991, 10, :o1, 688554000 + tz.transition 1992, 4, :o2, 702468000 + tz.transition 1992, 10, :o1, 720003600 + tz.transition 1993, 4, :o2, 733917600 + tz.transition 1993, 10, :o1, 752058000 + tz.transition 1994, 4, :o2, 765367200 + tz.transition 1994, 10, :o1, 783507600 + tz.transition 1995, 4, :o2, 796816800 + tz.transition 1995, 10, :o1, 814957200 + tz.transition 1996, 4, :o2, 828871200 + tz.transition 1996, 10, :o1, 846406800 + tz.transition 1997, 4, :o2, 860320800 + tz.transition 1997, 10, :o1, 877856400 + tz.transition 1998, 4, :o2, 891770400 + tz.transition 1998, 10, :o1, 909306000 + tz.transition 1999, 4, :o2, 923220000 + tz.transition 1999, 10, :o1, 941360400 + tz.transition 2000, 4, :o2, 954669600 + tz.transition 2000, 10, :o1, 972810000 + tz.transition 2001, 4, :o2, 986119200 + tz.transition 2001, 10, :o1, 1004259600 + tz.transition 2002, 4, :o2, 1018173600 + tz.transition 2002, 10, :o1, 1035709200 + tz.transition 2003, 4, :o2, 1049623200 + tz.transition 2003, 10, :o1, 1067158800 + tz.transition 2004, 4, :o2, 1081072800 + tz.transition 2004, 10, :o1, 1099213200 + tz.transition 2005, 4, :o2, 1112522400 + tz.transition 2005, 10, :o1, 1130662800 + tz.transition 2006, 4, :o2, 1143972000 + tz.transition 2006, 10, :o1, 1162112400 + tz.transition 2007, 3, :o2, 1173607200 + tz.transition 2007, 11, :o1, 1194166800 + tz.transition 2008, 3, :o2, 1205056800 + tz.transition 2008, 11, :o1, 1225616400 + tz.transition 2009, 3, :o2, 1236506400 + tz.transition 2009, 11, :o1, 1257066000 + tz.transition 2010, 3, :o2, 1268560800 + tz.transition 2010, 11, :o1, 1289120400 + tz.transition 2011, 3, :o2, 1300010400 + tz.transition 2011, 11, :o1, 1320570000 + tz.transition 2012, 3, :o2, 1331460000 + tz.transition 2012, 11, :o1, 1352019600 + tz.transition 2013, 3, :o2, 1362909600 + tz.transition 2013, 11, :o1, 1383469200 + tz.transition 2014, 3, :o2, 1394359200 + tz.transition 2014, 11, :o1, 1414918800 + tz.transition 2015, 3, :o2, 1425808800 + tz.transition 2015, 11, :o1, 1446368400 + tz.transition 2016, 3, :o2, 1457863200 + tz.transition 2016, 11, :o1, 1478422800 + tz.transition 2017, 3, :o2, 1489312800 + tz.transition 2017, 11, :o1, 1509872400 + tz.transition 2018, 3, :o2, 1520762400 + tz.transition 2018, 11, :o1, 1541322000 + tz.transition 2019, 3, :o2, 1552212000 + tz.transition 2019, 11, :o1, 1572771600 + tz.transition 2020, 3, :o2, 1583661600 + tz.transition 2020, 11, :o1, 1604221200 + tz.transition 2021, 3, :o2, 1615716000 + tz.transition 2021, 11, :o1, 1636275600 + tz.transition 2022, 3, :o2, 1647165600 + tz.transition 2022, 11, :o1, 1667725200 + tz.transition 2023, 3, :o2, 1678615200 + tz.transition 2023, 11, :o1, 1699174800 + tz.transition 2024, 3, :o2, 1710064800 + tz.transition 2024, 11, :o1, 1730624400 + tz.transition 2025, 3, :o2, 1741514400 + tz.transition 2025, 11, :o1, 1762074000 + tz.transition 2026, 3, :o2, 1772964000 + tz.transition 2026, 11, :o1, 1793523600 + tz.transition 2027, 3, :o2, 1805018400 + tz.transition 2027, 11, :o1, 1825578000 + tz.transition 2028, 3, :o2, 1836468000 + tz.transition 2028, 11, :o1, 1857027600 + tz.transition 2029, 3, :o2, 1867917600 + tz.transition 2029, 11, :o1, 1888477200 + tz.transition 2030, 3, :o2, 1899367200 + tz.transition 2030, 11, :o1, 1919926800 + tz.transition 2031, 3, :o2, 1930816800 + tz.transition 2031, 11, :o1, 1951376400 + tz.transition 2032, 3, :o2, 1962871200 + tz.transition 2032, 11, :o1, 1983430800 + tz.transition 2033, 3, :o2, 1994320800 + tz.transition 2033, 11, :o1, 2014880400 + tz.transition 2034, 3, :o2, 2025770400 + tz.transition 2034, 11, :o1, 2046330000 + tz.transition 2035, 3, :o2, 2057220000 + tz.transition 2035, 11, :o1, 2077779600 + tz.transition 2036, 3, :o2, 2088669600 + tz.transition 2036, 11, :o1, 2109229200 + tz.transition 2037, 3, :o2, 2120119200 + tz.transition 2037, 11, :o1, 2140678800 + tz.transition 2038, 3, :o2, 29585963, 12 + tz.transition 2038, 11, :o1, 19725879, 8 + tz.transition 2039, 3, :o2, 29590331, 12 + tz.transition 2039, 11, :o1, 19728791, 8 + tz.transition 2040, 3, :o2, 29594699, 12 + tz.transition 2040, 11, :o1, 19731703, 8 + tz.transition 2041, 3, :o2, 29599067, 12 + tz.transition 2041, 11, :o1, 19734615, 8 + tz.transition 2042, 3, :o2, 29603435, 12 + tz.transition 2042, 11, :o1, 19737527, 8 + tz.transition 2043, 3, :o2, 29607803, 12 + tz.transition 2043, 11, :o1, 19740439, 8 + tz.transition 2044, 3, :o2, 29612255, 12 + tz.transition 2044, 11, :o1, 19743407, 8 + tz.transition 2045, 3, :o2, 29616623, 12 + tz.transition 2045, 11, :o1, 19746319, 8 + tz.transition 2046, 3, :o2, 29620991, 12 + tz.transition 2046, 11, :o1, 19749231, 8 + tz.transition 2047, 3, :o2, 29625359, 12 + tz.transition 2047, 11, :o1, 19752143, 8 + tz.transition 2048, 3, :o2, 29629727, 12 + tz.transition 2048, 11, :o1, 19755055, 8 + tz.transition 2049, 3, :o2, 29634179, 12 + tz.transition 2049, 11, :o1, 19758023, 8 + tz.transition 2050, 3, :o2, 29638547, 12 + tz.transition 2050, 11, :o1, 19760935, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mazatlan.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mazatlan.rb new file mode 100644 index 000000000..ba9e6efcf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mazatlan.rb @@ -0,0 +1,139 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Mazatlan + include TimezoneDefinition + + timezone 'America/Mazatlan' do |tz| + tz.offset :o0, -25540, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -21600, 0, :CST + tz.offset :o3, -28800, 0, :PST + tz.offset :o4, -25200, 3600, :MDT + + tz.transition 1922, 1, :o1, 58153339, 24 + tz.transition 1927, 6, :o2, 9700171, 4 + tz.transition 1930, 11, :o1, 9705183, 4 + tz.transition 1931, 5, :o2, 9705855, 4 + tz.transition 1931, 10, :o1, 9706463, 4 + tz.transition 1932, 4, :o2, 58243171, 24 + tz.transition 1942, 4, :o1, 9721895, 4 + tz.transition 1949, 1, :o3, 58390339, 24 + tz.transition 1970, 1, :o1, 28800 + tz.transition 1996, 4, :o4, 828867600 + tz.transition 1996, 10, :o1, 846403200 + tz.transition 1997, 4, :o4, 860317200 + tz.transition 1997, 10, :o1, 877852800 + tz.transition 1998, 4, :o4, 891766800 + tz.transition 1998, 10, :o1, 909302400 + tz.transition 1999, 4, :o4, 923216400 + tz.transition 1999, 10, :o1, 941356800 + tz.transition 2000, 4, :o4, 954666000 + tz.transition 2000, 10, :o1, 972806400 + tz.transition 2001, 5, :o4, 989139600 + tz.transition 2001, 9, :o1, 1001836800 + tz.transition 2002, 4, :o4, 1018170000 + tz.transition 2002, 10, :o1, 1035705600 + tz.transition 2003, 4, :o4, 1049619600 + tz.transition 2003, 10, :o1, 1067155200 + tz.transition 2004, 4, :o4, 1081069200 + tz.transition 2004, 10, :o1, 1099209600 + tz.transition 2005, 4, :o4, 1112518800 + tz.transition 2005, 10, :o1, 1130659200 + tz.transition 2006, 4, :o4, 1143968400 + tz.transition 2006, 10, :o1, 1162108800 + tz.transition 2007, 4, :o4, 1175418000 + tz.transition 2007, 10, :o1, 1193558400 + tz.transition 2008, 4, :o4, 1207472400 + tz.transition 2008, 10, :o1, 1225008000 + tz.transition 2009, 4, :o4, 1238922000 + tz.transition 2009, 10, :o1, 1256457600 + tz.transition 2010, 4, :o4, 1270371600 + tz.transition 2010, 10, :o1, 1288512000 + tz.transition 2011, 4, :o4, 1301821200 + tz.transition 2011, 10, :o1, 1319961600 + tz.transition 2012, 4, :o4, 1333270800 + tz.transition 2012, 10, :o1, 1351411200 + tz.transition 2013, 4, :o4, 1365325200 + tz.transition 2013, 10, :o1, 1382860800 + tz.transition 2014, 4, :o4, 1396774800 + tz.transition 2014, 10, :o1, 1414310400 + tz.transition 2015, 4, :o4, 1428224400 + tz.transition 2015, 10, :o1, 1445760000 + tz.transition 2016, 4, :o4, 1459674000 + tz.transition 2016, 10, :o1, 1477814400 + tz.transition 2017, 4, :o4, 1491123600 + tz.transition 2017, 10, :o1, 1509264000 + tz.transition 2018, 4, :o4, 1522573200 + tz.transition 2018, 10, :o1, 1540713600 + tz.transition 2019, 4, :o4, 1554627600 + tz.transition 2019, 10, :o1, 1572163200 + tz.transition 2020, 4, :o4, 1586077200 + tz.transition 2020, 10, :o1, 1603612800 + tz.transition 2021, 4, :o4, 1617526800 + tz.transition 2021, 10, :o1, 1635667200 + tz.transition 2022, 4, :o4, 1648976400 + tz.transition 2022, 10, :o1, 1667116800 + tz.transition 2023, 4, :o4, 1680426000 + tz.transition 2023, 10, :o1, 1698566400 + tz.transition 2024, 4, :o4, 1712480400 + tz.transition 2024, 10, :o1, 1730016000 + tz.transition 2025, 4, :o4, 1743930000 + tz.transition 2025, 10, :o1, 1761465600 + tz.transition 2026, 4, :o4, 1775379600 + tz.transition 2026, 10, :o1, 1792915200 + tz.transition 2027, 4, :o4, 1806829200 + tz.transition 2027, 10, :o1, 1824969600 + tz.transition 2028, 4, :o4, 1838278800 + tz.transition 2028, 10, :o1, 1856419200 + tz.transition 2029, 4, :o4, 1869728400 + tz.transition 2029, 10, :o1, 1887868800 + tz.transition 2030, 4, :o4, 1901782800 + tz.transition 2030, 10, :o1, 1919318400 + tz.transition 2031, 4, :o4, 1933232400 + tz.transition 2031, 10, :o1, 1950768000 + tz.transition 2032, 4, :o4, 1964682000 + tz.transition 2032, 10, :o1, 1982822400 + tz.transition 2033, 4, :o4, 1996131600 + tz.transition 2033, 10, :o1, 2014272000 + tz.transition 2034, 4, :o4, 2027581200 + tz.transition 2034, 10, :o1, 2045721600 + tz.transition 2035, 4, :o4, 2059030800 + tz.transition 2035, 10, :o1, 2077171200 + tz.transition 2036, 4, :o4, 2091085200 + tz.transition 2036, 10, :o1, 2108620800 + tz.transition 2037, 4, :o4, 2122534800 + tz.transition 2037, 10, :o1, 2140070400 + tz.transition 2038, 4, :o4, 19724143, 8 + tz.transition 2038, 10, :o1, 14794367, 6 + tz.transition 2039, 4, :o4, 19727055, 8 + tz.transition 2039, 10, :o1, 14796551, 6 + tz.transition 2040, 4, :o4, 19729967, 8 + tz.transition 2040, 10, :o1, 14798735, 6 + tz.transition 2041, 4, :o4, 19732935, 8 + tz.transition 2041, 10, :o1, 14800919, 6 + tz.transition 2042, 4, :o4, 19735847, 8 + tz.transition 2042, 10, :o1, 14803103, 6 + tz.transition 2043, 4, :o4, 19738759, 8 + tz.transition 2043, 10, :o1, 14805287, 6 + tz.transition 2044, 4, :o4, 19741671, 8 + tz.transition 2044, 10, :o1, 14807513, 6 + tz.transition 2045, 4, :o4, 19744583, 8 + tz.transition 2045, 10, :o1, 14809697, 6 + tz.transition 2046, 4, :o4, 19747495, 8 + tz.transition 2046, 10, :o1, 14811881, 6 + tz.transition 2047, 4, :o4, 19750463, 8 + tz.transition 2047, 10, :o1, 14814065, 6 + tz.transition 2048, 4, :o4, 19753375, 8 + tz.transition 2048, 10, :o1, 14816249, 6 + tz.transition 2049, 4, :o4, 19756287, 8 + tz.transition 2049, 10, :o1, 14818475, 6 + tz.transition 2050, 4, :o4, 19759199, 8 + tz.transition 2050, 10, :o1, 14820659, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mexico_City.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mexico_City.rb new file mode 100644 index 000000000..2347fce64 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mexico_City.rb @@ -0,0 +1,144 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Mexico_City + include TimezoneDefinition + + timezone 'America/Mexico_City' do |tz| + tz.offset :o0, -23796, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -21600, 0, :CST + tz.offset :o3, -21600, 3600, :CDT + tz.offset :o4, -21600, 3600, :CWT + + tz.transition 1922, 1, :o1, 58153339, 24 + tz.transition 1927, 6, :o2, 9700171, 4 + tz.transition 1930, 11, :o1, 9705183, 4 + tz.transition 1931, 5, :o2, 9705855, 4 + tz.transition 1931, 10, :o1, 9706463, 4 + tz.transition 1932, 4, :o2, 58243171, 24 + tz.transition 1939, 2, :o3, 9717199, 4 + tz.transition 1939, 6, :o2, 58306553, 24 + tz.transition 1940, 12, :o3, 9719891, 4 + tz.transition 1941, 4, :o2, 58322057, 24 + tz.transition 1943, 12, :o4, 9724299, 4 + tz.transition 1944, 5, :o2, 58349081, 24 + tz.transition 1950, 2, :o3, 9733299, 4 + tz.transition 1950, 7, :o2, 58403825, 24 + tz.transition 1996, 4, :o3, 828864000 + tz.transition 1996, 10, :o2, 846399600 + tz.transition 1997, 4, :o3, 860313600 + tz.transition 1997, 10, :o2, 877849200 + tz.transition 1998, 4, :o3, 891763200 + tz.transition 1998, 10, :o2, 909298800 + tz.transition 1999, 4, :o3, 923212800 + tz.transition 1999, 10, :o2, 941353200 + tz.transition 2000, 4, :o3, 954662400 + tz.transition 2000, 10, :o2, 972802800 + tz.transition 2001, 5, :o3, 989136000 + tz.transition 2001, 9, :o2, 1001833200 + tz.transition 2002, 4, :o3, 1018166400 + tz.transition 2002, 10, :o2, 1035702000 + tz.transition 2003, 4, :o3, 1049616000 + tz.transition 2003, 10, :o2, 1067151600 + tz.transition 2004, 4, :o3, 1081065600 + tz.transition 2004, 10, :o2, 1099206000 + tz.transition 2005, 4, :o3, 1112515200 + tz.transition 2005, 10, :o2, 1130655600 + tz.transition 2006, 4, :o3, 1143964800 + tz.transition 2006, 10, :o2, 1162105200 + tz.transition 2007, 4, :o3, 1175414400 + tz.transition 2007, 10, :o2, 1193554800 + tz.transition 2008, 4, :o3, 1207468800 + tz.transition 2008, 10, :o2, 1225004400 + tz.transition 2009, 4, :o3, 1238918400 + tz.transition 2009, 10, :o2, 1256454000 + tz.transition 2010, 4, :o3, 1270368000 + tz.transition 2010, 10, :o2, 1288508400 + tz.transition 2011, 4, :o3, 1301817600 + tz.transition 2011, 10, :o2, 1319958000 + tz.transition 2012, 4, :o3, 1333267200 + tz.transition 2012, 10, :o2, 1351407600 + tz.transition 2013, 4, :o3, 1365321600 + tz.transition 2013, 10, :o2, 1382857200 + tz.transition 2014, 4, :o3, 1396771200 + tz.transition 2014, 10, :o2, 1414306800 + tz.transition 2015, 4, :o3, 1428220800 + tz.transition 2015, 10, :o2, 1445756400 + tz.transition 2016, 4, :o3, 1459670400 + tz.transition 2016, 10, :o2, 1477810800 + tz.transition 2017, 4, :o3, 1491120000 + tz.transition 2017, 10, :o2, 1509260400 + tz.transition 2018, 4, :o3, 1522569600 + tz.transition 2018, 10, :o2, 1540710000 + tz.transition 2019, 4, :o3, 1554624000 + tz.transition 2019, 10, :o2, 1572159600 + tz.transition 2020, 4, :o3, 1586073600 + tz.transition 2020, 10, :o2, 1603609200 + tz.transition 2021, 4, :o3, 1617523200 + tz.transition 2021, 10, :o2, 1635663600 + tz.transition 2022, 4, :o3, 1648972800 + tz.transition 2022, 10, :o2, 1667113200 + tz.transition 2023, 4, :o3, 1680422400 + tz.transition 2023, 10, :o2, 1698562800 + tz.transition 2024, 4, :o3, 1712476800 + tz.transition 2024, 10, :o2, 1730012400 + tz.transition 2025, 4, :o3, 1743926400 + tz.transition 2025, 10, :o2, 1761462000 + tz.transition 2026, 4, :o3, 1775376000 + tz.transition 2026, 10, :o2, 1792911600 + tz.transition 2027, 4, :o3, 1806825600 + tz.transition 2027, 10, :o2, 1824966000 + tz.transition 2028, 4, :o3, 1838275200 + tz.transition 2028, 10, :o2, 1856415600 + tz.transition 2029, 4, :o3, 1869724800 + tz.transition 2029, 10, :o2, 1887865200 + tz.transition 2030, 4, :o3, 1901779200 + tz.transition 2030, 10, :o2, 1919314800 + tz.transition 2031, 4, :o3, 1933228800 + tz.transition 2031, 10, :o2, 1950764400 + tz.transition 2032, 4, :o3, 1964678400 + tz.transition 2032, 10, :o2, 1982818800 + tz.transition 2033, 4, :o3, 1996128000 + tz.transition 2033, 10, :o2, 2014268400 + tz.transition 2034, 4, :o3, 2027577600 + tz.transition 2034, 10, :o2, 2045718000 + tz.transition 2035, 4, :o3, 2059027200 + tz.transition 2035, 10, :o2, 2077167600 + tz.transition 2036, 4, :o3, 2091081600 + tz.transition 2036, 10, :o2, 2108617200 + tz.transition 2037, 4, :o3, 2122531200 + tz.transition 2037, 10, :o2, 2140066800 + tz.transition 2038, 4, :o3, 14793107, 6 + tz.transition 2038, 10, :o2, 59177467, 24 + tz.transition 2039, 4, :o3, 14795291, 6 + tz.transition 2039, 10, :o2, 59186203, 24 + tz.transition 2040, 4, :o3, 14797475, 6 + tz.transition 2040, 10, :o2, 59194939, 24 + tz.transition 2041, 4, :o3, 14799701, 6 + tz.transition 2041, 10, :o2, 59203675, 24 + tz.transition 2042, 4, :o3, 14801885, 6 + tz.transition 2042, 10, :o2, 59212411, 24 + tz.transition 2043, 4, :o3, 14804069, 6 + tz.transition 2043, 10, :o2, 59221147, 24 + tz.transition 2044, 4, :o3, 14806253, 6 + tz.transition 2044, 10, :o2, 59230051, 24 + tz.transition 2045, 4, :o3, 14808437, 6 + tz.transition 2045, 10, :o2, 59238787, 24 + tz.transition 2046, 4, :o3, 14810621, 6 + tz.transition 2046, 10, :o2, 59247523, 24 + tz.transition 2047, 4, :o3, 14812847, 6 + tz.transition 2047, 10, :o2, 59256259, 24 + tz.transition 2048, 4, :o3, 14815031, 6 + tz.transition 2048, 10, :o2, 59264995, 24 + tz.transition 2049, 4, :o3, 14817215, 6 + tz.transition 2049, 10, :o2, 59273899, 24 + tz.transition 2050, 4, :o3, 14819399, 6 + tz.transition 2050, 10, :o2, 59282635, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Monterrey.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Monterrey.rb new file mode 100644 index 000000000..5816a9eab --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Monterrey.rb @@ -0,0 +1,131 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Monterrey + include TimezoneDefinition + + timezone 'America/Monterrey' do |tz| + tz.offset :o0, -24076, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + + tz.transition 1922, 1, :o1, 9692223, 4 + tz.transition 1988, 4, :o2, 576057600 + tz.transition 1988, 10, :o1, 594198000 + tz.transition 1996, 4, :o2, 828864000 + tz.transition 1996, 10, :o1, 846399600 + tz.transition 1997, 4, :o2, 860313600 + tz.transition 1997, 10, :o1, 877849200 + tz.transition 1998, 4, :o2, 891763200 + tz.transition 1998, 10, :o1, 909298800 + tz.transition 1999, 4, :o2, 923212800 + tz.transition 1999, 10, :o1, 941353200 + tz.transition 2000, 4, :o2, 954662400 + tz.transition 2000, 10, :o1, 972802800 + tz.transition 2001, 5, :o2, 989136000 + tz.transition 2001, 9, :o1, 1001833200 + tz.transition 2002, 4, :o2, 1018166400 + tz.transition 2002, 10, :o1, 1035702000 + tz.transition 2003, 4, :o2, 1049616000 + tz.transition 2003, 10, :o1, 1067151600 + tz.transition 2004, 4, :o2, 1081065600 + tz.transition 2004, 10, :o1, 1099206000 + tz.transition 2005, 4, :o2, 1112515200 + tz.transition 2005, 10, :o1, 1130655600 + tz.transition 2006, 4, :o2, 1143964800 + tz.transition 2006, 10, :o1, 1162105200 + tz.transition 2007, 4, :o2, 1175414400 + tz.transition 2007, 10, :o1, 1193554800 + tz.transition 2008, 4, :o2, 1207468800 + tz.transition 2008, 10, :o1, 1225004400 + tz.transition 2009, 4, :o2, 1238918400 + tz.transition 2009, 10, :o1, 1256454000 + tz.transition 2010, 4, :o2, 1270368000 + tz.transition 2010, 10, :o1, 1288508400 + tz.transition 2011, 4, :o2, 1301817600 + tz.transition 2011, 10, :o1, 1319958000 + tz.transition 2012, 4, :o2, 1333267200 + tz.transition 2012, 10, :o1, 1351407600 + tz.transition 2013, 4, :o2, 1365321600 + tz.transition 2013, 10, :o1, 1382857200 + tz.transition 2014, 4, :o2, 1396771200 + tz.transition 2014, 10, :o1, 1414306800 + tz.transition 2015, 4, :o2, 1428220800 + tz.transition 2015, 10, :o1, 1445756400 + tz.transition 2016, 4, :o2, 1459670400 + tz.transition 2016, 10, :o1, 1477810800 + tz.transition 2017, 4, :o2, 1491120000 + tz.transition 2017, 10, :o1, 1509260400 + tz.transition 2018, 4, :o2, 1522569600 + tz.transition 2018, 10, :o1, 1540710000 + tz.transition 2019, 4, :o2, 1554624000 + tz.transition 2019, 10, :o1, 1572159600 + tz.transition 2020, 4, :o2, 1586073600 + tz.transition 2020, 10, :o1, 1603609200 + tz.transition 2021, 4, :o2, 1617523200 + tz.transition 2021, 10, :o1, 1635663600 + tz.transition 2022, 4, :o2, 1648972800 + tz.transition 2022, 10, :o1, 1667113200 + tz.transition 2023, 4, :o2, 1680422400 + tz.transition 2023, 10, :o1, 1698562800 + tz.transition 2024, 4, :o2, 1712476800 + tz.transition 2024, 10, :o1, 1730012400 + tz.transition 2025, 4, :o2, 1743926400 + tz.transition 2025, 10, :o1, 1761462000 + tz.transition 2026, 4, :o2, 1775376000 + tz.transition 2026, 10, :o1, 1792911600 + tz.transition 2027, 4, :o2, 1806825600 + tz.transition 2027, 10, :o1, 1824966000 + tz.transition 2028, 4, :o2, 1838275200 + tz.transition 2028, 10, :o1, 1856415600 + tz.transition 2029, 4, :o2, 1869724800 + tz.transition 2029, 10, :o1, 1887865200 + tz.transition 2030, 4, :o2, 1901779200 + tz.transition 2030, 10, :o1, 1919314800 + tz.transition 2031, 4, :o2, 1933228800 + tz.transition 2031, 10, :o1, 1950764400 + tz.transition 2032, 4, :o2, 1964678400 + tz.transition 2032, 10, :o1, 1982818800 + tz.transition 2033, 4, :o2, 1996128000 + tz.transition 2033, 10, :o1, 2014268400 + tz.transition 2034, 4, :o2, 2027577600 + tz.transition 2034, 10, :o1, 2045718000 + tz.transition 2035, 4, :o2, 2059027200 + tz.transition 2035, 10, :o1, 2077167600 + tz.transition 2036, 4, :o2, 2091081600 + tz.transition 2036, 10, :o1, 2108617200 + tz.transition 2037, 4, :o2, 2122531200 + tz.transition 2037, 10, :o1, 2140066800 + tz.transition 2038, 4, :o2, 14793107, 6 + tz.transition 2038, 10, :o1, 59177467, 24 + tz.transition 2039, 4, :o2, 14795291, 6 + tz.transition 2039, 10, :o1, 59186203, 24 + tz.transition 2040, 4, :o2, 14797475, 6 + tz.transition 2040, 10, :o1, 59194939, 24 + tz.transition 2041, 4, :o2, 14799701, 6 + tz.transition 2041, 10, :o1, 59203675, 24 + tz.transition 2042, 4, :o2, 14801885, 6 + tz.transition 2042, 10, :o1, 59212411, 24 + tz.transition 2043, 4, :o2, 14804069, 6 + tz.transition 2043, 10, :o1, 59221147, 24 + tz.transition 2044, 4, :o2, 14806253, 6 + tz.transition 2044, 10, :o1, 59230051, 24 + tz.transition 2045, 4, :o2, 14808437, 6 + tz.transition 2045, 10, :o1, 59238787, 24 + tz.transition 2046, 4, :o2, 14810621, 6 + tz.transition 2046, 10, :o1, 59247523, 24 + tz.transition 2047, 4, :o2, 14812847, 6 + tz.transition 2047, 10, :o1, 59256259, 24 + tz.transition 2048, 4, :o2, 14815031, 6 + tz.transition 2048, 10, :o1, 59264995, 24 + tz.transition 2049, 4, :o2, 14817215, 6 + tz.transition 2049, 10, :o1, 59273899, 24 + tz.transition 2050, 4, :o2, 14819399, 6 + tz.transition 2050, 10, :o1, 59282635, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/New_York.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/New_York.rb new file mode 100644 index 000000000..7d802bd2d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/New_York.rb @@ -0,0 +1,282 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module New_York + include TimezoneDefinition + + timezone 'America/New_York' do |tz| + tz.offset :o0, -17762, 0, :LMT + tz.offset :o1, -18000, 0, :EST + tz.offset :o2, -18000, 3600, :EDT + tz.offset :o3, -18000, 3600, :EWT + tz.offset :o4, -18000, 3600, :EPT + + tz.transition 1883, 11, :o1, 57819197, 24 + tz.transition 1918, 3, :o2, 58120411, 24 + tz.transition 1918, 10, :o1, 9687575, 4 + tz.transition 1919, 3, :o2, 58129147, 24 + tz.transition 1919, 10, :o1, 9689031, 4 + tz.transition 1920, 3, :o2, 58137883, 24 + tz.transition 1920, 10, :o1, 9690515, 4 + tz.transition 1921, 4, :o2, 58147291, 24 + tz.transition 1921, 9, :o1, 9691831, 4 + tz.transition 1922, 4, :o2, 58156195, 24 + tz.transition 1922, 9, :o1, 9693287, 4 + tz.transition 1923, 4, :o2, 58164931, 24 + tz.transition 1923, 9, :o1, 9694771, 4 + tz.transition 1924, 4, :o2, 58173667, 24 + tz.transition 1924, 9, :o1, 9696227, 4 + tz.transition 1925, 4, :o2, 58182403, 24 + tz.transition 1925, 9, :o1, 9697683, 4 + tz.transition 1926, 4, :o2, 58191139, 24 + tz.transition 1926, 9, :o1, 9699139, 4 + tz.transition 1927, 4, :o2, 58199875, 24 + tz.transition 1927, 9, :o1, 9700595, 4 + tz.transition 1928, 4, :o2, 58208779, 24 + tz.transition 1928, 9, :o1, 9702079, 4 + tz.transition 1929, 4, :o2, 58217515, 24 + tz.transition 1929, 9, :o1, 9703535, 4 + tz.transition 1930, 4, :o2, 58226251, 24 + tz.transition 1930, 9, :o1, 9704991, 4 + tz.transition 1931, 4, :o2, 58234987, 24 + tz.transition 1931, 9, :o1, 9706447, 4 + tz.transition 1932, 4, :o2, 58243723, 24 + tz.transition 1932, 9, :o1, 9707903, 4 + tz.transition 1933, 4, :o2, 58252627, 24 + tz.transition 1933, 9, :o1, 9709359, 4 + tz.transition 1934, 4, :o2, 58261363, 24 + tz.transition 1934, 9, :o1, 9710843, 4 + tz.transition 1935, 4, :o2, 58270099, 24 + tz.transition 1935, 9, :o1, 9712299, 4 + tz.transition 1936, 4, :o2, 58278835, 24 + tz.transition 1936, 9, :o1, 9713755, 4 + tz.transition 1937, 4, :o2, 58287571, 24 + tz.transition 1937, 9, :o1, 9715211, 4 + tz.transition 1938, 4, :o2, 58296307, 24 + tz.transition 1938, 9, :o1, 9716667, 4 + tz.transition 1939, 4, :o2, 58305211, 24 + tz.transition 1939, 9, :o1, 9718123, 4 + tz.transition 1940, 4, :o2, 58313947, 24 + tz.transition 1940, 9, :o1, 9719607, 4 + tz.transition 1941, 4, :o2, 58322683, 24 + tz.transition 1941, 9, :o1, 9721063, 4 + tz.transition 1942, 2, :o3, 58329595, 24 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 9726915, 4 + tz.transition 1946, 4, :o2, 58366531, 24 + tz.transition 1946, 9, :o1, 9728371, 4 + tz.transition 1947, 4, :o2, 58375267, 24 + tz.transition 1947, 9, :o1, 9729827, 4 + tz.transition 1948, 4, :o2, 58384003, 24 + tz.transition 1948, 9, :o1, 9731283, 4 + tz.transition 1949, 4, :o2, 58392739, 24 + tz.transition 1949, 9, :o1, 9732739, 4 + tz.transition 1950, 4, :o2, 58401643, 24 + tz.transition 1950, 9, :o1, 9734195, 4 + tz.transition 1951, 4, :o2, 58410379, 24 + tz.transition 1951, 9, :o1, 9735679, 4 + tz.transition 1952, 4, :o2, 58419115, 24 + tz.transition 1952, 9, :o1, 9737135, 4 + tz.transition 1953, 4, :o2, 58427851, 24 + tz.transition 1953, 9, :o1, 9738591, 4 + tz.transition 1954, 4, :o2, 58436587, 24 + tz.transition 1954, 9, :o1, 9740047, 4 + tz.transition 1955, 4, :o2, 58445323, 24 + tz.transition 1955, 10, :o1, 9741643, 4 + tz.transition 1956, 4, :o2, 58454227, 24 + tz.transition 1956, 10, :o1, 9743099, 4 + tz.transition 1957, 4, :o2, 58462963, 24 + tz.transition 1957, 10, :o1, 9744555, 4 + tz.transition 1958, 4, :o2, 58471699, 24 + tz.transition 1958, 10, :o1, 9746011, 4 + tz.transition 1959, 4, :o2, 58480435, 24 + tz.transition 1959, 10, :o1, 9747467, 4 + tz.transition 1960, 4, :o2, 58489171, 24 + tz.transition 1960, 10, :o1, 9748951, 4 + tz.transition 1961, 4, :o2, 58498075, 24 + tz.transition 1961, 10, :o1, 9750407, 4 + tz.transition 1962, 4, :o2, 58506811, 24 + tz.transition 1962, 10, :o1, 9751863, 4 + tz.transition 1963, 4, :o2, 58515547, 24 + tz.transition 1963, 10, :o1, 9753319, 4 + tz.transition 1964, 4, :o2, 58524283, 24 + tz.transition 1964, 10, :o1, 9754775, 4 + tz.transition 1965, 4, :o2, 58533019, 24 + tz.transition 1965, 10, :o1, 9756259, 4 + tz.transition 1966, 4, :o2, 58541755, 24 + tz.transition 1966, 10, :o1, 9757715, 4 + tz.transition 1967, 4, :o2, 58550659, 24 + tz.transition 1967, 10, :o1, 9759171, 4 + tz.transition 1968, 4, :o2, 58559395, 24 + tz.transition 1968, 10, :o1, 9760627, 4 + tz.transition 1969, 4, :o2, 58568131, 24 + tz.transition 1969, 10, :o1, 9762083, 4 + tz.transition 1970, 4, :o2, 9961200 + tz.transition 1970, 10, :o1, 25682400 + tz.transition 1971, 4, :o2, 41410800 + tz.transition 1971, 10, :o1, 57736800 + tz.transition 1972, 4, :o2, 73465200 + tz.transition 1972, 10, :o1, 89186400 + tz.transition 1973, 4, :o2, 104914800 + tz.transition 1973, 10, :o1, 120636000 + tz.transition 1974, 1, :o2, 126687600 + tz.transition 1974, 10, :o1, 152085600 + tz.transition 1975, 2, :o2, 162370800 + tz.transition 1975, 10, :o1, 183535200 + tz.transition 1976, 4, :o2, 199263600 + tz.transition 1976, 10, :o1, 215589600 + tz.transition 1977, 4, :o2, 230713200 + tz.transition 1977, 10, :o1, 247039200 + tz.transition 1978, 4, :o2, 262767600 + tz.transition 1978, 10, :o1, 278488800 + tz.transition 1979, 4, :o2, 294217200 + tz.transition 1979, 10, :o1, 309938400 + tz.transition 1980, 4, :o2, 325666800 + tz.transition 1980, 10, :o1, 341388000 + tz.transition 1981, 4, :o2, 357116400 + tz.transition 1981, 10, :o1, 372837600 + tz.transition 1982, 4, :o2, 388566000 + tz.transition 1982, 10, :o1, 404892000 + tz.transition 1983, 4, :o2, 420015600 + tz.transition 1983, 10, :o1, 436341600 + tz.transition 1984, 4, :o2, 452070000 + tz.transition 1984, 10, :o1, 467791200 + tz.transition 1985, 4, :o2, 483519600 + tz.transition 1985, 10, :o1, 499240800 + tz.transition 1986, 4, :o2, 514969200 + tz.transition 1986, 10, :o1, 530690400 + tz.transition 1987, 4, :o2, 544604400 + tz.transition 1987, 10, :o1, 562140000 + tz.transition 1988, 4, :o2, 576054000 + tz.transition 1988, 10, :o1, 594194400 + tz.transition 1989, 4, :o2, 607503600 + tz.transition 1989, 10, :o1, 625644000 + tz.transition 1990, 4, :o2, 638953200 + tz.transition 1990, 10, :o1, 657093600 + tz.transition 1991, 4, :o2, 671007600 + tz.transition 1991, 10, :o1, 688543200 + tz.transition 1992, 4, :o2, 702457200 + tz.transition 1992, 10, :o1, 719992800 + tz.transition 1993, 4, :o2, 733906800 + tz.transition 1993, 10, :o1, 752047200 + tz.transition 1994, 4, :o2, 765356400 + tz.transition 1994, 10, :o1, 783496800 + tz.transition 1995, 4, :o2, 796806000 + tz.transition 1995, 10, :o1, 814946400 + tz.transition 1996, 4, :o2, 828860400 + tz.transition 1996, 10, :o1, 846396000 + tz.transition 1997, 4, :o2, 860310000 + tz.transition 1997, 10, :o1, 877845600 + tz.transition 1998, 4, :o2, 891759600 + tz.transition 1998, 10, :o1, 909295200 + tz.transition 1999, 4, :o2, 923209200 + tz.transition 1999, 10, :o1, 941349600 + tz.transition 2000, 4, :o2, 954658800 + tz.transition 2000, 10, :o1, 972799200 + tz.transition 2001, 4, :o2, 986108400 + tz.transition 2001, 10, :o1, 1004248800 + tz.transition 2002, 4, :o2, 1018162800 + tz.transition 2002, 10, :o1, 1035698400 + tz.transition 2003, 4, :o2, 1049612400 + tz.transition 2003, 10, :o1, 1067148000 + tz.transition 2004, 4, :o2, 1081062000 + tz.transition 2004, 10, :o1, 1099202400 + tz.transition 2005, 4, :o2, 1112511600 + tz.transition 2005, 10, :o1, 1130652000 + tz.transition 2006, 4, :o2, 1143961200 + tz.transition 2006, 10, :o1, 1162101600 + tz.transition 2007, 3, :o2, 1173596400 + tz.transition 2007, 11, :o1, 1194156000 + tz.transition 2008, 3, :o2, 1205046000 + tz.transition 2008, 11, :o1, 1225605600 + tz.transition 2009, 3, :o2, 1236495600 + tz.transition 2009, 11, :o1, 1257055200 + tz.transition 2010, 3, :o2, 1268550000 + tz.transition 2010, 11, :o1, 1289109600 + tz.transition 2011, 3, :o2, 1299999600 + tz.transition 2011, 11, :o1, 1320559200 + tz.transition 2012, 3, :o2, 1331449200 + tz.transition 2012, 11, :o1, 1352008800 + tz.transition 2013, 3, :o2, 1362898800 + tz.transition 2013, 11, :o1, 1383458400 + tz.transition 2014, 3, :o2, 1394348400 + tz.transition 2014, 11, :o1, 1414908000 + tz.transition 2015, 3, :o2, 1425798000 + tz.transition 2015, 11, :o1, 1446357600 + tz.transition 2016, 3, :o2, 1457852400 + tz.transition 2016, 11, :o1, 1478412000 + tz.transition 2017, 3, :o2, 1489302000 + tz.transition 2017, 11, :o1, 1509861600 + tz.transition 2018, 3, :o2, 1520751600 + tz.transition 2018, 11, :o1, 1541311200 + tz.transition 2019, 3, :o2, 1552201200 + tz.transition 2019, 11, :o1, 1572760800 + tz.transition 2020, 3, :o2, 1583650800 + tz.transition 2020, 11, :o1, 1604210400 + tz.transition 2021, 3, :o2, 1615705200 + tz.transition 2021, 11, :o1, 1636264800 + tz.transition 2022, 3, :o2, 1647154800 + tz.transition 2022, 11, :o1, 1667714400 + tz.transition 2023, 3, :o2, 1678604400 + tz.transition 2023, 11, :o1, 1699164000 + tz.transition 2024, 3, :o2, 1710054000 + tz.transition 2024, 11, :o1, 1730613600 + tz.transition 2025, 3, :o2, 1741503600 + tz.transition 2025, 11, :o1, 1762063200 + tz.transition 2026, 3, :o2, 1772953200 + tz.transition 2026, 11, :o1, 1793512800 + tz.transition 2027, 3, :o2, 1805007600 + tz.transition 2027, 11, :o1, 1825567200 + tz.transition 2028, 3, :o2, 1836457200 + tz.transition 2028, 11, :o1, 1857016800 + tz.transition 2029, 3, :o2, 1867906800 + tz.transition 2029, 11, :o1, 1888466400 + tz.transition 2030, 3, :o2, 1899356400 + tz.transition 2030, 11, :o1, 1919916000 + tz.transition 2031, 3, :o2, 1930806000 + tz.transition 2031, 11, :o1, 1951365600 + tz.transition 2032, 3, :o2, 1962860400 + tz.transition 2032, 11, :o1, 1983420000 + tz.transition 2033, 3, :o2, 1994310000 + tz.transition 2033, 11, :o1, 2014869600 + tz.transition 2034, 3, :o2, 2025759600 + tz.transition 2034, 11, :o1, 2046319200 + tz.transition 2035, 3, :o2, 2057209200 + tz.transition 2035, 11, :o1, 2077768800 + tz.transition 2036, 3, :o2, 2088658800 + tz.transition 2036, 11, :o1, 2109218400 + tz.transition 2037, 3, :o2, 2120108400 + tz.transition 2037, 11, :o1, 2140668000 + tz.transition 2038, 3, :o2, 59171923, 24 + tz.transition 2038, 11, :o1, 9862939, 4 + tz.transition 2039, 3, :o2, 59180659, 24 + tz.transition 2039, 11, :o1, 9864395, 4 + tz.transition 2040, 3, :o2, 59189395, 24 + tz.transition 2040, 11, :o1, 9865851, 4 + tz.transition 2041, 3, :o2, 59198131, 24 + tz.transition 2041, 11, :o1, 9867307, 4 + tz.transition 2042, 3, :o2, 59206867, 24 + tz.transition 2042, 11, :o1, 9868763, 4 + tz.transition 2043, 3, :o2, 59215603, 24 + tz.transition 2043, 11, :o1, 9870219, 4 + tz.transition 2044, 3, :o2, 59224507, 24 + tz.transition 2044, 11, :o1, 9871703, 4 + tz.transition 2045, 3, :o2, 59233243, 24 + tz.transition 2045, 11, :o1, 9873159, 4 + tz.transition 2046, 3, :o2, 59241979, 24 + tz.transition 2046, 11, :o1, 9874615, 4 + tz.transition 2047, 3, :o2, 59250715, 24 + tz.transition 2047, 11, :o1, 9876071, 4 + tz.transition 2048, 3, :o2, 59259451, 24 + tz.transition 2048, 11, :o1, 9877527, 4 + tz.transition 2049, 3, :o2, 59268355, 24 + tz.transition 2049, 11, :o1, 9879011, 4 + tz.transition 2050, 3, :o2, 59277091, 24 + tz.transition 2050, 11, :o1, 9880467, 4 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Phoenix.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Phoenix.rb new file mode 100644 index 000000000..b514e0c0f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Phoenix.rb @@ -0,0 +1,30 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Phoenix + include TimezoneDefinition + + timezone 'America/Phoenix' do |tz| + tz.offset :o0, -26898, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -25200, 3600, :MDT + tz.offset :o3, -25200, 3600, :MWT + + tz.transition 1883, 11, :o1, 57819199, 24 + tz.transition 1918, 3, :o2, 19373471, 8 + tz.transition 1918, 10, :o1, 14531363, 6 + tz.transition 1919, 3, :o2, 19376383, 8 + tz.transition 1919, 10, :o1, 14533547, 6 + tz.transition 1942, 2, :o3, 19443199, 8 + tz.transition 1944, 1, :o1, 3500770681, 1440 + tz.transition 1944, 4, :o3, 3500901781, 1440 + tz.transition 1944, 10, :o1, 3501165241, 1440 + tz.transition 1967, 4, :o2, 19516887, 8 + tz.transition 1967, 10, :o1, 14638757, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Regina.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Regina.rb new file mode 100644 index 000000000..ebdb68814 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Regina.rb @@ -0,0 +1,74 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Regina + include TimezoneDefinition + + timezone 'America/Regina' do |tz| + tz.offset :o0, -25116, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -25200, 3600, :MDT + tz.offset :o3, -25200, 3600, :MWT + tz.offset :o4, -25200, 3600, :MPT + tz.offset :o5, -21600, 0, :CST + + tz.transition 1905, 9, :o1, 17403046493, 7200 + tz.transition 1918, 4, :o2, 19373583, 8 + tz.transition 1918, 10, :o1, 14531387, 6 + tz.transition 1930, 5, :o2, 58226419, 24 + tz.transition 1930, 10, :o1, 9705019, 4 + tz.transition 1931, 5, :o2, 58235155, 24 + tz.transition 1931, 10, :o1, 9706475, 4 + tz.transition 1932, 5, :o2, 58243891, 24 + tz.transition 1932, 10, :o1, 9707931, 4 + tz.transition 1933, 5, :o2, 58252795, 24 + tz.transition 1933, 10, :o1, 9709387, 4 + tz.transition 1934, 5, :o2, 58261531, 24 + tz.transition 1934, 10, :o1, 9710871, 4 + tz.transition 1937, 4, :o2, 58287235, 24 + tz.transition 1937, 10, :o1, 9715267, 4 + tz.transition 1938, 4, :o2, 58295971, 24 + tz.transition 1938, 10, :o1, 9716695, 4 + tz.transition 1939, 4, :o2, 58304707, 24 + tz.transition 1939, 10, :o1, 9718179, 4 + tz.transition 1940, 4, :o2, 58313611, 24 + tz.transition 1940, 10, :o1, 9719663, 4 + tz.transition 1941, 4, :o2, 58322347, 24 + tz.transition 1941, 10, :o1, 9721119, 4 + tz.transition 1942, 2, :o3, 19443199, 8 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 14590373, 6 + tz.transition 1946, 4, :o2, 19455399, 8 + tz.transition 1946, 10, :o1, 14592641, 6 + tz.transition 1947, 4, :o2, 19458423, 8 + tz.transition 1947, 9, :o1, 14594741, 6 + tz.transition 1948, 4, :o2, 19461335, 8 + tz.transition 1948, 9, :o1, 14596925, 6 + tz.transition 1949, 4, :o2, 19464247, 8 + tz.transition 1949, 9, :o1, 14599109, 6 + tz.transition 1950, 4, :o2, 19467215, 8 + tz.transition 1950, 9, :o1, 14601293, 6 + tz.transition 1951, 4, :o2, 19470127, 8 + tz.transition 1951, 9, :o1, 14603519, 6 + tz.transition 1952, 4, :o2, 19473039, 8 + tz.transition 1952, 9, :o1, 14605703, 6 + tz.transition 1953, 4, :o2, 19475951, 8 + tz.transition 1953, 9, :o1, 14607887, 6 + tz.transition 1954, 4, :o2, 19478863, 8 + tz.transition 1954, 9, :o1, 14610071, 6 + tz.transition 1955, 4, :o2, 19481775, 8 + tz.transition 1955, 9, :o1, 14612255, 6 + tz.transition 1956, 4, :o2, 19484743, 8 + tz.transition 1956, 9, :o1, 14614481, 6 + tz.transition 1957, 4, :o2, 19487655, 8 + tz.transition 1957, 9, :o1, 14616665, 6 + tz.transition 1959, 4, :o2, 19493479, 8 + tz.transition 1959, 10, :o1, 14621201, 6 + tz.transition 1960, 4, :o5, 19496391, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Santiago.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Santiago.rb new file mode 100644 index 000000000..0287c9ebc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Santiago.rb @@ -0,0 +1,205 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Santiago + include TimezoneDefinition + + timezone 'America/Santiago' do |tz| + tz.offset :o0, -16966, 0, :LMT + tz.offset :o1, -16966, 0, :SMT + tz.offset :o2, -18000, 0, :CLT + tz.offset :o3, -14400, 0, :CLT + tz.offset :o4, -18000, 3600, :CLST + tz.offset :o5, -14400, 3600, :CLST + + tz.transition 1890, 1, :o1, 104171127683, 43200 + tz.transition 1910, 1, :o2, 104486660483, 43200 + tz.transition 1916, 7, :o1, 58105097, 24 + tz.transition 1918, 9, :o3, 104623388483, 43200 + tz.transition 1919, 7, :o1, 7266422, 3 + tz.transition 1927, 9, :o4, 104765386883, 43200 + tz.transition 1928, 4, :o2, 7276013, 3 + tz.transition 1928, 9, :o4, 58211777, 24 + tz.transition 1929, 4, :o2, 7277108, 3 + tz.transition 1929, 9, :o4, 58220537, 24 + tz.transition 1930, 4, :o2, 7278203, 3 + tz.transition 1930, 9, :o4, 58229297, 24 + tz.transition 1931, 4, :o2, 7279298, 3 + tz.transition 1931, 9, :o4, 58238057, 24 + tz.transition 1932, 4, :o2, 7280396, 3 + tz.transition 1932, 9, :o4, 58246841, 24 + tz.transition 1942, 6, :o2, 7291535, 3 + tz.transition 1942, 8, :o4, 58333745, 24 + tz.transition 1946, 9, :o2, 19456517, 8 + tz.transition 1947, 5, :o3, 58375865, 24 + tz.transition 1968, 11, :o5, 7320491, 3 + tz.transition 1969, 3, :o3, 19522485, 8 + tz.transition 1969, 11, :o5, 7321646, 3 + tz.transition 1970, 3, :o3, 7527600 + tz.transition 1970, 10, :o5, 24465600 + tz.transition 1971, 3, :o3, 37767600 + tz.transition 1971, 10, :o5, 55915200 + tz.transition 1972, 3, :o3, 69217200 + tz.transition 1972, 10, :o5, 87969600 + tz.transition 1973, 3, :o3, 100666800 + tz.transition 1973, 9, :o5, 118209600 + tz.transition 1974, 3, :o3, 132116400 + tz.transition 1974, 10, :o5, 150868800 + tz.transition 1975, 3, :o3, 163566000 + tz.transition 1975, 10, :o5, 182318400 + tz.transition 1976, 3, :o3, 195620400 + tz.transition 1976, 10, :o5, 213768000 + tz.transition 1977, 3, :o3, 227070000 + tz.transition 1977, 10, :o5, 245217600 + tz.transition 1978, 3, :o3, 258519600 + tz.transition 1978, 10, :o5, 277272000 + tz.transition 1979, 3, :o3, 289969200 + tz.transition 1979, 10, :o5, 308721600 + tz.transition 1980, 3, :o3, 321418800 + tz.transition 1980, 10, :o5, 340171200 + tz.transition 1981, 3, :o3, 353473200 + tz.transition 1981, 10, :o5, 371620800 + tz.transition 1982, 3, :o3, 384922800 + tz.transition 1982, 10, :o5, 403070400 + tz.transition 1983, 3, :o3, 416372400 + tz.transition 1983, 10, :o5, 434520000 + tz.transition 1984, 3, :o3, 447822000 + tz.transition 1984, 10, :o5, 466574400 + tz.transition 1985, 3, :o3, 479271600 + tz.transition 1985, 10, :o5, 498024000 + tz.transition 1986, 3, :o3, 510721200 + tz.transition 1986, 10, :o5, 529473600 + tz.transition 1987, 4, :o3, 545194800 + tz.transition 1987, 10, :o5, 560923200 + tz.transition 1988, 3, :o3, 574225200 + tz.transition 1988, 10, :o5, 591768000 + tz.transition 1989, 3, :o3, 605674800 + tz.transition 1989, 10, :o5, 624427200 + tz.transition 1990, 3, :o3, 637729200 + tz.transition 1990, 9, :o5, 653457600 + tz.transition 1991, 3, :o3, 668574000 + tz.transition 1991, 10, :o5, 687326400 + tz.transition 1992, 3, :o3, 700628400 + tz.transition 1992, 10, :o5, 718776000 + tz.transition 1993, 3, :o3, 732078000 + tz.transition 1993, 10, :o5, 750225600 + tz.transition 1994, 3, :o3, 763527600 + tz.transition 1994, 10, :o5, 781675200 + tz.transition 1995, 3, :o3, 794977200 + tz.transition 1995, 10, :o5, 813729600 + tz.transition 1996, 3, :o3, 826426800 + tz.transition 1996, 10, :o5, 845179200 + tz.transition 1997, 3, :o3, 859690800 + tz.transition 1997, 10, :o5, 876628800 + tz.transition 1998, 3, :o3, 889930800 + tz.transition 1998, 9, :o5, 906868800 + tz.transition 1999, 4, :o3, 923194800 + tz.transition 1999, 10, :o5, 939528000 + tz.transition 2000, 3, :o3, 952830000 + tz.transition 2000, 10, :o5, 971582400 + tz.transition 2001, 3, :o3, 984279600 + tz.transition 2001, 10, :o5, 1003032000 + tz.transition 2002, 3, :o3, 1015729200 + tz.transition 2002, 10, :o5, 1034481600 + tz.transition 2003, 3, :o3, 1047178800 + tz.transition 2003, 10, :o5, 1065931200 + tz.transition 2004, 3, :o3, 1079233200 + tz.transition 2004, 10, :o5, 1097380800 + tz.transition 2005, 3, :o3, 1110682800 + tz.transition 2005, 10, :o5, 1128830400 + tz.transition 2006, 3, :o3, 1142132400 + tz.transition 2006, 10, :o5, 1160884800 + tz.transition 2007, 3, :o3, 1173582000 + tz.transition 2007, 10, :o5, 1192334400 + tz.transition 2008, 3, :o3, 1206846000 + tz.transition 2008, 10, :o5, 1223784000 + tz.transition 2009, 3, :o3, 1237086000 + tz.transition 2009, 10, :o5, 1255233600 + tz.transition 2010, 3, :o3, 1268535600 + tz.transition 2010, 10, :o5, 1286683200 + tz.transition 2011, 3, :o3, 1299985200 + tz.transition 2011, 10, :o5, 1318132800 + tz.transition 2012, 3, :o3, 1331434800 + tz.transition 2012, 10, :o5, 1350187200 + tz.transition 2013, 3, :o3, 1362884400 + tz.transition 2013, 10, :o5, 1381636800 + tz.transition 2014, 3, :o3, 1394334000 + tz.transition 2014, 10, :o5, 1413086400 + tz.transition 2015, 3, :o3, 1426388400 + tz.transition 2015, 10, :o5, 1444536000 + tz.transition 2016, 3, :o3, 1457838000 + tz.transition 2016, 10, :o5, 1475985600 + tz.transition 2017, 3, :o3, 1489287600 + tz.transition 2017, 10, :o5, 1508040000 + tz.transition 2018, 3, :o3, 1520737200 + tz.transition 2018, 10, :o5, 1539489600 + tz.transition 2019, 3, :o3, 1552186800 + tz.transition 2019, 10, :o5, 1570939200 + tz.transition 2020, 3, :o3, 1584241200 + tz.transition 2020, 10, :o5, 1602388800 + tz.transition 2021, 3, :o3, 1615690800 + tz.transition 2021, 10, :o5, 1633838400 + tz.transition 2022, 3, :o3, 1647140400 + tz.transition 2022, 10, :o5, 1665288000 + tz.transition 2023, 3, :o3, 1678590000 + tz.transition 2023, 10, :o5, 1697342400 + tz.transition 2024, 3, :o3, 1710039600 + tz.transition 2024, 10, :o5, 1728792000 + tz.transition 2025, 3, :o3, 1741489200 + tz.transition 2025, 10, :o5, 1760241600 + tz.transition 2026, 3, :o3, 1773543600 + tz.transition 2026, 10, :o5, 1791691200 + tz.transition 2027, 3, :o3, 1804993200 + tz.transition 2027, 10, :o5, 1823140800 + tz.transition 2028, 3, :o3, 1836442800 + tz.transition 2028, 10, :o5, 1855195200 + tz.transition 2029, 3, :o3, 1867892400 + tz.transition 2029, 10, :o5, 1886644800 + tz.transition 2030, 3, :o3, 1899342000 + tz.transition 2030, 10, :o5, 1918094400 + tz.transition 2031, 3, :o3, 1930791600 + tz.transition 2031, 10, :o5, 1949544000 + tz.transition 2032, 3, :o3, 1962846000 + tz.transition 2032, 10, :o5, 1980993600 + tz.transition 2033, 3, :o3, 1994295600 + tz.transition 2033, 10, :o5, 2012443200 + tz.transition 2034, 3, :o3, 2025745200 + tz.transition 2034, 10, :o5, 2044497600 + tz.transition 2035, 3, :o3, 2057194800 + tz.transition 2035, 10, :o5, 2075947200 + tz.transition 2036, 3, :o3, 2088644400 + tz.transition 2036, 10, :o5, 2107396800 + tz.transition 2037, 3, :o3, 2120698800 + tz.transition 2037, 10, :o5, 2138846400 + tz.transition 2038, 3, :o3, 19723973, 8 + tz.transition 2038, 10, :o5, 7397120, 3 + tz.transition 2039, 3, :o3, 19726885, 8 + tz.transition 2039, 10, :o5, 7398212, 3 + tz.transition 2040, 3, :o3, 19729797, 8 + tz.transition 2040, 10, :o5, 7399325, 3 + tz.transition 2041, 3, :o3, 19732709, 8 + tz.transition 2041, 10, :o5, 7400417, 3 + tz.transition 2042, 3, :o3, 19735621, 8 + tz.transition 2042, 10, :o5, 7401509, 3 + tz.transition 2043, 3, :o3, 19738589, 8 + tz.transition 2043, 10, :o5, 7402601, 3 + tz.transition 2044, 3, :o3, 19741501, 8 + tz.transition 2044, 10, :o5, 7403693, 3 + tz.transition 2045, 3, :o3, 19744413, 8 + tz.transition 2045, 10, :o5, 7404806, 3 + tz.transition 2046, 3, :o3, 19747325, 8 + tz.transition 2046, 10, :o5, 7405898, 3 + tz.transition 2047, 3, :o3, 19750237, 8 + tz.transition 2047, 10, :o5, 7406990, 3 + tz.transition 2048, 3, :o3, 19753205, 8 + tz.transition 2048, 10, :o5, 7408082, 3 + tz.transition 2049, 3, :o3, 19756117, 8 + tz.transition 2049, 10, :o5, 7409174, 3 + tz.transition 2050, 3, :o3, 19759029, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/St_Johns.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/St_Johns.rb new file mode 100644 index 000000000..e4a3599d3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/St_Johns.rb @@ -0,0 +1,288 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module St_Johns + include TimezoneDefinition + + timezone 'America/St_Johns' do |tz| + tz.offset :o0, -12652, 0, :LMT + tz.offset :o1, -12652, 0, :NST + tz.offset :o2, -12652, 3600, :NDT + tz.offset :o3, -12600, 0, :NST + tz.offset :o4, -12600, 3600, :NDT + tz.offset :o5, -12600, 3600, :NWT + tz.offset :o6, -12600, 3600, :NPT + tz.offset :o7, -12600, 7200, :NDDT + + tz.transition 1884, 1, :o1, 52038215563, 21600 + tz.transition 1917, 4, :o2, 52300657363, 21600 + tz.transition 1917, 9, :o1, 52304155663, 21600 + tz.transition 1918, 4, :o2, 52308670963, 21600 + tz.transition 1918, 10, :o1, 52312990063, 21600 + tz.transition 1919, 5, :o2, 52317027463, 21600 + tz.transition 1919, 8, :o1, 52319164963, 21600 + tz.transition 1920, 5, :o2, 52324868263, 21600 + tz.transition 1920, 11, :o1, 52328798563, 21600 + tz.transition 1921, 5, :o2, 52332730663, 21600 + tz.transition 1921, 10, :o1, 52336660963, 21600 + tz.transition 1922, 5, :o2, 52340744263, 21600 + tz.transition 1922, 10, :o1, 52344523363, 21600 + tz.transition 1923, 5, :o2, 52348606663, 21600 + tz.transition 1923, 10, :o1, 52352385763, 21600 + tz.transition 1924, 5, :o2, 52356469063, 21600 + tz.transition 1924, 10, :o1, 52360248163, 21600 + tz.transition 1925, 5, :o2, 52364331463, 21600 + tz.transition 1925, 10, :o1, 52368110563, 21600 + tz.transition 1926, 5, :o2, 52372193863, 21600 + tz.transition 1926, 11, :o1, 52376124163, 21600 + tz.transition 1927, 5, :o2, 52380056263, 21600 + tz.transition 1927, 10, :o1, 52383986563, 21600 + tz.transition 1928, 5, :o2, 52388069863, 21600 + tz.transition 1928, 10, :o1, 52391848963, 21600 + tz.transition 1929, 5, :o2, 52395932263, 21600 + tz.transition 1929, 10, :o1, 52399711363, 21600 + tz.transition 1930, 5, :o2, 52403794663, 21600 + tz.transition 1930, 10, :o1, 52407573763, 21600 + tz.transition 1931, 5, :o2, 52411657063, 21600 + tz.transition 1931, 10, :o1, 52415436163, 21600 + tz.transition 1932, 5, :o2, 52419519463, 21600 + tz.transition 1932, 10, :o1, 52423449763, 21600 + tz.transition 1933, 5, :o2, 52427533063, 21600 + tz.transition 1933, 10, :o1, 52431312163, 21600 + tz.transition 1934, 5, :o2, 52435395463, 21600 + tz.transition 1934, 10, :o1, 52439174563, 21600 + tz.transition 1935, 3, :o3, 52442459563, 21600 + tz.transition 1935, 5, :o4, 116540573, 48 + tz.transition 1935, 10, :o3, 38849657, 16 + tz.transition 1936, 5, :o4, 116558383, 48 + tz.transition 1936, 10, :o3, 116565437, 48 + tz.transition 1937, 5, :o4, 116575855, 48 + tz.transition 1937, 10, :o3, 116582909, 48 + tz.transition 1938, 5, :o4, 116593327, 48 + tz.transition 1938, 10, :o3, 116600381, 48 + tz.transition 1939, 5, :o4, 116611135, 48 + tz.transition 1939, 10, :o3, 116617853, 48 + tz.transition 1940, 5, :o4, 116628607, 48 + tz.transition 1940, 10, :o3, 116635661, 48 + tz.transition 1941, 5, :o4, 116646079, 48 + tz.transition 1941, 10, :o3, 116653133, 48 + tz.transition 1942, 5, :o5, 116663551, 48 + tz.transition 1945, 8, :o6, 58360379, 24 + tz.transition 1945, 9, :o3, 38907659, 16 + tz.transition 1946, 5, :o4, 116733731, 48 + tz.transition 1946, 10, :o3, 38913595, 16 + tz.transition 1947, 5, :o4, 116751203, 48 + tz.transition 1947, 10, :o3, 38919419, 16 + tz.transition 1948, 5, :o4, 116768675, 48 + tz.transition 1948, 10, :o3, 38925243, 16 + tz.transition 1949, 5, :o4, 116786147, 48 + tz.transition 1949, 10, :o3, 38931067, 16 + tz.transition 1950, 5, :o4, 116803955, 48 + tz.transition 1950, 10, :o3, 38937003, 16 + tz.transition 1951, 4, :o4, 116820755, 48 + tz.transition 1951, 9, :o3, 38942715, 16 + tz.transition 1952, 4, :o4, 116838227, 48 + tz.transition 1952, 9, :o3, 38948539, 16 + tz.transition 1953, 4, :o4, 116855699, 48 + tz.transition 1953, 9, :o3, 38954363, 16 + tz.transition 1954, 4, :o4, 116873171, 48 + tz.transition 1954, 9, :o3, 38960187, 16 + tz.transition 1955, 4, :o4, 116890643, 48 + tz.transition 1955, 9, :o3, 38966011, 16 + tz.transition 1956, 4, :o4, 116908451, 48 + tz.transition 1956, 9, :o3, 38971947, 16 + tz.transition 1957, 4, :o4, 116925923, 48 + tz.transition 1957, 9, :o3, 38977771, 16 + tz.transition 1958, 4, :o4, 116943395, 48 + tz.transition 1958, 9, :o3, 38983595, 16 + tz.transition 1959, 4, :o4, 116960867, 48 + tz.transition 1959, 9, :o3, 38989419, 16 + tz.transition 1960, 4, :o4, 116978339, 48 + tz.transition 1960, 10, :o3, 38995803, 16 + tz.transition 1961, 4, :o4, 116996147, 48 + tz.transition 1961, 10, :o3, 39001627, 16 + tz.transition 1962, 4, :o4, 117013619, 48 + tz.transition 1962, 10, :o3, 39007451, 16 + tz.transition 1963, 4, :o4, 117031091, 48 + tz.transition 1963, 10, :o3, 39013275, 16 + tz.transition 1964, 4, :o4, 117048563, 48 + tz.transition 1964, 10, :o3, 39019099, 16 + tz.transition 1965, 4, :o4, 117066035, 48 + tz.transition 1965, 10, :o3, 39025035, 16 + tz.transition 1966, 4, :o4, 117083507, 48 + tz.transition 1966, 10, :o3, 39030859, 16 + tz.transition 1967, 4, :o4, 117101315, 48 + tz.transition 1967, 10, :o3, 39036683, 16 + tz.transition 1968, 4, :o4, 117118787, 48 + tz.transition 1968, 10, :o3, 39042507, 16 + tz.transition 1969, 4, :o4, 117136259, 48 + tz.transition 1969, 10, :o3, 39048331, 16 + tz.transition 1970, 4, :o4, 9955800 + tz.transition 1970, 10, :o3, 25677000 + tz.transition 1971, 4, :o4, 41405400 + tz.transition 1971, 10, :o3, 57731400 + tz.transition 1972, 4, :o4, 73459800 + tz.transition 1972, 10, :o3, 89181000 + tz.transition 1973, 4, :o4, 104909400 + tz.transition 1973, 10, :o3, 120630600 + tz.transition 1974, 4, :o4, 136359000 + tz.transition 1974, 10, :o3, 152080200 + tz.transition 1975, 4, :o4, 167808600 + tz.transition 1975, 10, :o3, 183529800 + tz.transition 1976, 4, :o4, 199258200 + tz.transition 1976, 10, :o3, 215584200 + tz.transition 1977, 4, :o4, 230707800 + tz.transition 1977, 10, :o3, 247033800 + tz.transition 1978, 4, :o4, 262762200 + tz.transition 1978, 10, :o3, 278483400 + tz.transition 1979, 4, :o4, 294211800 + tz.transition 1979, 10, :o3, 309933000 + tz.transition 1980, 4, :o4, 325661400 + tz.transition 1980, 10, :o3, 341382600 + tz.transition 1981, 4, :o4, 357111000 + tz.transition 1981, 10, :o3, 372832200 + tz.transition 1982, 4, :o4, 388560600 + tz.transition 1982, 10, :o3, 404886600 + tz.transition 1983, 4, :o4, 420010200 + tz.transition 1983, 10, :o3, 436336200 + tz.transition 1984, 4, :o4, 452064600 + tz.transition 1984, 10, :o3, 467785800 + tz.transition 1985, 4, :o4, 483514200 + tz.transition 1985, 10, :o3, 499235400 + tz.transition 1986, 4, :o4, 514963800 + tz.transition 1986, 10, :o3, 530685000 + tz.transition 1987, 4, :o4, 544591860 + tz.transition 1987, 10, :o3, 562127460 + tz.transition 1988, 4, :o7, 576041460 + tz.transition 1988, 10, :o3, 594178260 + tz.transition 1989, 4, :o4, 607491060 + tz.transition 1989, 10, :o3, 625631460 + tz.transition 1990, 4, :o4, 638940660 + tz.transition 1990, 10, :o3, 657081060 + tz.transition 1991, 4, :o4, 670995060 + tz.transition 1991, 10, :o3, 688530660 + tz.transition 1992, 4, :o4, 702444660 + tz.transition 1992, 10, :o3, 719980260 + tz.transition 1993, 4, :o4, 733894260 + tz.transition 1993, 10, :o3, 752034660 + tz.transition 1994, 4, :o4, 765343860 + tz.transition 1994, 10, :o3, 783484260 + tz.transition 1995, 4, :o4, 796793460 + tz.transition 1995, 10, :o3, 814933860 + tz.transition 1996, 4, :o4, 828847860 + tz.transition 1996, 10, :o3, 846383460 + tz.transition 1997, 4, :o4, 860297460 + tz.transition 1997, 10, :o3, 877833060 + tz.transition 1998, 4, :o4, 891747060 + tz.transition 1998, 10, :o3, 909282660 + tz.transition 1999, 4, :o4, 923196660 + tz.transition 1999, 10, :o3, 941337060 + tz.transition 2000, 4, :o4, 954646260 + tz.transition 2000, 10, :o3, 972786660 + tz.transition 2001, 4, :o4, 986095860 + tz.transition 2001, 10, :o3, 1004236260 + tz.transition 2002, 4, :o4, 1018150260 + tz.transition 2002, 10, :o3, 1035685860 + tz.transition 2003, 4, :o4, 1049599860 + tz.transition 2003, 10, :o3, 1067135460 + tz.transition 2004, 4, :o4, 1081049460 + tz.transition 2004, 10, :o3, 1099189860 + tz.transition 2005, 4, :o4, 1112499060 + tz.transition 2005, 10, :o3, 1130639460 + tz.transition 2006, 4, :o4, 1143948660 + tz.transition 2006, 10, :o3, 1162089060 + tz.transition 2007, 3, :o4, 1173583860 + tz.transition 2007, 11, :o3, 1194143460 + tz.transition 2008, 3, :o4, 1205033460 + tz.transition 2008, 11, :o3, 1225593060 + tz.transition 2009, 3, :o4, 1236483060 + tz.transition 2009, 11, :o3, 1257042660 + tz.transition 2010, 3, :o4, 1268537460 + tz.transition 2010, 11, :o3, 1289097060 + tz.transition 2011, 3, :o4, 1299987060 + tz.transition 2011, 11, :o3, 1320546660 + tz.transition 2012, 3, :o4, 1331436660 + tz.transition 2012, 11, :o3, 1351996260 + tz.transition 2013, 3, :o4, 1362886260 + tz.transition 2013, 11, :o3, 1383445860 + tz.transition 2014, 3, :o4, 1394335860 + tz.transition 2014, 11, :o3, 1414895460 + tz.transition 2015, 3, :o4, 1425785460 + tz.transition 2015, 11, :o3, 1446345060 + tz.transition 2016, 3, :o4, 1457839860 + tz.transition 2016, 11, :o3, 1478399460 + tz.transition 2017, 3, :o4, 1489289460 + tz.transition 2017, 11, :o3, 1509849060 + tz.transition 2018, 3, :o4, 1520739060 + tz.transition 2018, 11, :o3, 1541298660 + tz.transition 2019, 3, :o4, 1552188660 + tz.transition 2019, 11, :o3, 1572748260 + tz.transition 2020, 3, :o4, 1583638260 + tz.transition 2020, 11, :o3, 1604197860 + tz.transition 2021, 3, :o4, 1615692660 + tz.transition 2021, 11, :o3, 1636252260 + tz.transition 2022, 3, :o4, 1647142260 + tz.transition 2022, 11, :o3, 1667701860 + tz.transition 2023, 3, :o4, 1678591860 + tz.transition 2023, 11, :o3, 1699151460 + tz.transition 2024, 3, :o4, 1710041460 + tz.transition 2024, 11, :o3, 1730601060 + tz.transition 2025, 3, :o4, 1741491060 + tz.transition 2025, 11, :o3, 1762050660 + tz.transition 2026, 3, :o4, 1772940660 + tz.transition 2026, 11, :o3, 1793500260 + tz.transition 2027, 3, :o4, 1804995060 + tz.transition 2027, 11, :o3, 1825554660 + tz.transition 2028, 3, :o4, 1836444660 + tz.transition 2028, 11, :o3, 1857004260 + tz.transition 2029, 3, :o4, 1867894260 + tz.transition 2029, 11, :o3, 1888453860 + tz.transition 2030, 3, :o4, 1899343860 + tz.transition 2030, 11, :o3, 1919903460 + tz.transition 2031, 3, :o4, 1930793460 + tz.transition 2031, 11, :o3, 1951353060 + tz.transition 2032, 3, :o4, 1962847860 + tz.transition 2032, 11, :o3, 1983407460 + tz.transition 2033, 3, :o4, 1994297460 + tz.transition 2033, 11, :o3, 2014857060 + tz.transition 2034, 3, :o4, 2025747060 + tz.transition 2034, 11, :o3, 2046306660 + tz.transition 2035, 3, :o4, 2057196660 + tz.transition 2035, 11, :o3, 2077756260 + tz.transition 2036, 3, :o4, 2088646260 + tz.transition 2036, 11, :o3, 2109205860 + tz.transition 2037, 3, :o4, 2120095860 + tz.transition 2037, 11, :o3, 2140655460 + tz.transition 2038, 3, :o4, 3550315171, 1440 + tz.transition 2038, 11, :o3, 3550657831, 1440 + tz.transition 2039, 3, :o4, 3550839331, 1440 + tz.transition 2039, 11, :o3, 3551181991, 1440 + tz.transition 2040, 3, :o4, 3551363491, 1440 + tz.transition 2040, 11, :o3, 3551706151, 1440 + tz.transition 2041, 3, :o4, 3551887651, 1440 + tz.transition 2041, 11, :o3, 3552230311, 1440 + tz.transition 2042, 3, :o4, 3552411811, 1440 + tz.transition 2042, 11, :o3, 3552754471, 1440 + tz.transition 2043, 3, :o4, 3552935971, 1440 + tz.transition 2043, 11, :o3, 3553278631, 1440 + tz.transition 2044, 3, :o4, 3553470211, 1440 + tz.transition 2044, 11, :o3, 3553812871, 1440 + tz.transition 2045, 3, :o4, 3553994371, 1440 + tz.transition 2045, 11, :o3, 3554337031, 1440 + tz.transition 2046, 3, :o4, 3554518531, 1440 + tz.transition 2046, 11, :o3, 3554861191, 1440 + tz.transition 2047, 3, :o4, 3555042691, 1440 + tz.transition 2047, 11, :o3, 3555385351, 1440 + tz.transition 2048, 3, :o4, 3555566851, 1440 + tz.transition 2048, 11, :o3, 3555909511, 1440 + tz.transition 2049, 3, :o4, 3556101091, 1440 + tz.transition 2049, 11, :o3, 3556443751, 1440 + tz.transition 2050, 3, :o4, 3556625251, 1440 + tz.transition 2050, 11, :o3, 3556967911, 1440 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Tijuana.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Tijuana.rb new file mode 100644 index 000000000..423059da4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Tijuana.rb @@ -0,0 +1,196 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Tijuana + include TimezoneDefinition + + timezone 'America/Tijuana' do |tz| + tz.offset :o0, -28084, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -28800, 0, :PST + tz.offset :o3, -28800, 3600, :PDT + tz.offset :o4, -28800, 3600, :PWT + tz.offset :o5, -28800, 3600, :PPT + + tz.transition 1922, 1, :o1, 14538335, 6 + tz.transition 1924, 1, :o2, 58170859, 24 + tz.transition 1927, 6, :o1, 58201027, 24 + tz.transition 1930, 11, :o2, 58231099, 24 + tz.transition 1931, 4, :o3, 14558597, 6 + tz.transition 1931, 9, :o2, 58238755, 24 + tz.transition 1942, 4, :o4, 14582843, 6 + tz.transition 1945, 8, :o5, 58360379, 24 + tz.transition 1945, 11, :o2, 58362523, 24 + tz.transition 1948, 4, :o3, 14595881, 6 + tz.transition 1949, 1, :o2, 58390339, 24 + tz.transition 1954, 4, :o3, 29218295, 12 + tz.transition 1954, 9, :o2, 19480095, 8 + tz.transition 1955, 4, :o3, 29222663, 12 + tz.transition 1955, 9, :o2, 19483007, 8 + tz.transition 1956, 4, :o3, 29227115, 12 + tz.transition 1956, 9, :o2, 19485975, 8 + tz.transition 1957, 4, :o3, 29231483, 12 + tz.transition 1957, 9, :o2, 19488887, 8 + tz.transition 1958, 4, :o3, 29235851, 12 + tz.transition 1958, 9, :o2, 19491799, 8 + tz.transition 1959, 4, :o3, 29240219, 12 + tz.transition 1959, 9, :o2, 19494711, 8 + tz.transition 1960, 4, :o3, 29244587, 12 + tz.transition 1960, 9, :o2, 19497623, 8 + tz.transition 1976, 4, :o3, 199274400 + tz.transition 1976, 10, :o2, 215600400 + tz.transition 1977, 4, :o3, 230724000 + tz.transition 1977, 10, :o2, 247050000 + tz.transition 1978, 4, :o3, 262778400 + tz.transition 1978, 10, :o2, 278499600 + tz.transition 1979, 4, :o3, 294228000 + tz.transition 1979, 10, :o2, 309949200 + tz.transition 1980, 4, :o3, 325677600 + tz.transition 1980, 10, :o2, 341398800 + tz.transition 1981, 4, :o3, 357127200 + tz.transition 1981, 10, :o2, 372848400 + tz.transition 1982, 4, :o3, 388576800 + tz.transition 1982, 10, :o2, 404902800 + tz.transition 1983, 4, :o3, 420026400 + tz.transition 1983, 10, :o2, 436352400 + tz.transition 1984, 4, :o3, 452080800 + tz.transition 1984, 10, :o2, 467802000 + tz.transition 1985, 4, :o3, 483530400 + tz.transition 1985, 10, :o2, 499251600 + tz.transition 1986, 4, :o3, 514980000 + tz.transition 1986, 10, :o2, 530701200 + tz.transition 1987, 4, :o3, 544615200 + tz.transition 1987, 10, :o2, 562150800 + tz.transition 1988, 4, :o3, 576064800 + tz.transition 1988, 10, :o2, 594205200 + tz.transition 1989, 4, :o3, 607514400 + tz.transition 1989, 10, :o2, 625654800 + tz.transition 1990, 4, :o3, 638964000 + tz.transition 1990, 10, :o2, 657104400 + tz.transition 1991, 4, :o3, 671018400 + tz.transition 1991, 10, :o2, 688554000 + tz.transition 1992, 4, :o3, 702468000 + tz.transition 1992, 10, :o2, 720003600 + tz.transition 1993, 4, :o3, 733917600 + tz.transition 1993, 10, :o2, 752058000 + tz.transition 1994, 4, :o3, 765367200 + tz.transition 1994, 10, :o2, 783507600 + tz.transition 1995, 4, :o3, 796816800 + tz.transition 1995, 10, :o2, 814957200 + tz.transition 1996, 4, :o3, 828871200 + tz.transition 1996, 10, :o2, 846406800 + tz.transition 1997, 4, :o3, 860320800 + tz.transition 1997, 10, :o2, 877856400 + tz.transition 1998, 4, :o3, 891770400 + tz.transition 1998, 10, :o2, 909306000 + tz.transition 1999, 4, :o3, 923220000 + tz.transition 1999, 10, :o2, 941360400 + tz.transition 2000, 4, :o3, 954669600 + tz.transition 2000, 10, :o2, 972810000 + tz.transition 2001, 4, :o3, 986119200 + tz.transition 2001, 10, :o2, 1004259600 + tz.transition 2002, 4, :o3, 1018173600 + tz.transition 2002, 10, :o2, 1035709200 + tz.transition 2003, 4, :o3, 1049623200 + tz.transition 2003, 10, :o2, 1067158800 + tz.transition 2004, 4, :o3, 1081072800 + tz.transition 2004, 10, :o2, 1099213200 + tz.transition 2005, 4, :o3, 1112522400 + tz.transition 2005, 10, :o2, 1130662800 + tz.transition 2006, 4, :o3, 1143972000 + tz.transition 2006, 10, :o2, 1162112400 + tz.transition 2007, 4, :o3, 1175421600 + tz.transition 2007, 10, :o2, 1193562000 + tz.transition 2008, 4, :o3, 1207476000 + tz.transition 2008, 10, :o2, 1225011600 + tz.transition 2009, 4, :o3, 1238925600 + tz.transition 2009, 10, :o2, 1256461200 + tz.transition 2010, 4, :o3, 1270375200 + tz.transition 2010, 10, :o2, 1288515600 + tz.transition 2011, 4, :o3, 1301824800 + tz.transition 2011, 10, :o2, 1319965200 + tz.transition 2012, 4, :o3, 1333274400 + tz.transition 2012, 10, :o2, 1351414800 + tz.transition 2013, 4, :o3, 1365328800 + tz.transition 2013, 10, :o2, 1382864400 + tz.transition 2014, 4, :o3, 1396778400 + tz.transition 2014, 10, :o2, 1414314000 + tz.transition 2015, 4, :o3, 1428228000 + tz.transition 2015, 10, :o2, 1445763600 + tz.transition 2016, 4, :o3, 1459677600 + tz.transition 2016, 10, :o2, 1477818000 + tz.transition 2017, 4, :o3, 1491127200 + tz.transition 2017, 10, :o2, 1509267600 + tz.transition 2018, 4, :o3, 1522576800 + tz.transition 2018, 10, :o2, 1540717200 + tz.transition 2019, 4, :o3, 1554631200 + tz.transition 2019, 10, :o2, 1572166800 + tz.transition 2020, 4, :o3, 1586080800 + tz.transition 2020, 10, :o2, 1603616400 + tz.transition 2021, 4, :o3, 1617530400 + tz.transition 2021, 10, :o2, 1635670800 + tz.transition 2022, 4, :o3, 1648980000 + tz.transition 2022, 10, :o2, 1667120400 + tz.transition 2023, 4, :o3, 1680429600 + tz.transition 2023, 10, :o2, 1698570000 + tz.transition 2024, 4, :o3, 1712484000 + tz.transition 2024, 10, :o2, 1730019600 + tz.transition 2025, 4, :o3, 1743933600 + tz.transition 2025, 10, :o2, 1761469200 + tz.transition 2026, 4, :o3, 1775383200 + tz.transition 2026, 10, :o2, 1792918800 + tz.transition 2027, 4, :o3, 1806832800 + tz.transition 2027, 10, :o2, 1824973200 + tz.transition 2028, 4, :o3, 1838282400 + tz.transition 2028, 10, :o2, 1856422800 + tz.transition 2029, 4, :o3, 1869732000 + tz.transition 2029, 10, :o2, 1887872400 + tz.transition 2030, 4, :o3, 1901786400 + tz.transition 2030, 10, :o2, 1919322000 + tz.transition 2031, 4, :o3, 1933236000 + tz.transition 2031, 10, :o2, 1950771600 + tz.transition 2032, 4, :o3, 1964685600 + tz.transition 2032, 10, :o2, 1982826000 + tz.transition 2033, 4, :o3, 1996135200 + tz.transition 2033, 10, :o2, 2014275600 + tz.transition 2034, 4, :o3, 2027584800 + tz.transition 2034, 10, :o2, 2045725200 + tz.transition 2035, 4, :o3, 2059034400 + tz.transition 2035, 10, :o2, 2077174800 + tz.transition 2036, 4, :o3, 2091088800 + tz.transition 2036, 10, :o2, 2108624400 + tz.transition 2037, 4, :o3, 2122538400 + tz.transition 2037, 10, :o2, 2140074000 + tz.transition 2038, 4, :o3, 29586215, 12 + tz.transition 2038, 10, :o2, 19725823, 8 + tz.transition 2039, 4, :o3, 29590583, 12 + tz.transition 2039, 10, :o2, 19728735, 8 + tz.transition 2040, 4, :o3, 29594951, 12 + tz.transition 2040, 10, :o2, 19731647, 8 + tz.transition 2041, 4, :o3, 29599403, 12 + tz.transition 2041, 10, :o2, 19734559, 8 + tz.transition 2042, 4, :o3, 29603771, 12 + tz.transition 2042, 10, :o2, 19737471, 8 + tz.transition 2043, 4, :o3, 29608139, 12 + tz.transition 2043, 10, :o2, 19740383, 8 + tz.transition 2044, 4, :o3, 29612507, 12 + tz.transition 2044, 10, :o2, 19743351, 8 + tz.transition 2045, 4, :o3, 29616875, 12 + tz.transition 2045, 10, :o2, 19746263, 8 + tz.transition 2046, 4, :o3, 29621243, 12 + tz.transition 2046, 10, :o2, 19749175, 8 + tz.transition 2047, 4, :o3, 29625695, 12 + tz.transition 2047, 10, :o2, 19752087, 8 + tz.transition 2048, 4, :o3, 29630063, 12 + tz.transition 2048, 10, :o2, 19754999, 8 + tz.transition 2049, 4, :o3, 29634431, 12 + tz.transition 2049, 10, :o2, 19757967, 8 + tz.transition 2050, 4, :o3, 29638799, 12 + tz.transition 2050, 10, :o2, 19760879, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Almaty.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Almaty.rb new file mode 100644 index 000000000..9ee18970f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Almaty.rb @@ -0,0 +1,67 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Almaty + include TimezoneDefinition + + timezone 'Asia/Almaty' do |tz| + tz.offset :o0, 18468, 0, :LMT + tz.offset :o1, 18000, 0, :ALMT + tz.offset :o2, 21600, 0, :ALMT + tz.offset :o3, 21600, 3600, :ALMST + + tz.transition 1924, 5, :o1, 1939125829, 800 + tz.transition 1930, 6, :o2, 58227559, 24 + tz.transition 1981, 3, :o3, 354909600 + tz.transition 1981, 9, :o2, 370717200 + tz.transition 1982, 3, :o3, 386445600 + tz.transition 1982, 9, :o2, 402253200 + tz.transition 1983, 3, :o3, 417981600 + tz.transition 1983, 9, :o2, 433789200 + tz.transition 1984, 3, :o3, 449604000 + tz.transition 1984, 9, :o2, 465336000 + tz.transition 1985, 3, :o3, 481060800 + tz.transition 1985, 9, :o2, 496785600 + tz.transition 1986, 3, :o3, 512510400 + tz.transition 1986, 9, :o2, 528235200 + tz.transition 1987, 3, :o3, 543960000 + tz.transition 1987, 9, :o2, 559684800 + tz.transition 1988, 3, :o3, 575409600 + tz.transition 1988, 9, :o2, 591134400 + tz.transition 1989, 3, :o3, 606859200 + tz.transition 1989, 9, :o2, 622584000 + tz.transition 1990, 3, :o3, 638308800 + tz.transition 1990, 9, :o2, 654638400 + tz.transition 1992, 3, :o3, 701802000 + tz.transition 1992, 9, :o2, 717523200 + tz.transition 1993, 3, :o3, 733262400 + tz.transition 1993, 9, :o2, 748987200 + tz.transition 1994, 3, :o3, 764712000 + tz.transition 1994, 9, :o2, 780436800 + tz.transition 1995, 3, :o3, 796161600 + tz.transition 1995, 9, :o2, 811886400 + tz.transition 1996, 3, :o3, 828216000 + tz.transition 1996, 10, :o2, 846360000 + tz.transition 1997, 3, :o3, 859665600 + tz.transition 1997, 10, :o2, 877809600 + tz.transition 1998, 3, :o3, 891115200 + tz.transition 1998, 10, :o2, 909259200 + tz.transition 1999, 3, :o3, 922564800 + tz.transition 1999, 10, :o2, 941313600 + tz.transition 2000, 3, :o3, 954014400 + tz.transition 2000, 10, :o2, 972763200 + tz.transition 2001, 3, :o3, 985464000 + tz.transition 2001, 10, :o2, 1004212800 + tz.transition 2002, 3, :o3, 1017518400 + tz.transition 2002, 10, :o2, 1035662400 + tz.transition 2003, 3, :o3, 1048968000 + tz.transition 2003, 10, :o2, 1067112000 + tz.transition 2004, 3, :o3, 1080417600 + tz.transition 2004, 10, :o2, 1099166400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baghdad.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baghdad.rb new file mode 100644 index 000000000..774dca158 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baghdad.rb @@ -0,0 +1,73 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Baghdad + include TimezoneDefinition + + timezone 'Asia/Baghdad' do |tz| + tz.offset :o0, 10660, 0, :LMT + tz.offset :o1, 10656, 0, :BMT + tz.offset :o2, 10800, 0, :AST + tz.offset :o3, 10800, 3600, :ADT + + tz.transition 1889, 12, :o1, 10417111387, 4320 + tz.transition 1917, 12, :o2, 726478313, 300 + tz.transition 1982, 4, :o3, 389048400 + tz.transition 1982, 9, :o2, 402264000 + tz.transition 1983, 3, :o3, 417906000 + tz.transition 1983, 9, :o2, 433800000 + tz.transition 1984, 3, :o3, 449614800 + tz.transition 1984, 9, :o2, 465422400 + tz.transition 1985, 3, :o3, 481150800 + tz.transition 1985, 9, :o2, 496792800 + tz.transition 1986, 3, :o3, 512517600 + tz.transition 1986, 9, :o2, 528242400 + tz.transition 1987, 3, :o3, 543967200 + tz.transition 1987, 9, :o2, 559692000 + tz.transition 1988, 3, :o3, 575416800 + tz.transition 1988, 9, :o2, 591141600 + tz.transition 1989, 3, :o3, 606866400 + tz.transition 1989, 9, :o2, 622591200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 9, :o2, 654645600 + tz.transition 1991, 4, :o3, 670464000 + tz.transition 1991, 10, :o2, 686275200 + tz.transition 1992, 4, :o3, 702086400 + tz.transition 1992, 10, :o2, 717897600 + tz.transition 1993, 4, :o3, 733622400 + tz.transition 1993, 10, :o2, 749433600 + tz.transition 1994, 4, :o3, 765158400 + tz.transition 1994, 10, :o2, 780969600 + tz.transition 1995, 4, :o3, 796694400 + tz.transition 1995, 10, :o2, 812505600 + tz.transition 1996, 4, :o3, 828316800 + tz.transition 1996, 10, :o2, 844128000 + tz.transition 1997, 4, :o3, 859852800 + tz.transition 1997, 10, :o2, 875664000 + tz.transition 1998, 4, :o3, 891388800 + tz.transition 1998, 10, :o2, 907200000 + tz.transition 1999, 4, :o3, 922924800 + tz.transition 1999, 10, :o2, 938736000 + tz.transition 2000, 4, :o3, 954547200 + tz.transition 2000, 10, :o2, 970358400 + tz.transition 2001, 4, :o3, 986083200 + tz.transition 2001, 10, :o2, 1001894400 + tz.transition 2002, 4, :o3, 1017619200 + tz.transition 2002, 10, :o2, 1033430400 + tz.transition 2003, 4, :o3, 1049155200 + tz.transition 2003, 10, :o2, 1064966400 + tz.transition 2004, 4, :o3, 1080777600 + tz.transition 2004, 10, :o2, 1096588800 + tz.transition 2005, 4, :o3, 1112313600 + tz.transition 2005, 10, :o2, 1128124800 + tz.transition 2006, 4, :o3, 1143849600 + tz.transition 2006, 10, :o2, 1159660800 + tz.transition 2007, 4, :o3, 1175385600 + tz.transition 2007, 10, :o2, 1191196800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baku.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baku.rb new file mode 100644 index 000000000..e86340ebf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baku.rb @@ -0,0 +1,161 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Baku + include TimezoneDefinition + + timezone 'Asia/Baku' do |tz| + tz.offset :o0, 11964, 0, :LMT + tz.offset :o1, 10800, 0, :BAKT + tz.offset :o2, 14400, 0, :BAKT + tz.offset :o3, 14400, 3600, :BAKST + tz.offset :o4, 10800, 3600, :BAKST + tz.offset :o5, 10800, 3600, :AZST + tz.offset :o6, 10800, 0, :AZT + tz.offset :o7, 14400, 0, :AZT + tz.offset :o8, 14400, 3600, :AZST + + tz.transition 1924, 5, :o1, 17452133003, 7200 + tz.transition 1957, 2, :o2, 19487187, 8 + tz.transition 1981, 3, :o3, 354916800 + tz.transition 1981, 9, :o2, 370724400 + tz.transition 1982, 3, :o3, 386452800 + tz.transition 1982, 9, :o2, 402260400 + tz.transition 1983, 3, :o3, 417988800 + tz.transition 1983, 9, :o2, 433796400 + tz.transition 1984, 3, :o3, 449611200 + tz.transition 1984, 9, :o2, 465343200 + tz.transition 1985, 3, :o3, 481068000 + tz.transition 1985, 9, :o2, 496792800 + tz.transition 1986, 3, :o3, 512517600 + tz.transition 1986, 9, :o2, 528242400 + tz.transition 1987, 3, :o3, 543967200 + tz.transition 1987, 9, :o2, 559692000 + tz.transition 1988, 3, :o3, 575416800 + tz.transition 1988, 9, :o2, 591141600 + tz.transition 1989, 3, :o3, 606866400 + tz.transition 1989, 9, :o2, 622591200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 9, :o2, 654645600 + tz.transition 1991, 3, :o4, 670370400 + tz.transition 1991, 8, :o5, 683496000 + tz.transition 1991, 9, :o6, 686098800 + tz.transition 1992, 3, :o5, 701812800 + tz.transition 1992, 9, :o7, 717534000 + tz.transition 1996, 3, :o8, 828234000 + tz.transition 1996, 10, :o7, 846378000 + tz.transition 1997, 3, :o8, 859680000 + tz.transition 1997, 10, :o7, 877824000 + tz.transition 1998, 3, :o8, 891129600 + tz.transition 1998, 10, :o7, 909273600 + tz.transition 1999, 3, :o8, 922579200 + tz.transition 1999, 10, :o7, 941328000 + tz.transition 2000, 3, :o8, 954028800 + tz.transition 2000, 10, :o7, 972777600 + tz.transition 2001, 3, :o8, 985478400 + tz.transition 2001, 10, :o7, 1004227200 + tz.transition 2002, 3, :o8, 1017532800 + tz.transition 2002, 10, :o7, 1035676800 + tz.transition 2003, 3, :o8, 1048982400 + tz.transition 2003, 10, :o7, 1067126400 + tz.transition 2004, 3, :o8, 1080432000 + tz.transition 2004, 10, :o7, 1099180800 + tz.transition 2005, 3, :o8, 1111881600 + tz.transition 2005, 10, :o7, 1130630400 + tz.transition 2006, 3, :o8, 1143331200 + tz.transition 2006, 10, :o7, 1162080000 + tz.transition 2007, 3, :o8, 1174780800 + tz.transition 2007, 10, :o7, 1193529600 + tz.transition 2008, 3, :o8, 1206835200 + tz.transition 2008, 10, :o7, 1224979200 + tz.transition 2009, 3, :o8, 1238284800 + tz.transition 2009, 10, :o7, 1256428800 + tz.transition 2010, 3, :o8, 1269734400 + tz.transition 2010, 10, :o7, 1288483200 + tz.transition 2011, 3, :o8, 1301184000 + tz.transition 2011, 10, :o7, 1319932800 + tz.transition 2012, 3, :o8, 1332633600 + tz.transition 2012, 10, :o7, 1351382400 + tz.transition 2013, 3, :o8, 1364688000 + tz.transition 2013, 10, :o7, 1382832000 + tz.transition 2014, 3, :o8, 1396137600 + tz.transition 2014, 10, :o7, 1414281600 + tz.transition 2015, 3, :o8, 1427587200 + tz.transition 2015, 10, :o7, 1445731200 + tz.transition 2016, 3, :o8, 1459036800 + tz.transition 2016, 10, :o7, 1477785600 + tz.transition 2017, 3, :o8, 1490486400 + tz.transition 2017, 10, :o7, 1509235200 + tz.transition 2018, 3, :o8, 1521936000 + tz.transition 2018, 10, :o7, 1540684800 + tz.transition 2019, 3, :o8, 1553990400 + tz.transition 2019, 10, :o7, 1572134400 + tz.transition 2020, 3, :o8, 1585440000 + tz.transition 2020, 10, :o7, 1603584000 + tz.transition 2021, 3, :o8, 1616889600 + tz.transition 2021, 10, :o7, 1635638400 + tz.transition 2022, 3, :o8, 1648339200 + tz.transition 2022, 10, :o7, 1667088000 + tz.transition 2023, 3, :o8, 1679788800 + tz.transition 2023, 10, :o7, 1698537600 + tz.transition 2024, 3, :o8, 1711843200 + tz.transition 2024, 10, :o7, 1729987200 + tz.transition 2025, 3, :o8, 1743292800 + tz.transition 2025, 10, :o7, 1761436800 + tz.transition 2026, 3, :o8, 1774742400 + tz.transition 2026, 10, :o7, 1792886400 + tz.transition 2027, 3, :o8, 1806192000 + tz.transition 2027, 10, :o7, 1824940800 + tz.transition 2028, 3, :o8, 1837641600 + tz.transition 2028, 10, :o7, 1856390400 + tz.transition 2029, 3, :o8, 1869091200 + tz.transition 2029, 10, :o7, 1887840000 + tz.transition 2030, 3, :o8, 1901145600 + tz.transition 2030, 10, :o7, 1919289600 + tz.transition 2031, 3, :o8, 1932595200 + tz.transition 2031, 10, :o7, 1950739200 + tz.transition 2032, 3, :o8, 1964044800 + tz.transition 2032, 10, :o7, 1982793600 + tz.transition 2033, 3, :o8, 1995494400 + tz.transition 2033, 10, :o7, 2014243200 + tz.transition 2034, 3, :o8, 2026944000 + tz.transition 2034, 10, :o7, 2045692800 + tz.transition 2035, 3, :o8, 2058393600 + tz.transition 2035, 10, :o7, 2077142400 + tz.transition 2036, 3, :o8, 2090448000 + tz.transition 2036, 10, :o7, 2108592000 + tz.transition 2037, 3, :o8, 2121897600 + tz.transition 2037, 10, :o7, 2140041600 + tz.transition 2038, 3, :o8, 4931021, 2 + tz.transition 2038, 10, :o7, 4931455, 2 + tz.transition 2039, 3, :o8, 4931749, 2 + tz.transition 2039, 10, :o7, 4932183, 2 + tz.transition 2040, 3, :o8, 4932477, 2 + tz.transition 2040, 10, :o7, 4932911, 2 + tz.transition 2041, 3, :o8, 4933219, 2 + tz.transition 2041, 10, :o7, 4933639, 2 + tz.transition 2042, 3, :o8, 4933947, 2 + tz.transition 2042, 10, :o7, 4934367, 2 + tz.transition 2043, 3, :o8, 4934675, 2 + tz.transition 2043, 10, :o7, 4935095, 2 + tz.transition 2044, 3, :o8, 4935403, 2 + tz.transition 2044, 10, :o7, 4935837, 2 + tz.transition 2045, 3, :o8, 4936131, 2 + tz.transition 2045, 10, :o7, 4936565, 2 + tz.transition 2046, 3, :o8, 4936859, 2 + tz.transition 2046, 10, :o7, 4937293, 2 + tz.transition 2047, 3, :o8, 4937601, 2 + tz.transition 2047, 10, :o7, 4938021, 2 + tz.transition 2048, 3, :o8, 4938329, 2 + tz.transition 2048, 10, :o7, 4938749, 2 + tz.transition 2049, 3, :o8, 4939057, 2 + tz.transition 2049, 10, :o7, 4939491, 2 + tz.transition 2050, 3, :o8, 4939785, 2 + tz.transition 2050, 10, :o7, 4940219, 2 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Bangkok.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Bangkok.rb new file mode 100644 index 000000000..139194e5e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Bangkok.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Bangkok + include TimezoneDefinition + + timezone 'Asia/Bangkok' do |tz| + tz.offset :o0, 24124, 0, :LMT + tz.offset :o1, 24124, 0, :BMT + tz.offset :o2, 25200, 0, :ICT + + tz.transition 1879, 12, :o1, 52006648769, 21600 + tz.transition 1920, 3, :o2, 52324168769, 21600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Chongqing.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Chongqing.rb new file mode 100644 index 000000000..8c94b4ba8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Chongqing.rb @@ -0,0 +1,33 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Chongqing + include TimezoneDefinition + + timezone 'Asia/Chongqing' do |tz| + tz.offset :o0, 25580, 0, :LMT + tz.offset :o1, 25200, 0, :LONT + tz.offset :o2, 28800, 0, :CST + tz.offset :o3, 28800, 3600, :CDT + + tz.transition 1927, 12, :o1, 10477063601, 4320 + tz.transition 1980, 4, :o2, 325962000 + tz.transition 1986, 5, :o3, 515520000 + tz.transition 1986, 9, :o2, 527007600 + tz.transition 1987, 4, :o3, 545155200 + tz.transition 1987, 9, :o2, 558457200 + tz.transition 1988, 4, :o3, 576604800 + tz.transition 1988, 9, :o2, 589906800 + tz.transition 1989, 4, :o3, 608659200 + tz.transition 1989, 9, :o2, 621961200 + tz.transition 1990, 4, :o3, 640108800 + tz.transition 1990, 9, :o2, 653410800 + tz.transition 1991, 4, :o3, 671558400 + tz.transition 1991, 9, :o2, 684860400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Dhaka.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Dhaka.rb new file mode 100644 index 000000000..ccd026550 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Dhaka.rb @@ -0,0 +1,27 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Dhaka + include TimezoneDefinition + + timezone 'Asia/Dhaka' do |tz| + tz.offset :o0, 21700, 0, :LMT + tz.offset :o1, 21200, 0, :HMT + tz.offset :o2, 23400, 0, :BURT + tz.offset :o3, 19800, 0, :IST + tz.offset :o4, 21600, 0, :DACT + tz.offset :o5, 21600, 0, :BDT + + tz.transition 1889, 12, :o1, 2083422167, 864 + tz.transition 1941, 9, :o2, 524937943, 216 + tz.transition 1942, 5, :o3, 116663723, 48 + tz.transition 1942, 8, :o2, 116668957, 48 + tz.transition 1951, 9, :o4, 116828123, 48 + tz.transition 1971, 3, :o5, 38772000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Hong_Kong.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Hong_Kong.rb new file mode 100644 index 000000000..f1edd75ac --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Hong_Kong.rb @@ -0,0 +1,87 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Hong_Kong + include TimezoneDefinition + + timezone 'Asia/Hong_Kong' do |tz| + tz.offset :o0, 27396, 0, :LMT + tz.offset :o1, 28800, 0, :HKT + tz.offset :o2, 28800, 3600, :HKST + + tz.transition 1904, 10, :o1, 5800279639, 2400 + tz.transition 1946, 4, :o2, 38910885, 16 + tz.transition 1946, 11, :o1, 116743453, 48 + tz.transition 1947, 4, :o2, 38916613, 16 + tz.transition 1947, 12, :o1, 116762365, 48 + tz.transition 1948, 5, :o2, 38922773, 16 + tz.transition 1948, 10, :o1, 116777053, 48 + tz.transition 1949, 4, :o2, 38928149, 16 + tz.transition 1949, 10, :o1, 116794525, 48 + tz.transition 1950, 4, :o2, 38933973, 16 + tz.transition 1950, 10, :o1, 116811997, 48 + tz.transition 1951, 3, :o2, 38939797, 16 + tz.transition 1951, 10, :o1, 116829469, 48 + tz.transition 1952, 4, :o2, 38945733, 16 + tz.transition 1952, 10, :o1, 116846941, 48 + tz.transition 1953, 4, :o2, 38951557, 16 + tz.transition 1953, 10, :o1, 116864749, 48 + tz.transition 1954, 3, :o2, 38957157, 16 + tz.transition 1954, 10, :o1, 116882221, 48 + tz.transition 1955, 3, :o2, 38962981, 16 + tz.transition 1955, 11, :o1, 116900029, 48 + tz.transition 1956, 3, :o2, 38968805, 16 + tz.transition 1956, 11, :o1, 116917501, 48 + tz.transition 1957, 3, :o2, 38974741, 16 + tz.transition 1957, 11, :o1, 116934973, 48 + tz.transition 1958, 3, :o2, 38980565, 16 + tz.transition 1958, 11, :o1, 116952445, 48 + tz.transition 1959, 3, :o2, 38986389, 16 + tz.transition 1959, 10, :o1, 116969917, 48 + tz.transition 1960, 3, :o2, 38992213, 16 + tz.transition 1960, 11, :o1, 116987725, 48 + tz.transition 1961, 3, :o2, 38998037, 16 + tz.transition 1961, 11, :o1, 117005197, 48 + tz.transition 1962, 3, :o2, 39003861, 16 + tz.transition 1962, 11, :o1, 117022669, 48 + tz.transition 1963, 3, :o2, 39009797, 16 + tz.transition 1963, 11, :o1, 117040141, 48 + tz.transition 1964, 3, :o2, 39015621, 16 + tz.transition 1964, 10, :o1, 117057613, 48 + tz.transition 1965, 4, :o2, 39021893, 16 + tz.transition 1965, 10, :o1, 117074413, 48 + tz.transition 1966, 4, :o2, 39027717, 16 + tz.transition 1966, 10, :o1, 117091885, 48 + tz.transition 1967, 4, :o2, 39033541, 16 + tz.transition 1967, 10, :o1, 117109693, 48 + tz.transition 1968, 4, :o2, 39039477, 16 + tz.transition 1968, 10, :o1, 117127165, 48 + tz.transition 1969, 4, :o2, 39045301, 16 + tz.transition 1969, 10, :o1, 117144637, 48 + tz.transition 1970, 4, :o2, 9315000 + tz.transition 1970, 10, :o1, 25036200 + tz.transition 1971, 4, :o2, 40764600 + tz.transition 1971, 10, :o1, 56485800 + tz.transition 1972, 4, :o2, 72214200 + tz.transition 1972, 10, :o1, 88540200 + tz.transition 1973, 4, :o2, 104268600 + tz.transition 1973, 10, :o1, 119989800 + tz.transition 1974, 4, :o2, 135718200 + tz.transition 1974, 10, :o1, 151439400 + tz.transition 1975, 4, :o2, 167167800 + tz.transition 1975, 10, :o1, 182889000 + tz.transition 1976, 4, :o2, 198617400 + tz.transition 1976, 10, :o1, 214338600 + tz.transition 1977, 4, :o2, 230067000 + tz.transition 1977, 10, :o1, 245788200 + tz.transition 1979, 5, :o2, 295385400 + tz.transition 1979, 10, :o1, 309292200 + tz.transition 1980, 5, :o2, 326835000 + tz.transition 1980, 10, :o1, 340741800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Irkutsk.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Irkutsk.rb new file mode 100644 index 000000000..2d47d9580 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Irkutsk.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Irkutsk + include TimezoneDefinition + + timezone 'Asia/Irkutsk' do |tz| + tz.offset :o0, 25040, 0, :LMT + tz.offset :o1, 25040, 0, :IMT + tz.offset :o2, 25200, 0, :IRKT + tz.offset :o3, 28800, 0, :IRKT + tz.offset :o4, 28800, 3600, :IRKST + tz.offset :o5, 25200, 3600, :IRKST + + tz.transition 1879, 12, :o1, 2600332427, 1080 + tz.transition 1920, 1, :o2, 2616136067, 1080 + tz.transition 1930, 6, :o3, 58227557, 24 + tz.transition 1981, 3, :o4, 354902400 + tz.transition 1981, 9, :o3, 370710000 + tz.transition 1982, 3, :o4, 386438400 + tz.transition 1982, 9, :o3, 402246000 + tz.transition 1983, 3, :o4, 417974400 + tz.transition 1983, 9, :o3, 433782000 + tz.transition 1984, 3, :o4, 449596800 + tz.transition 1984, 9, :o3, 465328800 + tz.transition 1985, 3, :o4, 481053600 + tz.transition 1985, 9, :o3, 496778400 + tz.transition 1986, 3, :o4, 512503200 + tz.transition 1986, 9, :o3, 528228000 + tz.transition 1987, 3, :o4, 543952800 + tz.transition 1987, 9, :o3, 559677600 + tz.transition 1988, 3, :o4, 575402400 + tz.transition 1988, 9, :o3, 591127200 + tz.transition 1989, 3, :o4, 606852000 + tz.transition 1989, 9, :o3, 622576800 + tz.transition 1990, 3, :o4, 638301600 + tz.transition 1990, 9, :o3, 654631200 + tz.transition 1991, 3, :o5, 670356000 + tz.transition 1991, 9, :o2, 686084400 + tz.transition 1992, 1, :o3, 695761200 + tz.transition 1992, 3, :o4, 701794800 + tz.transition 1992, 9, :o3, 717516000 + tz.transition 1993, 3, :o4, 733255200 + tz.transition 1993, 9, :o3, 748980000 + tz.transition 1994, 3, :o4, 764704800 + tz.transition 1994, 9, :o3, 780429600 + tz.transition 1995, 3, :o4, 796154400 + tz.transition 1995, 9, :o3, 811879200 + tz.transition 1996, 3, :o4, 828208800 + tz.transition 1996, 10, :o3, 846352800 + tz.transition 1997, 3, :o4, 859658400 + tz.transition 1997, 10, :o3, 877802400 + tz.transition 1998, 3, :o4, 891108000 + tz.transition 1998, 10, :o3, 909252000 + tz.transition 1999, 3, :o4, 922557600 + tz.transition 1999, 10, :o3, 941306400 + tz.transition 2000, 3, :o4, 954007200 + tz.transition 2000, 10, :o3, 972756000 + tz.transition 2001, 3, :o4, 985456800 + tz.transition 2001, 10, :o3, 1004205600 + tz.transition 2002, 3, :o4, 1017511200 + tz.transition 2002, 10, :o3, 1035655200 + tz.transition 2003, 3, :o4, 1048960800 + tz.transition 2003, 10, :o3, 1067104800 + tz.transition 2004, 3, :o4, 1080410400 + tz.transition 2004, 10, :o3, 1099159200 + tz.transition 2005, 3, :o4, 1111860000 + tz.transition 2005, 10, :o3, 1130608800 + tz.transition 2006, 3, :o4, 1143309600 + tz.transition 2006, 10, :o3, 1162058400 + tz.transition 2007, 3, :o4, 1174759200 + tz.transition 2007, 10, :o3, 1193508000 + tz.transition 2008, 3, :o4, 1206813600 + tz.transition 2008, 10, :o3, 1224957600 + tz.transition 2009, 3, :o4, 1238263200 + tz.transition 2009, 10, :o3, 1256407200 + tz.transition 2010, 3, :o4, 1269712800 + tz.transition 2010, 10, :o3, 1288461600 + tz.transition 2011, 3, :o4, 1301162400 + tz.transition 2011, 10, :o3, 1319911200 + tz.transition 2012, 3, :o4, 1332612000 + tz.transition 2012, 10, :o3, 1351360800 + tz.transition 2013, 3, :o4, 1364666400 + tz.transition 2013, 10, :o3, 1382810400 + tz.transition 2014, 3, :o4, 1396116000 + tz.transition 2014, 10, :o3, 1414260000 + tz.transition 2015, 3, :o4, 1427565600 + tz.transition 2015, 10, :o3, 1445709600 + tz.transition 2016, 3, :o4, 1459015200 + tz.transition 2016, 10, :o3, 1477764000 + tz.transition 2017, 3, :o4, 1490464800 + tz.transition 2017, 10, :o3, 1509213600 + tz.transition 2018, 3, :o4, 1521914400 + tz.transition 2018, 10, :o3, 1540663200 + tz.transition 2019, 3, :o4, 1553968800 + tz.transition 2019, 10, :o3, 1572112800 + tz.transition 2020, 3, :o4, 1585418400 + tz.transition 2020, 10, :o3, 1603562400 + tz.transition 2021, 3, :o4, 1616868000 + tz.transition 2021, 10, :o3, 1635616800 + tz.transition 2022, 3, :o4, 1648317600 + tz.transition 2022, 10, :o3, 1667066400 + tz.transition 2023, 3, :o4, 1679767200 + tz.transition 2023, 10, :o3, 1698516000 + tz.transition 2024, 3, :o4, 1711821600 + tz.transition 2024, 10, :o3, 1729965600 + tz.transition 2025, 3, :o4, 1743271200 + tz.transition 2025, 10, :o3, 1761415200 + tz.transition 2026, 3, :o4, 1774720800 + tz.transition 2026, 10, :o3, 1792864800 + tz.transition 2027, 3, :o4, 1806170400 + tz.transition 2027, 10, :o3, 1824919200 + tz.transition 2028, 3, :o4, 1837620000 + tz.transition 2028, 10, :o3, 1856368800 + tz.transition 2029, 3, :o4, 1869069600 + tz.transition 2029, 10, :o3, 1887818400 + tz.transition 2030, 3, :o4, 1901124000 + tz.transition 2030, 10, :o3, 1919268000 + tz.transition 2031, 3, :o4, 1932573600 + tz.transition 2031, 10, :o3, 1950717600 + tz.transition 2032, 3, :o4, 1964023200 + tz.transition 2032, 10, :o3, 1982772000 + tz.transition 2033, 3, :o4, 1995472800 + tz.transition 2033, 10, :o3, 2014221600 + tz.transition 2034, 3, :o4, 2026922400 + tz.transition 2034, 10, :o3, 2045671200 + tz.transition 2035, 3, :o4, 2058372000 + tz.transition 2035, 10, :o3, 2077120800 + tz.transition 2036, 3, :o4, 2090426400 + tz.transition 2036, 10, :o3, 2108570400 + tz.transition 2037, 3, :o4, 2121876000 + tz.transition 2037, 10, :o3, 2140020000 + tz.transition 2038, 3, :o4, 9862041, 4 + tz.transition 2038, 10, :o3, 9862909, 4 + tz.transition 2039, 3, :o4, 9863497, 4 + tz.transition 2039, 10, :o3, 9864365, 4 + tz.transition 2040, 3, :o4, 9864953, 4 + tz.transition 2040, 10, :o3, 9865821, 4 + tz.transition 2041, 3, :o4, 9866437, 4 + tz.transition 2041, 10, :o3, 9867277, 4 + tz.transition 2042, 3, :o4, 9867893, 4 + tz.transition 2042, 10, :o3, 9868733, 4 + tz.transition 2043, 3, :o4, 9869349, 4 + tz.transition 2043, 10, :o3, 9870189, 4 + tz.transition 2044, 3, :o4, 9870805, 4 + tz.transition 2044, 10, :o3, 9871673, 4 + tz.transition 2045, 3, :o4, 9872261, 4 + tz.transition 2045, 10, :o3, 9873129, 4 + tz.transition 2046, 3, :o4, 9873717, 4 + tz.transition 2046, 10, :o3, 9874585, 4 + tz.transition 2047, 3, :o4, 9875201, 4 + tz.transition 2047, 10, :o3, 9876041, 4 + tz.transition 2048, 3, :o4, 9876657, 4 + tz.transition 2048, 10, :o3, 9877497, 4 + tz.transition 2049, 3, :o4, 9878113, 4 + tz.transition 2049, 10, :o3, 9878981, 4 + tz.transition 2050, 3, :o4, 9879569, 4 + tz.transition 2050, 10, :o3, 9880437, 4 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jakarta.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jakarta.rb new file mode 100644 index 000000000..cc58fa173 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jakarta.rb @@ -0,0 +1,30 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Jakarta + include TimezoneDefinition + + timezone 'Asia/Jakarta' do |tz| + tz.offset :o0, 25632, 0, :LMT + tz.offset :o1, 25632, 0, :JMT + tz.offset :o2, 26400, 0, :JAVT + tz.offset :o3, 27000, 0, :WIT + tz.offset :o4, 32400, 0, :JST + tz.offset :o5, 28800, 0, :WIT + tz.offset :o6, 25200, 0, :WIT + + tz.transition 1867, 8, :o1, 720956461, 300 + tz.transition 1923, 12, :o2, 87256267, 36 + tz.transition 1932, 10, :o3, 87372439, 36 + tz.transition 1942, 3, :o4, 38887059, 16 + tz.transition 1945, 9, :o3, 19453769, 8 + tz.transition 1948, 4, :o5, 38922755, 16 + tz.transition 1950, 4, :o3, 14600413, 6 + tz.transition 1963, 12, :o6, 39014323, 16 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jerusalem.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jerusalem.rb new file mode 100644 index 000000000..9b737b899 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jerusalem.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Jerusalem + include TimezoneDefinition + + timezone 'Asia/Jerusalem' do |tz| + tz.offset :o0, 8456, 0, :LMT + tz.offset :o1, 8440, 0, :JMT + tz.offset :o2, 7200, 0, :IST + tz.offset :o3, 7200, 3600, :IDT + tz.offset :o4, 7200, 7200, :IDDT + + tz.transition 1879, 12, :o1, 26003326343, 10800 + tz.transition 1917, 12, :o2, 5230643909, 2160 + tz.transition 1940, 5, :o3, 29157377, 12 + tz.transition 1942, 10, :o2, 19445315, 8 + tz.transition 1943, 4, :o3, 4861631, 2 + tz.transition 1943, 10, :o2, 19448235, 8 + tz.transition 1944, 3, :o3, 29174177, 12 + tz.transition 1944, 10, :o2, 19451163, 8 + tz.transition 1945, 4, :o3, 29178737, 12 + tz.transition 1945, 10, :o2, 58362251, 24 + tz.transition 1946, 4, :o3, 4863853, 2 + tz.transition 1946, 10, :o2, 19457003, 8 + tz.transition 1948, 5, :o4, 29192333, 12 + tz.transition 1948, 8, :o3, 7298386, 3 + tz.transition 1948, 10, :o2, 58388555, 24 + tz.transition 1949, 4, :o3, 29196449, 12 + tz.transition 1949, 10, :o2, 58397315, 24 + tz.transition 1950, 4, :o3, 29200649, 12 + tz.transition 1950, 9, :o2, 4867079, 2 + tz.transition 1951, 3, :o3, 29204849, 12 + tz.transition 1951, 11, :o2, 4867923, 2 + tz.transition 1952, 4, :o3, 4868245, 2 + tz.transition 1952, 10, :o2, 4868609, 2 + tz.transition 1953, 4, :o3, 4868959, 2 + tz.transition 1953, 9, :o2, 4869267, 2 + tz.transition 1954, 6, :o3, 29218877, 12 + tz.transition 1954, 9, :o2, 19479979, 8 + tz.transition 1955, 6, :o3, 4870539, 2 + tz.transition 1955, 9, :o2, 19482891, 8 + tz.transition 1956, 6, :o3, 29227529, 12 + tz.transition 1956, 9, :o2, 4871493, 2 + tz.transition 1957, 4, :o3, 4871915, 2 + tz.transition 1957, 9, :o2, 19488827, 8 + tz.transition 1974, 7, :o3, 142380000 + tz.transition 1974, 10, :o2, 150843600 + tz.transition 1975, 4, :o3, 167176800 + tz.transition 1975, 8, :o2, 178664400 + tz.transition 1985, 4, :o3, 482277600 + tz.transition 1985, 9, :o2, 495579600 + tz.transition 1986, 5, :o3, 516751200 + tz.transition 1986, 9, :o2, 526424400 + tz.transition 1987, 4, :o3, 545436000 + tz.transition 1987, 9, :o2, 558478800 + tz.transition 1988, 4, :o3, 576540000 + tz.transition 1988, 9, :o2, 589237200 + tz.transition 1989, 4, :o3, 609890400 + tz.transition 1989, 9, :o2, 620773200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 8, :o2, 651618000 + tz.transition 1991, 3, :o3, 669765600 + tz.transition 1991, 8, :o2, 683672400 + tz.transition 1992, 3, :o3, 701820000 + tz.transition 1992, 9, :o2, 715726800 + tz.transition 1993, 4, :o3, 733701600 + tz.transition 1993, 9, :o2, 747176400 + tz.transition 1994, 3, :o3, 765151200 + tz.transition 1994, 8, :o2, 778021200 + tz.transition 1995, 3, :o3, 796600800 + tz.transition 1995, 9, :o2, 810075600 + tz.transition 1996, 3, :o3, 826840800 + tz.transition 1996, 9, :o2, 842821200 + tz.transition 1997, 3, :o3, 858895200 + tz.transition 1997, 9, :o2, 874184400 + tz.transition 1998, 3, :o3, 890344800 + tz.transition 1998, 9, :o2, 905029200 + tz.transition 1999, 4, :o3, 923011200 + tz.transition 1999, 9, :o2, 936313200 + tz.transition 2000, 4, :o3, 955670400 + tz.transition 2000, 10, :o2, 970783200 + tz.transition 2001, 4, :o3, 986770800 + tz.transition 2001, 9, :o2, 1001282400 + tz.transition 2002, 3, :o3, 1017356400 + tz.transition 2002, 10, :o2, 1033941600 + tz.transition 2003, 3, :o3, 1048806000 + tz.transition 2003, 10, :o2, 1065132000 + tz.transition 2004, 4, :o3, 1081292400 + tz.transition 2004, 9, :o2, 1095804000 + tz.transition 2005, 4, :o3, 1112313600 + tz.transition 2005, 10, :o2, 1128812400 + tz.transition 2006, 3, :o3, 1143763200 + tz.transition 2006, 9, :o2, 1159657200 + tz.transition 2007, 3, :o3, 1175212800 + tz.transition 2007, 9, :o2, 1189897200 + tz.transition 2008, 3, :o3, 1206662400 + tz.transition 2008, 10, :o2, 1223161200 + tz.transition 2009, 3, :o3, 1238112000 + tz.transition 2009, 9, :o2, 1254006000 + tz.transition 2010, 3, :o3, 1269561600 + tz.transition 2010, 9, :o2, 1284246000 + tz.transition 2011, 4, :o3, 1301616000 + tz.transition 2011, 10, :o2, 1317510000 + tz.transition 2012, 3, :o3, 1333065600 + tz.transition 2012, 9, :o2, 1348354800 + tz.transition 2013, 3, :o3, 1364515200 + tz.transition 2013, 9, :o2, 1378594800 + tz.transition 2014, 3, :o3, 1395964800 + tz.transition 2014, 9, :o2, 1411858800 + tz.transition 2015, 3, :o3, 1427414400 + tz.transition 2015, 9, :o2, 1442703600 + tz.transition 2016, 4, :o3, 1459468800 + tz.transition 2016, 10, :o2, 1475967600 + tz.transition 2017, 3, :o3, 1490918400 + tz.transition 2017, 9, :o2, 1506207600 + tz.transition 2018, 3, :o3, 1522368000 + tz.transition 2018, 9, :o2, 1537052400 + tz.transition 2019, 3, :o3, 1553817600 + tz.transition 2019, 10, :o2, 1570316400 + tz.transition 2020, 3, :o3, 1585267200 + tz.transition 2020, 9, :o2, 1601161200 + tz.transition 2021, 3, :o3, 1616716800 + tz.transition 2021, 9, :o2, 1631401200 + tz.transition 2022, 4, :o3, 1648771200 + tz.transition 2022, 10, :o2, 1664665200 + tz.transition 2023, 3, :o3, 1680220800 + tz.transition 2023, 9, :o2, 1695510000 + tz.transition 2024, 3, :o3, 1711670400 + tz.transition 2024, 10, :o2, 1728169200 + tz.transition 2025, 3, :o3, 1743120000 + tz.transition 2025, 9, :o2, 1759014000 + tz.transition 2026, 3, :o3, 1774569600 + tz.transition 2026, 9, :o2, 1789858800 + tz.transition 2027, 3, :o3, 1806019200 + tz.transition 2027, 10, :o2, 1823122800 + tz.transition 2028, 3, :o3, 1838073600 + tz.transition 2028, 9, :o2, 1853362800 + tz.transition 2029, 3, :o3, 1869523200 + tz.transition 2029, 9, :o2, 1884207600 + tz.transition 2030, 3, :o3, 1900972800 + tz.transition 2030, 10, :o2, 1917471600 + tz.transition 2031, 3, :o3, 1932422400 + tz.transition 2031, 9, :o2, 1947711600 + tz.transition 2032, 3, :o3, 1963872000 + tz.transition 2032, 9, :o2, 1978556400 + tz.transition 2033, 4, :o3, 1995926400 + tz.transition 2033, 10, :o2, 2011820400 + tz.transition 2034, 3, :o3, 2027376000 + tz.transition 2034, 9, :o2, 2042060400 + tz.transition 2035, 3, :o3, 2058825600 + tz.transition 2035, 10, :o2, 2075324400 + tz.transition 2036, 3, :o3, 2090275200 + tz.transition 2036, 9, :o2, 2106169200 + tz.transition 2037, 3, :o3, 2121724800 + tz.transition 2037, 9, :o2, 2136409200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kabul.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kabul.rb new file mode 100644 index 000000000..669c09790 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kabul.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kabul + include TimezoneDefinition + + timezone 'Asia/Kabul' do |tz| + tz.offset :o0, 16608, 0, :LMT + tz.offset :o1, 14400, 0, :AFT + tz.offset :o2, 16200, 0, :AFT + + tz.transition 1889, 12, :o1, 2170231477, 900 + tz.transition 1944, 12, :o2, 7294369, 3 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kamchatka.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kamchatka.rb new file mode 100644 index 000000000..2f1690b3a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kamchatka.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kamchatka + include TimezoneDefinition + + timezone 'Asia/Kamchatka' do |tz| + tz.offset :o0, 38076, 0, :LMT + tz.offset :o1, 39600, 0, :PETT + tz.offset :o2, 43200, 0, :PETT + tz.offset :o3, 43200, 3600, :PETST + tz.offset :o4, 39600, 3600, :PETST + + tz.transition 1922, 11, :o1, 17448250027, 7200 + tz.transition 1930, 6, :o2, 58227553, 24 + tz.transition 1981, 3, :o3, 354888000 + tz.transition 1981, 9, :o2, 370695600 + tz.transition 1982, 3, :o3, 386424000 + tz.transition 1982, 9, :o2, 402231600 + tz.transition 1983, 3, :o3, 417960000 + tz.transition 1983, 9, :o2, 433767600 + tz.transition 1984, 3, :o3, 449582400 + tz.transition 1984, 9, :o2, 465314400 + tz.transition 1985, 3, :o3, 481039200 + tz.transition 1985, 9, :o2, 496764000 + tz.transition 1986, 3, :o3, 512488800 + tz.transition 1986, 9, :o2, 528213600 + tz.transition 1987, 3, :o3, 543938400 + tz.transition 1987, 9, :o2, 559663200 + tz.transition 1988, 3, :o3, 575388000 + tz.transition 1988, 9, :o2, 591112800 + tz.transition 1989, 3, :o3, 606837600 + tz.transition 1989, 9, :o2, 622562400 + tz.transition 1990, 3, :o3, 638287200 + tz.transition 1990, 9, :o2, 654616800 + tz.transition 1991, 3, :o4, 670341600 + tz.transition 1991, 9, :o1, 686070000 + tz.transition 1992, 1, :o2, 695746800 + tz.transition 1992, 3, :o3, 701780400 + tz.transition 1992, 9, :o2, 717501600 + tz.transition 1993, 3, :o3, 733240800 + tz.transition 1993, 9, :o2, 748965600 + tz.transition 1994, 3, :o3, 764690400 + tz.transition 1994, 9, :o2, 780415200 + tz.transition 1995, 3, :o3, 796140000 + tz.transition 1995, 9, :o2, 811864800 + tz.transition 1996, 3, :o3, 828194400 + tz.transition 1996, 10, :o2, 846338400 + tz.transition 1997, 3, :o3, 859644000 + tz.transition 1997, 10, :o2, 877788000 + tz.transition 1998, 3, :o3, 891093600 + tz.transition 1998, 10, :o2, 909237600 + tz.transition 1999, 3, :o3, 922543200 + tz.transition 1999, 10, :o2, 941292000 + tz.transition 2000, 3, :o3, 953992800 + tz.transition 2000, 10, :o2, 972741600 + tz.transition 2001, 3, :o3, 985442400 + tz.transition 2001, 10, :o2, 1004191200 + tz.transition 2002, 3, :o3, 1017496800 + tz.transition 2002, 10, :o2, 1035640800 + tz.transition 2003, 3, :o3, 1048946400 + tz.transition 2003, 10, :o2, 1067090400 + tz.transition 2004, 3, :o3, 1080396000 + tz.transition 2004, 10, :o2, 1099144800 + tz.transition 2005, 3, :o3, 1111845600 + tz.transition 2005, 10, :o2, 1130594400 + tz.transition 2006, 3, :o3, 1143295200 + tz.transition 2006, 10, :o2, 1162044000 + tz.transition 2007, 3, :o3, 1174744800 + tz.transition 2007, 10, :o2, 1193493600 + tz.transition 2008, 3, :o3, 1206799200 + tz.transition 2008, 10, :o2, 1224943200 + tz.transition 2009, 3, :o3, 1238248800 + tz.transition 2009, 10, :o2, 1256392800 + tz.transition 2010, 3, :o3, 1269698400 + tz.transition 2010, 10, :o2, 1288447200 + tz.transition 2011, 3, :o3, 1301148000 + tz.transition 2011, 10, :o2, 1319896800 + tz.transition 2012, 3, :o3, 1332597600 + tz.transition 2012, 10, :o2, 1351346400 + tz.transition 2013, 3, :o3, 1364652000 + tz.transition 2013, 10, :o2, 1382796000 + tz.transition 2014, 3, :o3, 1396101600 + tz.transition 2014, 10, :o2, 1414245600 + tz.transition 2015, 3, :o3, 1427551200 + tz.transition 2015, 10, :o2, 1445695200 + tz.transition 2016, 3, :o3, 1459000800 + tz.transition 2016, 10, :o2, 1477749600 + tz.transition 2017, 3, :o3, 1490450400 + tz.transition 2017, 10, :o2, 1509199200 + tz.transition 2018, 3, :o3, 1521900000 + tz.transition 2018, 10, :o2, 1540648800 + tz.transition 2019, 3, :o3, 1553954400 + tz.transition 2019, 10, :o2, 1572098400 + tz.transition 2020, 3, :o3, 1585404000 + tz.transition 2020, 10, :o2, 1603548000 + tz.transition 2021, 3, :o3, 1616853600 + tz.transition 2021, 10, :o2, 1635602400 + tz.transition 2022, 3, :o3, 1648303200 + tz.transition 2022, 10, :o2, 1667052000 + tz.transition 2023, 3, :o3, 1679752800 + tz.transition 2023, 10, :o2, 1698501600 + tz.transition 2024, 3, :o3, 1711807200 + tz.transition 2024, 10, :o2, 1729951200 + tz.transition 2025, 3, :o3, 1743256800 + tz.transition 2025, 10, :o2, 1761400800 + tz.transition 2026, 3, :o3, 1774706400 + tz.transition 2026, 10, :o2, 1792850400 + tz.transition 2027, 3, :o3, 1806156000 + tz.transition 2027, 10, :o2, 1824904800 + tz.transition 2028, 3, :o3, 1837605600 + tz.transition 2028, 10, :o2, 1856354400 + tz.transition 2029, 3, :o3, 1869055200 + tz.transition 2029, 10, :o2, 1887804000 + tz.transition 2030, 3, :o3, 1901109600 + tz.transition 2030, 10, :o2, 1919253600 + tz.transition 2031, 3, :o3, 1932559200 + tz.transition 2031, 10, :o2, 1950703200 + tz.transition 2032, 3, :o3, 1964008800 + tz.transition 2032, 10, :o2, 1982757600 + tz.transition 2033, 3, :o3, 1995458400 + tz.transition 2033, 10, :o2, 2014207200 + tz.transition 2034, 3, :o3, 2026908000 + tz.transition 2034, 10, :o2, 2045656800 + tz.transition 2035, 3, :o3, 2058357600 + tz.transition 2035, 10, :o2, 2077106400 + tz.transition 2036, 3, :o3, 2090412000 + tz.transition 2036, 10, :o2, 2108556000 + tz.transition 2037, 3, :o3, 2121861600 + tz.transition 2037, 10, :o2, 2140005600 + tz.transition 2038, 3, :o3, 29586121, 12 + tz.transition 2038, 10, :o2, 29588725, 12 + tz.transition 2039, 3, :o3, 29590489, 12 + tz.transition 2039, 10, :o2, 29593093, 12 + tz.transition 2040, 3, :o3, 29594857, 12 + tz.transition 2040, 10, :o2, 29597461, 12 + tz.transition 2041, 3, :o3, 29599309, 12 + tz.transition 2041, 10, :o2, 29601829, 12 + tz.transition 2042, 3, :o3, 29603677, 12 + tz.transition 2042, 10, :o2, 29606197, 12 + tz.transition 2043, 3, :o3, 29608045, 12 + tz.transition 2043, 10, :o2, 29610565, 12 + tz.transition 2044, 3, :o3, 29612413, 12 + tz.transition 2044, 10, :o2, 29615017, 12 + tz.transition 2045, 3, :o3, 29616781, 12 + tz.transition 2045, 10, :o2, 29619385, 12 + tz.transition 2046, 3, :o3, 29621149, 12 + tz.transition 2046, 10, :o2, 29623753, 12 + tz.transition 2047, 3, :o3, 29625601, 12 + tz.transition 2047, 10, :o2, 29628121, 12 + tz.transition 2048, 3, :o3, 29629969, 12 + tz.transition 2048, 10, :o2, 29632489, 12 + tz.transition 2049, 3, :o3, 29634337, 12 + tz.transition 2049, 10, :o2, 29636941, 12 + tz.transition 2050, 3, :o3, 29638705, 12 + tz.transition 2050, 10, :o2, 29641309, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Karachi.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Karachi.rb new file mode 100644 index 000000000..baa0d41d7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Karachi.rb @@ -0,0 +1,28 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Karachi + include TimezoneDefinition + + timezone 'Asia/Karachi' do |tz| + tz.offset :o0, 16092, 0, :LMT + tz.offset :o1, 19800, 0, :IST + tz.offset :o2, 19800, 3600, :IST + tz.offset :o3, 18000, 0, :KART + tz.offset :o4, 18000, 0, :PKT + tz.offset :o5, 18000, 3600, :PKST + + tz.transition 1906, 12, :o1, 1934061051, 800 + tz.transition 1942, 8, :o2, 116668957, 48 + tz.transition 1945, 10, :o1, 116723675, 48 + tz.transition 1951, 9, :o3, 116828125, 48 + tz.transition 1971, 3, :o4, 38775600 + tz.transition 2002, 4, :o5, 1018119660 + tz.transition 2002, 10, :o4, 1033840860 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Katmandu.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Katmandu.rb new file mode 100644 index 000000000..37dbea1f4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Katmandu.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Katmandu + include TimezoneDefinition + + timezone 'Asia/Katmandu' do |tz| + tz.offset :o0, 20476, 0, :LMT + tz.offset :o1, 19800, 0, :IST + tz.offset :o2, 20700, 0, :NPT + + tz.transition 1919, 12, :o1, 52322204081, 21600 + tz.transition 1985, 12, :o2, 504901800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kolkata.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kolkata.rb new file mode 100644 index 000000000..1b6ffbd59 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kolkata.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kolkata + include TimezoneDefinition + + timezone 'Asia/Kolkata' do |tz| + tz.offset :o0, 21208, 0, :LMT + tz.offset :o1, 21200, 0, :HMT + tz.offset :o2, 23400, 0, :BURT + tz.offset :o3, 19800, 0, :IST + tz.offset :o4, 19800, 3600, :IST + + tz.transition 1879, 12, :o1, 26003324749, 10800 + tz.transition 1941, 9, :o2, 524937943, 216 + tz.transition 1942, 5, :o3, 116663723, 48 + tz.transition 1942, 8, :o4, 116668957, 48 + tz.transition 1945, 10, :o3, 116723675, 48 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Krasnoyarsk.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Krasnoyarsk.rb new file mode 100644 index 000000000..d6c503c15 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Krasnoyarsk.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Krasnoyarsk + include TimezoneDefinition + + timezone 'Asia/Krasnoyarsk' do |tz| + tz.offset :o0, 22280, 0, :LMT + tz.offset :o1, 21600, 0, :KRAT + tz.offset :o2, 25200, 0, :KRAT + tz.offset :o3, 25200, 3600, :KRAST + tz.offset :o4, 21600, 3600, :KRAST + + tz.transition 1920, 1, :o1, 5232231163, 2160 + tz.transition 1930, 6, :o2, 9704593, 4 + tz.transition 1981, 3, :o3, 354906000 + tz.transition 1981, 9, :o2, 370713600 + tz.transition 1982, 3, :o3, 386442000 + tz.transition 1982, 9, :o2, 402249600 + tz.transition 1983, 3, :o3, 417978000 + tz.transition 1983, 9, :o2, 433785600 + tz.transition 1984, 3, :o3, 449600400 + tz.transition 1984, 9, :o2, 465332400 + tz.transition 1985, 3, :o3, 481057200 + tz.transition 1985, 9, :o2, 496782000 + tz.transition 1986, 3, :o3, 512506800 + tz.transition 1986, 9, :o2, 528231600 + tz.transition 1987, 3, :o3, 543956400 + tz.transition 1987, 9, :o2, 559681200 + tz.transition 1988, 3, :o3, 575406000 + tz.transition 1988, 9, :o2, 591130800 + tz.transition 1989, 3, :o3, 606855600 + tz.transition 1989, 9, :o2, 622580400 + tz.transition 1990, 3, :o3, 638305200 + tz.transition 1990, 9, :o2, 654634800 + tz.transition 1991, 3, :o4, 670359600 + tz.transition 1991, 9, :o1, 686088000 + tz.transition 1992, 1, :o2, 695764800 + tz.transition 1992, 3, :o3, 701798400 + tz.transition 1992, 9, :o2, 717519600 + tz.transition 1993, 3, :o3, 733258800 + tz.transition 1993, 9, :o2, 748983600 + tz.transition 1994, 3, :o3, 764708400 + tz.transition 1994, 9, :o2, 780433200 + tz.transition 1995, 3, :o3, 796158000 + tz.transition 1995, 9, :o2, 811882800 + tz.transition 1996, 3, :o3, 828212400 + tz.transition 1996, 10, :o2, 846356400 + tz.transition 1997, 3, :o3, 859662000 + tz.transition 1997, 10, :o2, 877806000 + tz.transition 1998, 3, :o3, 891111600 + tz.transition 1998, 10, :o2, 909255600 + tz.transition 1999, 3, :o3, 922561200 + tz.transition 1999, 10, :o2, 941310000 + tz.transition 2000, 3, :o3, 954010800 + tz.transition 2000, 10, :o2, 972759600 + tz.transition 2001, 3, :o3, 985460400 + tz.transition 2001, 10, :o2, 1004209200 + tz.transition 2002, 3, :o3, 1017514800 + tz.transition 2002, 10, :o2, 1035658800 + tz.transition 2003, 3, :o3, 1048964400 + tz.transition 2003, 10, :o2, 1067108400 + tz.transition 2004, 3, :o3, 1080414000 + tz.transition 2004, 10, :o2, 1099162800 + tz.transition 2005, 3, :o3, 1111863600 + tz.transition 2005, 10, :o2, 1130612400 + tz.transition 2006, 3, :o3, 1143313200 + tz.transition 2006, 10, :o2, 1162062000 + tz.transition 2007, 3, :o3, 1174762800 + tz.transition 2007, 10, :o2, 1193511600 + tz.transition 2008, 3, :o3, 1206817200 + tz.transition 2008, 10, :o2, 1224961200 + tz.transition 2009, 3, :o3, 1238266800 + tz.transition 2009, 10, :o2, 1256410800 + tz.transition 2010, 3, :o3, 1269716400 + tz.transition 2010, 10, :o2, 1288465200 + tz.transition 2011, 3, :o3, 1301166000 + tz.transition 2011, 10, :o2, 1319914800 + tz.transition 2012, 3, :o3, 1332615600 + tz.transition 2012, 10, :o2, 1351364400 + tz.transition 2013, 3, :o3, 1364670000 + tz.transition 2013, 10, :o2, 1382814000 + tz.transition 2014, 3, :o3, 1396119600 + tz.transition 2014, 10, :o2, 1414263600 + tz.transition 2015, 3, :o3, 1427569200 + tz.transition 2015, 10, :o2, 1445713200 + tz.transition 2016, 3, :o3, 1459018800 + tz.transition 2016, 10, :o2, 1477767600 + tz.transition 2017, 3, :o3, 1490468400 + tz.transition 2017, 10, :o2, 1509217200 + tz.transition 2018, 3, :o3, 1521918000 + tz.transition 2018, 10, :o2, 1540666800 + tz.transition 2019, 3, :o3, 1553972400 + tz.transition 2019, 10, :o2, 1572116400 + tz.transition 2020, 3, :o3, 1585422000 + tz.transition 2020, 10, :o2, 1603566000 + tz.transition 2021, 3, :o3, 1616871600 + tz.transition 2021, 10, :o2, 1635620400 + tz.transition 2022, 3, :o3, 1648321200 + tz.transition 2022, 10, :o2, 1667070000 + tz.transition 2023, 3, :o3, 1679770800 + tz.transition 2023, 10, :o2, 1698519600 + tz.transition 2024, 3, :o3, 1711825200 + tz.transition 2024, 10, :o2, 1729969200 + tz.transition 2025, 3, :o3, 1743274800 + tz.transition 2025, 10, :o2, 1761418800 + tz.transition 2026, 3, :o3, 1774724400 + tz.transition 2026, 10, :o2, 1792868400 + tz.transition 2027, 3, :o3, 1806174000 + tz.transition 2027, 10, :o2, 1824922800 + tz.transition 2028, 3, :o3, 1837623600 + tz.transition 2028, 10, :o2, 1856372400 + tz.transition 2029, 3, :o3, 1869073200 + tz.transition 2029, 10, :o2, 1887822000 + tz.transition 2030, 3, :o3, 1901127600 + tz.transition 2030, 10, :o2, 1919271600 + tz.transition 2031, 3, :o3, 1932577200 + tz.transition 2031, 10, :o2, 1950721200 + tz.transition 2032, 3, :o3, 1964026800 + tz.transition 2032, 10, :o2, 1982775600 + tz.transition 2033, 3, :o3, 1995476400 + tz.transition 2033, 10, :o2, 2014225200 + tz.transition 2034, 3, :o3, 2026926000 + tz.transition 2034, 10, :o2, 2045674800 + tz.transition 2035, 3, :o3, 2058375600 + tz.transition 2035, 10, :o2, 2077124400 + tz.transition 2036, 3, :o3, 2090430000 + tz.transition 2036, 10, :o2, 2108574000 + tz.transition 2037, 3, :o3, 2121879600 + tz.transition 2037, 10, :o2, 2140023600 + tz.transition 2038, 3, :o3, 59172247, 24 + tz.transition 2038, 10, :o2, 59177455, 24 + tz.transition 2039, 3, :o3, 59180983, 24 + tz.transition 2039, 10, :o2, 59186191, 24 + tz.transition 2040, 3, :o3, 59189719, 24 + tz.transition 2040, 10, :o2, 59194927, 24 + tz.transition 2041, 3, :o3, 59198623, 24 + tz.transition 2041, 10, :o2, 59203663, 24 + tz.transition 2042, 3, :o3, 59207359, 24 + tz.transition 2042, 10, :o2, 59212399, 24 + tz.transition 2043, 3, :o3, 59216095, 24 + tz.transition 2043, 10, :o2, 59221135, 24 + tz.transition 2044, 3, :o3, 59224831, 24 + tz.transition 2044, 10, :o2, 59230039, 24 + tz.transition 2045, 3, :o3, 59233567, 24 + tz.transition 2045, 10, :o2, 59238775, 24 + tz.transition 2046, 3, :o3, 59242303, 24 + tz.transition 2046, 10, :o2, 59247511, 24 + tz.transition 2047, 3, :o3, 59251207, 24 + tz.transition 2047, 10, :o2, 59256247, 24 + tz.transition 2048, 3, :o3, 59259943, 24 + tz.transition 2048, 10, :o2, 59264983, 24 + tz.transition 2049, 3, :o3, 59268679, 24 + tz.transition 2049, 10, :o2, 59273887, 24 + tz.transition 2050, 3, :o3, 59277415, 24 + tz.transition 2050, 10, :o2, 59282623, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuala_Lumpur.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuala_Lumpur.rb new file mode 100644 index 000000000..77a0c206f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuala_Lumpur.rb @@ -0,0 +1,31 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kuala_Lumpur + include TimezoneDefinition + + timezone 'Asia/Kuala_Lumpur' do |tz| + tz.offset :o0, 24406, 0, :LMT + tz.offset :o1, 24925, 0, :SMT + tz.offset :o2, 25200, 0, :MALT + tz.offset :o3, 25200, 1200, :MALST + tz.offset :o4, 26400, 0, :MALT + tz.offset :o5, 27000, 0, :MALT + tz.offset :o6, 32400, 0, :JST + tz.offset :o7, 28800, 0, :MYT + + tz.transition 1900, 12, :o1, 104344641397, 43200 + tz.transition 1905, 5, :o2, 8353142363, 3456 + tz.transition 1932, 12, :o3, 58249757, 24 + tz.transition 1935, 12, :o4, 87414055, 36 + tz.transition 1941, 8, :o5, 87488575, 36 + tz.transition 1942, 2, :o6, 38886499, 16 + tz.transition 1945, 9, :o5, 19453681, 8 + tz.transition 1981, 12, :o7, 378664200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuwait.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuwait.rb new file mode 100644 index 000000000..5bd528319 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuwait.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kuwait + include TimezoneDefinition + + timezone 'Asia/Kuwait' do |tz| + tz.offset :o0, 11516, 0, :LMT + tz.offset :o1, 10800, 0, :AST + + tz.transition 1949, 12, :o1, 52558899121, 21600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Magadan.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Magadan.rb new file mode 100644 index 000000000..302093693 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Magadan.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Magadan + include TimezoneDefinition + + timezone 'Asia/Magadan' do |tz| + tz.offset :o0, 36192, 0, :LMT + tz.offset :o1, 36000, 0, :MAGT + tz.offset :o2, 39600, 0, :MAGT + tz.offset :o3, 39600, 3600, :MAGST + tz.offset :o4, 36000, 3600, :MAGST + + tz.transition 1924, 5, :o1, 2181516373, 900 + tz.transition 1930, 6, :o2, 29113777, 12 + tz.transition 1981, 3, :o3, 354891600 + tz.transition 1981, 9, :o2, 370699200 + tz.transition 1982, 3, :o3, 386427600 + tz.transition 1982, 9, :o2, 402235200 + tz.transition 1983, 3, :o3, 417963600 + tz.transition 1983, 9, :o2, 433771200 + tz.transition 1984, 3, :o3, 449586000 + tz.transition 1984, 9, :o2, 465318000 + tz.transition 1985, 3, :o3, 481042800 + tz.transition 1985, 9, :o2, 496767600 + tz.transition 1986, 3, :o3, 512492400 + tz.transition 1986, 9, :o2, 528217200 + tz.transition 1987, 3, :o3, 543942000 + tz.transition 1987, 9, :o2, 559666800 + tz.transition 1988, 3, :o3, 575391600 + tz.transition 1988, 9, :o2, 591116400 + tz.transition 1989, 3, :o3, 606841200 + tz.transition 1989, 9, :o2, 622566000 + tz.transition 1990, 3, :o3, 638290800 + tz.transition 1990, 9, :o2, 654620400 + tz.transition 1991, 3, :o4, 670345200 + tz.transition 1991, 9, :o1, 686073600 + tz.transition 1992, 1, :o2, 695750400 + tz.transition 1992, 3, :o3, 701784000 + tz.transition 1992, 9, :o2, 717505200 + tz.transition 1993, 3, :o3, 733244400 + tz.transition 1993, 9, :o2, 748969200 + tz.transition 1994, 3, :o3, 764694000 + tz.transition 1994, 9, :o2, 780418800 + tz.transition 1995, 3, :o3, 796143600 + tz.transition 1995, 9, :o2, 811868400 + tz.transition 1996, 3, :o3, 828198000 + tz.transition 1996, 10, :o2, 846342000 + tz.transition 1997, 3, :o3, 859647600 + tz.transition 1997, 10, :o2, 877791600 + tz.transition 1998, 3, :o3, 891097200 + tz.transition 1998, 10, :o2, 909241200 + tz.transition 1999, 3, :o3, 922546800 + tz.transition 1999, 10, :o2, 941295600 + tz.transition 2000, 3, :o3, 953996400 + tz.transition 2000, 10, :o2, 972745200 + tz.transition 2001, 3, :o3, 985446000 + tz.transition 2001, 10, :o2, 1004194800 + tz.transition 2002, 3, :o3, 1017500400 + tz.transition 2002, 10, :o2, 1035644400 + tz.transition 2003, 3, :o3, 1048950000 + tz.transition 2003, 10, :o2, 1067094000 + tz.transition 2004, 3, :o3, 1080399600 + tz.transition 2004, 10, :o2, 1099148400 + tz.transition 2005, 3, :o3, 1111849200 + tz.transition 2005, 10, :o2, 1130598000 + tz.transition 2006, 3, :o3, 1143298800 + tz.transition 2006, 10, :o2, 1162047600 + tz.transition 2007, 3, :o3, 1174748400 + tz.transition 2007, 10, :o2, 1193497200 + tz.transition 2008, 3, :o3, 1206802800 + tz.transition 2008, 10, :o2, 1224946800 + tz.transition 2009, 3, :o3, 1238252400 + tz.transition 2009, 10, :o2, 1256396400 + tz.transition 2010, 3, :o3, 1269702000 + tz.transition 2010, 10, :o2, 1288450800 + tz.transition 2011, 3, :o3, 1301151600 + tz.transition 2011, 10, :o2, 1319900400 + tz.transition 2012, 3, :o3, 1332601200 + tz.transition 2012, 10, :o2, 1351350000 + tz.transition 2013, 3, :o3, 1364655600 + tz.transition 2013, 10, :o2, 1382799600 + tz.transition 2014, 3, :o3, 1396105200 + tz.transition 2014, 10, :o2, 1414249200 + tz.transition 2015, 3, :o3, 1427554800 + tz.transition 2015, 10, :o2, 1445698800 + tz.transition 2016, 3, :o3, 1459004400 + tz.transition 2016, 10, :o2, 1477753200 + tz.transition 2017, 3, :o3, 1490454000 + tz.transition 2017, 10, :o2, 1509202800 + tz.transition 2018, 3, :o3, 1521903600 + tz.transition 2018, 10, :o2, 1540652400 + tz.transition 2019, 3, :o3, 1553958000 + tz.transition 2019, 10, :o2, 1572102000 + tz.transition 2020, 3, :o3, 1585407600 + tz.transition 2020, 10, :o2, 1603551600 + tz.transition 2021, 3, :o3, 1616857200 + tz.transition 2021, 10, :o2, 1635606000 + tz.transition 2022, 3, :o3, 1648306800 + tz.transition 2022, 10, :o2, 1667055600 + tz.transition 2023, 3, :o3, 1679756400 + tz.transition 2023, 10, :o2, 1698505200 + tz.transition 2024, 3, :o3, 1711810800 + tz.transition 2024, 10, :o2, 1729954800 + tz.transition 2025, 3, :o3, 1743260400 + tz.transition 2025, 10, :o2, 1761404400 + tz.transition 2026, 3, :o3, 1774710000 + tz.transition 2026, 10, :o2, 1792854000 + tz.transition 2027, 3, :o3, 1806159600 + tz.transition 2027, 10, :o2, 1824908400 + tz.transition 2028, 3, :o3, 1837609200 + tz.transition 2028, 10, :o2, 1856358000 + tz.transition 2029, 3, :o3, 1869058800 + tz.transition 2029, 10, :o2, 1887807600 + tz.transition 2030, 3, :o3, 1901113200 + tz.transition 2030, 10, :o2, 1919257200 + tz.transition 2031, 3, :o3, 1932562800 + tz.transition 2031, 10, :o2, 1950706800 + tz.transition 2032, 3, :o3, 1964012400 + tz.transition 2032, 10, :o2, 1982761200 + tz.transition 2033, 3, :o3, 1995462000 + tz.transition 2033, 10, :o2, 2014210800 + tz.transition 2034, 3, :o3, 2026911600 + tz.transition 2034, 10, :o2, 2045660400 + tz.transition 2035, 3, :o3, 2058361200 + tz.transition 2035, 10, :o2, 2077110000 + tz.transition 2036, 3, :o3, 2090415600 + tz.transition 2036, 10, :o2, 2108559600 + tz.transition 2037, 3, :o3, 2121865200 + tz.transition 2037, 10, :o2, 2140009200 + tz.transition 2038, 3, :o3, 19724081, 8 + tz.transition 2038, 10, :o2, 19725817, 8 + tz.transition 2039, 3, :o3, 19726993, 8 + tz.transition 2039, 10, :o2, 19728729, 8 + tz.transition 2040, 3, :o3, 19729905, 8 + tz.transition 2040, 10, :o2, 19731641, 8 + tz.transition 2041, 3, :o3, 19732873, 8 + tz.transition 2041, 10, :o2, 19734553, 8 + tz.transition 2042, 3, :o3, 19735785, 8 + tz.transition 2042, 10, :o2, 19737465, 8 + tz.transition 2043, 3, :o3, 19738697, 8 + tz.transition 2043, 10, :o2, 19740377, 8 + tz.transition 2044, 3, :o3, 19741609, 8 + tz.transition 2044, 10, :o2, 19743345, 8 + tz.transition 2045, 3, :o3, 19744521, 8 + tz.transition 2045, 10, :o2, 19746257, 8 + tz.transition 2046, 3, :o3, 19747433, 8 + tz.transition 2046, 10, :o2, 19749169, 8 + tz.transition 2047, 3, :o3, 19750401, 8 + tz.transition 2047, 10, :o2, 19752081, 8 + tz.transition 2048, 3, :o3, 19753313, 8 + tz.transition 2048, 10, :o2, 19754993, 8 + tz.transition 2049, 3, :o3, 19756225, 8 + tz.transition 2049, 10, :o2, 19757961, 8 + tz.transition 2050, 3, :o3, 19759137, 8 + tz.transition 2050, 10, :o2, 19760873, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Muscat.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Muscat.rb new file mode 100644 index 000000000..604f651df --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Muscat.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Muscat + include TimezoneDefinition + + timezone 'Asia/Muscat' do |tz| + tz.offset :o0, 14060, 0, :LMT + tz.offset :o1, 14400, 0, :GST + + tz.transition 1919, 12, :o1, 10464441137, 4320 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Novosibirsk.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Novosibirsk.rb new file mode 100644 index 000000000..a4e7796e7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Novosibirsk.rb @@ -0,0 +1,164 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Novosibirsk + include TimezoneDefinition + + timezone 'Asia/Novosibirsk' do |tz| + tz.offset :o0, 19900, 0, :LMT + tz.offset :o1, 21600, 0, :NOVT + tz.offset :o2, 25200, 0, :NOVT + tz.offset :o3, 25200, 3600, :NOVST + tz.offset :o4, 21600, 3600, :NOVST + + tz.transition 1919, 12, :o1, 2092872833, 864 + tz.transition 1930, 6, :o2, 9704593, 4 + tz.transition 1981, 3, :o3, 354906000 + tz.transition 1981, 9, :o2, 370713600 + tz.transition 1982, 3, :o3, 386442000 + tz.transition 1982, 9, :o2, 402249600 + tz.transition 1983, 3, :o3, 417978000 + tz.transition 1983, 9, :o2, 433785600 + tz.transition 1984, 3, :o3, 449600400 + tz.transition 1984, 9, :o2, 465332400 + tz.transition 1985, 3, :o3, 481057200 + tz.transition 1985, 9, :o2, 496782000 + tz.transition 1986, 3, :o3, 512506800 + tz.transition 1986, 9, :o2, 528231600 + tz.transition 1987, 3, :o3, 543956400 + tz.transition 1987, 9, :o2, 559681200 + tz.transition 1988, 3, :o3, 575406000 + tz.transition 1988, 9, :o2, 591130800 + tz.transition 1989, 3, :o3, 606855600 + tz.transition 1989, 9, :o2, 622580400 + tz.transition 1990, 3, :o3, 638305200 + tz.transition 1990, 9, :o2, 654634800 + tz.transition 1991, 3, :o4, 670359600 + tz.transition 1991, 9, :o1, 686088000 + tz.transition 1992, 1, :o2, 695764800 + tz.transition 1992, 3, :o3, 701798400 + tz.transition 1992, 9, :o2, 717519600 + tz.transition 1993, 3, :o3, 733258800 + tz.transition 1993, 5, :o4, 738086400 + tz.transition 1993, 9, :o1, 748987200 + tz.transition 1994, 3, :o4, 764712000 + tz.transition 1994, 9, :o1, 780436800 + tz.transition 1995, 3, :o4, 796161600 + tz.transition 1995, 9, :o1, 811886400 + tz.transition 1996, 3, :o4, 828216000 + tz.transition 1996, 10, :o1, 846360000 + tz.transition 1997, 3, :o4, 859665600 + tz.transition 1997, 10, :o1, 877809600 + tz.transition 1998, 3, :o4, 891115200 + tz.transition 1998, 10, :o1, 909259200 + tz.transition 1999, 3, :o4, 922564800 + tz.transition 1999, 10, :o1, 941313600 + tz.transition 2000, 3, :o4, 954014400 + tz.transition 2000, 10, :o1, 972763200 + tz.transition 2001, 3, :o4, 985464000 + tz.transition 2001, 10, :o1, 1004212800 + tz.transition 2002, 3, :o4, 1017518400 + tz.transition 2002, 10, :o1, 1035662400 + tz.transition 2003, 3, :o4, 1048968000 + tz.transition 2003, 10, :o1, 1067112000 + tz.transition 2004, 3, :o4, 1080417600 + tz.transition 2004, 10, :o1, 1099166400 + tz.transition 2005, 3, :o4, 1111867200 + tz.transition 2005, 10, :o1, 1130616000 + tz.transition 2006, 3, :o4, 1143316800 + tz.transition 2006, 10, :o1, 1162065600 + tz.transition 2007, 3, :o4, 1174766400 + tz.transition 2007, 10, :o1, 1193515200 + tz.transition 2008, 3, :o4, 1206820800 + tz.transition 2008, 10, :o1, 1224964800 + tz.transition 2009, 3, :o4, 1238270400 + tz.transition 2009, 10, :o1, 1256414400 + tz.transition 2010, 3, :o4, 1269720000 + tz.transition 2010, 10, :o1, 1288468800 + tz.transition 2011, 3, :o4, 1301169600 + tz.transition 2011, 10, :o1, 1319918400 + tz.transition 2012, 3, :o4, 1332619200 + tz.transition 2012, 10, :o1, 1351368000 + tz.transition 2013, 3, :o4, 1364673600 + tz.transition 2013, 10, :o1, 1382817600 + tz.transition 2014, 3, :o4, 1396123200 + tz.transition 2014, 10, :o1, 1414267200 + tz.transition 2015, 3, :o4, 1427572800 + tz.transition 2015, 10, :o1, 1445716800 + tz.transition 2016, 3, :o4, 1459022400 + tz.transition 2016, 10, :o1, 1477771200 + tz.transition 2017, 3, :o4, 1490472000 + tz.transition 2017, 10, :o1, 1509220800 + tz.transition 2018, 3, :o4, 1521921600 + tz.transition 2018, 10, :o1, 1540670400 + tz.transition 2019, 3, :o4, 1553976000 + tz.transition 2019, 10, :o1, 1572120000 + tz.transition 2020, 3, :o4, 1585425600 + tz.transition 2020, 10, :o1, 1603569600 + tz.transition 2021, 3, :o4, 1616875200 + tz.transition 2021, 10, :o1, 1635624000 + tz.transition 2022, 3, :o4, 1648324800 + tz.transition 2022, 10, :o1, 1667073600 + tz.transition 2023, 3, :o4, 1679774400 + tz.transition 2023, 10, :o1, 1698523200 + tz.transition 2024, 3, :o4, 1711828800 + tz.transition 2024, 10, :o1, 1729972800 + tz.transition 2025, 3, :o4, 1743278400 + tz.transition 2025, 10, :o1, 1761422400 + tz.transition 2026, 3, :o4, 1774728000 + tz.transition 2026, 10, :o1, 1792872000 + tz.transition 2027, 3, :o4, 1806177600 + tz.transition 2027, 10, :o1, 1824926400 + tz.transition 2028, 3, :o4, 1837627200 + tz.transition 2028, 10, :o1, 1856376000 + tz.transition 2029, 3, :o4, 1869076800 + tz.transition 2029, 10, :o1, 1887825600 + tz.transition 2030, 3, :o4, 1901131200 + tz.transition 2030, 10, :o1, 1919275200 + tz.transition 2031, 3, :o4, 1932580800 + tz.transition 2031, 10, :o1, 1950724800 + tz.transition 2032, 3, :o4, 1964030400 + tz.transition 2032, 10, :o1, 1982779200 + tz.transition 2033, 3, :o4, 1995480000 + tz.transition 2033, 10, :o1, 2014228800 + tz.transition 2034, 3, :o4, 2026929600 + tz.transition 2034, 10, :o1, 2045678400 + tz.transition 2035, 3, :o4, 2058379200 + tz.transition 2035, 10, :o1, 2077128000 + tz.transition 2036, 3, :o4, 2090433600 + tz.transition 2036, 10, :o1, 2108577600 + tz.transition 2037, 3, :o4, 2121883200 + tz.transition 2037, 10, :o1, 2140027200 + tz.transition 2038, 3, :o4, 7396531, 3 + tz.transition 2038, 10, :o1, 7397182, 3 + tz.transition 2039, 3, :o4, 7397623, 3 + tz.transition 2039, 10, :o1, 7398274, 3 + tz.transition 2040, 3, :o4, 7398715, 3 + tz.transition 2040, 10, :o1, 7399366, 3 + tz.transition 2041, 3, :o4, 7399828, 3 + tz.transition 2041, 10, :o1, 7400458, 3 + tz.transition 2042, 3, :o4, 7400920, 3 + tz.transition 2042, 10, :o1, 7401550, 3 + tz.transition 2043, 3, :o4, 7402012, 3 + tz.transition 2043, 10, :o1, 7402642, 3 + tz.transition 2044, 3, :o4, 7403104, 3 + tz.transition 2044, 10, :o1, 7403755, 3 + tz.transition 2045, 3, :o4, 7404196, 3 + tz.transition 2045, 10, :o1, 7404847, 3 + tz.transition 2046, 3, :o4, 7405288, 3 + tz.transition 2046, 10, :o1, 7405939, 3 + tz.transition 2047, 3, :o4, 7406401, 3 + tz.transition 2047, 10, :o1, 7407031, 3 + tz.transition 2048, 3, :o4, 7407493, 3 + tz.transition 2048, 10, :o1, 7408123, 3 + tz.transition 2049, 3, :o4, 7408585, 3 + tz.transition 2049, 10, :o1, 7409236, 3 + tz.transition 2050, 3, :o4, 7409677, 3 + tz.transition 2050, 10, :o1, 7410328, 3 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Rangoon.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Rangoon.rb new file mode 100644 index 000000000..759b82d77 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Rangoon.rb @@ -0,0 +1,24 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Rangoon + include TimezoneDefinition + + timezone 'Asia/Rangoon' do |tz| + tz.offset :o0, 23080, 0, :LMT + tz.offset :o1, 23076, 0, :RMT + tz.offset :o2, 23400, 0, :BURT + tz.offset :o3, 32400, 0, :JST + tz.offset :o4, 23400, 0, :MMT + + tz.transition 1879, 12, :o1, 5200664903, 2160 + tz.transition 1919, 12, :o2, 5813578159, 2400 + tz.transition 1942, 4, :o3, 116663051, 48 + tz.transition 1945, 5, :o4, 19452625, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Riyadh.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Riyadh.rb new file mode 100644 index 000000000..7add41062 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Riyadh.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Riyadh + include TimezoneDefinition + + timezone 'Asia/Riyadh' do |tz| + tz.offset :o0, 11212, 0, :LMT + tz.offset :o1, 10800, 0, :AST + + tz.transition 1949, 12, :o1, 52558899197, 21600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Seoul.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Seoul.rb new file mode 100644 index 000000000..795d2a75d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Seoul.rb @@ -0,0 +1,34 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Seoul + include TimezoneDefinition + + timezone 'Asia/Seoul' do |tz| + tz.offset :o0, 30472, 0, :LMT + tz.offset :o1, 30600, 0, :KST + tz.offset :o2, 32400, 0, :KST + tz.offset :o3, 28800, 0, :KST + tz.offset :o4, 28800, 3600, :KDT + tz.offset :o5, 32400, 3600, :KDT + + tz.transition 1889, 12, :o1, 26042775991, 10800 + tz.transition 1904, 11, :o2, 116007127, 48 + tz.transition 1927, 12, :o1, 19401969, 8 + tz.transition 1931, 12, :o2, 116481943, 48 + tz.transition 1954, 3, :o3, 19478577, 8 + tz.transition 1960, 5, :o4, 14622415, 6 + tz.transition 1960, 9, :o3, 19497521, 8 + tz.transition 1961, 8, :o1, 14625127, 6 + tz.transition 1968, 9, :o2, 117126247, 48 + tz.transition 1987, 5, :o5, 547570800 + tz.transition 1987, 10, :o2, 560872800 + tz.transition 1988, 5, :o5, 579020400 + tz.transition 1988, 10, :o2, 592322400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Shanghai.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Shanghai.rb new file mode 100644 index 000000000..34b13d59a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Shanghai.rb @@ -0,0 +1,35 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Shanghai + include TimezoneDefinition + + timezone 'Asia/Shanghai' do |tz| + tz.offset :o0, 29152, 0, :LMT + tz.offset :o1, 28800, 0, :CST + tz.offset :o2, 28800, 3600, :CDT + + tz.transition 1927, 12, :o1, 6548164639, 2700 + tz.transition 1940, 6, :o2, 14578699, 6 + tz.transition 1940, 9, :o1, 19439225, 8 + tz.transition 1941, 3, :o2, 14580415, 6 + tz.transition 1941, 9, :o1, 19442145, 8 + tz.transition 1986, 5, :o2, 515520000 + tz.transition 1986, 9, :o1, 527007600 + tz.transition 1987, 4, :o2, 545155200 + tz.transition 1987, 9, :o1, 558457200 + tz.transition 1988, 4, :o2, 576604800 + tz.transition 1988, 9, :o1, 589906800 + tz.transition 1989, 4, :o2, 608659200 + tz.transition 1989, 9, :o1, 621961200 + tz.transition 1990, 4, :o2, 640108800 + tz.transition 1990, 9, :o1, 653410800 + tz.transition 1991, 4, :o2, 671558400 + tz.transition 1991, 9, :o1, 684860400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Singapore.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Singapore.rb new file mode 100644 index 000000000..b323a78f7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Singapore.rb @@ -0,0 +1,33 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Singapore + include TimezoneDefinition + + timezone 'Asia/Singapore' do |tz| + tz.offset :o0, 24925, 0, :LMT + tz.offset :o1, 24925, 0, :SMT + tz.offset :o2, 25200, 0, :MALT + tz.offset :o3, 25200, 1200, :MALST + tz.offset :o4, 26400, 0, :MALT + tz.offset :o5, 27000, 0, :MALT + tz.offset :o6, 32400, 0, :JST + tz.offset :o7, 27000, 0, :SGT + tz.offset :o8, 28800, 0, :SGT + + tz.transition 1900, 12, :o1, 8347571291, 3456 + tz.transition 1905, 5, :o2, 8353142363, 3456 + tz.transition 1932, 12, :o3, 58249757, 24 + tz.transition 1935, 12, :o4, 87414055, 36 + tz.transition 1941, 8, :o5, 87488575, 36 + tz.transition 1942, 2, :o6, 38886499, 16 + tz.transition 1945, 9, :o5, 19453681, 8 + tz.transition 1965, 8, :o7, 39023699, 16 + tz.transition 1981, 12, :o8, 378664200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Taipei.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Taipei.rb new file mode 100644 index 000000000..3ba12108f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Taipei.rb @@ -0,0 +1,59 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Taipei + include TimezoneDefinition + + timezone 'Asia/Taipei' do |tz| + tz.offset :o0, 29160, 0, :LMT + tz.offset :o1, 28800, 0, :CST + tz.offset :o2, 28800, 3600, :CDT + + tz.transition 1895, 12, :o1, 193084733, 80 + tz.transition 1945, 4, :o2, 14589457, 6 + tz.transition 1945, 9, :o1, 19453833, 8 + tz.transition 1946, 4, :o2, 14591647, 6 + tz.transition 1946, 9, :o1, 19456753, 8 + tz.transition 1947, 4, :o2, 14593837, 6 + tz.transition 1947, 9, :o1, 19459673, 8 + tz.transition 1948, 4, :o2, 14596033, 6 + tz.transition 1948, 9, :o1, 19462601, 8 + tz.transition 1949, 4, :o2, 14598223, 6 + tz.transition 1949, 9, :o1, 19465521, 8 + tz.transition 1950, 4, :o2, 14600413, 6 + tz.transition 1950, 9, :o1, 19468441, 8 + tz.transition 1951, 4, :o2, 14602603, 6 + tz.transition 1951, 9, :o1, 19471361, 8 + tz.transition 1952, 2, :o2, 14604433, 6 + tz.transition 1952, 10, :o1, 19474537, 8 + tz.transition 1953, 3, :o2, 14606809, 6 + tz.transition 1953, 10, :o1, 19477457, 8 + tz.transition 1954, 3, :o2, 14608999, 6 + tz.transition 1954, 10, :o1, 19480377, 8 + tz.transition 1955, 3, :o2, 14611189, 6 + tz.transition 1955, 9, :o1, 19483049, 8 + tz.transition 1956, 3, :o2, 14613385, 6 + tz.transition 1956, 9, :o1, 19485977, 8 + tz.transition 1957, 3, :o2, 14615575, 6 + tz.transition 1957, 9, :o1, 19488897, 8 + tz.transition 1958, 3, :o2, 14617765, 6 + tz.transition 1958, 9, :o1, 19491817, 8 + tz.transition 1959, 3, :o2, 14619955, 6 + tz.transition 1959, 9, :o1, 19494737, 8 + tz.transition 1960, 5, :o2, 14622517, 6 + tz.transition 1960, 9, :o1, 19497665, 8 + tz.transition 1961, 5, :o2, 14624707, 6 + tz.transition 1961, 9, :o1, 19500585, 8 + tz.transition 1974, 3, :o2, 133977600 + tz.transition 1974, 9, :o1, 149785200 + tz.transition 1975, 3, :o2, 165513600 + tz.transition 1975, 9, :o1, 181321200 + tz.transition 1980, 6, :o2, 331142400 + tz.transition 1980, 9, :o1, 339087600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tashkent.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tashkent.rb new file mode 100644 index 000000000..c205c7934 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tashkent.rb @@ -0,0 +1,47 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tashkent + include TimezoneDefinition + + timezone 'Asia/Tashkent' do |tz| + tz.offset :o0, 16632, 0, :LMT + tz.offset :o1, 18000, 0, :TAST + tz.offset :o2, 21600, 0, :TAST + tz.offset :o3, 21600, 3600, :TASST + tz.offset :o4, 18000, 3600, :TASST + tz.offset :o5, 18000, 3600, :UZST + tz.offset :o6, 18000, 0, :UZT + + tz.transition 1924, 5, :o1, 969562923, 400 + tz.transition 1930, 6, :o2, 58227559, 24 + tz.transition 1981, 3, :o3, 354909600 + tz.transition 1981, 9, :o2, 370717200 + tz.transition 1982, 3, :o3, 386445600 + tz.transition 1982, 9, :o2, 402253200 + tz.transition 1983, 3, :o3, 417981600 + tz.transition 1983, 9, :o2, 433789200 + tz.transition 1984, 3, :o3, 449604000 + tz.transition 1984, 9, :o2, 465336000 + tz.transition 1985, 3, :o3, 481060800 + tz.transition 1985, 9, :o2, 496785600 + tz.transition 1986, 3, :o3, 512510400 + tz.transition 1986, 9, :o2, 528235200 + tz.transition 1987, 3, :o3, 543960000 + tz.transition 1987, 9, :o2, 559684800 + tz.transition 1988, 3, :o3, 575409600 + tz.transition 1988, 9, :o2, 591134400 + tz.transition 1989, 3, :o3, 606859200 + tz.transition 1989, 9, :o2, 622584000 + tz.transition 1990, 3, :o3, 638308800 + tz.transition 1990, 9, :o2, 654638400 + tz.transition 1991, 3, :o4, 670363200 + tz.transition 1991, 8, :o5, 683661600 + tz.transition 1991, 9, :o6, 686091600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tbilisi.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tbilisi.rb new file mode 100644 index 000000000..15792a565 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tbilisi.rb @@ -0,0 +1,78 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tbilisi + include TimezoneDefinition + + timezone 'Asia/Tbilisi' do |tz| + tz.offset :o0, 10756, 0, :LMT + tz.offset :o1, 10756, 0, :TBMT + tz.offset :o2, 10800, 0, :TBIT + tz.offset :o3, 14400, 0, :TBIT + tz.offset :o4, 14400, 3600, :TBIST + tz.offset :o5, 10800, 3600, :TBIST + tz.offset :o6, 10800, 3600, :GEST + tz.offset :o7, 10800, 0, :GET + tz.offset :o8, 14400, 0, :GET + tz.offset :o9, 14400, 3600, :GEST + + tz.transition 1879, 12, :o1, 52006652111, 21600 + tz.transition 1924, 5, :o2, 52356399311, 21600 + tz.transition 1957, 2, :o3, 19487187, 8 + tz.transition 1981, 3, :o4, 354916800 + tz.transition 1981, 9, :o3, 370724400 + tz.transition 1982, 3, :o4, 386452800 + tz.transition 1982, 9, :o3, 402260400 + tz.transition 1983, 3, :o4, 417988800 + tz.transition 1983, 9, :o3, 433796400 + tz.transition 1984, 3, :o4, 449611200 + tz.transition 1984, 9, :o3, 465343200 + tz.transition 1985, 3, :o4, 481068000 + tz.transition 1985, 9, :o3, 496792800 + tz.transition 1986, 3, :o4, 512517600 + tz.transition 1986, 9, :o3, 528242400 + tz.transition 1987, 3, :o4, 543967200 + tz.transition 1987, 9, :o3, 559692000 + tz.transition 1988, 3, :o4, 575416800 + tz.transition 1988, 9, :o3, 591141600 + tz.transition 1989, 3, :o4, 606866400 + tz.transition 1989, 9, :o3, 622591200 + tz.transition 1990, 3, :o4, 638316000 + tz.transition 1990, 9, :o3, 654645600 + tz.transition 1991, 3, :o5, 670370400 + tz.transition 1991, 4, :o6, 671140800 + tz.transition 1991, 9, :o7, 686098800 + tz.transition 1992, 3, :o6, 701816400 + tz.transition 1992, 9, :o7, 717537600 + tz.transition 1993, 3, :o6, 733266000 + tz.transition 1993, 9, :o7, 748987200 + tz.transition 1994, 3, :o6, 764715600 + tz.transition 1994, 9, :o8, 780436800 + tz.transition 1995, 3, :o9, 796161600 + tz.transition 1995, 9, :o8, 811882800 + tz.transition 1996, 3, :o9, 828216000 + tz.transition 1997, 3, :o9, 859662000 + tz.transition 1997, 10, :o8, 877806000 + tz.transition 1998, 3, :o9, 891115200 + tz.transition 1998, 10, :o8, 909255600 + tz.transition 1999, 3, :o9, 922564800 + tz.transition 1999, 10, :o8, 941310000 + tz.transition 2000, 3, :o9, 954014400 + tz.transition 2000, 10, :o8, 972759600 + tz.transition 2001, 3, :o9, 985464000 + tz.transition 2001, 10, :o8, 1004209200 + tz.transition 2002, 3, :o9, 1017518400 + tz.transition 2002, 10, :o8, 1035658800 + tz.transition 2003, 3, :o9, 1048968000 + tz.transition 2003, 10, :o8, 1067108400 + tz.transition 2004, 3, :o9, 1080417600 + tz.transition 2004, 6, :o6, 1088276400 + tz.transition 2004, 10, :o7, 1099177200 + tz.transition 2005, 3, :o8, 1111878000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tehran.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tehran.rb new file mode 100644 index 000000000..d8df964a4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tehran.rb @@ -0,0 +1,121 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tehran + include TimezoneDefinition + + timezone 'Asia/Tehran' do |tz| + tz.offset :o0, 12344, 0, :LMT + tz.offset :o1, 12344, 0, :TMT + tz.offset :o2, 12600, 0, :IRST + tz.offset :o3, 14400, 0, :IRST + tz.offset :o4, 14400, 3600, :IRDT + tz.offset :o5, 12600, 3600, :IRDT + + tz.transition 1915, 12, :o1, 26145324257, 10800 + tz.transition 1945, 12, :o2, 26263670657, 10800 + tz.transition 1977, 10, :o3, 247177800 + tz.transition 1978, 3, :o4, 259272000 + tz.transition 1978, 10, :o3, 277758000 + tz.transition 1978, 12, :o2, 283982400 + tz.transition 1979, 3, :o5, 290809800 + tz.transition 1979, 9, :o2, 306531000 + tz.transition 1980, 3, :o5, 322432200 + tz.transition 1980, 9, :o2, 338499000 + tz.transition 1991, 5, :o5, 673216200 + tz.transition 1991, 9, :o2, 685481400 + tz.transition 1992, 3, :o5, 701209800 + tz.transition 1992, 9, :o2, 717103800 + tz.transition 1993, 3, :o5, 732745800 + tz.transition 1993, 9, :o2, 748639800 + tz.transition 1994, 3, :o5, 764281800 + tz.transition 1994, 9, :o2, 780175800 + tz.transition 1995, 3, :o5, 795817800 + tz.transition 1995, 9, :o2, 811711800 + tz.transition 1996, 3, :o5, 827353800 + tz.transition 1996, 9, :o2, 843247800 + tz.transition 1997, 3, :o5, 858976200 + tz.transition 1997, 9, :o2, 874870200 + tz.transition 1998, 3, :o5, 890512200 + tz.transition 1998, 9, :o2, 906406200 + tz.transition 1999, 3, :o5, 922048200 + tz.transition 1999, 9, :o2, 937942200 + tz.transition 2000, 3, :o5, 953584200 + tz.transition 2000, 9, :o2, 969478200 + tz.transition 2001, 3, :o5, 985206600 + tz.transition 2001, 9, :o2, 1001100600 + tz.transition 2002, 3, :o5, 1016742600 + tz.transition 2002, 9, :o2, 1032636600 + tz.transition 2003, 3, :o5, 1048278600 + tz.transition 2003, 9, :o2, 1064172600 + tz.transition 2004, 3, :o5, 1079814600 + tz.transition 2004, 9, :o2, 1095708600 + tz.transition 2005, 3, :o5, 1111437000 + tz.transition 2005, 9, :o2, 1127331000 + tz.transition 2008, 3, :o5, 1206045000 + tz.transition 2008, 9, :o2, 1221939000 + tz.transition 2009, 3, :o5, 1237667400 + tz.transition 2009, 9, :o2, 1253561400 + tz.transition 2010, 3, :o5, 1269203400 + tz.transition 2010, 9, :o2, 1285097400 + tz.transition 2011, 3, :o5, 1300739400 + tz.transition 2011, 9, :o2, 1316633400 + tz.transition 2012, 3, :o5, 1332275400 + tz.transition 2012, 9, :o2, 1348169400 + tz.transition 2013, 3, :o5, 1363897800 + tz.transition 2013, 9, :o2, 1379791800 + tz.transition 2014, 3, :o5, 1395433800 + tz.transition 2014, 9, :o2, 1411327800 + tz.transition 2015, 3, :o5, 1426969800 + tz.transition 2015, 9, :o2, 1442863800 + tz.transition 2016, 3, :o5, 1458505800 + tz.transition 2016, 9, :o2, 1474399800 + tz.transition 2017, 3, :o5, 1490128200 + tz.transition 2017, 9, :o2, 1506022200 + tz.transition 2018, 3, :o5, 1521664200 + tz.transition 2018, 9, :o2, 1537558200 + tz.transition 2019, 3, :o5, 1553200200 + tz.transition 2019, 9, :o2, 1569094200 + tz.transition 2020, 3, :o5, 1584736200 + tz.transition 2020, 9, :o2, 1600630200 + tz.transition 2021, 3, :o5, 1616358600 + tz.transition 2021, 9, :o2, 1632252600 + tz.transition 2022, 3, :o5, 1647894600 + tz.transition 2022, 9, :o2, 1663788600 + tz.transition 2023, 3, :o5, 1679430600 + tz.transition 2023, 9, :o2, 1695324600 + tz.transition 2024, 3, :o5, 1710966600 + tz.transition 2024, 9, :o2, 1726860600 + tz.transition 2025, 3, :o5, 1742589000 + tz.transition 2025, 9, :o2, 1758483000 + tz.transition 2026, 3, :o5, 1774125000 + tz.transition 2026, 9, :o2, 1790019000 + tz.transition 2027, 3, :o5, 1805661000 + tz.transition 2027, 9, :o2, 1821555000 + tz.transition 2028, 3, :o5, 1837197000 + tz.transition 2028, 9, :o2, 1853091000 + tz.transition 2029, 3, :o5, 1868733000 + tz.transition 2029, 9, :o2, 1884627000 + tz.transition 2030, 3, :o5, 1900355400 + tz.transition 2030, 9, :o2, 1916249400 + tz.transition 2031, 3, :o5, 1931891400 + tz.transition 2031, 9, :o2, 1947785400 + tz.transition 2032, 3, :o5, 1963427400 + tz.transition 2032, 9, :o2, 1979321400 + tz.transition 2033, 3, :o5, 1994963400 + tz.transition 2033, 9, :o2, 2010857400 + tz.transition 2034, 3, :o5, 2026585800 + tz.transition 2034, 9, :o2, 2042479800 + tz.transition 2035, 3, :o5, 2058121800 + tz.transition 2035, 9, :o2, 2074015800 + tz.transition 2036, 3, :o5, 2089657800 + tz.transition 2036, 9, :o2, 2105551800 + tz.transition 2037, 3, :o5, 2121193800 + tz.transition 2037, 9, :o2, 2137087800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tokyo.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tokyo.rb new file mode 100644 index 000000000..51c9e1642 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tokyo.rb @@ -0,0 +1,30 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tokyo + include TimezoneDefinition + + timezone 'Asia/Tokyo' do |tz| + tz.offset :o0, 33539, 0, :LMT + tz.offset :o1, 32400, 0, :JST + tz.offset :o2, 32400, 0, :CJT + tz.offset :o3, 32400, 3600, :JDT + + tz.transition 1887, 12, :o1, 19285097, 8 + tz.transition 1895, 12, :o2, 19308473, 8 + tz.transition 1937, 12, :o1, 19431193, 8 + tz.transition 1948, 5, :o3, 58384157, 24 + tz.transition 1948, 9, :o1, 14596831, 6 + tz.transition 1949, 4, :o3, 58392221, 24 + tz.transition 1949, 9, :o1, 14599015, 6 + tz.transition 1950, 5, :o3, 58401797, 24 + tz.transition 1950, 9, :o1, 14601199, 6 + tz.transition 1951, 5, :o3, 58410533, 24 + tz.transition 1951, 9, :o1, 14603383, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Ulaanbaatar.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Ulaanbaatar.rb new file mode 100644 index 000000000..2854f5c5f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Ulaanbaatar.rb @@ -0,0 +1,65 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Ulaanbaatar + include TimezoneDefinition + + timezone 'Asia/Ulaanbaatar' do |tz| + tz.offset :o0, 25652, 0, :LMT + tz.offset :o1, 25200, 0, :ULAT + tz.offset :o2, 28800, 0, :ULAT + tz.offset :o3, 28800, 3600, :ULAST + + tz.transition 1905, 7, :o1, 52208457187, 21600 + tz.transition 1977, 12, :o2, 252435600 + tz.transition 1983, 3, :o3, 417974400 + tz.transition 1983, 9, :o2, 433782000 + tz.transition 1984, 3, :o3, 449596800 + tz.transition 1984, 9, :o2, 465318000 + tz.transition 1985, 3, :o3, 481046400 + tz.transition 1985, 9, :o2, 496767600 + tz.transition 1986, 3, :o3, 512496000 + tz.transition 1986, 9, :o2, 528217200 + tz.transition 1987, 3, :o3, 543945600 + tz.transition 1987, 9, :o2, 559666800 + tz.transition 1988, 3, :o3, 575395200 + tz.transition 1988, 9, :o2, 591116400 + tz.transition 1989, 3, :o3, 606844800 + tz.transition 1989, 9, :o2, 622566000 + tz.transition 1990, 3, :o3, 638294400 + tz.transition 1990, 9, :o2, 654620400 + tz.transition 1991, 3, :o3, 670348800 + tz.transition 1991, 9, :o2, 686070000 + tz.transition 1992, 3, :o3, 701798400 + tz.transition 1992, 9, :o2, 717519600 + tz.transition 1993, 3, :o3, 733248000 + tz.transition 1993, 9, :o2, 748969200 + tz.transition 1994, 3, :o3, 764697600 + tz.transition 1994, 9, :o2, 780418800 + tz.transition 1995, 3, :o3, 796147200 + tz.transition 1995, 9, :o2, 811868400 + tz.transition 1996, 3, :o3, 828201600 + tz.transition 1996, 9, :o2, 843922800 + tz.transition 1997, 3, :o3, 859651200 + tz.transition 1997, 9, :o2, 875372400 + tz.transition 1998, 3, :o3, 891100800 + tz.transition 1998, 9, :o2, 906822000 + tz.transition 2001, 4, :o3, 988394400 + tz.transition 2001, 9, :o2, 1001696400 + tz.transition 2002, 3, :o3, 1017424800 + tz.transition 2002, 9, :o2, 1033146000 + tz.transition 2003, 3, :o3, 1048874400 + tz.transition 2003, 9, :o2, 1064595600 + tz.transition 2004, 3, :o3, 1080324000 + tz.transition 2004, 9, :o2, 1096045200 + tz.transition 2005, 3, :o3, 1111773600 + tz.transition 2005, 9, :o2, 1127494800 + tz.transition 2006, 3, :o3, 1143223200 + tz.transition 2006, 9, :o2, 1159549200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Urumqi.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Urumqi.rb new file mode 100644 index 000000000..d793ff134 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Urumqi.rb @@ -0,0 +1,33 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Urumqi + include TimezoneDefinition + + timezone 'Asia/Urumqi' do |tz| + tz.offset :o0, 21020, 0, :LMT + tz.offset :o1, 21600, 0, :URUT + tz.offset :o2, 28800, 0, :CST + tz.offset :o3, 28800, 3600, :CDT + + tz.transition 1927, 12, :o1, 10477063829, 4320 + tz.transition 1980, 4, :o2, 325965600 + tz.transition 1986, 5, :o3, 515520000 + tz.transition 1986, 9, :o2, 527007600 + tz.transition 1987, 4, :o3, 545155200 + tz.transition 1987, 9, :o2, 558457200 + tz.transition 1988, 4, :o3, 576604800 + tz.transition 1988, 9, :o2, 589906800 + tz.transition 1989, 4, :o3, 608659200 + tz.transition 1989, 9, :o2, 621961200 + tz.transition 1990, 4, :o3, 640108800 + tz.transition 1990, 9, :o2, 653410800 + tz.transition 1991, 4, :o3, 671558400 + tz.transition 1991, 9, :o2, 684860400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Vladivostok.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Vladivostok.rb new file mode 100644 index 000000000..bd9e3d60e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Vladivostok.rb @@ -0,0 +1,164 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Vladivostok + include TimezoneDefinition + + timezone 'Asia/Vladivostok' do |tz| + tz.offset :o0, 31664, 0, :LMT + tz.offset :o1, 32400, 0, :VLAT + tz.offset :o2, 36000, 0, :VLAT + tz.offset :o3, 36000, 3600, :VLAST + tz.offset :o4, 32400, 3600, :VLASST + tz.offset :o5, 32400, 0, :VLAST + + tz.transition 1922, 11, :o1, 13086214921, 5400 + tz.transition 1930, 6, :o2, 19409185, 8 + tz.transition 1981, 3, :o3, 354895200 + tz.transition 1981, 9, :o2, 370702800 + tz.transition 1982, 3, :o3, 386431200 + tz.transition 1982, 9, :o2, 402238800 + tz.transition 1983, 3, :o3, 417967200 + tz.transition 1983, 9, :o2, 433774800 + tz.transition 1984, 3, :o3, 449589600 + tz.transition 1984, 9, :o2, 465321600 + tz.transition 1985, 3, :o3, 481046400 + tz.transition 1985, 9, :o2, 496771200 + tz.transition 1986, 3, :o3, 512496000 + tz.transition 1986, 9, :o2, 528220800 + tz.transition 1987, 3, :o3, 543945600 + tz.transition 1987, 9, :o2, 559670400 + tz.transition 1988, 3, :o3, 575395200 + tz.transition 1988, 9, :o2, 591120000 + tz.transition 1989, 3, :o3, 606844800 + tz.transition 1989, 9, :o2, 622569600 + tz.transition 1990, 3, :o3, 638294400 + tz.transition 1990, 9, :o2, 654624000 + tz.transition 1991, 3, :o4, 670348800 + tz.transition 1991, 9, :o5, 686077200 + tz.transition 1992, 1, :o2, 695754000 + tz.transition 1992, 3, :o3, 701787600 + tz.transition 1992, 9, :o2, 717508800 + tz.transition 1993, 3, :o3, 733248000 + tz.transition 1993, 9, :o2, 748972800 + tz.transition 1994, 3, :o3, 764697600 + tz.transition 1994, 9, :o2, 780422400 + tz.transition 1995, 3, :o3, 796147200 + tz.transition 1995, 9, :o2, 811872000 + tz.transition 1996, 3, :o3, 828201600 + tz.transition 1996, 10, :o2, 846345600 + tz.transition 1997, 3, :o3, 859651200 + tz.transition 1997, 10, :o2, 877795200 + tz.transition 1998, 3, :o3, 891100800 + tz.transition 1998, 10, :o2, 909244800 + tz.transition 1999, 3, :o3, 922550400 + tz.transition 1999, 10, :o2, 941299200 + tz.transition 2000, 3, :o3, 954000000 + tz.transition 2000, 10, :o2, 972748800 + tz.transition 2001, 3, :o3, 985449600 + tz.transition 2001, 10, :o2, 1004198400 + tz.transition 2002, 3, :o3, 1017504000 + tz.transition 2002, 10, :o2, 1035648000 + tz.transition 2003, 3, :o3, 1048953600 + tz.transition 2003, 10, :o2, 1067097600 + tz.transition 2004, 3, :o3, 1080403200 + tz.transition 2004, 10, :o2, 1099152000 + tz.transition 2005, 3, :o3, 1111852800 + tz.transition 2005, 10, :o2, 1130601600 + tz.transition 2006, 3, :o3, 1143302400 + tz.transition 2006, 10, :o2, 1162051200 + tz.transition 2007, 3, :o3, 1174752000 + tz.transition 2007, 10, :o2, 1193500800 + tz.transition 2008, 3, :o3, 1206806400 + tz.transition 2008, 10, :o2, 1224950400 + tz.transition 2009, 3, :o3, 1238256000 + tz.transition 2009, 10, :o2, 1256400000 + tz.transition 2010, 3, :o3, 1269705600 + tz.transition 2010, 10, :o2, 1288454400 + tz.transition 2011, 3, :o3, 1301155200 + tz.transition 2011, 10, :o2, 1319904000 + tz.transition 2012, 3, :o3, 1332604800 + tz.transition 2012, 10, :o2, 1351353600 + tz.transition 2013, 3, :o3, 1364659200 + tz.transition 2013, 10, :o2, 1382803200 + tz.transition 2014, 3, :o3, 1396108800 + tz.transition 2014, 10, :o2, 1414252800 + tz.transition 2015, 3, :o3, 1427558400 + tz.transition 2015, 10, :o2, 1445702400 + tz.transition 2016, 3, :o3, 1459008000 + tz.transition 2016, 10, :o2, 1477756800 + tz.transition 2017, 3, :o3, 1490457600 + tz.transition 2017, 10, :o2, 1509206400 + tz.transition 2018, 3, :o3, 1521907200 + tz.transition 2018, 10, :o2, 1540656000 + tz.transition 2019, 3, :o3, 1553961600 + tz.transition 2019, 10, :o2, 1572105600 + tz.transition 2020, 3, :o3, 1585411200 + tz.transition 2020, 10, :o2, 1603555200 + tz.transition 2021, 3, :o3, 1616860800 + tz.transition 2021, 10, :o2, 1635609600 + tz.transition 2022, 3, :o3, 1648310400 + tz.transition 2022, 10, :o2, 1667059200 + tz.transition 2023, 3, :o3, 1679760000 + tz.transition 2023, 10, :o2, 1698508800 + tz.transition 2024, 3, :o3, 1711814400 + tz.transition 2024, 10, :o2, 1729958400 + tz.transition 2025, 3, :o3, 1743264000 + tz.transition 2025, 10, :o2, 1761408000 + tz.transition 2026, 3, :o3, 1774713600 + tz.transition 2026, 10, :o2, 1792857600 + tz.transition 2027, 3, :o3, 1806163200 + tz.transition 2027, 10, :o2, 1824912000 + tz.transition 2028, 3, :o3, 1837612800 + tz.transition 2028, 10, :o2, 1856361600 + tz.transition 2029, 3, :o3, 1869062400 + tz.transition 2029, 10, :o2, 1887811200 + tz.transition 2030, 3, :o3, 1901116800 + tz.transition 2030, 10, :o2, 1919260800 + tz.transition 2031, 3, :o3, 1932566400 + tz.transition 2031, 10, :o2, 1950710400 + tz.transition 2032, 3, :o3, 1964016000 + tz.transition 2032, 10, :o2, 1982764800 + tz.transition 2033, 3, :o3, 1995465600 + tz.transition 2033, 10, :o2, 2014214400 + tz.transition 2034, 3, :o3, 2026915200 + tz.transition 2034, 10, :o2, 2045664000 + tz.transition 2035, 3, :o3, 2058364800 + tz.transition 2035, 10, :o2, 2077113600 + tz.transition 2036, 3, :o3, 2090419200 + tz.transition 2036, 10, :o2, 2108563200 + tz.transition 2037, 3, :o3, 2121868800 + tz.transition 2037, 10, :o2, 2140012800 + tz.transition 2038, 3, :o3, 14793061, 6 + tz.transition 2038, 10, :o2, 14794363, 6 + tz.transition 2039, 3, :o3, 14795245, 6 + tz.transition 2039, 10, :o2, 14796547, 6 + tz.transition 2040, 3, :o3, 14797429, 6 + tz.transition 2040, 10, :o2, 14798731, 6 + tz.transition 2041, 3, :o3, 14799655, 6 + tz.transition 2041, 10, :o2, 14800915, 6 + tz.transition 2042, 3, :o3, 14801839, 6 + tz.transition 2042, 10, :o2, 14803099, 6 + tz.transition 2043, 3, :o3, 14804023, 6 + tz.transition 2043, 10, :o2, 14805283, 6 + tz.transition 2044, 3, :o3, 14806207, 6 + tz.transition 2044, 10, :o2, 14807509, 6 + tz.transition 2045, 3, :o3, 14808391, 6 + tz.transition 2045, 10, :o2, 14809693, 6 + tz.transition 2046, 3, :o3, 14810575, 6 + tz.transition 2046, 10, :o2, 14811877, 6 + tz.transition 2047, 3, :o3, 14812801, 6 + tz.transition 2047, 10, :o2, 14814061, 6 + tz.transition 2048, 3, :o3, 14814985, 6 + tz.transition 2048, 10, :o2, 14816245, 6 + tz.transition 2049, 3, :o3, 14817169, 6 + tz.transition 2049, 10, :o2, 14818471, 6 + tz.transition 2050, 3, :o3, 14819353, 6 + tz.transition 2050, 10, :o2, 14820655, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yakutsk.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yakutsk.rb new file mode 100644 index 000000000..56435a788 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yakutsk.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Yakutsk + include TimezoneDefinition + + timezone 'Asia/Yakutsk' do |tz| + tz.offset :o0, 31120, 0, :LMT + tz.offset :o1, 28800, 0, :YAKT + tz.offset :o2, 32400, 0, :YAKT + tz.offset :o3, 32400, 3600, :YAKST + tz.offset :o4, 28800, 3600, :YAKST + + tz.transition 1919, 12, :o1, 2616091711, 1080 + tz.transition 1930, 6, :o2, 14556889, 6 + tz.transition 1981, 3, :o3, 354898800 + tz.transition 1981, 9, :o2, 370706400 + tz.transition 1982, 3, :o3, 386434800 + tz.transition 1982, 9, :o2, 402242400 + tz.transition 1983, 3, :o3, 417970800 + tz.transition 1983, 9, :o2, 433778400 + tz.transition 1984, 3, :o3, 449593200 + tz.transition 1984, 9, :o2, 465325200 + tz.transition 1985, 3, :o3, 481050000 + tz.transition 1985, 9, :o2, 496774800 + tz.transition 1986, 3, :o3, 512499600 + tz.transition 1986, 9, :o2, 528224400 + tz.transition 1987, 3, :o3, 543949200 + tz.transition 1987, 9, :o2, 559674000 + tz.transition 1988, 3, :o3, 575398800 + tz.transition 1988, 9, :o2, 591123600 + tz.transition 1989, 3, :o3, 606848400 + tz.transition 1989, 9, :o2, 622573200 + tz.transition 1990, 3, :o3, 638298000 + tz.transition 1990, 9, :o2, 654627600 + tz.transition 1991, 3, :o4, 670352400 + tz.transition 1991, 9, :o1, 686080800 + tz.transition 1992, 1, :o2, 695757600 + tz.transition 1992, 3, :o3, 701791200 + tz.transition 1992, 9, :o2, 717512400 + tz.transition 1993, 3, :o3, 733251600 + tz.transition 1993, 9, :o2, 748976400 + tz.transition 1994, 3, :o3, 764701200 + tz.transition 1994, 9, :o2, 780426000 + tz.transition 1995, 3, :o3, 796150800 + tz.transition 1995, 9, :o2, 811875600 + tz.transition 1996, 3, :o3, 828205200 + tz.transition 1996, 10, :o2, 846349200 + tz.transition 1997, 3, :o3, 859654800 + tz.transition 1997, 10, :o2, 877798800 + tz.transition 1998, 3, :o3, 891104400 + tz.transition 1998, 10, :o2, 909248400 + tz.transition 1999, 3, :o3, 922554000 + tz.transition 1999, 10, :o2, 941302800 + tz.transition 2000, 3, :o3, 954003600 + tz.transition 2000, 10, :o2, 972752400 + tz.transition 2001, 3, :o3, 985453200 + tz.transition 2001, 10, :o2, 1004202000 + tz.transition 2002, 3, :o3, 1017507600 + tz.transition 2002, 10, :o2, 1035651600 + tz.transition 2003, 3, :o3, 1048957200 + tz.transition 2003, 10, :o2, 1067101200 + tz.transition 2004, 3, :o3, 1080406800 + tz.transition 2004, 10, :o2, 1099155600 + tz.transition 2005, 3, :o3, 1111856400 + tz.transition 2005, 10, :o2, 1130605200 + tz.transition 2006, 3, :o3, 1143306000 + tz.transition 2006, 10, :o2, 1162054800 + tz.transition 2007, 3, :o3, 1174755600 + tz.transition 2007, 10, :o2, 1193504400 + tz.transition 2008, 3, :o3, 1206810000 + tz.transition 2008, 10, :o2, 1224954000 + tz.transition 2009, 3, :o3, 1238259600 + tz.transition 2009, 10, :o2, 1256403600 + tz.transition 2010, 3, :o3, 1269709200 + tz.transition 2010, 10, :o2, 1288458000 + tz.transition 2011, 3, :o3, 1301158800 + tz.transition 2011, 10, :o2, 1319907600 + tz.transition 2012, 3, :o3, 1332608400 + tz.transition 2012, 10, :o2, 1351357200 + tz.transition 2013, 3, :o3, 1364662800 + tz.transition 2013, 10, :o2, 1382806800 + tz.transition 2014, 3, :o3, 1396112400 + tz.transition 2014, 10, :o2, 1414256400 + tz.transition 2015, 3, :o3, 1427562000 + tz.transition 2015, 10, :o2, 1445706000 + tz.transition 2016, 3, :o3, 1459011600 + tz.transition 2016, 10, :o2, 1477760400 + tz.transition 2017, 3, :o3, 1490461200 + tz.transition 2017, 10, :o2, 1509210000 + tz.transition 2018, 3, :o3, 1521910800 + tz.transition 2018, 10, :o2, 1540659600 + tz.transition 2019, 3, :o3, 1553965200 + tz.transition 2019, 10, :o2, 1572109200 + tz.transition 2020, 3, :o3, 1585414800 + tz.transition 2020, 10, :o2, 1603558800 + tz.transition 2021, 3, :o3, 1616864400 + tz.transition 2021, 10, :o2, 1635613200 + tz.transition 2022, 3, :o3, 1648314000 + tz.transition 2022, 10, :o2, 1667062800 + tz.transition 2023, 3, :o3, 1679763600 + tz.transition 2023, 10, :o2, 1698512400 + tz.transition 2024, 3, :o3, 1711818000 + tz.transition 2024, 10, :o2, 1729962000 + tz.transition 2025, 3, :o3, 1743267600 + tz.transition 2025, 10, :o2, 1761411600 + tz.transition 2026, 3, :o3, 1774717200 + tz.transition 2026, 10, :o2, 1792861200 + tz.transition 2027, 3, :o3, 1806166800 + tz.transition 2027, 10, :o2, 1824915600 + tz.transition 2028, 3, :o3, 1837616400 + tz.transition 2028, 10, :o2, 1856365200 + tz.transition 2029, 3, :o3, 1869066000 + tz.transition 2029, 10, :o2, 1887814800 + tz.transition 2030, 3, :o3, 1901120400 + tz.transition 2030, 10, :o2, 1919264400 + tz.transition 2031, 3, :o3, 1932570000 + tz.transition 2031, 10, :o2, 1950714000 + tz.transition 2032, 3, :o3, 1964019600 + tz.transition 2032, 10, :o2, 1982768400 + tz.transition 2033, 3, :o3, 1995469200 + tz.transition 2033, 10, :o2, 2014218000 + tz.transition 2034, 3, :o3, 2026918800 + tz.transition 2034, 10, :o2, 2045667600 + tz.transition 2035, 3, :o3, 2058368400 + tz.transition 2035, 10, :o2, 2077117200 + tz.transition 2036, 3, :o3, 2090422800 + tz.transition 2036, 10, :o2, 2108566800 + tz.transition 2037, 3, :o3, 2121872400 + tz.transition 2037, 10, :o2, 2140016400 + tz.transition 2038, 3, :o3, 59172245, 24 + tz.transition 2038, 10, :o2, 59177453, 24 + tz.transition 2039, 3, :o3, 59180981, 24 + tz.transition 2039, 10, :o2, 59186189, 24 + tz.transition 2040, 3, :o3, 59189717, 24 + tz.transition 2040, 10, :o2, 59194925, 24 + tz.transition 2041, 3, :o3, 59198621, 24 + tz.transition 2041, 10, :o2, 59203661, 24 + tz.transition 2042, 3, :o3, 59207357, 24 + tz.transition 2042, 10, :o2, 59212397, 24 + tz.transition 2043, 3, :o3, 59216093, 24 + tz.transition 2043, 10, :o2, 59221133, 24 + tz.transition 2044, 3, :o3, 59224829, 24 + tz.transition 2044, 10, :o2, 59230037, 24 + tz.transition 2045, 3, :o3, 59233565, 24 + tz.transition 2045, 10, :o2, 59238773, 24 + tz.transition 2046, 3, :o3, 59242301, 24 + tz.transition 2046, 10, :o2, 59247509, 24 + tz.transition 2047, 3, :o3, 59251205, 24 + tz.transition 2047, 10, :o2, 59256245, 24 + tz.transition 2048, 3, :o3, 59259941, 24 + tz.transition 2048, 10, :o2, 59264981, 24 + tz.transition 2049, 3, :o3, 59268677, 24 + tz.transition 2049, 10, :o2, 59273885, 24 + tz.transition 2050, 3, :o3, 59277413, 24 + tz.transition 2050, 10, :o2, 59282621, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yekaterinburg.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yekaterinburg.rb new file mode 100644 index 000000000..8ef8df4a4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yekaterinburg.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Yekaterinburg + include TimezoneDefinition + + timezone 'Asia/Yekaterinburg' do |tz| + tz.offset :o0, 14544, 0, :LMT + tz.offset :o1, 14400, 0, :SVET + tz.offset :o2, 18000, 0, :SVET + tz.offset :o3, 18000, 3600, :SVEST + tz.offset :o4, 14400, 3600, :SVEST + tz.offset :o5, 18000, 0, :YEKT + tz.offset :o6, 18000, 3600, :YEKST + + tz.transition 1919, 7, :o1, 1453292699, 600 + tz.transition 1930, 6, :o2, 7278445, 3 + tz.transition 1981, 3, :o3, 354913200 + tz.transition 1981, 9, :o2, 370720800 + tz.transition 1982, 3, :o3, 386449200 + tz.transition 1982, 9, :o2, 402256800 + tz.transition 1983, 3, :o3, 417985200 + tz.transition 1983, 9, :o2, 433792800 + tz.transition 1984, 3, :o3, 449607600 + tz.transition 1984, 9, :o2, 465339600 + tz.transition 1985, 3, :o3, 481064400 + tz.transition 1985, 9, :o2, 496789200 + tz.transition 1986, 3, :o3, 512514000 + tz.transition 1986, 9, :o2, 528238800 + tz.transition 1987, 3, :o3, 543963600 + tz.transition 1987, 9, :o2, 559688400 + tz.transition 1988, 3, :o3, 575413200 + tz.transition 1988, 9, :o2, 591138000 + tz.transition 1989, 3, :o3, 606862800 + tz.transition 1989, 9, :o2, 622587600 + tz.transition 1990, 3, :o3, 638312400 + tz.transition 1990, 9, :o2, 654642000 + tz.transition 1991, 3, :o4, 670366800 + tz.transition 1991, 9, :o1, 686095200 + tz.transition 1992, 1, :o5, 695772000 + tz.transition 1992, 3, :o6, 701805600 + tz.transition 1992, 9, :o5, 717526800 + tz.transition 1993, 3, :o6, 733266000 + tz.transition 1993, 9, :o5, 748990800 + tz.transition 1994, 3, :o6, 764715600 + tz.transition 1994, 9, :o5, 780440400 + tz.transition 1995, 3, :o6, 796165200 + tz.transition 1995, 9, :o5, 811890000 + tz.transition 1996, 3, :o6, 828219600 + tz.transition 1996, 10, :o5, 846363600 + tz.transition 1997, 3, :o6, 859669200 + tz.transition 1997, 10, :o5, 877813200 + tz.transition 1998, 3, :o6, 891118800 + tz.transition 1998, 10, :o5, 909262800 + tz.transition 1999, 3, :o6, 922568400 + tz.transition 1999, 10, :o5, 941317200 + tz.transition 2000, 3, :o6, 954018000 + tz.transition 2000, 10, :o5, 972766800 + tz.transition 2001, 3, :o6, 985467600 + tz.transition 2001, 10, :o5, 1004216400 + tz.transition 2002, 3, :o6, 1017522000 + tz.transition 2002, 10, :o5, 1035666000 + tz.transition 2003, 3, :o6, 1048971600 + tz.transition 2003, 10, :o5, 1067115600 + tz.transition 2004, 3, :o6, 1080421200 + tz.transition 2004, 10, :o5, 1099170000 + tz.transition 2005, 3, :o6, 1111870800 + tz.transition 2005, 10, :o5, 1130619600 + tz.transition 2006, 3, :o6, 1143320400 + tz.transition 2006, 10, :o5, 1162069200 + tz.transition 2007, 3, :o6, 1174770000 + tz.transition 2007, 10, :o5, 1193518800 + tz.transition 2008, 3, :o6, 1206824400 + tz.transition 2008, 10, :o5, 1224968400 + tz.transition 2009, 3, :o6, 1238274000 + tz.transition 2009, 10, :o5, 1256418000 + tz.transition 2010, 3, :o6, 1269723600 + tz.transition 2010, 10, :o5, 1288472400 + tz.transition 2011, 3, :o6, 1301173200 + tz.transition 2011, 10, :o5, 1319922000 + tz.transition 2012, 3, :o6, 1332622800 + tz.transition 2012, 10, :o5, 1351371600 + tz.transition 2013, 3, :o6, 1364677200 + tz.transition 2013, 10, :o5, 1382821200 + tz.transition 2014, 3, :o6, 1396126800 + tz.transition 2014, 10, :o5, 1414270800 + tz.transition 2015, 3, :o6, 1427576400 + tz.transition 2015, 10, :o5, 1445720400 + tz.transition 2016, 3, :o6, 1459026000 + tz.transition 2016, 10, :o5, 1477774800 + tz.transition 2017, 3, :o6, 1490475600 + tz.transition 2017, 10, :o5, 1509224400 + tz.transition 2018, 3, :o6, 1521925200 + tz.transition 2018, 10, :o5, 1540674000 + tz.transition 2019, 3, :o6, 1553979600 + tz.transition 2019, 10, :o5, 1572123600 + tz.transition 2020, 3, :o6, 1585429200 + tz.transition 2020, 10, :o5, 1603573200 + tz.transition 2021, 3, :o6, 1616878800 + tz.transition 2021, 10, :o5, 1635627600 + tz.transition 2022, 3, :o6, 1648328400 + tz.transition 2022, 10, :o5, 1667077200 + tz.transition 2023, 3, :o6, 1679778000 + tz.transition 2023, 10, :o5, 1698526800 + tz.transition 2024, 3, :o6, 1711832400 + tz.transition 2024, 10, :o5, 1729976400 + tz.transition 2025, 3, :o6, 1743282000 + tz.transition 2025, 10, :o5, 1761426000 + tz.transition 2026, 3, :o6, 1774731600 + tz.transition 2026, 10, :o5, 1792875600 + tz.transition 2027, 3, :o6, 1806181200 + tz.transition 2027, 10, :o5, 1824930000 + tz.transition 2028, 3, :o6, 1837630800 + tz.transition 2028, 10, :o5, 1856379600 + tz.transition 2029, 3, :o6, 1869080400 + tz.transition 2029, 10, :o5, 1887829200 + tz.transition 2030, 3, :o6, 1901134800 + tz.transition 2030, 10, :o5, 1919278800 + tz.transition 2031, 3, :o6, 1932584400 + tz.transition 2031, 10, :o5, 1950728400 + tz.transition 2032, 3, :o6, 1964034000 + tz.transition 2032, 10, :o5, 1982782800 + tz.transition 2033, 3, :o6, 1995483600 + tz.transition 2033, 10, :o5, 2014232400 + tz.transition 2034, 3, :o6, 2026933200 + tz.transition 2034, 10, :o5, 2045682000 + tz.transition 2035, 3, :o6, 2058382800 + tz.transition 2035, 10, :o5, 2077131600 + tz.transition 2036, 3, :o6, 2090437200 + tz.transition 2036, 10, :o5, 2108581200 + tz.transition 2037, 3, :o6, 2121886800 + tz.transition 2037, 10, :o5, 2140030800 + tz.transition 2038, 3, :o6, 19724083, 8 + tz.transition 2038, 10, :o5, 19725819, 8 + tz.transition 2039, 3, :o6, 19726995, 8 + tz.transition 2039, 10, :o5, 19728731, 8 + tz.transition 2040, 3, :o6, 19729907, 8 + tz.transition 2040, 10, :o5, 19731643, 8 + tz.transition 2041, 3, :o6, 19732875, 8 + tz.transition 2041, 10, :o5, 19734555, 8 + tz.transition 2042, 3, :o6, 19735787, 8 + tz.transition 2042, 10, :o5, 19737467, 8 + tz.transition 2043, 3, :o6, 19738699, 8 + tz.transition 2043, 10, :o5, 19740379, 8 + tz.transition 2044, 3, :o6, 19741611, 8 + tz.transition 2044, 10, :o5, 19743347, 8 + tz.transition 2045, 3, :o6, 19744523, 8 + tz.transition 2045, 10, :o5, 19746259, 8 + tz.transition 2046, 3, :o6, 19747435, 8 + tz.transition 2046, 10, :o5, 19749171, 8 + tz.transition 2047, 3, :o6, 19750403, 8 + tz.transition 2047, 10, :o5, 19752083, 8 + tz.transition 2048, 3, :o6, 19753315, 8 + tz.transition 2048, 10, :o5, 19754995, 8 + tz.transition 2049, 3, :o6, 19756227, 8 + tz.transition 2049, 10, :o5, 19757963, 8 + tz.transition 2050, 3, :o6, 19759139, 8 + tz.transition 2050, 10, :o5, 19760875, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yerevan.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yerevan.rb new file mode 100644 index 000000000..e7f160861 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yerevan.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Yerevan + include TimezoneDefinition + + timezone 'Asia/Yerevan' do |tz| + tz.offset :o0, 10680, 0, :LMT + tz.offset :o1, 10800, 0, :YERT + tz.offset :o2, 14400, 0, :YERT + tz.offset :o3, 14400, 3600, :YERST + tz.offset :o4, 10800, 3600, :YERST + tz.offset :o5, 10800, 3600, :AMST + tz.offset :o6, 10800, 0, :AMT + tz.offset :o7, 14400, 0, :AMT + tz.offset :o8, 14400, 3600, :AMST + + tz.transition 1924, 5, :o1, 1745213311, 720 + tz.transition 1957, 2, :o2, 19487187, 8 + tz.transition 1981, 3, :o3, 354916800 + tz.transition 1981, 9, :o2, 370724400 + tz.transition 1982, 3, :o3, 386452800 + tz.transition 1982, 9, :o2, 402260400 + tz.transition 1983, 3, :o3, 417988800 + tz.transition 1983, 9, :o2, 433796400 + tz.transition 1984, 3, :o3, 449611200 + tz.transition 1984, 9, :o2, 465343200 + tz.transition 1985, 3, :o3, 481068000 + tz.transition 1985, 9, :o2, 496792800 + tz.transition 1986, 3, :o3, 512517600 + tz.transition 1986, 9, :o2, 528242400 + tz.transition 1987, 3, :o3, 543967200 + tz.transition 1987, 9, :o2, 559692000 + tz.transition 1988, 3, :o3, 575416800 + tz.transition 1988, 9, :o2, 591141600 + tz.transition 1989, 3, :o3, 606866400 + tz.transition 1989, 9, :o2, 622591200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 9, :o2, 654645600 + tz.transition 1991, 3, :o4, 670370400 + tz.transition 1991, 9, :o5, 685569600 + tz.transition 1991, 9, :o6, 686098800 + tz.transition 1992, 3, :o5, 701812800 + tz.transition 1992, 9, :o6, 717534000 + tz.transition 1993, 3, :o5, 733273200 + tz.transition 1993, 9, :o6, 748998000 + tz.transition 1994, 3, :o5, 764722800 + tz.transition 1994, 9, :o6, 780447600 + tz.transition 1995, 3, :o5, 796172400 + tz.transition 1995, 9, :o7, 811897200 + tz.transition 1997, 3, :o8, 859672800 + tz.transition 1997, 10, :o7, 877816800 + tz.transition 1998, 3, :o8, 891122400 + tz.transition 1998, 10, :o7, 909266400 + tz.transition 1999, 3, :o8, 922572000 + tz.transition 1999, 10, :o7, 941320800 + tz.transition 2000, 3, :o8, 954021600 + tz.transition 2000, 10, :o7, 972770400 + tz.transition 2001, 3, :o8, 985471200 + tz.transition 2001, 10, :o7, 1004220000 + tz.transition 2002, 3, :o8, 1017525600 + tz.transition 2002, 10, :o7, 1035669600 + tz.transition 2003, 3, :o8, 1048975200 + tz.transition 2003, 10, :o7, 1067119200 + tz.transition 2004, 3, :o8, 1080424800 + tz.transition 2004, 10, :o7, 1099173600 + tz.transition 2005, 3, :o8, 1111874400 + tz.transition 2005, 10, :o7, 1130623200 + tz.transition 2006, 3, :o8, 1143324000 + tz.transition 2006, 10, :o7, 1162072800 + tz.transition 2007, 3, :o8, 1174773600 + tz.transition 2007, 10, :o7, 1193522400 + tz.transition 2008, 3, :o8, 1206828000 + tz.transition 2008, 10, :o7, 1224972000 + tz.transition 2009, 3, :o8, 1238277600 + tz.transition 2009, 10, :o7, 1256421600 + tz.transition 2010, 3, :o8, 1269727200 + tz.transition 2010, 10, :o7, 1288476000 + tz.transition 2011, 3, :o8, 1301176800 + tz.transition 2011, 10, :o7, 1319925600 + tz.transition 2012, 3, :o8, 1332626400 + tz.transition 2012, 10, :o7, 1351375200 + tz.transition 2013, 3, :o8, 1364680800 + tz.transition 2013, 10, :o7, 1382824800 + tz.transition 2014, 3, :o8, 1396130400 + tz.transition 2014, 10, :o7, 1414274400 + tz.transition 2015, 3, :o8, 1427580000 + tz.transition 2015, 10, :o7, 1445724000 + tz.transition 2016, 3, :o8, 1459029600 + tz.transition 2016, 10, :o7, 1477778400 + tz.transition 2017, 3, :o8, 1490479200 + tz.transition 2017, 10, :o7, 1509228000 + tz.transition 2018, 3, :o8, 1521928800 + tz.transition 2018, 10, :o7, 1540677600 + tz.transition 2019, 3, :o8, 1553983200 + tz.transition 2019, 10, :o7, 1572127200 + tz.transition 2020, 3, :o8, 1585432800 + tz.transition 2020, 10, :o7, 1603576800 + tz.transition 2021, 3, :o8, 1616882400 + tz.transition 2021, 10, :o7, 1635631200 + tz.transition 2022, 3, :o8, 1648332000 + tz.transition 2022, 10, :o7, 1667080800 + tz.transition 2023, 3, :o8, 1679781600 + tz.transition 2023, 10, :o7, 1698530400 + tz.transition 2024, 3, :o8, 1711836000 + tz.transition 2024, 10, :o7, 1729980000 + tz.transition 2025, 3, :o8, 1743285600 + tz.transition 2025, 10, :o7, 1761429600 + tz.transition 2026, 3, :o8, 1774735200 + tz.transition 2026, 10, :o7, 1792879200 + tz.transition 2027, 3, :o8, 1806184800 + tz.transition 2027, 10, :o7, 1824933600 + tz.transition 2028, 3, :o8, 1837634400 + tz.transition 2028, 10, :o7, 1856383200 + tz.transition 2029, 3, :o8, 1869084000 + tz.transition 2029, 10, :o7, 1887832800 + tz.transition 2030, 3, :o8, 1901138400 + tz.transition 2030, 10, :o7, 1919282400 + tz.transition 2031, 3, :o8, 1932588000 + tz.transition 2031, 10, :o7, 1950732000 + tz.transition 2032, 3, :o8, 1964037600 + tz.transition 2032, 10, :o7, 1982786400 + tz.transition 2033, 3, :o8, 1995487200 + tz.transition 2033, 10, :o7, 2014236000 + tz.transition 2034, 3, :o8, 2026936800 + tz.transition 2034, 10, :o7, 2045685600 + tz.transition 2035, 3, :o8, 2058386400 + tz.transition 2035, 10, :o7, 2077135200 + tz.transition 2036, 3, :o8, 2090440800 + tz.transition 2036, 10, :o7, 2108584800 + tz.transition 2037, 3, :o8, 2121890400 + tz.transition 2037, 10, :o7, 2140034400 + tz.transition 2038, 3, :o8, 29586125, 12 + tz.transition 2038, 10, :o7, 29588729, 12 + tz.transition 2039, 3, :o8, 29590493, 12 + tz.transition 2039, 10, :o7, 29593097, 12 + tz.transition 2040, 3, :o8, 29594861, 12 + tz.transition 2040, 10, :o7, 29597465, 12 + tz.transition 2041, 3, :o8, 29599313, 12 + tz.transition 2041, 10, :o7, 29601833, 12 + tz.transition 2042, 3, :o8, 29603681, 12 + tz.transition 2042, 10, :o7, 29606201, 12 + tz.transition 2043, 3, :o8, 29608049, 12 + tz.transition 2043, 10, :o7, 29610569, 12 + tz.transition 2044, 3, :o8, 29612417, 12 + tz.transition 2044, 10, :o7, 29615021, 12 + tz.transition 2045, 3, :o8, 29616785, 12 + tz.transition 2045, 10, :o7, 29619389, 12 + tz.transition 2046, 3, :o8, 29621153, 12 + tz.transition 2046, 10, :o7, 29623757, 12 + tz.transition 2047, 3, :o8, 29625605, 12 + tz.transition 2047, 10, :o7, 29628125, 12 + tz.transition 2048, 3, :o8, 29629973, 12 + tz.transition 2048, 10, :o7, 29632493, 12 + tz.transition 2049, 3, :o8, 29634341, 12 + tz.transition 2049, 10, :o7, 29636945, 12 + tz.transition 2050, 3, :o8, 29638709, 12 + tz.transition 2050, 10, :o7, 29641313, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Azores.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Azores.rb new file mode 100644 index 000000000..1bd16a75a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Azores.rb @@ -0,0 +1,270 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Atlantic + module Azores + include TimezoneDefinition + + timezone 'Atlantic/Azores' do |tz| + tz.offset :o0, -6160, 0, :LMT + tz.offset :o1, -6872, 0, :HMT + tz.offset :o2, -7200, 0, :AZOT + tz.offset :o3, -7200, 3600, :AZOST + tz.offset :o4, -7200, 7200, :AZOMT + tz.offset :o5, -3600, 0, :AZOT + tz.offset :o6, -3600, 3600, :AZOST + tz.offset :o7, 0, 0, :WET + + tz.transition 1884, 1, :o1, 2601910697, 1080 + tz.transition 1911, 5, :o2, 26127150259, 10800 + tz.transition 1916, 6, :o3, 58104781, 24 + tz.transition 1916, 11, :o2, 29054023, 12 + tz.transition 1917, 3, :o3, 58110925, 24 + tz.transition 1917, 10, :o2, 58116397, 24 + tz.transition 1918, 3, :o3, 58119709, 24 + tz.transition 1918, 10, :o2, 58125157, 24 + tz.transition 1919, 3, :o3, 58128445, 24 + tz.transition 1919, 10, :o2, 58133917, 24 + tz.transition 1920, 3, :o3, 58137229, 24 + tz.transition 1920, 10, :o2, 58142701, 24 + tz.transition 1921, 3, :o3, 58145989, 24 + tz.transition 1921, 10, :o2, 58151461, 24 + tz.transition 1924, 4, :o3, 58173421, 24 + tz.transition 1924, 10, :o2, 58177765, 24 + tz.transition 1926, 4, :o3, 58190965, 24 + tz.transition 1926, 10, :o2, 58194997, 24 + tz.transition 1927, 4, :o3, 58199533, 24 + tz.transition 1927, 10, :o2, 58203733, 24 + tz.transition 1928, 4, :o3, 58208437, 24 + tz.transition 1928, 10, :o2, 58212637, 24 + tz.transition 1929, 4, :o3, 58217341, 24 + tz.transition 1929, 10, :o2, 58221373, 24 + tz.transition 1931, 4, :o3, 58234813, 24 + tz.transition 1931, 10, :o2, 58238845, 24 + tz.transition 1932, 4, :o3, 58243213, 24 + tz.transition 1932, 10, :o2, 58247581, 24 + tz.transition 1934, 4, :o3, 58260853, 24 + tz.transition 1934, 10, :o2, 58265221, 24 + tz.transition 1935, 3, :o3, 58269421, 24 + tz.transition 1935, 10, :o2, 58273957, 24 + tz.transition 1936, 4, :o3, 58278661, 24 + tz.transition 1936, 10, :o2, 58282693, 24 + tz.transition 1937, 4, :o3, 58287061, 24 + tz.transition 1937, 10, :o2, 58291429, 24 + tz.transition 1938, 3, :o3, 58295629, 24 + tz.transition 1938, 10, :o2, 58300165, 24 + tz.transition 1939, 4, :o3, 58304869, 24 + tz.transition 1939, 11, :o2, 58310077, 24 + tz.transition 1940, 2, :o3, 58312429, 24 + tz.transition 1940, 10, :o2, 58317805, 24 + tz.transition 1941, 4, :o3, 58322173, 24 + tz.transition 1941, 10, :o2, 58326565, 24 + tz.transition 1942, 3, :o3, 58330405, 24 + tz.transition 1942, 4, :o4, 4860951, 2 + tz.transition 1942, 8, :o3, 4861175, 2 + tz.transition 1942, 10, :o2, 58335781, 24 + tz.transition 1943, 3, :o3, 58339141, 24 + tz.transition 1943, 4, :o4, 4861665, 2 + tz.transition 1943, 8, :o3, 4861931, 2 + tz.transition 1943, 10, :o2, 58344685, 24 + tz.transition 1944, 3, :o3, 58347877, 24 + tz.transition 1944, 4, :o4, 4862407, 2 + tz.transition 1944, 8, :o3, 4862659, 2 + tz.transition 1944, 10, :o2, 58353421, 24 + tz.transition 1945, 3, :o3, 58356613, 24 + tz.transition 1945, 4, :o4, 4863135, 2 + tz.transition 1945, 8, :o3, 4863387, 2 + tz.transition 1945, 10, :o2, 58362157, 24 + tz.transition 1946, 4, :o3, 58366021, 24 + tz.transition 1946, 10, :o2, 58370389, 24 + tz.transition 1947, 4, :o3, 7296845, 3 + tz.transition 1947, 10, :o2, 7297391, 3 + tz.transition 1948, 4, :o3, 7297937, 3 + tz.transition 1948, 10, :o2, 7298483, 3 + tz.transition 1949, 4, :o3, 7299029, 3 + tz.transition 1949, 10, :o2, 7299575, 3 + tz.transition 1951, 4, :o3, 7301213, 3 + tz.transition 1951, 10, :o2, 7301780, 3 + tz.transition 1952, 4, :o3, 7302326, 3 + tz.transition 1952, 10, :o2, 7302872, 3 + tz.transition 1953, 4, :o3, 7303418, 3 + tz.transition 1953, 10, :o2, 7303964, 3 + tz.transition 1954, 4, :o3, 7304510, 3 + tz.transition 1954, 10, :o2, 7305056, 3 + tz.transition 1955, 4, :o3, 7305602, 3 + tz.transition 1955, 10, :o2, 7306148, 3 + tz.transition 1956, 4, :o3, 7306694, 3 + tz.transition 1956, 10, :o2, 7307261, 3 + tz.transition 1957, 4, :o3, 7307807, 3 + tz.transition 1957, 10, :o2, 7308353, 3 + tz.transition 1958, 4, :o3, 7308899, 3 + tz.transition 1958, 10, :o2, 7309445, 3 + tz.transition 1959, 4, :o3, 7309991, 3 + tz.transition 1959, 10, :o2, 7310537, 3 + tz.transition 1960, 4, :o3, 7311083, 3 + tz.transition 1960, 10, :o2, 7311629, 3 + tz.transition 1961, 4, :o3, 7312175, 3 + tz.transition 1961, 10, :o2, 7312721, 3 + tz.transition 1962, 4, :o3, 7313267, 3 + tz.transition 1962, 10, :o2, 7313834, 3 + tz.transition 1963, 4, :o3, 7314380, 3 + tz.transition 1963, 10, :o2, 7314926, 3 + tz.transition 1964, 4, :o3, 7315472, 3 + tz.transition 1964, 10, :o2, 7316018, 3 + tz.transition 1965, 4, :o3, 7316564, 3 + tz.transition 1965, 10, :o2, 7317110, 3 + tz.transition 1966, 4, :o5, 7317656, 3 + tz.transition 1977, 3, :o6, 228272400 + tz.transition 1977, 9, :o5, 243997200 + tz.transition 1978, 4, :o6, 260326800 + tz.transition 1978, 10, :o5, 276051600 + tz.transition 1979, 4, :o6, 291776400 + tz.transition 1979, 9, :o5, 307504800 + tz.transition 1980, 3, :o6, 323226000 + tz.transition 1980, 9, :o5, 338954400 + tz.transition 1981, 3, :o6, 354679200 + tz.transition 1981, 9, :o5, 370404000 + tz.transition 1982, 3, :o6, 386128800 + tz.transition 1982, 9, :o5, 401853600 + tz.transition 1983, 3, :o6, 417582000 + tz.transition 1983, 9, :o5, 433303200 + tz.transition 1984, 3, :o6, 449028000 + tz.transition 1984, 9, :o5, 465357600 + tz.transition 1985, 3, :o6, 481082400 + tz.transition 1985, 9, :o5, 496807200 + tz.transition 1986, 3, :o6, 512532000 + tz.transition 1986, 9, :o5, 528256800 + tz.transition 1987, 3, :o6, 543981600 + tz.transition 1987, 9, :o5, 559706400 + tz.transition 1988, 3, :o6, 575431200 + tz.transition 1988, 9, :o5, 591156000 + tz.transition 1989, 3, :o6, 606880800 + tz.transition 1989, 9, :o5, 622605600 + tz.transition 1990, 3, :o6, 638330400 + tz.transition 1990, 9, :o5, 654660000 + tz.transition 1991, 3, :o6, 670384800 + tz.transition 1991, 9, :o5, 686109600 + tz.transition 1992, 3, :o6, 701834400 + tz.transition 1992, 9, :o7, 717559200 + tz.transition 1993, 3, :o6, 733280400 + tz.transition 1993, 9, :o5, 749005200 + tz.transition 1994, 3, :o6, 764730000 + tz.transition 1994, 9, :o5, 780454800 + tz.transition 1995, 3, :o6, 796179600 + tz.transition 1995, 9, :o5, 811904400 + tz.transition 1996, 3, :o6, 828234000 + tz.transition 1996, 10, :o5, 846378000 + tz.transition 1997, 3, :o6, 859683600 + tz.transition 1997, 10, :o5, 877827600 + tz.transition 1998, 3, :o6, 891133200 + tz.transition 1998, 10, :o5, 909277200 + tz.transition 1999, 3, :o6, 922582800 + tz.transition 1999, 10, :o5, 941331600 + tz.transition 2000, 3, :o6, 954032400 + tz.transition 2000, 10, :o5, 972781200 + tz.transition 2001, 3, :o6, 985482000 + tz.transition 2001, 10, :o5, 1004230800 + tz.transition 2002, 3, :o6, 1017536400 + tz.transition 2002, 10, :o5, 1035680400 + tz.transition 2003, 3, :o6, 1048986000 + tz.transition 2003, 10, :o5, 1067130000 + tz.transition 2004, 3, :o6, 1080435600 + tz.transition 2004, 10, :o5, 1099184400 + tz.transition 2005, 3, :o6, 1111885200 + tz.transition 2005, 10, :o5, 1130634000 + tz.transition 2006, 3, :o6, 1143334800 + tz.transition 2006, 10, :o5, 1162083600 + tz.transition 2007, 3, :o6, 1174784400 + tz.transition 2007, 10, :o5, 1193533200 + tz.transition 2008, 3, :o6, 1206838800 + tz.transition 2008, 10, :o5, 1224982800 + tz.transition 2009, 3, :o6, 1238288400 + tz.transition 2009, 10, :o5, 1256432400 + tz.transition 2010, 3, :o6, 1269738000 + tz.transition 2010, 10, :o5, 1288486800 + tz.transition 2011, 3, :o6, 1301187600 + tz.transition 2011, 10, :o5, 1319936400 + tz.transition 2012, 3, :o6, 1332637200 + tz.transition 2012, 10, :o5, 1351386000 + tz.transition 2013, 3, :o6, 1364691600 + tz.transition 2013, 10, :o5, 1382835600 + tz.transition 2014, 3, :o6, 1396141200 + tz.transition 2014, 10, :o5, 1414285200 + tz.transition 2015, 3, :o6, 1427590800 + tz.transition 2015, 10, :o5, 1445734800 + tz.transition 2016, 3, :o6, 1459040400 + tz.transition 2016, 10, :o5, 1477789200 + tz.transition 2017, 3, :o6, 1490490000 + tz.transition 2017, 10, :o5, 1509238800 + tz.transition 2018, 3, :o6, 1521939600 + tz.transition 2018, 10, :o5, 1540688400 + tz.transition 2019, 3, :o6, 1553994000 + tz.transition 2019, 10, :o5, 1572138000 + tz.transition 2020, 3, :o6, 1585443600 + tz.transition 2020, 10, :o5, 1603587600 + tz.transition 2021, 3, :o6, 1616893200 + tz.transition 2021, 10, :o5, 1635642000 + tz.transition 2022, 3, :o6, 1648342800 + tz.transition 2022, 10, :o5, 1667091600 + tz.transition 2023, 3, :o6, 1679792400 + tz.transition 2023, 10, :o5, 1698541200 + tz.transition 2024, 3, :o6, 1711846800 + tz.transition 2024, 10, :o5, 1729990800 + tz.transition 2025, 3, :o6, 1743296400 + tz.transition 2025, 10, :o5, 1761440400 + tz.transition 2026, 3, :o6, 1774746000 + tz.transition 2026, 10, :o5, 1792890000 + tz.transition 2027, 3, :o6, 1806195600 + tz.transition 2027, 10, :o5, 1824944400 + tz.transition 2028, 3, :o6, 1837645200 + tz.transition 2028, 10, :o5, 1856394000 + tz.transition 2029, 3, :o6, 1869094800 + tz.transition 2029, 10, :o5, 1887843600 + tz.transition 2030, 3, :o6, 1901149200 + tz.transition 2030, 10, :o5, 1919293200 + tz.transition 2031, 3, :o6, 1932598800 + tz.transition 2031, 10, :o5, 1950742800 + tz.transition 2032, 3, :o6, 1964048400 + tz.transition 2032, 10, :o5, 1982797200 + tz.transition 2033, 3, :o6, 1995498000 + tz.transition 2033, 10, :o5, 2014246800 + tz.transition 2034, 3, :o6, 2026947600 + tz.transition 2034, 10, :o5, 2045696400 + tz.transition 2035, 3, :o6, 2058397200 + tz.transition 2035, 10, :o5, 2077146000 + tz.transition 2036, 3, :o6, 2090451600 + tz.transition 2036, 10, :o5, 2108595600 + tz.transition 2037, 3, :o6, 2121901200 + tz.transition 2037, 10, :o5, 2140045200 + tz.transition 2038, 3, :o6, 59172253, 24 + tz.transition 2038, 10, :o5, 59177461, 24 + tz.transition 2039, 3, :o6, 59180989, 24 + tz.transition 2039, 10, :o5, 59186197, 24 + tz.transition 2040, 3, :o6, 59189725, 24 + tz.transition 2040, 10, :o5, 59194933, 24 + tz.transition 2041, 3, :o6, 59198629, 24 + tz.transition 2041, 10, :o5, 59203669, 24 + tz.transition 2042, 3, :o6, 59207365, 24 + tz.transition 2042, 10, :o5, 59212405, 24 + tz.transition 2043, 3, :o6, 59216101, 24 + tz.transition 2043, 10, :o5, 59221141, 24 + tz.transition 2044, 3, :o6, 59224837, 24 + tz.transition 2044, 10, :o5, 59230045, 24 + tz.transition 2045, 3, :o6, 59233573, 24 + tz.transition 2045, 10, :o5, 59238781, 24 + tz.transition 2046, 3, :o6, 59242309, 24 + tz.transition 2046, 10, :o5, 59247517, 24 + tz.transition 2047, 3, :o6, 59251213, 24 + tz.transition 2047, 10, :o5, 59256253, 24 + tz.transition 2048, 3, :o6, 59259949, 24 + tz.transition 2048, 10, :o5, 59264989, 24 + tz.transition 2049, 3, :o6, 59268685, 24 + tz.transition 2049, 10, :o5, 59273893, 24 + tz.transition 2050, 3, :o6, 59277421, 24 + tz.transition 2050, 10, :o5, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Cape_Verde.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Cape_Verde.rb new file mode 100644 index 000000000..61c8c1504 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Cape_Verde.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Atlantic + module Cape_Verde + include TimezoneDefinition + + timezone 'Atlantic/Cape_Verde' do |tz| + tz.offset :o0, -5644, 0, :LMT + tz.offset :o1, -7200, 0, :CVT + tz.offset :o2, -7200, 3600, :CVST + tz.offset :o3, -3600, 0, :CVT + + tz.transition 1907, 1, :o1, 52219653811, 21600 + tz.transition 1942, 9, :o2, 29167243, 12 + tz.transition 1945, 10, :o1, 58361845, 24 + tz.transition 1975, 11, :o3, 186120000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/South_Georgia.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/South_Georgia.rb new file mode 100644 index 000000000..6a4cbafb9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/South_Georgia.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Atlantic + module South_Georgia + include TimezoneDefinition + + timezone 'Atlantic/South_Georgia' do |tz| + tz.offset :o0, -8768, 0, :LMT + tz.offset :o1, -7200, 0, :GST + + tz.transition 1890, 1, :o1, 1627673806, 675 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Adelaide.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Adelaide.rb new file mode 100644 index 000000000..c5d561cc1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Adelaide.rb @@ -0,0 +1,187 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Adelaide + include TimezoneDefinition + + timezone 'Australia/Adelaide' do |tz| + tz.offset :o0, 33260, 0, :LMT + tz.offset :o1, 32400, 0, :CST + tz.offset :o2, 34200, 0, :CST + tz.offset :o3, 34200, 3600, :CST + + tz.transition 1895, 1, :o1, 10425132497, 4320 + tz.transition 1899, 4, :o2, 19318201, 8 + tz.transition 1916, 12, :o3, 3486569911, 1440 + tz.transition 1917, 3, :o2, 116222983, 48 + tz.transition 1941, 12, :o3, 38885763, 16 + tz.transition 1942, 3, :o2, 116661463, 48 + tz.transition 1942, 9, :o3, 38890067, 16 + tz.transition 1943, 3, :o2, 116678935, 48 + tz.transition 1943, 10, :o3, 38896003, 16 + tz.transition 1944, 3, :o2, 116696407, 48 + tz.transition 1971, 10, :o3, 57688200 + tz.transition 1972, 2, :o2, 67969800 + tz.transition 1972, 10, :o3, 89137800 + tz.transition 1973, 3, :o2, 100024200 + tz.transition 1973, 10, :o3, 120587400 + tz.transition 1974, 3, :o2, 131473800 + tz.transition 1974, 10, :o3, 152037000 + tz.transition 1975, 3, :o2, 162923400 + tz.transition 1975, 10, :o3, 183486600 + tz.transition 1976, 3, :o2, 194977800 + tz.transition 1976, 10, :o3, 215541000 + tz.transition 1977, 3, :o2, 226427400 + tz.transition 1977, 10, :o3, 246990600 + tz.transition 1978, 3, :o2, 257877000 + tz.transition 1978, 10, :o3, 278440200 + tz.transition 1979, 3, :o2, 289326600 + tz.transition 1979, 10, :o3, 309889800 + tz.transition 1980, 3, :o2, 320776200 + tz.transition 1980, 10, :o3, 341339400 + tz.transition 1981, 2, :o2, 352225800 + tz.transition 1981, 10, :o3, 372789000 + tz.transition 1982, 3, :o2, 384280200 + tz.transition 1982, 10, :o3, 404843400 + tz.transition 1983, 3, :o2, 415729800 + tz.transition 1983, 10, :o3, 436293000 + tz.transition 1984, 3, :o2, 447179400 + tz.transition 1984, 10, :o3, 467742600 + tz.transition 1985, 3, :o2, 478629000 + tz.transition 1985, 10, :o3, 499192200 + tz.transition 1986, 3, :o2, 511288200 + tz.transition 1986, 10, :o3, 530037000 + tz.transition 1987, 3, :o2, 542737800 + tz.transition 1987, 10, :o3, 562091400 + tz.transition 1988, 3, :o2, 574792200 + tz.transition 1988, 10, :o3, 594145800 + tz.transition 1989, 3, :o2, 606241800 + tz.transition 1989, 10, :o3, 625595400 + tz.transition 1990, 3, :o2, 637691400 + tz.transition 1990, 10, :o3, 657045000 + tz.transition 1991, 3, :o2, 667931400 + tz.transition 1991, 10, :o3, 688494600 + tz.transition 1992, 3, :o2, 701195400 + tz.transition 1992, 10, :o3, 719944200 + tz.transition 1993, 3, :o2, 731435400 + tz.transition 1993, 10, :o3, 751998600 + tz.transition 1994, 3, :o2, 764094600 + tz.transition 1994, 10, :o3, 783448200 + tz.transition 1995, 3, :o2, 796149000 + tz.transition 1995, 10, :o3, 814897800 + tz.transition 1996, 3, :o2, 828203400 + tz.transition 1996, 10, :o3, 846347400 + tz.transition 1997, 3, :o2, 859653000 + tz.transition 1997, 10, :o3, 877797000 + tz.transition 1998, 3, :o2, 891102600 + tz.transition 1998, 10, :o3, 909246600 + tz.transition 1999, 3, :o2, 922552200 + tz.transition 1999, 10, :o3, 941301000 + tz.transition 2000, 3, :o2, 954001800 + tz.transition 2000, 10, :o3, 972750600 + tz.transition 2001, 3, :o2, 985451400 + tz.transition 2001, 10, :o3, 1004200200 + tz.transition 2002, 3, :o2, 1017505800 + tz.transition 2002, 10, :o3, 1035649800 + tz.transition 2003, 3, :o2, 1048955400 + tz.transition 2003, 10, :o3, 1067099400 + tz.transition 2004, 3, :o2, 1080405000 + tz.transition 2004, 10, :o3, 1099153800 + tz.transition 2005, 3, :o2, 1111854600 + tz.transition 2005, 10, :o3, 1130603400 + tz.transition 2006, 4, :o2, 1143909000 + tz.transition 2006, 10, :o3, 1162053000 + tz.transition 2007, 3, :o2, 1174753800 + tz.transition 2007, 10, :o3, 1193502600 + tz.transition 2008, 4, :o2, 1207413000 + tz.transition 2008, 10, :o3, 1223137800 + tz.transition 2009, 4, :o2, 1238862600 + tz.transition 2009, 10, :o3, 1254587400 + tz.transition 2010, 4, :o2, 1270312200 + tz.transition 2010, 10, :o3, 1286037000 + tz.transition 2011, 4, :o2, 1301761800 + tz.transition 2011, 10, :o3, 1317486600 + tz.transition 2012, 3, :o2, 1333211400 + tz.transition 2012, 10, :o3, 1349541000 + tz.transition 2013, 4, :o2, 1365265800 + tz.transition 2013, 10, :o3, 1380990600 + tz.transition 2014, 4, :o2, 1396715400 + tz.transition 2014, 10, :o3, 1412440200 + tz.transition 2015, 4, :o2, 1428165000 + tz.transition 2015, 10, :o3, 1443889800 + tz.transition 2016, 4, :o2, 1459614600 + tz.transition 2016, 10, :o3, 1475339400 + tz.transition 2017, 4, :o2, 1491064200 + tz.transition 2017, 9, :o3, 1506789000 + tz.transition 2018, 3, :o2, 1522513800 + tz.transition 2018, 10, :o3, 1538843400 + tz.transition 2019, 4, :o2, 1554568200 + tz.transition 2019, 10, :o3, 1570293000 + tz.transition 2020, 4, :o2, 1586017800 + tz.transition 2020, 10, :o3, 1601742600 + tz.transition 2021, 4, :o2, 1617467400 + tz.transition 2021, 10, :o3, 1633192200 + tz.transition 2022, 4, :o2, 1648917000 + tz.transition 2022, 10, :o3, 1664641800 + tz.transition 2023, 4, :o2, 1680366600 + tz.transition 2023, 9, :o3, 1696091400 + tz.transition 2024, 4, :o2, 1712421000 + tz.transition 2024, 10, :o3, 1728145800 + tz.transition 2025, 4, :o2, 1743870600 + tz.transition 2025, 10, :o3, 1759595400 + tz.transition 2026, 4, :o2, 1775320200 + tz.transition 2026, 10, :o3, 1791045000 + tz.transition 2027, 4, :o2, 1806769800 + tz.transition 2027, 10, :o3, 1822494600 + tz.transition 2028, 4, :o2, 1838219400 + tz.transition 2028, 9, :o3, 1853944200 + tz.transition 2029, 3, :o2, 1869669000 + tz.transition 2029, 10, :o3, 1885998600 + tz.transition 2030, 4, :o2, 1901723400 + tz.transition 2030, 10, :o3, 1917448200 + tz.transition 2031, 4, :o2, 1933173000 + tz.transition 2031, 10, :o3, 1948897800 + tz.transition 2032, 4, :o2, 1964622600 + tz.transition 2032, 10, :o3, 1980347400 + tz.transition 2033, 4, :o2, 1996072200 + tz.transition 2033, 10, :o3, 2011797000 + tz.transition 2034, 4, :o2, 2027521800 + tz.transition 2034, 9, :o3, 2043246600 + tz.transition 2035, 3, :o2, 2058971400 + tz.transition 2035, 10, :o3, 2075301000 + tz.transition 2036, 4, :o2, 2091025800 + tz.transition 2036, 10, :o3, 2106750600 + tz.transition 2037, 4, :o2, 2122475400 + tz.transition 2037, 10, :o3, 2138200200 + tz.transition 2038, 4, :o2, 39448275, 16 + tz.transition 2038, 10, :o3, 39451187, 16 + tz.transition 2039, 4, :o2, 39454099, 16 + tz.transition 2039, 10, :o3, 39457011, 16 + tz.transition 2040, 3, :o2, 39459923, 16 + tz.transition 2040, 10, :o3, 39462947, 16 + tz.transition 2041, 4, :o2, 39465859, 16 + tz.transition 2041, 10, :o3, 39468771, 16 + tz.transition 2042, 4, :o2, 39471683, 16 + tz.transition 2042, 10, :o3, 39474595, 16 + tz.transition 2043, 4, :o2, 39477507, 16 + tz.transition 2043, 10, :o3, 39480419, 16 + tz.transition 2044, 4, :o2, 39483331, 16 + tz.transition 2044, 10, :o3, 39486243, 16 + tz.transition 2045, 4, :o2, 39489155, 16 + tz.transition 2045, 9, :o3, 39492067, 16 + tz.transition 2046, 3, :o2, 39494979, 16 + tz.transition 2046, 10, :o3, 39498003, 16 + tz.transition 2047, 4, :o2, 39500915, 16 + tz.transition 2047, 10, :o3, 39503827, 16 + tz.transition 2048, 4, :o2, 39506739, 16 + tz.transition 2048, 10, :o3, 39509651, 16 + tz.transition 2049, 4, :o2, 39512563, 16 + tz.transition 2049, 10, :o3, 39515475, 16 + tz.transition 2050, 4, :o2, 39518387, 16 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Brisbane.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Brisbane.rb new file mode 100644 index 000000000..dd85ddae9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Brisbane.rb @@ -0,0 +1,35 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Brisbane + include TimezoneDefinition + + timezone 'Australia/Brisbane' do |tz| + tz.offset :o0, 36728, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1894, 12, :o1, 26062496009, 10800 + tz.transition 1916, 12, :o2, 3486569881, 1440 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 636480000 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 667929600 + tz.transition 1991, 10, :o2, 688492800 + tz.transition 1992, 2, :o1, 699379200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Darwin.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Darwin.rb new file mode 100644 index 000000000..17de88124 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Darwin.rb @@ -0,0 +1,29 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Darwin + include TimezoneDefinition + + timezone 'Australia/Darwin' do |tz| + tz.offset :o0, 31400, 0, :LMT + tz.offset :o1, 32400, 0, :CST + tz.offset :o2, 34200, 0, :CST + tz.offset :o3, 34200, 3600, :CST + + tz.transition 1895, 1, :o1, 1042513259, 432 + tz.transition 1899, 4, :o2, 19318201, 8 + tz.transition 1916, 12, :o3, 3486569911, 1440 + tz.transition 1917, 3, :o2, 116222983, 48 + tz.transition 1941, 12, :o3, 38885763, 16 + tz.transition 1942, 3, :o2, 116661463, 48 + tz.transition 1942, 9, :o3, 38890067, 16 + tz.transition 1943, 3, :o2, 116678935, 48 + tz.transition 1943, 10, :o3, 38896003, 16 + tz.transition 1944, 3, :o2, 116696407, 48 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Hobart.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Hobart.rb new file mode 100644 index 000000000..11384b984 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Hobart.rb @@ -0,0 +1,193 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Hobart + include TimezoneDefinition + + timezone 'Australia/Hobart' do |tz| + tz.offset :o0, 35356, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1895, 8, :o1, 52130241161, 21600 + tz.transition 1916, 9, :o2, 14526823, 6 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1967, 9, :o2, 14638585, 6 + tz.transition 1968, 3, :o1, 14639677, 6 + tz.transition 1968, 10, :o2, 14640937, 6 + tz.transition 1969, 3, :o1, 14641735, 6 + tz.transition 1969, 10, :o2, 14643121, 6 + tz.transition 1970, 3, :o1, 5673600 + tz.transition 1970, 10, :o2, 25632000 + tz.transition 1971, 3, :o1, 37728000 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1972, 10, :o2, 89136000 + tz.transition 1973, 3, :o1, 100022400 + tz.transition 1973, 10, :o2, 120585600 + tz.transition 1974, 3, :o1, 131472000 + tz.transition 1974, 10, :o2, 152035200 + tz.transition 1975, 3, :o1, 162921600 + tz.transition 1975, 10, :o2, 183484800 + tz.transition 1976, 3, :o1, 194976000 + tz.transition 1976, 10, :o2, 215539200 + tz.transition 1977, 3, :o1, 226425600 + tz.transition 1977, 10, :o2, 246988800 + tz.transition 1978, 3, :o1, 257875200 + tz.transition 1978, 10, :o2, 278438400 + tz.transition 1979, 3, :o1, 289324800 + tz.transition 1979, 10, :o2, 309888000 + tz.transition 1980, 3, :o1, 320774400 + tz.transition 1980, 10, :o2, 341337600 + tz.transition 1981, 2, :o1, 352224000 + tz.transition 1981, 10, :o2, 372787200 + tz.transition 1982, 3, :o1, 386092800 + tz.transition 1982, 10, :o2, 404841600 + tz.transition 1983, 3, :o1, 417542400 + tz.transition 1983, 10, :o2, 436291200 + tz.transition 1984, 3, :o1, 447177600 + tz.transition 1984, 10, :o2, 467740800 + tz.transition 1985, 3, :o1, 478627200 + tz.transition 1985, 10, :o2, 499190400 + tz.transition 1986, 3, :o1, 510076800 + tz.transition 1986, 10, :o2, 530035200 + tz.transition 1987, 3, :o1, 542736000 + tz.transition 1987, 10, :o2, 562089600 + tz.transition 1988, 3, :o1, 574790400 + tz.transition 1988, 10, :o2, 594144000 + tz.transition 1989, 3, :o1, 606240000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 637689600 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 670348800 + tz.transition 1991, 10, :o2, 686678400 + tz.transition 1992, 3, :o1, 701798400 + tz.transition 1992, 10, :o2, 718128000 + tz.transition 1993, 3, :o1, 733248000 + tz.transition 1993, 10, :o2, 749577600 + tz.transition 1994, 3, :o1, 764697600 + tz.transition 1994, 10, :o2, 781027200 + tz.transition 1995, 3, :o1, 796147200 + tz.transition 1995, 9, :o2, 812476800 + tz.transition 1996, 3, :o1, 828201600 + tz.transition 1996, 10, :o2, 844531200 + tz.transition 1997, 3, :o1, 859651200 + tz.transition 1997, 10, :o2, 875980800 + tz.transition 1998, 3, :o1, 891100800 + tz.transition 1998, 10, :o2, 907430400 + tz.transition 1999, 3, :o1, 922550400 + tz.transition 1999, 10, :o2, 938880000 + tz.transition 2000, 3, :o1, 954000000 + tz.transition 2000, 8, :o2, 967305600 + tz.transition 2001, 3, :o1, 985449600 + tz.transition 2001, 10, :o2, 1002384000 + tz.transition 2002, 3, :o1, 1017504000 + tz.transition 2002, 10, :o2, 1033833600 + tz.transition 2003, 3, :o1, 1048953600 + tz.transition 2003, 10, :o2, 1065283200 + tz.transition 2004, 3, :o1, 1080403200 + tz.transition 2004, 10, :o2, 1096732800 + tz.transition 2005, 3, :o1, 1111852800 + tz.transition 2005, 10, :o2, 1128182400 + tz.transition 2006, 4, :o1, 1143907200 + tz.transition 2006, 9, :o2, 1159632000 + tz.transition 2007, 3, :o1, 1174752000 + tz.transition 2007, 10, :o2, 1191686400 + tz.transition 2008, 4, :o1, 1207411200 + tz.transition 2008, 10, :o2, 1223136000 + tz.transition 2009, 4, :o1, 1238860800 + tz.transition 2009, 10, :o2, 1254585600 + tz.transition 2010, 4, :o1, 1270310400 + tz.transition 2010, 10, :o2, 1286035200 + tz.transition 2011, 4, :o1, 1301760000 + tz.transition 2011, 10, :o2, 1317484800 + tz.transition 2012, 3, :o1, 1333209600 + tz.transition 2012, 10, :o2, 1349539200 + tz.transition 2013, 4, :o1, 1365264000 + tz.transition 2013, 10, :o2, 1380988800 + tz.transition 2014, 4, :o1, 1396713600 + tz.transition 2014, 10, :o2, 1412438400 + tz.transition 2015, 4, :o1, 1428163200 + tz.transition 2015, 10, :o2, 1443888000 + tz.transition 2016, 4, :o1, 1459612800 + tz.transition 2016, 10, :o2, 1475337600 + tz.transition 2017, 4, :o1, 1491062400 + tz.transition 2017, 9, :o2, 1506787200 + tz.transition 2018, 3, :o1, 1522512000 + tz.transition 2018, 10, :o2, 1538841600 + tz.transition 2019, 4, :o1, 1554566400 + tz.transition 2019, 10, :o2, 1570291200 + tz.transition 2020, 4, :o1, 1586016000 + tz.transition 2020, 10, :o2, 1601740800 + tz.transition 2021, 4, :o1, 1617465600 + tz.transition 2021, 10, :o2, 1633190400 + tz.transition 2022, 4, :o1, 1648915200 + tz.transition 2022, 10, :o2, 1664640000 + tz.transition 2023, 4, :o1, 1680364800 + tz.transition 2023, 9, :o2, 1696089600 + tz.transition 2024, 4, :o1, 1712419200 + tz.transition 2024, 10, :o2, 1728144000 + tz.transition 2025, 4, :o1, 1743868800 + tz.transition 2025, 10, :o2, 1759593600 + tz.transition 2026, 4, :o1, 1775318400 + tz.transition 2026, 10, :o2, 1791043200 + tz.transition 2027, 4, :o1, 1806768000 + tz.transition 2027, 10, :o2, 1822492800 + tz.transition 2028, 4, :o1, 1838217600 + tz.transition 2028, 9, :o2, 1853942400 + tz.transition 2029, 3, :o1, 1869667200 + tz.transition 2029, 10, :o2, 1885996800 + tz.transition 2030, 4, :o1, 1901721600 + tz.transition 2030, 10, :o2, 1917446400 + tz.transition 2031, 4, :o1, 1933171200 + tz.transition 2031, 10, :o2, 1948896000 + tz.transition 2032, 4, :o1, 1964620800 + tz.transition 2032, 10, :o2, 1980345600 + tz.transition 2033, 4, :o1, 1996070400 + tz.transition 2033, 10, :o2, 2011795200 + tz.transition 2034, 4, :o1, 2027520000 + tz.transition 2034, 9, :o2, 2043244800 + tz.transition 2035, 3, :o1, 2058969600 + tz.transition 2035, 10, :o2, 2075299200 + tz.transition 2036, 4, :o1, 2091024000 + tz.transition 2036, 10, :o2, 2106748800 + tz.transition 2037, 4, :o1, 2122473600 + tz.transition 2037, 10, :o2, 2138198400 + tz.transition 2038, 4, :o1, 14793103, 6 + tz.transition 2038, 10, :o2, 14794195, 6 + tz.transition 2039, 4, :o1, 14795287, 6 + tz.transition 2039, 10, :o2, 14796379, 6 + tz.transition 2040, 3, :o1, 14797471, 6 + tz.transition 2040, 10, :o2, 14798605, 6 + tz.transition 2041, 4, :o1, 14799697, 6 + tz.transition 2041, 10, :o2, 14800789, 6 + tz.transition 2042, 4, :o1, 14801881, 6 + tz.transition 2042, 10, :o2, 14802973, 6 + tz.transition 2043, 4, :o1, 14804065, 6 + tz.transition 2043, 10, :o2, 14805157, 6 + tz.transition 2044, 4, :o1, 14806249, 6 + tz.transition 2044, 10, :o2, 14807341, 6 + tz.transition 2045, 4, :o1, 14808433, 6 + tz.transition 2045, 9, :o2, 14809525, 6 + tz.transition 2046, 3, :o1, 14810617, 6 + tz.transition 2046, 10, :o2, 14811751, 6 + tz.transition 2047, 4, :o1, 14812843, 6 + tz.transition 2047, 10, :o2, 14813935, 6 + tz.transition 2048, 4, :o1, 14815027, 6 + tz.transition 2048, 10, :o2, 14816119, 6 + tz.transition 2049, 4, :o1, 14817211, 6 + tz.transition 2049, 10, :o2, 14818303, 6 + tz.transition 2050, 4, :o1, 14819395, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Melbourne.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Melbourne.rb new file mode 100644 index 000000000..c1304488e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Melbourne.rb @@ -0,0 +1,185 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Melbourne + include TimezoneDefinition + + timezone 'Australia/Melbourne' do |tz| + tz.offset :o0, 34792, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1895, 1, :o1, 26062831051, 10800 + tz.transition 1916, 12, :o2, 3486569881, 1440 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1972, 10, :o2, 89136000 + tz.transition 1973, 3, :o1, 100022400 + tz.transition 1973, 10, :o2, 120585600 + tz.transition 1974, 3, :o1, 131472000 + tz.transition 1974, 10, :o2, 152035200 + tz.transition 1975, 3, :o1, 162921600 + tz.transition 1975, 10, :o2, 183484800 + tz.transition 1976, 3, :o1, 194976000 + tz.transition 1976, 10, :o2, 215539200 + tz.transition 1977, 3, :o1, 226425600 + tz.transition 1977, 10, :o2, 246988800 + tz.transition 1978, 3, :o1, 257875200 + tz.transition 1978, 10, :o2, 278438400 + tz.transition 1979, 3, :o1, 289324800 + tz.transition 1979, 10, :o2, 309888000 + tz.transition 1980, 3, :o1, 320774400 + tz.transition 1980, 10, :o2, 341337600 + tz.transition 1981, 2, :o1, 352224000 + tz.transition 1981, 10, :o2, 372787200 + tz.transition 1982, 3, :o1, 384278400 + tz.transition 1982, 10, :o2, 404841600 + tz.transition 1983, 3, :o1, 415728000 + tz.transition 1983, 10, :o2, 436291200 + tz.transition 1984, 3, :o1, 447177600 + tz.transition 1984, 10, :o2, 467740800 + tz.transition 1985, 3, :o1, 478627200 + tz.transition 1985, 10, :o2, 499190400 + tz.transition 1986, 3, :o1, 511286400 + tz.transition 1986, 10, :o2, 530035200 + tz.transition 1987, 3, :o1, 542736000 + tz.transition 1987, 10, :o2, 561484800 + tz.transition 1988, 3, :o1, 574790400 + tz.transition 1988, 10, :o2, 594144000 + tz.transition 1989, 3, :o1, 606240000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 637689600 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 667929600 + tz.transition 1991, 10, :o2, 688492800 + tz.transition 1992, 2, :o1, 699379200 + tz.transition 1992, 10, :o2, 719942400 + tz.transition 1993, 3, :o1, 731433600 + tz.transition 1993, 10, :o2, 751996800 + tz.transition 1994, 3, :o1, 762883200 + tz.transition 1994, 10, :o2, 783446400 + tz.transition 1995, 3, :o1, 796147200 + tz.transition 1995, 10, :o2, 814896000 + tz.transition 1996, 3, :o1, 828201600 + tz.transition 1996, 10, :o2, 846345600 + tz.transition 1997, 3, :o1, 859651200 + tz.transition 1997, 10, :o2, 877795200 + tz.transition 1998, 3, :o1, 891100800 + tz.transition 1998, 10, :o2, 909244800 + tz.transition 1999, 3, :o1, 922550400 + tz.transition 1999, 10, :o2, 941299200 + tz.transition 2000, 3, :o1, 954000000 + tz.transition 2000, 8, :o2, 967305600 + tz.transition 2001, 3, :o1, 985449600 + tz.transition 2001, 10, :o2, 1004198400 + tz.transition 2002, 3, :o1, 1017504000 + tz.transition 2002, 10, :o2, 1035648000 + tz.transition 2003, 3, :o1, 1048953600 + tz.transition 2003, 10, :o2, 1067097600 + tz.transition 2004, 3, :o1, 1080403200 + tz.transition 2004, 10, :o2, 1099152000 + tz.transition 2005, 3, :o1, 1111852800 + tz.transition 2005, 10, :o2, 1130601600 + tz.transition 2006, 4, :o1, 1143907200 + tz.transition 2006, 10, :o2, 1162051200 + tz.transition 2007, 3, :o1, 1174752000 + tz.transition 2007, 10, :o2, 1193500800 + tz.transition 2008, 4, :o1, 1207411200 + tz.transition 2008, 10, :o2, 1223136000 + tz.transition 2009, 4, :o1, 1238860800 + tz.transition 2009, 10, :o2, 1254585600 + tz.transition 2010, 4, :o1, 1270310400 + tz.transition 2010, 10, :o2, 1286035200 + tz.transition 2011, 4, :o1, 1301760000 + tz.transition 2011, 10, :o2, 1317484800 + tz.transition 2012, 3, :o1, 1333209600 + tz.transition 2012, 10, :o2, 1349539200 + tz.transition 2013, 4, :o1, 1365264000 + tz.transition 2013, 10, :o2, 1380988800 + tz.transition 2014, 4, :o1, 1396713600 + tz.transition 2014, 10, :o2, 1412438400 + tz.transition 2015, 4, :o1, 1428163200 + tz.transition 2015, 10, :o2, 1443888000 + tz.transition 2016, 4, :o1, 1459612800 + tz.transition 2016, 10, :o2, 1475337600 + tz.transition 2017, 4, :o1, 1491062400 + tz.transition 2017, 9, :o2, 1506787200 + tz.transition 2018, 3, :o1, 1522512000 + tz.transition 2018, 10, :o2, 1538841600 + tz.transition 2019, 4, :o1, 1554566400 + tz.transition 2019, 10, :o2, 1570291200 + tz.transition 2020, 4, :o1, 1586016000 + tz.transition 2020, 10, :o2, 1601740800 + tz.transition 2021, 4, :o1, 1617465600 + tz.transition 2021, 10, :o2, 1633190400 + tz.transition 2022, 4, :o1, 1648915200 + tz.transition 2022, 10, :o2, 1664640000 + tz.transition 2023, 4, :o1, 1680364800 + tz.transition 2023, 9, :o2, 1696089600 + tz.transition 2024, 4, :o1, 1712419200 + tz.transition 2024, 10, :o2, 1728144000 + tz.transition 2025, 4, :o1, 1743868800 + tz.transition 2025, 10, :o2, 1759593600 + tz.transition 2026, 4, :o1, 1775318400 + tz.transition 2026, 10, :o2, 1791043200 + tz.transition 2027, 4, :o1, 1806768000 + tz.transition 2027, 10, :o2, 1822492800 + tz.transition 2028, 4, :o1, 1838217600 + tz.transition 2028, 9, :o2, 1853942400 + tz.transition 2029, 3, :o1, 1869667200 + tz.transition 2029, 10, :o2, 1885996800 + tz.transition 2030, 4, :o1, 1901721600 + tz.transition 2030, 10, :o2, 1917446400 + tz.transition 2031, 4, :o1, 1933171200 + tz.transition 2031, 10, :o2, 1948896000 + tz.transition 2032, 4, :o1, 1964620800 + tz.transition 2032, 10, :o2, 1980345600 + tz.transition 2033, 4, :o1, 1996070400 + tz.transition 2033, 10, :o2, 2011795200 + tz.transition 2034, 4, :o1, 2027520000 + tz.transition 2034, 9, :o2, 2043244800 + tz.transition 2035, 3, :o1, 2058969600 + tz.transition 2035, 10, :o2, 2075299200 + tz.transition 2036, 4, :o1, 2091024000 + tz.transition 2036, 10, :o2, 2106748800 + tz.transition 2037, 4, :o1, 2122473600 + tz.transition 2037, 10, :o2, 2138198400 + tz.transition 2038, 4, :o1, 14793103, 6 + tz.transition 2038, 10, :o2, 14794195, 6 + tz.transition 2039, 4, :o1, 14795287, 6 + tz.transition 2039, 10, :o2, 14796379, 6 + tz.transition 2040, 3, :o1, 14797471, 6 + tz.transition 2040, 10, :o2, 14798605, 6 + tz.transition 2041, 4, :o1, 14799697, 6 + tz.transition 2041, 10, :o2, 14800789, 6 + tz.transition 2042, 4, :o1, 14801881, 6 + tz.transition 2042, 10, :o2, 14802973, 6 + tz.transition 2043, 4, :o1, 14804065, 6 + tz.transition 2043, 10, :o2, 14805157, 6 + tz.transition 2044, 4, :o1, 14806249, 6 + tz.transition 2044, 10, :o2, 14807341, 6 + tz.transition 2045, 4, :o1, 14808433, 6 + tz.transition 2045, 9, :o2, 14809525, 6 + tz.transition 2046, 3, :o1, 14810617, 6 + tz.transition 2046, 10, :o2, 14811751, 6 + tz.transition 2047, 4, :o1, 14812843, 6 + tz.transition 2047, 10, :o2, 14813935, 6 + tz.transition 2048, 4, :o1, 14815027, 6 + tz.transition 2048, 10, :o2, 14816119, 6 + tz.transition 2049, 4, :o1, 14817211, 6 + tz.transition 2049, 10, :o2, 14818303, 6 + tz.transition 2050, 4, :o1, 14819395, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Perth.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Perth.rb new file mode 100644 index 000000000..d9e66f14a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Perth.rb @@ -0,0 +1,37 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Perth + include TimezoneDefinition + + timezone 'Australia/Perth' do |tz| + tz.offset :o0, 27804, 0, :LMT + tz.offset :o1, 28800, 0, :WST + tz.offset :o2, 28800, 3600, :WST + + tz.transition 1895, 11, :o1, 17377402883, 7200 + tz.transition 1916, 12, :o2, 3486570001, 1440 + tz.transition 1917, 3, :o1, 58111493, 24 + tz.transition 1941, 12, :o2, 9721441, 4 + tz.transition 1942, 3, :o1, 58330733, 24 + tz.transition 1942, 9, :o2, 9722517, 4 + tz.transition 1943, 3, :o1, 58339469, 24 + tz.transition 1974, 10, :o2, 152042400 + tz.transition 1975, 3, :o1, 162928800 + tz.transition 1983, 10, :o2, 436298400 + tz.transition 1984, 3, :o1, 447184800 + tz.transition 1991, 11, :o2, 690314400 + tz.transition 1992, 2, :o1, 699386400 + tz.transition 2006, 12, :o2, 1165082400 + tz.transition 2007, 3, :o1, 1174759200 + tz.transition 2007, 10, :o2, 1193508000 + tz.transition 2008, 3, :o1, 1206813600 + tz.transition 2008, 10, :o2, 1224957600 + tz.transition 2009, 3, :o1, 1238263200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Sydney.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Sydney.rb new file mode 100644 index 000000000..9062bd7c3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Sydney.rb @@ -0,0 +1,185 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Sydney + include TimezoneDefinition + + timezone 'Australia/Sydney' do |tz| + tz.offset :o0, 36292, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1895, 1, :o1, 52125661727, 21600 + tz.transition 1916, 12, :o2, 3486569881, 1440 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1972, 10, :o2, 89136000 + tz.transition 1973, 3, :o1, 100022400 + tz.transition 1973, 10, :o2, 120585600 + tz.transition 1974, 3, :o1, 131472000 + tz.transition 1974, 10, :o2, 152035200 + tz.transition 1975, 3, :o1, 162921600 + tz.transition 1975, 10, :o2, 183484800 + tz.transition 1976, 3, :o1, 194976000 + tz.transition 1976, 10, :o2, 215539200 + tz.transition 1977, 3, :o1, 226425600 + tz.transition 1977, 10, :o2, 246988800 + tz.transition 1978, 3, :o1, 257875200 + tz.transition 1978, 10, :o2, 278438400 + tz.transition 1979, 3, :o1, 289324800 + tz.transition 1979, 10, :o2, 309888000 + tz.transition 1980, 3, :o1, 320774400 + tz.transition 1980, 10, :o2, 341337600 + tz.transition 1981, 2, :o1, 352224000 + tz.transition 1981, 10, :o2, 372787200 + tz.transition 1982, 4, :o1, 386697600 + tz.transition 1982, 10, :o2, 404841600 + tz.transition 1983, 3, :o1, 415728000 + tz.transition 1983, 10, :o2, 436291200 + tz.transition 1984, 3, :o1, 447177600 + tz.transition 1984, 10, :o2, 467740800 + tz.transition 1985, 3, :o1, 478627200 + tz.transition 1985, 10, :o2, 499190400 + tz.transition 1986, 3, :o1, 511286400 + tz.transition 1986, 10, :o2, 530035200 + tz.transition 1987, 3, :o1, 542736000 + tz.transition 1987, 10, :o2, 562089600 + tz.transition 1988, 3, :o1, 574790400 + tz.transition 1988, 10, :o2, 594144000 + tz.transition 1989, 3, :o1, 606240000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 636480000 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 667929600 + tz.transition 1991, 10, :o2, 688492800 + tz.transition 1992, 2, :o1, 699379200 + tz.transition 1992, 10, :o2, 719942400 + tz.transition 1993, 3, :o1, 731433600 + tz.transition 1993, 10, :o2, 751996800 + tz.transition 1994, 3, :o1, 762883200 + tz.transition 1994, 10, :o2, 783446400 + tz.transition 1995, 3, :o1, 794332800 + tz.transition 1995, 10, :o2, 814896000 + tz.transition 1996, 3, :o1, 828201600 + tz.transition 1996, 10, :o2, 846345600 + tz.transition 1997, 3, :o1, 859651200 + tz.transition 1997, 10, :o2, 877795200 + tz.transition 1998, 3, :o1, 891100800 + tz.transition 1998, 10, :o2, 909244800 + tz.transition 1999, 3, :o1, 922550400 + tz.transition 1999, 10, :o2, 941299200 + tz.transition 2000, 3, :o1, 954000000 + tz.transition 2000, 8, :o2, 967305600 + tz.transition 2001, 3, :o1, 985449600 + tz.transition 2001, 10, :o2, 1004198400 + tz.transition 2002, 3, :o1, 1017504000 + tz.transition 2002, 10, :o2, 1035648000 + tz.transition 2003, 3, :o1, 1048953600 + tz.transition 2003, 10, :o2, 1067097600 + tz.transition 2004, 3, :o1, 1080403200 + tz.transition 2004, 10, :o2, 1099152000 + tz.transition 2005, 3, :o1, 1111852800 + tz.transition 2005, 10, :o2, 1130601600 + tz.transition 2006, 4, :o1, 1143907200 + tz.transition 2006, 10, :o2, 1162051200 + tz.transition 2007, 3, :o1, 1174752000 + tz.transition 2007, 10, :o2, 1193500800 + tz.transition 2008, 4, :o1, 1207411200 + tz.transition 2008, 10, :o2, 1223136000 + tz.transition 2009, 4, :o1, 1238860800 + tz.transition 2009, 10, :o2, 1254585600 + tz.transition 2010, 4, :o1, 1270310400 + tz.transition 2010, 10, :o2, 1286035200 + tz.transition 2011, 4, :o1, 1301760000 + tz.transition 2011, 10, :o2, 1317484800 + tz.transition 2012, 3, :o1, 1333209600 + tz.transition 2012, 10, :o2, 1349539200 + tz.transition 2013, 4, :o1, 1365264000 + tz.transition 2013, 10, :o2, 1380988800 + tz.transition 2014, 4, :o1, 1396713600 + tz.transition 2014, 10, :o2, 1412438400 + tz.transition 2015, 4, :o1, 1428163200 + tz.transition 2015, 10, :o2, 1443888000 + tz.transition 2016, 4, :o1, 1459612800 + tz.transition 2016, 10, :o2, 1475337600 + tz.transition 2017, 4, :o1, 1491062400 + tz.transition 2017, 9, :o2, 1506787200 + tz.transition 2018, 3, :o1, 1522512000 + tz.transition 2018, 10, :o2, 1538841600 + tz.transition 2019, 4, :o1, 1554566400 + tz.transition 2019, 10, :o2, 1570291200 + tz.transition 2020, 4, :o1, 1586016000 + tz.transition 2020, 10, :o2, 1601740800 + tz.transition 2021, 4, :o1, 1617465600 + tz.transition 2021, 10, :o2, 1633190400 + tz.transition 2022, 4, :o1, 1648915200 + tz.transition 2022, 10, :o2, 1664640000 + tz.transition 2023, 4, :o1, 1680364800 + tz.transition 2023, 9, :o2, 1696089600 + tz.transition 2024, 4, :o1, 1712419200 + tz.transition 2024, 10, :o2, 1728144000 + tz.transition 2025, 4, :o1, 1743868800 + tz.transition 2025, 10, :o2, 1759593600 + tz.transition 2026, 4, :o1, 1775318400 + tz.transition 2026, 10, :o2, 1791043200 + tz.transition 2027, 4, :o1, 1806768000 + tz.transition 2027, 10, :o2, 1822492800 + tz.transition 2028, 4, :o1, 1838217600 + tz.transition 2028, 9, :o2, 1853942400 + tz.transition 2029, 3, :o1, 1869667200 + tz.transition 2029, 10, :o2, 1885996800 + tz.transition 2030, 4, :o1, 1901721600 + tz.transition 2030, 10, :o2, 1917446400 + tz.transition 2031, 4, :o1, 1933171200 + tz.transition 2031, 10, :o2, 1948896000 + tz.transition 2032, 4, :o1, 1964620800 + tz.transition 2032, 10, :o2, 1980345600 + tz.transition 2033, 4, :o1, 1996070400 + tz.transition 2033, 10, :o2, 2011795200 + tz.transition 2034, 4, :o1, 2027520000 + tz.transition 2034, 9, :o2, 2043244800 + tz.transition 2035, 3, :o1, 2058969600 + tz.transition 2035, 10, :o2, 2075299200 + tz.transition 2036, 4, :o1, 2091024000 + tz.transition 2036, 10, :o2, 2106748800 + tz.transition 2037, 4, :o1, 2122473600 + tz.transition 2037, 10, :o2, 2138198400 + tz.transition 2038, 4, :o1, 14793103, 6 + tz.transition 2038, 10, :o2, 14794195, 6 + tz.transition 2039, 4, :o1, 14795287, 6 + tz.transition 2039, 10, :o2, 14796379, 6 + tz.transition 2040, 3, :o1, 14797471, 6 + tz.transition 2040, 10, :o2, 14798605, 6 + tz.transition 2041, 4, :o1, 14799697, 6 + tz.transition 2041, 10, :o2, 14800789, 6 + tz.transition 2042, 4, :o1, 14801881, 6 + tz.transition 2042, 10, :o2, 14802973, 6 + tz.transition 2043, 4, :o1, 14804065, 6 + tz.transition 2043, 10, :o2, 14805157, 6 + tz.transition 2044, 4, :o1, 14806249, 6 + tz.transition 2044, 10, :o2, 14807341, 6 + tz.transition 2045, 4, :o1, 14808433, 6 + tz.transition 2045, 9, :o2, 14809525, 6 + tz.transition 2046, 3, :o1, 14810617, 6 + tz.transition 2046, 10, :o2, 14811751, 6 + tz.transition 2047, 4, :o1, 14812843, 6 + tz.transition 2047, 10, :o2, 14813935, 6 + tz.transition 2048, 4, :o1, 14815027, 6 + tz.transition 2048, 10, :o2, 14816119, 6 + tz.transition 2049, 4, :o1, 14817211, 6 + tz.transition 2049, 10, :o2, 14818303, 6 + tz.transition 2050, 4, :o1, 14819395, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Etc/UTC.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Etc/UTC.rb new file mode 100644 index 000000000..28b2c6a04 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Etc/UTC.rb @@ -0,0 +1,16 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Etc + module UTC + include TimezoneDefinition + + timezone 'Etc/UTC' do |tz| + tz.offset :o0, 0, 0, :UTC + + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Amsterdam.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Amsterdam.rb new file mode 100644 index 000000000..2d0c95c4b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Amsterdam.rb @@ -0,0 +1,228 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Amsterdam + include TimezoneDefinition + + timezone 'Europe/Amsterdam' do |tz| + tz.offset :o0, 1172, 0, :LMT + tz.offset :o1, 1172, 0, :AMT + tz.offset :o2, 1172, 3600, :NST + tz.offset :o3, 1200, 3600, :NEST + tz.offset :o4, 1200, 0, :NET + tz.offset :o5, 3600, 3600, :CEST + tz.offset :o6, 3600, 0, :CET + + tz.transition 1834, 12, :o1, 51651636907, 21600 + tz.transition 1916, 4, :o2, 52293264907, 21600 + tz.transition 1916, 9, :o1, 52296568807, 21600 + tz.transition 1917, 4, :o2, 52300826707, 21600 + tz.transition 1917, 9, :o1, 52304153107, 21600 + tz.transition 1918, 4, :o2, 52308386707, 21600 + tz.transition 1918, 9, :o1, 52312317907, 21600 + tz.transition 1919, 4, :o2, 52316400307, 21600 + tz.transition 1919, 9, :o1, 52320180307, 21600 + tz.transition 1920, 4, :o2, 52324262707, 21600 + tz.transition 1920, 9, :o1, 52328042707, 21600 + tz.transition 1921, 4, :o2, 52332125107, 21600 + tz.transition 1921, 9, :o1, 52335905107, 21600 + tz.transition 1922, 3, :o2, 52339814707, 21600 + tz.transition 1922, 10, :o1, 52344048307, 21600 + tz.transition 1923, 6, :o2, 52349145907, 21600 + tz.transition 1923, 10, :o1, 52351910707, 21600 + tz.transition 1924, 3, :o2, 52355690707, 21600 + tz.transition 1924, 10, :o1, 52359773107, 21600 + tz.transition 1925, 6, :o2, 52365021907, 21600 + tz.transition 1925, 10, :o1, 52367635507, 21600 + tz.transition 1926, 5, :o2, 52372452307, 21600 + tz.transition 1926, 10, :o1, 52375497907, 21600 + tz.transition 1927, 5, :o2, 52380336307, 21600 + tz.transition 1927, 10, :o1, 52383360307, 21600 + tz.transition 1928, 5, :o2, 52388241907, 21600 + tz.transition 1928, 10, :o1, 52391373907, 21600 + tz.transition 1929, 5, :o2, 52396125907, 21600 + tz.transition 1929, 10, :o1, 52399236307, 21600 + tz.transition 1930, 5, :o2, 52404009907, 21600 + tz.transition 1930, 10, :o1, 52407098707, 21600 + tz.transition 1931, 5, :o2, 52411893907, 21600 + tz.transition 1931, 10, :o1, 52414961107, 21600 + tz.transition 1932, 5, :o2, 52419950707, 21600 + tz.transition 1932, 10, :o1, 52422823507, 21600 + tz.transition 1933, 5, :o2, 52427683507, 21600 + tz.transition 1933, 10, :o1, 52430837107, 21600 + tz.transition 1934, 5, :o2, 52435567507, 21600 + tz.transition 1934, 10, :o1, 52438699507, 21600 + tz.transition 1935, 5, :o2, 52443451507, 21600 + tz.transition 1935, 10, :o1, 52446561907, 21600 + tz.transition 1936, 5, :o2, 52451357107, 21600 + tz.transition 1936, 10, :o1, 52454424307, 21600 + tz.transition 1937, 5, :o2, 52459392307, 21600 + tz.transition 1937, 6, :o3, 52460253607, 21600 + tz.transition 1937, 10, :o4, 174874289, 72 + tz.transition 1938, 5, :o3, 174890417, 72 + tz.transition 1938, 10, :o4, 174900497, 72 + tz.transition 1939, 5, :o3, 174916697, 72 + tz.transition 1939, 10, :o4, 174927209, 72 + tz.transition 1940, 5, :o5, 174943115, 72 + tz.transition 1942, 11, :o6, 58335973, 24 + tz.transition 1943, 3, :o5, 58339501, 24 + tz.transition 1943, 10, :o6, 58344037, 24 + tz.transition 1944, 4, :o5, 58348405, 24 + tz.transition 1944, 10, :o6, 58352773, 24 + tz.transition 1945, 4, :o5, 58357141, 24 + tz.transition 1945, 9, :o6, 58361149, 24 + tz.transition 1977, 4, :o5, 228877200 + tz.transition 1977, 9, :o6, 243997200 + tz.transition 1978, 4, :o5, 260326800 + tz.transition 1978, 10, :o6, 276051600 + tz.transition 1979, 4, :o5, 291776400 + tz.transition 1979, 9, :o6, 307501200 + tz.transition 1980, 4, :o5, 323830800 + tz.transition 1980, 9, :o6, 338950800 + tz.transition 1981, 3, :o5, 354675600 + tz.transition 1981, 9, :o6, 370400400 + tz.transition 1982, 3, :o5, 386125200 + tz.transition 1982, 9, :o6, 401850000 + tz.transition 1983, 3, :o5, 417574800 + tz.transition 1983, 9, :o6, 433299600 + tz.transition 1984, 3, :o5, 449024400 + tz.transition 1984, 9, :o6, 465354000 + tz.transition 1985, 3, :o5, 481078800 + tz.transition 1985, 9, :o6, 496803600 + tz.transition 1986, 3, :o5, 512528400 + tz.transition 1986, 9, :o6, 528253200 + tz.transition 1987, 3, :o5, 543978000 + tz.transition 1987, 9, :o6, 559702800 + tz.transition 1988, 3, :o5, 575427600 + tz.transition 1988, 9, :o6, 591152400 + tz.transition 1989, 3, :o5, 606877200 + tz.transition 1989, 9, :o6, 622602000 + tz.transition 1990, 3, :o5, 638326800 + tz.transition 1990, 9, :o6, 654656400 + tz.transition 1991, 3, :o5, 670381200 + tz.transition 1991, 9, :o6, 686106000 + tz.transition 1992, 3, :o5, 701830800 + tz.transition 1992, 9, :o6, 717555600 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 9, :o6, 749005200 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 9, :o6, 780454800 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 9, :o6, 811904400 + tz.transition 1996, 3, :o5, 828234000 + tz.transition 1996, 10, :o6, 846378000 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o6, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o6, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o6, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o6, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o6, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o6, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o6, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o6, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o6, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o6, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o6, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o6, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o6, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o6, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o6, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o6, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o6, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o6, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o6, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o6, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o6, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o6, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o6, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o6, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o6, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o6, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o6, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o6, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o6, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o6, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o6, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o6, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o6, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o6, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o6, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o6, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o6, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o6, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o6, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o6, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o6, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o6, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o6, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o6, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o6, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o6, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o6, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o6, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o6, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o6, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o6, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o6, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o6, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o6, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Athens.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Athens.rb new file mode 100644 index 000000000..4e21e535c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Athens.rb @@ -0,0 +1,185 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Athens + include TimezoneDefinition + + timezone 'Europe/Athens' do |tz| + tz.offset :o0, 5692, 0, :LMT + tz.offset :o1, 5692, 0, :AMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + + tz.transition 1895, 9, :o1, 52130529377, 21600 + tz.transition 1916, 7, :o2, 3268447787, 1350 + tz.transition 1932, 7, :o3, 29122745, 12 + tz.transition 1932, 8, :o2, 19415611, 8 + tz.transition 1941, 4, :o3, 29161097, 12 + tz.transition 1941, 4, :o4, 19440915, 8 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339523, 24 + tz.transition 1943, 10, :o5, 29172017, 12 + tz.transition 1944, 4, :o2, 58348427, 24 + tz.transition 1952, 6, :o3, 29210333, 12 + tz.transition 1952, 11, :o2, 19474547, 8 + tz.transition 1975, 4, :o3, 166485600 + tz.transition 1975, 11, :o2, 186184800 + tz.transition 1976, 4, :o3, 198028800 + tz.transition 1976, 10, :o2, 213753600 + tz.transition 1977, 4, :o3, 228873600 + tz.transition 1977, 9, :o2, 244080000 + tz.transition 1978, 4, :o3, 260323200 + tz.transition 1978, 9, :o2, 275446800 + tz.transition 1979, 4, :o3, 291798000 + tz.transition 1979, 9, :o2, 307407600 + tz.transition 1980, 3, :o3, 323388000 + tz.transition 1980, 9, :o2, 338936400 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Belgrade.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Belgrade.rb new file mode 100644 index 000000000..4dbd893d7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Belgrade.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Belgrade + include TimezoneDefinition + + timezone 'Europe/Belgrade' do |tz| + tz.offset :o0, 4920, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + + tz.transition 1883, 12, :o1, 1734607039, 720 + tz.transition 1941, 4, :o2, 29161241, 12 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 5, :o2, 58358005, 24 + tz.transition 1945, 9, :o1, 58361149, 24 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Berlin.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Berlin.rb new file mode 100644 index 000000000..de2e4d951 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Berlin.rb @@ -0,0 +1,188 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Berlin + include TimezoneDefinition + + timezone 'Europe/Berlin' do |tz| + tz.offset :o0, 3208, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + tz.offset :o3, 3600, 7200, :CEMT + + tz.transition 1893, 3, :o1, 26055588199, 10800 + tz.transition 1916, 4, :o2, 29051813, 12 + tz.transition 1916, 9, :o1, 58107299, 24 + tz.transition 1917, 4, :o2, 58112029, 24 + tz.transition 1917, 9, :o1, 58115725, 24 + tz.transition 1918, 4, :o2, 58120765, 24 + tz.transition 1918, 9, :o1, 58124461, 24 + tz.transition 1940, 4, :o2, 58313293, 24 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 4, :o2, 58357141, 24 + tz.transition 1945, 5, :o3, 4863199, 2 + tz.transition 1945, 9, :o2, 4863445, 2 + tz.transition 1945, 11, :o1, 58362661, 24 + tz.transition 1946, 4, :o2, 58366189, 24 + tz.transition 1946, 10, :o1, 58370413, 24 + tz.transition 1947, 4, :o2, 58374757, 24 + tz.transition 1947, 5, :o3, 58375597, 24 + tz.transition 1947, 6, :o2, 4864731, 2 + tz.transition 1947, 10, :o1, 58379125, 24 + tz.transition 1948, 4, :o2, 58383829, 24 + tz.transition 1948, 10, :o1, 58387861, 24 + tz.transition 1949, 4, :o2, 58392397, 24 + tz.transition 1949, 10, :o1, 58396597, 24 + tz.transition 1980, 4, :o2, 323830800 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bratislava.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bratislava.rb new file mode 100644 index 000000000..7a731a0b6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bratislava.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Bratislava + include TimezoneDefinition + + linked_timezone 'Europe/Bratislava', 'Europe/Prague' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Brussels.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Brussels.rb new file mode 100644 index 000000000..6b0a24294 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Brussels.rb @@ -0,0 +1,232 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Brussels + include TimezoneDefinition + + timezone 'Europe/Brussels' do |tz| + tz.offset :o0, 1050, 0, :LMT + tz.offset :o1, 1050, 0, :BMT + tz.offset :o2, 0, 0, :WET + tz.offset :o3, 3600, 0, :CET + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 0, 3600, :WEST + + tz.transition 1879, 12, :o1, 1386844121, 576 + tz.transition 1892, 5, :o2, 1389438713, 576 + tz.transition 1914, 11, :o3, 4840889, 2 + tz.transition 1916, 4, :o4, 58103627, 24 + tz.transition 1916, 9, :o3, 58107299, 24 + tz.transition 1917, 4, :o4, 58112029, 24 + tz.transition 1917, 9, :o3, 58115725, 24 + tz.transition 1918, 4, :o4, 58120765, 24 + tz.transition 1918, 9, :o3, 58124461, 24 + tz.transition 1918, 11, :o2, 58125815, 24 + tz.transition 1919, 3, :o5, 58128467, 24 + tz.transition 1919, 10, :o2, 58133675, 24 + tz.transition 1920, 2, :o5, 58136867, 24 + tz.transition 1920, 10, :o2, 58142915, 24 + tz.transition 1921, 3, :o5, 58146323, 24 + tz.transition 1921, 10, :o2, 58151723, 24 + tz.transition 1922, 3, :o5, 58155347, 24 + tz.transition 1922, 10, :o2, 58160051, 24 + tz.transition 1923, 4, :o5, 58164755, 24 + tz.transition 1923, 10, :o2, 58168787, 24 + tz.transition 1924, 3, :o5, 58172987, 24 + tz.transition 1924, 10, :o2, 58177523, 24 + tz.transition 1925, 4, :o5, 58181891, 24 + tz.transition 1925, 10, :o2, 58186259, 24 + tz.transition 1926, 4, :o5, 58190963, 24 + tz.transition 1926, 10, :o2, 58194995, 24 + tz.transition 1927, 4, :o5, 58199531, 24 + tz.transition 1927, 10, :o2, 58203731, 24 + tz.transition 1928, 4, :o5, 58208435, 24 + tz.transition 1928, 10, :o2, 29106319, 12 + tz.transition 1929, 4, :o5, 29108671, 12 + tz.transition 1929, 10, :o2, 29110687, 12 + tz.transition 1930, 4, :o5, 29112955, 12 + tz.transition 1930, 10, :o2, 29115055, 12 + tz.transition 1931, 4, :o5, 29117407, 12 + tz.transition 1931, 10, :o2, 29119423, 12 + tz.transition 1932, 4, :o5, 29121607, 12 + tz.transition 1932, 10, :o2, 29123791, 12 + tz.transition 1933, 3, :o5, 29125891, 12 + tz.transition 1933, 10, :o2, 29128243, 12 + tz.transition 1934, 4, :o5, 29130427, 12 + tz.transition 1934, 10, :o2, 29132611, 12 + tz.transition 1935, 3, :o5, 29134711, 12 + tz.transition 1935, 10, :o2, 29136979, 12 + tz.transition 1936, 4, :o5, 29139331, 12 + tz.transition 1936, 10, :o2, 29141347, 12 + tz.transition 1937, 4, :o5, 29143531, 12 + tz.transition 1937, 10, :o2, 29145715, 12 + tz.transition 1938, 3, :o5, 29147815, 12 + tz.transition 1938, 10, :o2, 29150083, 12 + tz.transition 1939, 4, :o5, 29152435, 12 + tz.transition 1939, 11, :o2, 29155039, 12 + tz.transition 1940, 2, :o5, 29156215, 12 + tz.transition 1940, 5, :o4, 29157235, 12 + tz.transition 1942, 11, :o3, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o3, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 9, :o3, 58352413, 24 + tz.transition 1945, 4, :o4, 58357141, 24 + tz.transition 1945, 9, :o3, 58361149, 24 + tz.transition 1946, 5, :o4, 58367029, 24 + tz.transition 1946, 10, :o3, 58370413, 24 + tz.transition 1977, 4, :o4, 228877200 + tz.transition 1977, 9, :o3, 243997200 + tz.transition 1978, 4, :o4, 260326800 + tz.transition 1978, 10, :o3, 276051600 + tz.transition 1979, 4, :o4, 291776400 + tz.transition 1979, 9, :o3, 307501200 + tz.transition 1980, 4, :o4, 323830800 + tz.transition 1980, 9, :o3, 338950800 + tz.transition 1981, 3, :o4, 354675600 + tz.transition 1981, 9, :o3, 370400400 + tz.transition 1982, 3, :o4, 386125200 + tz.transition 1982, 9, :o3, 401850000 + tz.transition 1983, 3, :o4, 417574800 + tz.transition 1983, 9, :o3, 433299600 + tz.transition 1984, 3, :o4, 449024400 + tz.transition 1984, 9, :o3, 465354000 + tz.transition 1985, 3, :o4, 481078800 + tz.transition 1985, 9, :o3, 496803600 + tz.transition 1986, 3, :o4, 512528400 + tz.transition 1986, 9, :o3, 528253200 + tz.transition 1987, 3, :o4, 543978000 + tz.transition 1987, 9, :o3, 559702800 + tz.transition 1988, 3, :o4, 575427600 + tz.transition 1988, 9, :o3, 591152400 + tz.transition 1989, 3, :o4, 606877200 + tz.transition 1989, 9, :o3, 622602000 + tz.transition 1990, 3, :o4, 638326800 + tz.transition 1990, 9, :o3, 654656400 + tz.transition 1991, 3, :o4, 670381200 + tz.transition 1991, 9, :o3, 686106000 + tz.transition 1992, 3, :o4, 701830800 + tz.transition 1992, 9, :o3, 717555600 + tz.transition 1993, 3, :o4, 733280400 + tz.transition 1993, 9, :o3, 749005200 + tz.transition 1994, 3, :o4, 764730000 + tz.transition 1994, 9, :o3, 780454800 + tz.transition 1995, 3, :o4, 796179600 + tz.transition 1995, 9, :o3, 811904400 + tz.transition 1996, 3, :o4, 828234000 + tz.transition 1996, 10, :o3, 846378000 + tz.transition 1997, 3, :o4, 859683600 + tz.transition 1997, 10, :o3, 877827600 + tz.transition 1998, 3, :o4, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o4, 922582800 + tz.transition 1999, 10, :o3, 941331600 + tz.transition 2000, 3, :o4, 954032400 + tz.transition 2000, 10, :o3, 972781200 + tz.transition 2001, 3, :o4, 985482000 + tz.transition 2001, 10, :o3, 1004230800 + tz.transition 2002, 3, :o4, 1017536400 + tz.transition 2002, 10, :o3, 1035680400 + tz.transition 2003, 3, :o4, 1048986000 + tz.transition 2003, 10, :o3, 1067130000 + tz.transition 2004, 3, :o4, 1080435600 + tz.transition 2004, 10, :o3, 1099184400 + tz.transition 2005, 3, :o4, 1111885200 + tz.transition 2005, 10, :o3, 1130634000 + tz.transition 2006, 3, :o4, 1143334800 + tz.transition 2006, 10, :o3, 1162083600 + tz.transition 2007, 3, :o4, 1174784400 + tz.transition 2007, 10, :o3, 1193533200 + tz.transition 2008, 3, :o4, 1206838800 + tz.transition 2008, 10, :o3, 1224982800 + tz.transition 2009, 3, :o4, 1238288400 + tz.transition 2009, 10, :o3, 1256432400 + tz.transition 2010, 3, :o4, 1269738000 + tz.transition 2010, 10, :o3, 1288486800 + tz.transition 2011, 3, :o4, 1301187600 + tz.transition 2011, 10, :o3, 1319936400 + tz.transition 2012, 3, :o4, 1332637200 + tz.transition 2012, 10, :o3, 1351386000 + tz.transition 2013, 3, :o4, 1364691600 + tz.transition 2013, 10, :o3, 1382835600 + tz.transition 2014, 3, :o4, 1396141200 + tz.transition 2014, 10, :o3, 1414285200 + tz.transition 2015, 3, :o4, 1427590800 + tz.transition 2015, 10, :o3, 1445734800 + tz.transition 2016, 3, :o4, 1459040400 + tz.transition 2016, 10, :o3, 1477789200 + tz.transition 2017, 3, :o4, 1490490000 + tz.transition 2017, 10, :o3, 1509238800 + tz.transition 2018, 3, :o4, 1521939600 + tz.transition 2018, 10, :o3, 1540688400 + tz.transition 2019, 3, :o4, 1553994000 + tz.transition 2019, 10, :o3, 1572138000 + tz.transition 2020, 3, :o4, 1585443600 + tz.transition 2020, 10, :o3, 1603587600 + tz.transition 2021, 3, :o4, 1616893200 + tz.transition 2021, 10, :o3, 1635642000 + tz.transition 2022, 3, :o4, 1648342800 + tz.transition 2022, 10, :o3, 1667091600 + tz.transition 2023, 3, :o4, 1679792400 + tz.transition 2023, 10, :o3, 1698541200 + tz.transition 2024, 3, :o4, 1711846800 + tz.transition 2024, 10, :o3, 1729990800 + tz.transition 2025, 3, :o4, 1743296400 + tz.transition 2025, 10, :o3, 1761440400 + tz.transition 2026, 3, :o4, 1774746000 + tz.transition 2026, 10, :o3, 1792890000 + tz.transition 2027, 3, :o4, 1806195600 + tz.transition 2027, 10, :o3, 1824944400 + tz.transition 2028, 3, :o4, 1837645200 + tz.transition 2028, 10, :o3, 1856394000 + tz.transition 2029, 3, :o4, 1869094800 + tz.transition 2029, 10, :o3, 1887843600 + tz.transition 2030, 3, :o4, 1901149200 + tz.transition 2030, 10, :o3, 1919293200 + tz.transition 2031, 3, :o4, 1932598800 + tz.transition 2031, 10, :o3, 1950742800 + tz.transition 2032, 3, :o4, 1964048400 + tz.transition 2032, 10, :o3, 1982797200 + tz.transition 2033, 3, :o4, 1995498000 + tz.transition 2033, 10, :o3, 2014246800 + tz.transition 2034, 3, :o4, 2026947600 + tz.transition 2034, 10, :o3, 2045696400 + tz.transition 2035, 3, :o4, 2058397200 + tz.transition 2035, 10, :o3, 2077146000 + tz.transition 2036, 3, :o4, 2090451600 + tz.transition 2036, 10, :o3, 2108595600 + tz.transition 2037, 3, :o4, 2121901200 + tz.transition 2037, 10, :o3, 2140045200 + tz.transition 2038, 3, :o4, 59172253, 24 + tz.transition 2038, 10, :o3, 59177461, 24 + tz.transition 2039, 3, :o4, 59180989, 24 + tz.transition 2039, 10, :o3, 59186197, 24 + tz.transition 2040, 3, :o4, 59189725, 24 + tz.transition 2040, 10, :o3, 59194933, 24 + tz.transition 2041, 3, :o4, 59198629, 24 + tz.transition 2041, 10, :o3, 59203669, 24 + tz.transition 2042, 3, :o4, 59207365, 24 + tz.transition 2042, 10, :o3, 59212405, 24 + tz.transition 2043, 3, :o4, 59216101, 24 + tz.transition 2043, 10, :o3, 59221141, 24 + tz.transition 2044, 3, :o4, 59224837, 24 + tz.transition 2044, 10, :o3, 59230045, 24 + tz.transition 2045, 3, :o4, 59233573, 24 + tz.transition 2045, 10, :o3, 59238781, 24 + tz.transition 2046, 3, :o4, 59242309, 24 + tz.transition 2046, 10, :o3, 59247517, 24 + tz.transition 2047, 3, :o4, 59251213, 24 + tz.transition 2047, 10, :o3, 59256253, 24 + tz.transition 2048, 3, :o4, 59259949, 24 + tz.transition 2048, 10, :o3, 59264989, 24 + tz.transition 2049, 3, :o4, 59268685, 24 + tz.transition 2049, 10, :o3, 59273893, 24 + tz.transition 2050, 3, :o4, 59277421, 24 + tz.transition 2050, 10, :o3, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bucharest.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bucharest.rb new file mode 100644 index 000000000..521c3c932 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bucharest.rb @@ -0,0 +1,181 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Bucharest + include TimezoneDefinition + + timezone 'Europe/Bucharest' do |tz| + tz.offset :o0, 6264, 0, :LMT + tz.offset :o1, 6264, 0, :BMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + + tz.transition 1891, 9, :o1, 964802571, 400 + tz.transition 1931, 7, :o2, 970618571, 400 + tz.transition 1932, 5, :o3, 29122181, 12 + tz.transition 1932, 10, :o2, 29123789, 12 + tz.transition 1933, 4, :o3, 29125973, 12 + tz.transition 1933, 9, :o2, 29128157, 12 + tz.transition 1934, 4, :o3, 29130425, 12 + tz.transition 1934, 10, :o2, 29132609, 12 + tz.transition 1935, 4, :o3, 29134793, 12 + tz.transition 1935, 10, :o2, 29136977, 12 + tz.transition 1936, 4, :o3, 29139161, 12 + tz.transition 1936, 10, :o2, 29141345, 12 + tz.transition 1937, 4, :o3, 29143529, 12 + tz.transition 1937, 10, :o2, 29145713, 12 + tz.transition 1938, 4, :o3, 29147897, 12 + tz.transition 1938, 10, :o2, 29150081, 12 + tz.transition 1939, 4, :o3, 29152265, 12 + tz.transition 1939, 9, :o2, 29154449, 12 + tz.transition 1979, 5, :o3, 296604000 + tz.transition 1979, 9, :o2, 307486800 + tz.transition 1980, 4, :o3, 323816400 + tz.transition 1980, 9, :o2, 338940000 + tz.transition 1981, 3, :o3, 354672000 + tz.transition 1981, 9, :o2, 370396800 + tz.transition 1982, 3, :o3, 386121600 + tz.transition 1982, 9, :o2, 401846400 + tz.transition 1983, 3, :o3, 417571200 + tz.transition 1983, 9, :o2, 433296000 + tz.transition 1984, 3, :o3, 449020800 + tz.transition 1984, 9, :o2, 465350400 + tz.transition 1985, 3, :o3, 481075200 + tz.transition 1985, 9, :o2, 496800000 + tz.transition 1986, 3, :o3, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o3, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o3, 575424000 + tz.transition 1988, 9, :o2, 591148800 + tz.transition 1989, 3, :o3, 606873600 + tz.transition 1989, 9, :o2, 622598400 + tz.transition 1990, 3, :o3, 638323200 + tz.transition 1990, 9, :o2, 654652800 + tz.transition 1991, 3, :o3, 670370400 + tz.transition 1991, 9, :o2, 686095200 + tz.transition 1992, 3, :o3, 701820000 + tz.transition 1992, 9, :o2, 717544800 + tz.transition 1993, 3, :o3, 733269600 + tz.transition 1993, 9, :o2, 748994400 + tz.transition 1994, 3, :o3, 764719200 + tz.transition 1994, 9, :o2, 780440400 + tz.transition 1995, 3, :o3, 796168800 + tz.transition 1995, 9, :o2, 811890000 + tz.transition 1996, 3, :o3, 828223200 + tz.transition 1996, 10, :o2, 846363600 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Budapest.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Budapest.rb new file mode 100644 index 000000000..1f3a9738b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Budapest.rb @@ -0,0 +1,197 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Budapest + include TimezoneDefinition + + timezone 'Europe/Budapest' do |tz| + tz.offset :o0, 4580, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + + tz.transition 1890, 9, :o1, 10418291051, 4320 + tz.transition 1916, 4, :o2, 29051813, 12 + tz.transition 1916, 9, :o1, 58107299, 24 + tz.transition 1917, 4, :o2, 58112029, 24 + tz.transition 1917, 9, :o1, 58115725, 24 + tz.transition 1918, 4, :o2, 29060215, 12 + tz.transition 1918, 9, :o1, 58124773, 24 + tz.transition 1919, 4, :o2, 29064763, 12 + tz.transition 1919, 9, :o1, 58133197, 24 + tz.transition 1920, 4, :o2, 29069035, 12 + tz.transition 1920, 9, :o1, 58142341, 24 + tz.transition 1941, 4, :o2, 58322173, 24 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 5, :o2, 29178929, 12 + tz.transition 1945, 11, :o1, 29181149, 12 + tz.transition 1946, 3, :o2, 58365853, 24 + tz.transition 1946, 10, :o1, 58370389, 24 + tz.transition 1947, 4, :o2, 58374757, 24 + tz.transition 1947, 10, :o1, 58379125, 24 + tz.transition 1948, 4, :o2, 58383493, 24 + tz.transition 1948, 10, :o1, 58387861, 24 + tz.transition 1949, 4, :o2, 58392397, 24 + tz.transition 1949, 10, :o1, 58396597, 24 + tz.transition 1950, 4, :o2, 58401325, 24 + tz.transition 1950, 10, :o1, 58405861, 24 + tz.transition 1954, 5, :o2, 58437251, 24 + tz.transition 1954, 10, :o1, 29220221, 12 + tz.transition 1955, 5, :o2, 58446011, 24 + tz.transition 1955, 10, :o1, 29224601, 12 + tz.transition 1956, 6, :o2, 58455059, 24 + tz.transition 1956, 9, :o1, 29228957, 12 + tz.transition 1957, 6, :o2, 4871983, 2 + tz.transition 1957, 9, :o1, 58466653, 24 + tz.transition 1980, 4, :o2, 323827200 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Copenhagen.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Copenhagen.rb new file mode 100644 index 000000000..47cbaf14a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Copenhagen.rb @@ -0,0 +1,179 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Copenhagen + include TimezoneDefinition + + timezone 'Europe/Copenhagen' do |tz| + tz.offset :o0, 3020, 0, :LMT + tz.offset :o1, 3020, 0, :CMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1889, 12, :o1, 10417111769, 4320 + tz.transition 1893, 12, :o2, 10423423289, 4320 + tz.transition 1916, 5, :o3, 29051981, 12 + tz.transition 1916, 9, :o2, 19369099, 8 + tz.transition 1940, 5, :o3, 58314347, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 10, :o2, 58352773, 24 + tz.transition 1945, 4, :o3, 58357141, 24 + tz.transition 1945, 8, :o2, 58360381, 24 + tz.transition 1946, 5, :o3, 58366597, 24 + tz.transition 1946, 9, :o2, 58369549, 24 + tz.transition 1947, 5, :o3, 58375429, 24 + tz.transition 1947, 8, :o2, 58377781, 24 + tz.transition 1948, 5, :o3, 58384333, 24 + tz.transition 1948, 8, :o2, 58386517, 24 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Dublin.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Dublin.rb new file mode 100644 index 000000000..0560bb543 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Dublin.rb @@ -0,0 +1,276 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Dublin + include TimezoneDefinition + + timezone 'Europe/Dublin' do |tz| + tz.offset :o0, -1500, 0, :LMT + tz.offset :o1, -1521, 0, :DMT + tz.offset :o2, -1521, 3600, :IST + tz.offset :o3, 0, 0, :GMT + tz.offset :o4, 0, 3600, :BST + tz.offset :o5, 0, 3600, :IST + tz.offset :o6, 3600, 0, :IST + + tz.transition 1880, 8, :o1, 693483701, 288 + tz.transition 1916, 5, :o2, 7747214723, 3200 + tz.transition 1916, 10, :o3, 7747640323, 3200 + tz.transition 1917, 4, :o4, 29055919, 12 + tz.transition 1917, 9, :o3, 29057863, 12 + tz.transition 1918, 3, :o4, 29060119, 12 + tz.transition 1918, 9, :o3, 29062399, 12 + tz.transition 1919, 3, :o4, 29064571, 12 + tz.transition 1919, 9, :o3, 29066767, 12 + tz.transition 1920, 3, :o4, 29068939, 12 + tz.transition 1920, 10, :o3, 29071471, 12 + tz.transition 1921, 4, :o4, 29073391, 12 + tz.transition 1921, 10, :o3, 29075587, 12 + tz.transition 1922, 3, :o5, 29077675, 12 + tz.transition 1922, 10, :o3, 29080027, 12 + tz.transition 1923, 4, :o5, 29082379, 12 + tz.transition 1923, 9, :o3, 29084143, 12 + tz.transition 1924, 4, :o5, 29086663, 12 + tz.transition 1924, 9, :o3, 29088595, 12 + tz.transition 1925, 4, :o5, 29091115, 12 + tz.transition 1925, 10, :o3, 29093131, 12 + tz.transition 1926, 4, :o5, 29095483, 12 + tz.transition 1926, 10, :o3, 29097499, 12 + tz.transition 1927, 4, :o5, 29099767, 12 + tz.transition 1927, 10, :o3, 29101867, 12 + tz.transition 1928, 4, :o5, 29104303, 12 + tz.transition 1928, 10, :o3, 29106319, 12 + tz.transition 1929, 4, :o5, 29108671, 12 + tz.transition 1929, 10, :o3, 29110687, 12 + tz.transition 1930, 4, :o5, 29112955, 12 + tz.transition 1930, 10, :o3, 29115055, 12 + tz.transition 1931, 4, :o5, 29117407, 12 + tz.transition 1931, 10, :o3, 29119423, 12 + tz.transition 1932, 4, :o5, 29121775, 12 + tz.transition 1932, 10, :o3, 29123791, 12 + tz.transition 1933, 4, :o5, 29126059, 12 + tz.transition 1933, 10, :o3, 29128243, 12 + tz.transition 1934, 4, :o5, 29130595, 12 + tz.transition 1934, 10, :o3, 29132611, 12 + tz.transition 1935, 4, :o5, 29134879, 12 + tz.transition 1935, 10, :o3, 29136979, 12 + tz.transition 1936, 4, :o5, 29139331, 12 + tz.transition 1936, 10, :o3, 29141347, 12 + tz.transition 1937, 4, :o5, 29143699, 12 + tz.transition 1937, 10, :o3, 29145715, 12 + tz.transition 1938, 4, :o5, 29147983, 12 + tz.transition 1938, 10, :o3, 29150083, 12 + tz.transition 1939, 4, :o5, 29152435, 12 + tz.transition 1939, 11, :o3, 29155039, 12 + tz.transition 1940, 2, :o5, 29156215, 12 + tz.transition 1946, 10, :o3, 58370389, 24 + tz.transition 1947, 3, :o5, 29187127, 12 + tz.transition 1947, 11, :o3, 58379797, 24 + tz.transition 1948, 4, :o5, 29191915, 12 + tz.transition 1948, 10, :o3, 29194267, 12 + tz.transition 1949, 4, :o5, 29196115, 12 + tz.transition 1949, 10, :o3, 29198635, 12 + tz.transition 1950, 4, :o5, 29200651, 12 + tz.transition 1950, 10, :o3, 29202919, 12 + tz.transition 1951, 4, :o5, 29205019, 12 + tz.transition 1951, 10, :o3, 29207287, 12 + tz.transition 1952, 4, :o5, 29209471, 12 + tz.transition 1952, 10, :o3, 29211739, 12 + tz.transition 1953, 4, :o5, 29213839, 12 + tz.transition 1953, 10, :o3, 29215855, 12 + tz.transition 1954, 4, :o5, 29218123, 12 + tz.transition 1954, 10, :o3, 29220223, 12 + tz.transition 1955, 4, :o5, 29222575, 12 + tz.transition 1955, 10, :o3, 29224591, 12 + tz.transition 1956, 4, :o5, 29227027, 12 + tz.transition 1956, 10, :o3, 29229043, 12 + tz.transition 1957, 4, :o5, 29231311, 12 + tz.transition 1957, 10, :o3, 29233411, 12 + tz.transition 1958, 4, :o5, 29235763, 12 + tz.transition 1958, 10, :o3, 29237779, 12 + tz.transition 1959, 4, :o5, 29240131, 12 + tz.transition 1959, 10, :o3, 29242147, 12 + tz.transition 1960, 4, :o5, 29244415, 12 + tz.transition 1960, 10, :o3, 29246515, 12 + tz.transition 1961, 3, :o5, 29248615, 12 + tz.transition 1961, 10, :o3, 29251219, 12 + tz.transition 1962, 3, :o5, 29252983, 12 + tz.transition 1962, 10, :o3, 29255587, 12 + tz.transition 1963, 3, :o5, 29257435, 12 + tz.transition 1963, 10, :o3, 29259955, 12 + tz.transition 1964, 3, :o5, 29261719, 12 + tz.transition 1964, 10, :o3, 29264323, 12 + tz.transition 1965, 3, :o5, 29266087, 12 + tz.transition 1965, 10, :o3, 29268691, 12 + tz.transition 1966, 3, :o5, 29270455, 12 + tz.transition 1966, 10, :o3, 29273059, 12 + tz.transition 1967, 3, :o5, 29274823, 12 + tz.transition 1967, 10, :o3, 29277511, 12 + tz.transition 1968, 2, :o5, 29278855, 12 + tz.transition 1968, 10, :o6, 58563755, 24 + tz.transition 1971, 10, :o3, 57722400 + tz.transition 1972, 3, :o5, 69818400 + tz.transition 1972, 10, :o3, 89172000 + tz.transition 1973, 3, :o5, 101268000 + tz.transition 1973, 10, :o3, 120621600 + tz.transition 1974, 3, :o5, 132717600 + tz.transition 1974, 10, :o3, 152071200 + tz.transition 1975, 3, :o5, 164167200 + tz.transition 1975, 10, :o3, 183520800 + tz.transition 1976, 3, :o5, 196221600 + tz.transition 1976, 10, :o3, 214970400 + tz.transition 1977, 3, :o5, 227671200 + tz.transition 1977, 10, :o3, 246420000 + tz.transition 1978, 3, :o5, 259120800 + tz.transition 1978, 10, :o3, 278474400 + tz.transition 1979, 3, :o5, 290570400 + tz.transition 1979, 10, :o3, 309924000 + tz.transition 1980, 3, :o5, 322020000 + tz.transition 1980, 10, :o3, 341373600 + tz.transition 1981, 3, :o5, 354675600 + tz.transition 1981, 10, :o3, 372819600 + tz.transition 1982, 3, :o5, 386125200 + tz.transition 1982, 10, :o3, 404269200 + tz.transition 1983, 3, :o5, 417574800 + tz.transition 1983, 10, :o3, 435718800 + tz.transition 1984, 3, :o5, 449024400 + tz.transition 1984, 10, :o3, 467773200 + tz.transition 1985, 3, :o5, 481078800 + tz.transition 1985, 10, :o3, 499222800 + tz.transition 1986, 3, :o5, 512528400 + tz.transition 1986, 10, :o3, 530672400 + tz.transition 1987, 3, :o5, 543978000 + tz.transition 1987, 10, :o3, 562122000 + tz.transition 1988, 3, :o5, 575427600 + tz.transition 1988, 10, :o3, 593571600 + tz.transition 1989, 3, :o5, 606877200 + tz.transition 1989, 10, :o3, 625626000 + tz.transition 1990, 3, :o5, 638326800 + tz.transition 1990, 10, :o3, 657075600 + tz.transition 1991, 3, :o5, 670381200 + tz.transition 1991, 10, :o3, 688525200 + tz.transition 1992, 3, :o5, 701830800 + tz.transition 1992, 10, :o3, 719974800 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 10, :o3, 751424400 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 10, :o3, 782874000 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 10, :o3, 814323600 + tz.transition 1996, 3, :o5, 828234000 + tz.transition 1996, 10, :o3, 846378000 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o3, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o3, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o3, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o3, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o3, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o3, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o3, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o3, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o3, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o3, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o3, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o3, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o3, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o3, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o3, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o3, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o3, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o3, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o3, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o3, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o3, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o3, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o3, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o3, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o3, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o3, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o3, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o3, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o3, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o3, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o3, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o3, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o3, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o3, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o3, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o3, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o3, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o3, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o3, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o3, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o3, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o3, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o3, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o3, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o3, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o3, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o3, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o3, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o3, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o3, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o3, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o3, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o3, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Helsinki.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Helsinki.rb new file mode 100644 index 000000000..13a806bcc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Helsinki.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Helsinki + include TimezoneDefinition + + timezone 'Europe/Helsinki' do |tz| + tz.offset :o0, 5992, 0, :LMT + tz.offset :o1, 5992, 0, :HMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + + tz.transition 1878, 5, :o1, 25997062651, 10800 + tz.transition 1921, 4, :o2, 26166352651, 10800 + tz.transition 1942, 4, :o3, 29165429, 12 + tz.transition 1942, 10, :o2, 19445083, 8 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Istanbul.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Istanbul.rb new file mode 100644 index 000000000..8306c4753 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Istanbul.rb @@ -0,0 +1,218 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Istanbul + include TimezoneDefinition + + timezone 'Europe/Istanbul' do |tz| + tz.offset :o0, 6952, 0, :LMT + tz.offset :o1, 7016, 0, :IMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + tz.offset :o4, 10800, 3600, :TRST + tz.offset :o5, 10800, 0, :TRT + + tz.transition 1879, 12, :o1, 26003326531, 10800 + tz.transition 1910, 9, :o2, 26124610523, 10800 + tz.transition 1916, 4, :o3, 29051813, 12 + tz.transition 1916, 9, :o2, 19369099, 8 + tz.transition 1920, 3, :o3, 29068937, 12 + tz.transition 1920, 10, :o2, 19380979, 8 + tz.transition 1921, 4, :o3, 29073389, 12 + tz.transition 1921, 10, :o2, 19383723, 8 + tz.transition 1922, 3, :o3, 29077673, 12 + tz.transition 1922, 10, :o2, 19386683, 8 + tz.transition 1924, 5, :o3, 29087021, 12 + tz.transition 1924, 9, :o2, 19392475, 8 + tz.transition 1925, 4, :o3, 29091257, 12 + tz.transition 1925, 9, :o2, 19395395, 8 + tz.transition 1940, 6, :o3, 29157725, 12 + tz.transition 1940, 10, :o2, 19439259, 8 + tz.transition 1940, 11, :o3, 29159573, 12 + tz.transition 1941, 9, :o2, 19442067, 8 + tz.transition 1942, 3, :o3, 29165405, 12 + tz.transition 1942, 10, :o2, 19445315, 8 + tz.transition 1945, 4, :o3, 29178569, 12 + tz.transition 1945, 10, :o2, 19453891, 8 + tz.transition 1946, 5, :o3, 29183669, 12 + tz.transition 1946, 9, :o2, 19456755, 8 + tz.transition 1947, 4, :o3, 29187545, 12 + tz.transition 1947, 10, :o2, 19459707, 8 + tz.transition 1948, 4, :o3, 29191913, 12 + tz.transition 1948, 10, :o2, 19462619, 8 + tz.transition 1949, 4, :o3, 29196197, 12 + tz.transition 1949, 10, :o2, 19465531, 8 + tz.transition 1950, 4, :o3, 29200685, 12 + tz.transition 1950, 10, :o2, 19468499, 8 + tz.transition 1951, 4, :o3, 29205101, 12 + tz.transition 1951, 10, :o2, 19471419, 8 + tz.transition 1962, 7, :o3, 29254325, 12 + tz.transition 1962, 10, :o2, 19503563, 8 + tz.transition 1964, 5, :o3, 29262365, 12 + tz.transition 1964, 9, :o2, 19509355, 8 + tz.transition 1970, 5, :o3, 10533600 + tz.transition 1970, 10, :o2, 23835600 + tz.transition 1971, 5, :o3, 41983200 + tz.transition 1971, 10, :o2, 55285200 + tz.transition 1972, 5, :o3, 74037600 + tz.transition 1972, 10, :o2, 87339600 + tz.transition 1973, 6, :o3, 107910000 + tz.transition 1973, 11, :o2, 121219200 + tz.transition 1974, 3, :o3, 133920000 + tz.transition 1974, 11, :o2, 152676000 + tz.transition 1975, 3, :o3, 165362400 + tz.transition 1975, 10, :o2, 183502800 + tz.transition 1976, 5, :o3, 202428000 + tz.transition 1976, 10, :o2, 215557200 + tz.transition 1977, 4, :o3, 228866400 + tz.transition 1977, 10, :o2, 245797200 + tz.transition 1978, 4, :o3, 260316000 + tz.transition 1978, 10, :o4, 277246800 + tz.transition 1979, 10, :o5, 308779200 + tz.transition 1980, 4, :o4, 323827200 + tz.transition 1980, 10, :o5, 340228800 + tz.transition 1981, 3, :o4, 354672000 + tz.transition 1981, 10, :o5, 371678400 + tz.transition 1982, 3, :o4, 386121600 + tz.transition 1982, 10, :o5, 403128000 + tz.transition 1983, 7, :o4, 428446800 + tz.transition 1983, 10, :o5, 433886400 + tz.transition 1985, 4, :o3, 482792400 + tz.transition 1985, 9, :o2, 496702800 + tz.transition 1986, 3, :o3, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o3, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o3, 575424000 + tz.transition 1988, 9, :o2, 591148800 + tz.transition 1989, 3, :o3, 606873600 + tz.transition 1989, 9, :o2, 622598400 + tz.transition 1990, 3, :o3, 638323200 + tz.transition 1990, 9, :o2, 654652800 + tz.transition 1991, 3, :o3, 670374000 + tz.transition 1991, 9, :o2, 686098800 + tz.transition 1992, 3, :o3, 701823600 + tz.transition 1992, 9, :o2, 717548400 + tz.transition 1993, 3, :o3, 733273200 + tz.transition 1993, 9, :o2, 748998000 + tz.transition 1994, 3, :o3, 764722800 + tz.transition 1994, 9, :o2, 780447600 + tz.transition 1995, 3, :o3, 796172400 + tz.transition 1995, 9, :o2, 811897200 + tz.transition 1996, 3, :o3, 828226800 + tz.transition 1996, 10, :o2, 846370800 + tz.transition 1997, 3, :o3, 859676400 + tz.transition 1997, 10, :o2, 877820400 + tz.transition 1998, 3, :o3, 891126000 + tz.transition 1998, 10, :o2, 909270000 + tz.transition 1999, 3, :o3, 922575600 + tz.transition 1999, 10, :o2, 941324400 + tz.transition 2000, 3, :o3, 954025200 + tz.transition 2000, 10, :o2, 972774000 + tz.transition 2001, 3, :o3, 985474800 + tz.transition 2001, 10, :o2, 1004223600 + tz.transition 2002, 3, :o3, 1017529200 + tz.transition 2002, 10, :o2, 1035673200 + tz.transition 2003, 3, :o3, 1048978800 + tz.transition 2003, 10, :o2, 1067122800 + tz.transition 2004, 3, :o3, 1080428400 + tz.transition 2004, 10, :o2, 1099177200 + tz.transition 2005, 3, :o3, 1111878000 + tz.transition 2005, 10, :o2, 1130626800 + tz.transition 2006, 3, :o3, 1143327600 + tz.transition 2006, 10, :o2, 1162076400 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Kiev.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Kiev.rb new file mode 100644 index 000000000..513d3308b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Kiev.rb @@ -0,0 +1,168 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Kiev + include TimezoneDefinition + + timezone 'Europe/Kiev' do |tz| + tz.offset :o0, 7324, 0, :LMT + tz.offset :o1, 7324, 0, :KMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 10800, 0, :MSK + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + tz.offset :o6, 10800, 3600, :MSD + tz.offset :o7, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 52006652969, 21600 + tz.transition 1924, 5, :o2, 52356400169, 21600 + tz.transition 1930, 6, :o3, 29113781, 12 + tz.transition 1941, 9, :o4, 19442059, 8 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o5, 58344037, 24 + tz.transition 1943, 11, :o3, 58344827, 24 + tz.transition 1981, 3, :o6, 354920400 + tz.transition 1981, 9, :o3, 370728000 + tz.transition 1982, 3, :o6, 386456400 + tz.transition 1982, 9, :o3, 402264000 + tz.transition 1983, 3, :o6, 417992400 + tz.transition 1983, 9, :o3, 433800000 + tz.transition 1984, 3, :o6, 449614800 + tz.transition 1984, 9, :o3, 465346800 + tz.transition 1985, 3, :o6, 481071600 + tz.transition 1985, 9, :o3, 496796400 + tz.transition 1986, 3, :o6, 512521200 + tz.transition 1986, 9, :o3, 528246000 + tz.transition 1987, 3, :o6, 543970800 + tz.transition 1987, 9, :o3, 559695600 + tz.transition 1988, 3, :o6, 575420400 + tz.transition 1988, 9, :o3, 591145200 + tz.transition 1989, 3, :o6, 606870000 + tz.transition 1989, 9, :o3, 622594800 + tz.transition 1990, 6, :o2, 646786800 + tz.transition 1992, 3, :o7, 701820000 + tz.transition 1992, 9, :o2, 717541200 + tz.transition 1993, 3, :o7, 733269600 + tz.transition 1993, 9, :o2, 748990800 + tz.transition 1994, 3, :o7, 764719200 + tz.transition 1994, 9, :o2, 780440400 + tz.transition 1995, 3, :o7, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o7, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o7, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o7, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o7, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o7, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o7, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o7, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o7, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o7, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o7, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o7, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o7, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o7, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o7, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o7, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o7, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o7, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o7, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o7, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o7, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o7, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o7, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o7, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o7, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o7, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o7, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o7, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o7, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o7, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o7, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o7, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o7, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o7, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o7, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o7, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o7, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o7, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o7, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o7, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o7, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o7, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o7, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o7, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o7, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o7, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o7, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o7, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o7, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o7, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o7, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o7, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o7, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o7, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o7, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o7, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Lisbon.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Lisbon.rb new file mode 100644 index 000000000..1c6d2a3d3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Lisbon.rb @@ -0,0 +1,268 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Lisbon + include TimezoneDefinition + + timezone 'Europe/Lisbon' do |tz| + tz.offset :o0, -2192, 0, :LMT + tz.offset :o1, 0, 0, :WET + tz.offset :o2, 0, 3600, :WEST + tz.offset :o3, 0, 7200, :WEMT + tz.offset :o4, 3600, 0, :CET + tz.offset :o5, 3600, 3600, :CEST + + tz.transition 1912, 1, :o1, 13064773637, 5400 + tz.transition 1916, 6, :o2, 58104779, 24 + tz.transition 1916, 11, :o1, 4842337, 2 + tz.transition 1917, 2, :o2, 58110923, 24 + tz.transition 1917, 10, :o1, 58116395, 24 + tz.transition 1918, 3, :o2, 58119707, 24 + tz.transition 1918, 10, :o1, 58125155, 24 + tz.transition 1919, 2, :o2, 58128443, 24 + tz.transition 1919, 10, :o1, 58133915, 24 + tz.transition 1920, 2, :o2, 58137227, 24 + tz.transition 1920, 10, :o1, 58142699, 24 + tz.transition 1921, 2, :o2, 58145987, 24 + tz.transition 1921, 10, :o1, 58151459, 24 + tz.transition 1924, 4, :o2, 58173419, 24 + tz.transition 1924, 10, :o1, 58177763, 24 + tz.transition 1926, 4, :o2, 58190963, 24 + tz.transition 1926, 10, :o1, 58194995, 24 + tz.transition 1927, 4, :o2, 58199531, 24 + tz.transition 1927, 10, :o1, 58203731, 24 + tz.transition 1928, 4, :o2, 58208435, 24 + tz.transition 1928, 10, :o1, 58212635, 24 + tz.transition 1929, 4, :o2, 58217339, 24 + tz.transition 1929, 10, :o1, 58221371, 24 + tz.transition 1931, 4, :o2, 58234811, 24 + tz.transition 1931, 10, :o1, 58238843, 24 + tz.transition 1932, 4, :o2, 58243211, 24 + tz.transition 1932, 10, :o1, 58247579, 24 + tz.transition 1934, 4, :o2, 58260851, 24 + tz.transition 1934, 10, :o1, 58265219, 24 + tz.transition 1935, 3, :o2, 58269419, 24 + tz.transition 1935, 10, :o1, 58273955, 24 + tz.transition 1936, 4, :o2, 58278659, 24 + tz.transition 1936, 10, :o1, 58282691, 24 + tz.transition 1937, 4, :o2, 58287059, 24 + tz.transition 1937, 10, :o1, 58291427, 24 + tz.transition 1938, 3, :o2, 58295627, 24 + tz.transition 1938, 10, :o1, 58300163, 24 + tz.transition 1939, 4, :o2, 58304867, 24 + tz.transition 1939, 11, :o1, 58310075, 24 + tz.transition 1940, 2, :o2, 58312427, 24 + tz.transition 1940, 10, :o1, 58317803, 24 + tz.transition 1941, 4, :o2, 58322171, 24 + tz.transition 1941, 10, :o1, 58326563, 24 + tz.transition 1942, 3, :o2, 58330403, 24 + tz.transition 1942, 4, :o3, 29165705, 12 + tz.transition 1942, 8, :o2, 29167049, 12 + tz.transition 1942, 10, :o1, 58335779, 24 + tz.transition 1943, 3, :o2, 58339139, 24 + tz.transition 1943, 4, :o3, 29169989, 12 + tz.transition 1943, 8, :o2, 29171585, 12 + tz.transition 1943, 10, :o1, 58344683, 24 + tz.transition 1944, 3, :o2, 58347875, 24 + tz.transition 1944, 4, :o3, 29174441, 12 + tz.transition 1944, 8, :o2, 29175953, 12 + tz.transition 1944, 10, :o1, 58353419, 24 + tz.transition 1945, 3, :o2, 58356611, 24 + tz.transition 1945, 4, :o3, 29178809, 12 + tz.transition 1945, 8, :o2, 29180321, 12 + tz.transition 1945, 10, :o1, 58362155, 24 + tz.transition 1946, 4, :o2, 58366019, 24 + tz.transition 1946, 10, :o1, 58370387, 24 + tz.transition 1947, 4, :o2, 29187379, 12 + tz.transition 1947, 10, :o1, 29189563, 12 + tz.transition 1948, 4, :o2, 29191747, 12 + tz.transition 1948, 10, :o1, 29193931, 12 + tz.transition 1949, 4, :o2, 29196115, 12 + tz.transition 1949, 10, :o1, 29198299, 12 + tz.transition 1951, 4, :o2, 29204851, 12 + tz.transition 1951, 10, :o1, 29207119, 12 + tz.transition 1952, 4, :o2, 29209303, 12 + tz.transition 1952, 10, :o1, 29211487, 12 + tz.transition 1953, 4, :o2, 29213671, 12 + tz.transition 1953, 10, :o1, 29215855, 12 + tz.transition 1954, 4, :o2, 29218039, 12 + tz.transition 1954, 10, :o1, 29220223, 12 + tz.transition 1955, 4, :o2, 29222407, 12 + tz.transition 1955, 10, :o1, 29224591, 12 + tz.transition 1956, 4, :o2, 29226775, 12 + tz.transition 1956, 10, :o1, 29229043, 12 + tz.transition 1957, 4, :o2, 29231227, 12 + tz.transition 1957, 10, :o1, 29233411, 12 + tz.transition 1958, 4, :o2, 29235595, 12 + tz.transition 1958, 10, :o1, 29237779, 12 + tz.transition 1959, 4, :o2, 29239963, 12 + tz.transition 1959, 10, :o1, 29242147, 12 + tz.transition 1960, 4, :o2, 29244331, 12 + tz.transition 1960, 10, :o1, 29246515, 12 + tz.transition 1961, 4, :o2, 29248699, 12 + tz.transition 1961, 10, :o1, 29250883, 12 + tz.transition 1962, 4, :o2, 29253067, 12 + tz.transition 1962, 10, :o1, 29255335, 12 + tz.transition 1963, 4, :o2, 29257519, 12 + tz.transition 1963, 10, :o1, 29259703, 12 + tz.transition 1964, 4, :o2, 29261887, 12 + tz.transition 1964, 10, :o1, 29264071, 12 + tz.transition 1965, 4, :o2, 29266255, 12 + tz.transition 1965, 10, :o1, 29268439, 12 + tz.transition 1966, 4, :o4, 29270623, 12 + tz.transition 1976, 9, :o1, 212544000 + tz.transition 1977, 3, :o2, 228268800 + tz.transition 1977, 9, :o1, 243993600 + tz.transition 1978, 4, :o2, 260323200 + tz.transition 1978, 10, :o1, 276048000 + tz.transition 1979, 4, :o2, 291772800 + tz.transition 1979, 9, :o1, 307501200 + tz.transition 1980, 3, :o2, 323222400 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417578400 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o4, 717555600 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 9, :o4, 749005200 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 9, :o4, 780454800 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 9, :o4, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Ljubljana.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Ljubljana.rb new file mode 100644 index 000000000..a9828e6ef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Ljubljana.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Ljubljana + include TimezoneDefinition + + linked_timezone 'Europe/Ljubljana', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/London.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/London.rb new file mode 100644 index 000000000..64ce41e90 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/London.rb @@ -0,0 +1,288 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module London + include TimezoneDefinition + + timezone 'Europe/London' do |tz| + tz.offset :o0, -75, 0, :LMT + tz.offset :o1, 0, 0, :GMT + tz.offset :o2, 0, 3600, :BST + tz.offset :o3, 0, 7200, :BDST + tz.offset :o4, 3600, 0, :BST + + tz.transition 1847, 12, :o1, 2760187969, 1152 + tz.transition 1916, 5, :o2, 29052055, 12 + tz.transition 1916, 10, :o1, 29053651, 12 + tz.transition 1917, 4, :o2, 29055919, 12 + tz.transition 1917, 9, :o1, 29057863, 12 + tz.transition 1918, 3, :o2, 29060119, 12 + tz.transition 1918, 9, :o1, 29062399, 12 + tz.transition 1919, 3, :o2, 29064571, 12 + tz.transition 1919, 9, :o1, 29066767, 12 + tz.transition 1920, 3, :o2, 29068939, 12 + tz.transition 1920, 10, :o1, 29071471, 12 + tz.transition 1921, 4, :o2, 29073391, 12 + tz.transition 1921, 10, :o1, 29075587, 12 + tz.transition 1922, 3, :o2, 29077675, 12 + tz.transition 1922, 10, :o1, 29080027, 12 + tz.transition 1923, 4, :o2, 29082379, 12 + tz.transition 1923, 9, :o1, 29084143, 12 + tz.transition 1924, 4, :o2, 29086663, 12 + tz.transition 1924, 9, :o1, 29088595, 12 + tz.transition 1925, 4, :o2, 29091115, 12 + tz.transition 1925, 10, :o1, 29093131, 12 + tz.transition 1926, 4, :o2, 29095483, 12 + tz.transition 1926, 10, :o1, 29097499, 12 + tz.transition 1927, 4, :o2, 29099767, 12 + tz.transition 1927, 10, :o1, 29101867, 12 + tz.transition 1928, 4, :o2, 29104303, 12 + tz.transition 1928, 10, :o1, 29106319, 12 + tz.transition 1929, 4, :o2, 29108671, 12 + tz.transition 1929, 10, :o1, 29110687, 12 + tz.transition 1930, 4, :o2, 29112955, 12 + tz.transition 1930, 10, :o1, 29115055, 12 + tz.transition 1931, 4, :o2, 29117407, 12 + tz.transition 1931, 10, :o1, 29119423, 12 + tz.transition 1932, 4, :o2, 29121775, 12 + tz.transition 1932, 10, :o1, 29123791, 12 + tz.transition 1933, 4, :o2, 29126059, 12 + tz.transition 1933, 10, :o1, 29128243, 12 + tz.transition 1934, 4, :o2, 29130595, 12 + tz.transition 1934, 10, :o1, 29132611, 12 + tz.transition 1935, 4, :o2, 29134879, 12 + tz.transition 1935, 10, :o1, 29136979, 12 + tz.transition 1936, 4, :o2, 29139331, 12 + tz.transition 1936, 10, :o1, 29141347, 12 + tz.transition 1937, 4, :o2, 29143699, 12 + tz.transition 1937, 10, :o1, 29145715, 12 + tz.transition 1938, 4, :o2, 29147983, 12 + tz.transition 1938, 10, :o1, 29150083, 12 + tz.transition 1939, 4, :o2, 29152435, 12 + tz.transition 1939, 11, :o1, 29155039, 12 + tz.transition 1940, 2, :o2, 29156215, 12 + tz.transition 1941, 5, :o3, 58322845, 24 + tz.transition 1941, 8, :o2, 58325197, 24 + tz.transition 1942, 4, :o3, 58330909, 24 + tz.transition 1942, 8, :o2, 58333933, 24 + tz.transition 1943, 4, :o3, 58339645, 24 + tz.transition 1943, 8, :o2, 58342837, 24 + tz.transition 1944, 4, :o3, 58348381, 24 + tz.transition 1944, 9, :o2, 58352413, 24 + tz.transition 1945, 4, :o3, 58357141, 24 + tz.transition 1945, 7, :o2, 58359637, 24 + tz.transition 1945, 10, :o1, 29180827, 12 + tz.transition 1946, 4, :o2, 29183095, 12 + tz.transition 1946, 10, :o1, 29185195, 12 + tz.transition 1947, 3, :o2, 29187127, 12 + tz.transition 1947, 4, :o3, 58374925, 24 + tz.transition 1947, 8, :o2, 58377781, 24 + tz.transition 1947, 11, :o1, 29189899, 12 + tz.transition 1948, 3, :o2, 29191495, 12 + tz.transition 1948, 10, :o1, 29194267, 12 + tz.transition 1949, 4, :o2, 29196115, 12 + tz.transition 1949, 10, :o1, 29198635, 12 + tz.transition 1950, 4, :o2, 29200651, 12 + tz.transition 1950, 10, :o1, 29202919, 12 + tz.transition 1951, 4, :o2, 29205019, 12 + tz.transition 1951, 10, :o1, 29207287, 12 + tz.transition 1952, 4, :o2, 29209471, 12 + tz.transition 1952, 10, :o1, 29211739, 12 + tz.transition 1953, 4, :o2, 29213839, 12 + tz.transition 1953, 10, :o1, 29215855, 12 + tz.transition 1954, 4, :o2, 29218123, 12 + tz.transition 1954, 10, :o1, 29220223, 12 + tz.transition 1955, 4, :o2, 29222575, 12 + tz.transition 1955, 10, :o1, 29224591, 12 + tz.transition 1956, 4, :o2, 29227027, 12 + tz.transition 1956, 10, :o1, 29229043, 12 + tz.transition 1957, 4, :o2, 29231311, 12 + tz.transition 1957, 10, :o1, 29233411, 12 + tz.transition 1958, 4, :o2, 29235763, 12 + tz.transition 1958, 10, :o1, 29237779, 12 + tz.transition 1959, 4, :o2, 29240131, 12 + tz.transition 1959, 10, :o1, 29242147, 12 + tz.transition 1960, 4, :o2, 29244415, 12 + tz.transition 1960, 10, :o1, 29246515, 12 + tz.transition 1961, 3, :o2, 29248615, 12 + tz.transition 1961, 10, :o1, 29251219, 12 + tz.transition 1962, 3, :o2, 29252983, 12 + tz.transition 1962, 10, :o1, 29255587, 12 + tz.transition 1963, 3, :o2, 29257435, 12 + tz.transition 1963, 10, :o1, 29259955, 12 + tz.transition 1964, 3, :o2, 29261719, 12 + tz.transition 1964, 10, :o1, 29264323, 12 + tz.transition 1965, 3, :o2, 29266087, 12 + tz.transition 1965, 10, :o1, 29268691, 12 + tz.transition 1966, 3, :o2, 29270455, 12 + tz.transition 1966, 10, :o1, 29273059, 12 + tz.transition 1967, 3, :o2, 29274823, 12 + tz.transition 1967, 10, :o1, 29277511, 12 + tz.transition 1968, 2, :o2, 29278855, 12 + tz.transition 1968, 10, :o4, 58563755, 24 + tz.transition 1971, 10, :o1, 57722400 + tz.transition 1972, 3, :o2, 69818400 + tz.transition 1972, 10, :o1, 89172000 + tz.transition 1973, 3, :o2, 101268000 + tz.transition 1973, 10, :o1, 120621600 + tz.transition 1974, 3, :o2, 132717600 + tz.transition 1974, 10, :o1, 152071200 + tz.transition 1975, 3, :o2, 164167200 + tz.transition 1975, 10, :o1, 183520800 + tz.transition 1976, 3, :o2, 196221600 + tz.transition 1976, 10, :o1, 214970400 + tz.transition 1977, 3, :o2, 227671200 + tz.transition 1977, 10, :o1, 246420000 + tz.transition 1978, 3, :o2, 259120800 + tz.transition 1978, 10, :o1, 278474400 + tz.transition 1979, 3, :o2, 290570400 + tz.transition 1979, 10, :o1, 309924000 + tz.transition 1980, 3, :o2, 322020000 + tz.transition 1980, 10, :o1, 341373600 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 10, :o1, 372819600 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 10, :o1, 404269200 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 10, :o1, 435718800 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 10, :o1, 467773200 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 10, :o1, 499222800 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 10, :o1, 530672400 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 10, :o1, 562122000 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 10, :o1, 593571600 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 10, :o1, 625626000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 10, :o1, 657075600 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 10, :o1, 688525200 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 10, :o1, 719974800 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 10, :o1, 751424400 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 10, :o1, 782874000 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 10, :o1, 814323600 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Madrid.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Madrid.rb new file mode 100644 index 000000000..1fb568239 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Madrid.rb @@ -0,0 +1,211 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Madrid + include TimezoneDefinition + + timezone 'Europe/Madrid' do |tz| + tz.offset :o0, -884, 0, :LMT + tz.offset :o1, 0, 0, :WET + tz.offset :o2, 0, 3600, :WEST + tz.offset :o3, 0, 7200, :WEMT + tz.offset :o4, 3600, 0, :CET + tz.offset :o5, 3600, 3600, :CEST + + tz.transition 1901, 1, :o1, 52172327021, 21600 + tz.transition 1917, 5, :o2, 58112507, 24 + tz.transition 1917, 10, :o1, 58116203, 24 + tz.transition 1918, 4, :o2, 58120787, 24 + tz.transition 1918, 10, :o1, 58124963, 24 + tz.transition 1919, 4, :o2, 58129307, 24 + tz.transition 1919, 10, :o1, 58133723, 24 + tz.transition 1924, 4, :o2, 58173419, 24 + tz.transition 1924, 10, :o1, 58177523, 24 + tz.transition 1926, 4, :o2, 58190963, 24 + tz.transition 1926, 10, :o1, 58194995, 24 + tz.transition 1927, 4, :o2, 58199531, 24 + tz.transition 1927, 10, :o1, 58203731, 24 + tz.transition 1928, 4, :o2, 58208435, 24 + tz.transition 1928, 10, :o1, 58212635, 24 + tz.transition 1929, 4, :o2, 58217339, 24 + tz.transition 1929, 10, :o1, 58221371, 24 + tz.transition 1937, 5, :o2, 58288235, 24 + tz.transition 1937, 10, :o1, 58291427, 24 + tz.transition 1938, 3, :o2, 58295531, 24 + tz.transition 1938, 10, :o1, 58300163, 24 + tz.transition 1939, 4, :o2, 58304867, 24 + tz.transition 1939, 10, :o1, 58309067, 24 + tz.transition 1940, 3, :o2, 58312931, 24 + tz.transition 1942, 5, :o3, 29165789, 12 + tz.transition 1942, 9, :o2, 29167253, 12 + tz.transition 1943, 4, :o3, 29169989, 12 + tz.transition 1943, 10, :o2, 29172017, 12 + tz.transition 1944, 4, :o3, 29174357, 12 + tz.transition 1944, 10, :o2, 29176493, 12 + tz.transition 1945, 4, :o3, 29178725, 12 + tz.transition 1945, 9, :o2, 58361483, 24 + tz.transition 1946, 4, :o3, 29183093, 12 + tz.transition 1946, 9, :o4, 29185121, 12 + tz.transition 1949, 4, :o5, 29196449, 12 + tz.transition 1949, 9, :o4, 58396547, 24 + tz.transition 1974, 4, :o5, 135122400 + tz.transition 1974, 10, :o4, 150246000 + tz.transition 1975, 4, :o5, 167176800 + tz.transition 1975, 10, :o4, 181695600 + tz.transition 1976, 3, :o5, 196812000 + tz.transition 1976, 9, :o4, 212540400 + tz.transition 1977, 4, :o5, 228866400 + tz.transition 1977, 9, :o4, 243990000 + tz.transition 1978, 4, :o5, 260402400 + tz.transition 1978, 9, :o4, 276044400 + tz.transition 1979, 4, :o5, 291776400 + tz.transition 1979, 9, :o4, 307501200 + tz.transition 1980, 4, :o5, 323830800 + tz.transition 1980, 9, :o4, 338950800 + tz.transition 1981, 3, :o5, 354675600 + tz.transition 1981, 9, :o4, 370400400 + tz.transition 1982, 3, :o5, 386125200 + tz.transition 1982, 9, :o4, 401850000 + tz.transition 1983, 3, :o5, 417574800 + tz.transition 1983, 9, :o4, 433299600 + tz.transition 1984, 3, :o5, 449024400 + tz.transition 1984, 9, :o4, 465354000 + tz.transition 1985, 3, :o5, 481078800 + tz.transition 1985, 9, :o4, 496803600 + tz.transition 1986, 3, :o5, 512528400 + tz.transition 1986, 9, :o4, 528253200 + tz.transition 1987, 3, :o5, 543978000 + tz.transition 1987, 9, :o4, 559702800 + tz.transition 1988, 3, :o5, 575427600 + tz.transition 1988, 9, :o4, 591152400 + tz.transition 1989, 3, :o5, 606877200 + tz.transition 1989, 9, :o4, 622602000 + tz.transition 1990, 3, :o5, 638326800 + tz.transition 1990, 9, :o4, 654656400 + tz.transition 1991, 3, :o5, 670381200 + tz.transition 1991, 9, :o4, 686106000 + tz.transition 1992, 3, :o5, 701830800 + tz.transition 1992, 9, :o4, 717555600 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 9, :o4, 749005200 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 9, :o4, 780454800 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 9, :o4, 811904400 + tz.transition 1996, 3, :o5, 828234000 + tz.transition 1996, 10, :o4, 846378000 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o4, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o4, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o4, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o4, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o4, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o4, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o4, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o4, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o4, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o4, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o4, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o4, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o4, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o4, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o4, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o4, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o4, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o4, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o4, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o4, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o4, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o4, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o4, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o4, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o4, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o4, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o4, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o4, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o4, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o4, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o4, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o4, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o4, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o4, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o4, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o4, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o4, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o4, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o4, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o4, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o4, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o4, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o4, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o4, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o4, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o4, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o4, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o4, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o4, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o4, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o4, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o4, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o4, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o4, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Minsk.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Minsk.rb new file mode 100644 index 000000000..fa15816cc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Minsk.rb @@ -0,0 +1,170 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Minsk + include TimezoneDefinition + + timezone 'Europe/Minsk' do |tz| + tz.offset :o0, 6616, 0, :LMT + tz.offset :o1, 6600, 0, :MMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 10800, 0, :MSK + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + tz.offset :o6, 10800, 3600, :MSD + tz.offset :o7, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 26003326573, 10800 + tz.transition 1924, 5, :o2, 349042669, 144 + tz.transition 1930, 6, :o3, 29113781, 12 + tz.transition 1941, 6, :o4, 19441387, 8 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o5, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 7, :o3, 29175293, 12 + tz.transition 1981, 3, :o6, 354920400 + tz.transition 1981, 9, :o3, 370728000 + tz.transition 1982, 3, :o6, 386456400 + tz.transition 1982, 9, :o3, 402264000 + tz.transition 1983, 3, :o6, 417992400 + tz.transition 1983, 9, :o3, 433800000 + tz.transition 1984, 3, :o6, 449614800 + tz.transition 1984, 9, :o3, 465346800 + tz.transition 1985, 3, :o6, 481071600 + tz.transition 1985, 9, :o3, 496796400 + tz.transition 1986, 3, :o6, 512521200 + tz.transition 1986, 9, :o3, 528246000 + tz.transition 1987, 3, :o6, 543970800 + tz.transition 1987, 9, :o3, 559695600 + tz.transition 1988, 3, :o6, 575420400 + tz.transition 1988, 9, :o3, 591145200 + tz.transition 1989, 3, :o6, 606870000 + tz.transition 1989, 9, :o3, 622594800 + tz.transition 1991, 3, :o7, 670374000 + tz.transition 1991, 9, :o2, 686102400 + tz.transition 1992, 3, :o7, 701820000 + tz.transition 1992, 9, :o2, 717544800 + tz.transition 1993, 3, :o7, 733276800 + tz.transition 1993, 9, :o2, 749001600 + tz.transition 1994, 3, :o7, 764726400 + tz.transition 1994, 9, :o2, 780451200 + tz.transition 1995, 3, :o7, 796176000 + tz.transition 1995, 9, :o2, 811900800 + tz.transition 1996, 3, :o7, 828230400 + tz.transition 1996, 10, :o2, 846374400 + tz.transition 1997, 3, :o7, 859680000 + tz.transition 1997, 10, :o2, 877824000 + tz.transition 1998, 3, :o7, 891129600 + tz.transition 1998, 10, :o2, 909273600 + tz.transition 1999, 3, :o7, 922579200 + tz.transition 1999, 10, :o2, 941328000 + tz.transition 2000, 3, :o7, 954028800 + tz.transition 2000, 10, :o2, 972777600 + tz.transition 2001, 3, :o7, 985478400 + tz.transition 2001, 10, :o2, 1004227200 + tz.transition 2002, 3, :o7, 1017532800 + tz.transition 2002, 10, :o2, 1035676800 + tz.transition 2003, 3, :o7, 1048982400 + tz.transition 2003, 10, :o2, 1067126400 + tz.transition 2004, 3, :o7, 1080432000 + tz.transition 2004, 10, :o2, 1099180800 + tz.transition 2005, 3, :o7, 1111881600 + tz.transition 2005, 10, :o2, 1130630400 + tz.transition 2006, 3, :o7, 1143331200 + tz.transition 2006, 10, :o2, 1162080000 + tz.transition 2007, 3, :o7, 1174780800 + tz.transition 2007, 10, :o2, 1193529600 + tz.transition 2008, 3, :o7, 1206835200 + tz.transition 2008, 10, :o2, 1224979200 + tz.transition 2009, 3, :o7, 1238284800 + tz.transition 2009, 10, :o2, 1256428800 + tz.transition 2010, 3, :o7, 1269734400 + tz.transition 2010, 10, :o2, 1288483200 + tz.transition 2011, 3, :o7, 1301184000 + tz.transition 2011, 10, :o2, 1319932800 + tz.transition 2012, 3, :o7, 1332633600 + tz.transition 2012, 10, :o2, 1351382400 + tz.transition 2013, 3, :o7, 1364688000 + tz.transition 2013, 10, :o2, 1382832000 + tz.transition 2014, 3, :o7, 1396137600 + tz.transition 2014, 10, :o2, 1414281600 + tz.transition 2015, 3, :o7, 1427587200 + tz.transition 2015, 10, :o2, 1445731200 + tz.transition 2016, 3, :o7, 1459036800 + tz.transition 2016, 10, :o2, 1477785600 + tz.transition 2017, 3, :o7, 1490486400 + tz.transition 2017, 10, :o2, 1509235200 + tz.transition 2018, 3, :o7, 1521936000 + tz.transition 2018, 10, :o2, 1540684800 + tz.transition 2019, 3, :o7, 1553990400 + tz.transition 2019, 10, :o2, 1572134400 + tz.transition 2020, 3, :o7, 1585440000 + tz.transition 2020, 10, :o2, 1603584000 + tz.transition 2021, 3, :o7, 1616889600 + tz.transition 2021, 10, :o2, 1635638400 + tz.transition 2022, 3, :o7, 1648339200 + tz.transition 2022, 10, :o2, 1667088000 + tz.transition 2023, 3, :o7, 1679788800 + tz.transition 2023, 10, :o2, 1698537600 + tz.transition 2024, 3, :o7, 1711843200 + tz.transition 2024, 10, :o2, 1729987200 + tz.transition 2025, 3, :o7, 1743292800 + tz.transition 2025, 10, :o2, 1761436800 + tz.transition 2026, 3, :o7, 1774742400 + tz.transition 2026, 10, :o2, 1792886400 + tz.transition 2027, 3, :o7, 1806192000 + tz.transition 2027, 10, :o2, 1824940800 + tz.transition 2028, 3, :o7, 1837641600 + tz.transition 2028, 10, :o2, 1856390400 + tz.transition 2029, 3, :o7, 1869091200 + tz.transition 2029, 10, :o2, 1887840000 + tz.transition 2030, 3, :o7, 1901145600 + tz.transition 2030, 10, :o2, 1919289600 + tz.transition 2031, 3, :o7, 1932595200 + tz.transition 2031, 10, :o2, 1950739200 + tz.transition 2032, 3, :o7, 1964044800 + tz.transition 2032, 10, :o2, 1982793600 + tz.transition 2033, 3, :o7, 1995494400 + tz.transition 2033, 10, :o2, 2014243200 + tz.transition 2034, 3, :o7, 2026944000 + tz.transition 2034, 10, :o2, 2045692800 + tz.transition 2035, 3, :o7, 2058393600 + tz.transition 2035, 10, :o2, 2077142400 + tz.transition 2036, 3, :o7, 2090448000 + tz.transition 2036, 10, :o2, 2108592000 + tz.transition 2037, 3, :o7, 2121897600 + tz.transition 2037, 10, :o2, 2140041600 + tz.transition 2038, 3, :o7, 4931021, 2 + tz.transition 2038, 10, :o2, 4931455, 2 + tz.transition 2039, 3, :o7, 4931749, 2 + tz.transition 2039, 10, :o2, 4932183, 2 + tz.transition 2040, 3, :o7, 4932477, 2 + tz.transition 2040, 10, :o2, 4932911, 2 + tz.transition 2041, 3, :o7, 4933219, 2 + tz.transition 2041, 10, :o2, 4933639, 2 + tz.transition 2042, 3, :o7, 4933947, 2 + tz.transition 2042, 10, :o2, 4934367, 2 + tz.transition 2043, 3, :o7, 4934675, 2 + tz.transition 2043, 10, :o2, 4935095, 2 + tz.transition 2044, 3, :o7, 4935403, 2 + tz.transition 2044, 10, :o2, 4935837, 2 + tz.transition 2045, 3, :o7, 4936131, 2 + tz.transition 2045, 10, :o2, 4936565, 2 + tz.transition 2046, 3, :o7, 4936859, 2 + tz.transition 2046, 10, :o2, 4937293, 2 + tz.transition 2047, 3, :o7, 4937601, 2 + tz.transition 2047, 10, :o2, 4938021, 2 + tz.transition 2048, 3, :o7, 4938329, 2 + tz.transition 2048, 10, :o2, 4938749, 2 + tz.transition 2049, 3, :o7, 4939057, 2 + tz.transition 2049, 10, :o2, 4939491, 2 + tz.transition 2050, 3, :o7, 4939785, 2 + tz.transition 2050, 10, :o2, 4940219, 2 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Moscow.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Moscow.rb new file mode 100644 index 000000000..ef269b675 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Moscow.rb @@ -0,0 +1,181 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Moscow + include TimezoneDefinition + + timezone 'Europe/Moscow' do |tz| + tz.offset :o0, 9020, 0, :LMT + tz.offset :o1, 9000, 0, :MMT + tz.offset :o2, 9048, 0, :MMT + tz.offset :o3, 9048, 3600, :MST + tz.offset :o4, 9048, 7200, :MDST + tz.offset :o5, 10800, 3600, :MSD + tz.offset :o6, 10800, 0, :MSK + tz.offset :o7, 10800, 7200, :MSD + tz.offset :o8, 7200, 0, :EET + tz.offset :o9, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 10401330509, 4320 + tz.transition 1916, 7, :o2, 116210275, 48 + tz.transition 1917, 7, :o3, 8717080873, 3600 + tz.transition 1917, 12, :o2, 8717725273, 3600 + tz.transition 1918, 5, :o4, 8718283123, 3600 + tz.transition 1918, 9, :o3, 8718668473, 3600 + tz.transition 1919, 5, :o4, 8719597123, 3600 + tz.transition 1919, 6, :o5, 8719705423, 3600 + tz.transition 1919, 8, :o6, 7266559, 3 + tz.transition 1921, 2, :o5, 7268206, 3 + tz.transition 1921, 3, :o7, 58146463, 24 + tz.transition 1921, 8, :o5, 58150399, 24 + tz.transition 1921, 9, :o6, 7268890, 3 + tz.transition 1922, 9, :o8, 19386627, 8 + tz.transition 1930, 6, :o6, 29113781, 12 + tz.transition 1981, 3, :o5, 354920400 + tz.transition 1981, 9, :o6, 370728000 + tz.transition 1982, 3, :o5, 386456400 + tz.transition 1982, 9, :o6, 402264000 + tz.transition 1983, 3, :o5, 417992400 + tz.transition 1983, 9, :o6, 433800000 + tz.transition 1984, 3, :o5, 449614800 + tz.transition 1984, 9, :o6, 465346800 + tz.transition 1985, 3, :o5, 481071600 + tz.transition 1985, 9, :o6, 496796400 + tz.transition 1986, 3, :o5, 512521200 + tz.transition 1986, 9, :o6, 528246000 + tz.transition 1987, 3, :o5, 543970800 + tz.transition 1987, 9, :o6, 559695600 + tz.transition 1988, 3, :o5, 575420400 + tz.transition 1988, 9, :o6, 591145200 + tz.transition 1989, 3, :o5, 606870000 + tz.transition 1989, 9, :o6, 622594800 + tz.transition 1990, 3, :o5, 638319600 + tz.transition 1990, 9, :o6, 654649200 + tz.transition 1991, 3, :o9, 670374000 + tz.transition 1991, 9, :o8, 686102400 + tz.transition 1992, 1, :o6, 695779200 + tz.transition 1992, 3, :o5, 701812800 + tz.transition 1992, 9, :o6, 717534000 + tz.transition 1993, 3, :o5, 733273200 + tz.transition 1993, 9, :o6, 748998000 + tz.transition 1994, 3, :o5, 764722800 + tz.transition 1994, 9, :o6, 780447600 + tz.transition 1995, 3, :o5, 796172400 + tz.transition 1995, 9, :o6, 811897200 + tz.transition 1996, 3, :o5, 828226800 + tz.transition 1996, 10, :o6, 846370800 + tz.transition 1997, 3, :o5, 859676400 + tz.transition 1997, 10, :o6, 877820400 + tz.transition 1998, 3, :o5, 891126000 + tz.transition 1998, 10, :o6, 909270000 + tz.transition 1999, 3, :o5, 922575600 + tz.transition 1999, 10, :o6, 941324400 + tz.transition 2000, 3, :o5, 954025200 + tz.transition 2000, 10, :o6, 972774000 + tz.transition 2001, 3, :o5, 985474800 + tz.transition 2001, 10, :o6, 1004223600 + tz.transition 2002, 3, :o5, 1017529200 + tz.transition 2002, 10, :o6, 1035673200 + tz.transition 2003, 3, :o5, 1048978800 + tz.transition 2003, 10, :o6, 1067122800 + tz.transition 2004, 3, :o5, 1080428400 + tz.transition 2004, 10, :o6, 1099177200 + tz.transition 2005, 3, :o5, 1111878000 + tz.transition 2005, 10, :o6, 1130626800 + tz.transition 2006, 3, :o5, 1143327600 + tz.transition 2006, 10, :o6, 1162076400 + tz.transition 2007, 3, :o5, 1174777200 + tz.transition 2007, 10, :o6, 1193526000 + tz.transition 2008, 3, :o5, 1206831600 + tz.transition 2008, 10, :o6, 1224975600 + tz.transition 2009, 3, :o5, 1238281200 + tz.transition 2009, 10, :o6, 1256425200 + tz.transition 2010, 3, :o5, 1269730800 + tz.transition 2010, 10, :o6, 1288479600 + tz.transition 2011, 3, :o5, 1301180400 + tz.transition 2011, 10, :o6, 1319929200 + tz.transition 2012, 3, :o5, 1332630000 + tz.transition 2012, 10, :o6, 1351378800 + tz.transition 2013, 3, :o5, 1364684400 + tz.transition 2013, 10, :o6, 1382828400 + tz.transition 2014, 3, :o5, 1396134000 + tz.transition 2014, 10, :o6, 1414278000 + tz.transition 2015, 3, :o5, 1427583600 + tz.transition 2015, 10, :o6, 1445727600 + tz.transition 2016, 3, :o5, 1459033200 + tz.transition 2016, 10, :o6, 1477782000 + tz.transition 2017, 3, :o5, 1490482800 + tz.transition 2017, 10, :o6, 1509231600 + tz.transition 2018, 3, :o5, 1521932400 + tz.transition 2018, 10, :o6, 1540681200 + tz.transition 2019, 3, :o5, 1553986800 + tz.transition 2019, 10, :o6, 1572130800 + tz.transition 2020, 3, :o5, 1585436400 + tz.transition 2020, 10, :o6, 1603580400 + tz.transition 2021, 3, :o5, 1616886000 + tz.transition 2021, 10, :o6, 1635634800 + tz.transition 2022, 3, :o5, 1648335600 + tz.transition 2022, 10, :o6, 1667084400 + tz.transition 2023, 3, :o5, 1679785200 + tz.transition 2023, 10, :o6, 1698534000 + tz.transition 2024, 3, :o5, 1711839600 + tz.transition 2024, 10, :o6, 1729983600 + tz.transition 2025, 3, :o5, 1743289200 + tz.transition 2025, 10, :o6, 1761433200 + tz.transition 2026, 3, :o5, 1774738800 + tz.transition 2026, 10, :o6, 1792882800 + tz.transition 2027, 3, :o5, 1806188400 + tz.transition 2027, 10, :o6, 1824937200 + tz.transition 2028, 3, :o5, 1837638000 + tz.transition 2028, 10, :o6, 1856386800 + tz.transition 2029, 3, :o5, 1869087600 + tz.transition 2029, 10, :o6, 1887836400 + tz.transition 2030, 3, :o5, 1901142000 + tz.transition 2030, 10, :o6, 1919286000 + tz.transition 2031, 3, :o5, 1932591600 + tz.transition 2031, 10, :o6, 1950735600 + tz.transition 2032, 3, :o5, 1964041200 + tz.transition 2032, 10, :o6, 1982790000 + tz.transition 2033, 3, :o5, 1995490800 + tz.transition 2033, 10, :o6, 2014239600 + tz.transition 2034, 3, :o5, 2026940400 + tz.transition 2034, 10, :o6, 2045689200 + tz.transition 2035, 3, :o5, 2058390000 + tz.transition 2035, 10, :o6, 2077138800 + tz.transition 2036, 3, :o5, 2090444400 + tz.transition 2036, 10, :o6, 2108588400 + tz.transition 2037, 3, :o5, 2121894000 + tz.transition 2037, 10, :o6, 2140038000 + tz.transition 2038, 3, :o5, 59172251, 24 + tz.transition 2038, 10, :o6, 59177459, 24 + tz.transition 2039, 3, :o5, 59180987, 24 + tz.transition 2039, 10, :o6, 59186195, 24 + tz.transition 2040, 3, :o5, 59189723, 24 + tz.transition 2040, 10, :o6, 59194931, 24 + tz.transition 2041, 3, :o5, 59198627, 24 + tz.transition 2041, 10, :o6, 59203667, 24 + tz.transition 2042, 3, :o5, 59207363, 24 + tz.transition 2042, 10, :o6, 59212403, 24 + tz.transition 2043, 3, :o5, 59216099, 24 + tz.transition 2043, 10, :o6, 59221139, 24 + tz.transition 2044, 3, :o5, 59224835, 24 + tz.transition 2044, 10, :o6, 59230043, 24 + tz.transition 2045, 3, :o5, 59233571, 24 + tz.transition 2045, 10, :o6, 59238779, 24 + tz.transition 2046, 3, :o5, 59242307, 24 + tz.transition 2046, 10, :o6, 59247515, 24 + tz.transition 2047, 3, :o5, 59251211, 24 + tz.transition 2047, 10, :o6, 59256251, 24 + tz.transition 2048, 3, :o5, 59259947, 24 + tz.transition 2048, 10, :o6, 59264987, 24 + tz.transition 2049, 3, :o5, 59268683, 24 + tz.transition 2049, 10, :o6, 59273891, 24 + tz.transition 2050, 3, :o5, 59277419, 24 + tz.transition 2050, 10, :o6, 59282627, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Paris.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Paris.rb new file mode 100644 index 000000000..e3236c0ba --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Paris.rb @@ -0,0 +1,232 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Paris + include TimezoneDefinition + + timezone 'Europe/Paris' do |tz| + tz.offset :o0, 561, 0, :LMT + tz.offset :o1, 561, 0, :PMT + tz.offset :o2, 0, 0, :WET + tz.offset :o3, 0, 3600, :WEST + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + tz.offset :o6, 0, 7200, :WEMT + + tz.transition 1891, 3, :o1, 69460027033, 28800 + tz.transition 1911, 3, :o2, 69670267033, 28800 + tz.transition 1916, 6, :o3, 58104707, 24 + tz.transition 1916, 10, :o2, 58107323, 24 + tz.transition 1917, 3, :o3, 58111499, 24 + tz.transition 1917, 10, :o2, 58116227, 24 + tz.transition 1918, 3, :o3, 58119899, 24 + tz.transition 1918, 10, :o2, 58124963, 24 + tz.transition 1919, 3, :o3, 58128467, 24 + tz.transition 1919, 10, :o2, 58133699, 24 + tz.transition 1920, 2, :o3, 58136867, 24 + tz.transition 1920, 10, :o2, 58142915, 24 + tz.transition 1921, 3, :o3, 58146323, 24 + tz.transition 1921, 10, :o2, 58151723, 24 + tz.transition 1922, 3, :o3, 58155347, 24 + tz.transition 1922, 10, :o2, 58160051, 24 + tz.transition 1923, 5, :o3, 58165595, 24 + tz.transition 1923, 10, :o2, 58168787, 24 + tz.transition 1924, 3, :o3, 58172987, 24 + tz.transition 1924, 10, :o2, 58177523, 24 + tz.transition 1925, 4, :o3, 58181891, 24 + tz.transition 1925, 10, :o2, 58186259, 24 + tz.transition 1926, 4, :o3, 58190963, 24 + tz.transition 1926, 10, :o2, 58194995, 24 + tz.transition 1927, 4, :o3, 58199531, 24 + tz.transition 1927, 10, :o2, 58203731, 24 + tz.transition 1928, 4, :o3, 58208435, 24 + tz.transition 1928, 10, :o2, 58212635, 24 + tz.transition 1929, 4, :o3, 58217339, 24 + tz.transition 1929, 10, :o2, 58221371, 24 + tz.transition 1930, 4, :o3, 58225907, 24 + tz.transition 1930, 10, :o2, 58230107, 24 + tz.transition 1931, 4, :o3, 58234811, 24 + tz.transition 1931, 10, :o2, 58238843, 24 + tz.transition 1932, 4, :o3, 58243211, 24 + tz.transition 1932, 10, :o2, 58247579, 24 + tz.transition 1933, 3, :o3, 58251779, 24 + tz.transition 1933, 10, :o2, 58256483, 24 + tz.transition 1934, 4, :o3, 58260851, 24 + tz.transition 1934, 10, :o2, 58265219, 24 + tz.transition 1935, 3, :o3, 58269419, 24 + tz.transition 1935, 10, :o2, 58273955, 24 + tz.transition 1936, 4, :o3, 58278659, 24 + tz.transition 1936, 10, :o2, 58282691, 24 + tz.transition 1937, 4, :o3, 58287059, 24 + tz.transition 1937, 10, :o2, 58291427, 24 + tz.transition 1938, 3, :o3, 58295627, 24 + tz.transition 1938, 10, :o2, 58300163, 24 + tz.transition 1939, 4, :o3, 58304867, 24 + tz.transition 1939, 11, :o2, 58310075, 24 + tz.transition 1940, 2, :o3, 29156215, 12 + tz.transition 1940, 6, :o4, 29157545, 12 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o5, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 8, :o6, 29175929, 12 + tz.transition 1944, 10, :o3, 58352915, 24 + tz.transition 1945, 4, :o6, 58357141, 24 + tz.transition 1945, 9, :o5, 58361149, 24 + tz.transition 1976, 3, :o4, 196819200 + tz.transition 1976, 9, :o5, 212540400 + tz.transition 1977, 4, :o4, 228877200 + tz.transition 1977, 9, :o5, 243997200 + tz.transition 1978, 4, :o4, 260326800 + tz.transition 1978, 10, :o5, 276051600 + tz.transition 1979, 4, :o4, 291776400 + tz.transition 1979, 9, :o5, 307501200 + tz.transition 1980, 4, :o4, 323830800 + tz.transition 1980, 9, :o5, 338950800 + tz.transition 1981, 3, :o4, 354675600 + tz.transition 1981, 9, :o5, 370400400 + tz.transition 1982, 3, :o4, 386125200 + tz.transition 1982, 9, :o5, 401850000 + tz.transition 1983, 3, :o4, 417574800 + tz.transition 1983, 9, :o5, 433299600 + tz.transition 1984, 3, :o4, 449024400 + tz.transition 1984, 9, :o5, 465354000 + tz.transition 1985, 3, :o4, 481078800 + tz.transition 1985, 9, :o5, 496803600 + tz.transition 1986, 3, :o4, 512528400 + tz.transition 1986, 9, :o5, 528253200 + tz.transition 1987, 3, :o4, 543978000 + tz.transition 1987, 9, :o5, 559702800 + tz.transition 1988, 3, :o4, 575427600 + tz.transition 1988, 9, :o5, 591152400 + tz.transition 1989, 3, :o4, 606877200 + tz.transition 1989, 9, :o5, 622602000 + tz.transition 1990, 3, :o4, 638326800 + tz.transition 1990, 9, :o5, 654656400 + tz.transition 1991, 3, :o4, 670381200 + tz.transition 1991, 9, :o5, 686106000 + tz.transition 1992, 3, :o4, 701830800 + tz.transition 1992, 9, :o5, 717555600 + tz.transition 1993, 3, :o4, 733280400 + tz.transition 1993, 9, :o5, 749005200 + tz.transition 1994, 3, :o4, 764730000 + tz.transition 1994, 9, :o5, 780454800 + tz.transition 1995, 3, :o4, 796179600 + tz.transition 1995, 9, :o5, 811904400 + tz.transition 1996, 3, :o4, 828234000 + tz.transition 1996, 10, :o5, 846378000 + tz.transition 1997, 3, :o4, 859683600 + tz.transition 1997, 10, :o5, 877827600 + tz.transition 1998, 3, :o4, 891133200 + tz.transition 1998, 10, :o5, 909277200 + tz.transition 1999, 3, :o4, 922582800 + tz.transition 1999, 10, :o5, 941331600 + tz.transition 2000, 3, :o4, 954032400 + tz.transition 2000, 10, :o5, 972781200 + tz.transition 2001, 3, :o4, 985482000 + tz.transition 2001, 10, :o5, 1004230800 + tz.transition 2002, 3, :o4, 1017536400 + tz.transition 2002, 10, :o5, 1035680400 + tz.transition 2003, 3, :o4, 1048986000 + tz.transition 2003, 10, :o5, 1067130000 + tz.transition 2004, 3, :o4, 1080435600 + tz.transition 2004, 10, :o5, 1099184400 + tz.transition 2005, 3, :o4, 1111885200 + tz.transition 2005, 10, :o5, 1130634000 + tz.transition 2006, 3, :o4, 1143334800 + tz.transition 2006, 10, :o5, 1162083600 + tz.transition 2007, 3, :o4, 1174784400 + tz.transition 2007, 10, :o5, 1193533200 + tz.transition 2008, 3, :o4, 1206838800 + tz.transition 2008, 10, :o5, 1224982800 + tz.transition 2009, 3, :o4, 1238288400 + tz.transition 2009, 10, :o5, 1256432400 + tz.transition 2010, 3, :o4, 1269738000 + tz.transition 2010, 10, :o5, 1288486800 + tz.transition 2011, 3, :o4, 1301187600 + tz.transition 2011, 10, :o5, 1319936400 + tz.transition 2012, 3, :o4, 1332637200 + tz.transition 2012, 10, :o5, 1351386000 + tz.transition 2013, 3, :o4, 1364691600 + tz.transition 2013, 10, :o5, 1382835600 + tz.transition 2014, 3, :o4, 1396141200 + tz.transition 2014, 10, :o5, 1414285200 + tz.transition 2015, 3, :o4, 1427590800 + tz.transition 2015, 10, :o5, 1445734800 + tz.transition 2016, 3, :o4, 1459040400 + tz.transition 2016, 10, :o5, 1477789200 + tz.transition 2017, 3, :o4, 1490490000 + tz.transition 2017, 10, :o5, 1509238800 + tz.transition 2018, 3, :o4, 1521939600 + tz.transition 2018, 10, :o5, 1540688400 + tz.transition 2019, 3, :o4, 1553994000 + tz.transition 2019, 10, :o5, 1572138000 + tz.transition 2020, 3, :o4, 1585443600 + tz.transition 2020, 10, :o5, 1603587600 + tz.transition 2021, 3, :o4, 1616893200 + tz.transition 2021, 10, :o5, 1635642000 + tz.transition 2022, 3, :o4, 1648342800 + tz.transition 2022, 10, :o5, 1667091600 + tz.transition 2023, 3, :o4, 1679792400 + tz.transition 2023, 10, :o5, 1698541200 + tz.transition 2024, 3, :o4, 1711846800 + tz.transition 2024, 10, :o5, 1729990800 + tz.transition 2025, 3, :o4, 1743296400 + tz.transition 2025, 10, :o5, 1761440400 + tz.transition 2026, 3, :o4, 1774746000 + tz.transition 2026, 10, :o5, 1792890000 + tz.transition 2027, 3, :o4, 1806195600 + tz.transition 2027, 10, :o5, 1824944400 + tz.transition 2028, 3, :o4, 1837645200 + tz.transition 2028, 10, :o5, 1856394000 + tz.transition 2029, 3, :o4, 1869094800 + tz.transition 2029, 10, :o5, 1887843600 + tz.transition 2030, 3, :o4, 1901149200 + tz.transition 2030, 10, :o5, 1919293200 + tz.transition 2031, 3, :o4, 1932598800 + tz.transition 2031, 10, :o5, 1950742800 + tz.transition 2032, 3, :o4, 1964048400 + tz.transition 2032, 10, :o5, 1982797200 + tz.transition 2033, 3, :o4, 1995498000 + tz.transition 2033, 10, :o5, 2014246800 + tz.transition 2034, 3, :o4, 2026947600 + tz.transition 2034, 10, :o5, 2045696400 + tz.transition 2035, 3, :o4, 2058397200 + tz.transition 2035, 10, :o5, 2077146000 + tz.transition 2036, 3, :o4, 2090451600 + tz.transition 2036, 10, :o5, 2108595600 + tz.transition 2037, 3, :o4, 2121901200 + tz.transition 2037, 10, :o5, 2140045200 + tz.transition 2038, 3, :o4, 59172253, 24 + tz.transition 2038, 10, :o5, 59177461, 24 + tz.transition 2039, 3, :o4, 59180989, 24 + tz.transition 2039, 10, :o5, 59186197, 24 + tz.transition 2040, 3, :o4, 59189725, 24 + tz.transition 2040, 10, :o5, 59194933, 24 + tz.transition 2041, 3, :o4, 59198629, 24 + tz.transition 2041, 10, :o5, 59203669, 24 + tz.transition 2042, 3, :o4, 59207365, 24 + tz.transition 2042, 10, :o5, 59212405, 24 + tz.transition 2043, 3, :o4, 59216101, 24 + tz.transition 2043, 10, :o5, 59221141, 24 + tz.transition 2044, 3, :o4, 59224837, 24 + tz.transition 2044, 10, :o5, 59230045, 24 + tz.transition 2045, 3, :o4, 59233573, 24 + tz.transition 2045, 10, :o5, 59238781, 24 + tz.transition 2046, 3, :o4, 59242309, 24 + tz.transition 2046, 10, :o5, 59247517, 24 + tz.transition 2047, 3, :o4, 59251213, 24 + tz.transition 2047, 10, :o5, 59256253, 24 + tz.transition 2048, 3, :o4, 59259949, 24 + tz.transition 2048, 10, :o5, 59264989, 24 + tz.transition 2049, 3, :o4, 59268685, 24 + tz.transition 2049, 10, :o5, 59273893, 24 + tz.transition 2050, 3, :o4, 59277421, 24 + tz.transition 2050, 10, :o5, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Prague.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Prague.rb new file mode 100644 index 000000000..bcabee96c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Prague.rb @@ -0,0 +1,187 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Prague + include TimezoneDefinition + + timezone 'Europe/Prague' do |tz| + tz.offset :o0, 3464, 0, :LMT + tz.offset :o1, 3464, 0, :PMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1849, 12, :o1, 25884991367, 10800 + tz.transition 1891, 9, :o2, 26049669767, 10800 + tz.transition 1916, 4, :o3, 29051813, 12 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1917, 4, :o3, 58112029, 24 + tz.transition 1917, 9, :o2, 58115725, 24 + tz.transition 1918, 4, :o3, 58120765, 24 + tz.transition 1918, 9, :o2, 58124461, 24 + tz.transition 1940, 4, :o3, 58313293, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 9, :o2, 58352413, 24 + tz.transition 1945, 4, :o3, 58357285, 24 + tz.transition 1945, 11, :o2, 58362661, 24 + tz.transition 1946, 5, :o3, 58366717, 24 + tz.transition 1946, 10, :o2, 58370389, 24 + tz.transition 1947, 4, :o3, 58375093, 24 + tz.transition 1947, 10, :o2, 58379125, 24 + tz.transition 1948, 4, :o3, 58383829, 24 + tz.transition 1948, 10, :o2, 58387861, 24 + tz.transition 1949, 4, :o3, 58392373, 24 + tz.transition 1949, 10, :o2, 58396597, 24 + tz.transition 1979, 4, :o3, 291776400 + tz.transition 1979, 9, :o2, 307501200 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Riga.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Riga.rb new file mode 100644 index 000000000..784837f75 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Riga.rb @@ -0,0 +1,176 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Riga + include TimezoneDefinition + + timezone 'Europe/Riga' do |tz| + tz.offset :o0, 5784, 0, :LMT + tz.offset :o1, 5784, 0, :RMT + tz.offset :o2, 5784, 3600, :LST + tz.offset :o3, 7200, 0, :EET + tz.offset :o4, 10800, 0, :MSK + tz.offset :o5, 3600, 3600, :CEST + tz.offset :o6, 3600, 0, :CET + tz.offset :o7, 10800, 3600, :MSD + tz.offset :o8, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 8667775559, 3600 + tz.transition 1918, 4, :o2, 8718114659, 3600 + tz.transition 1918, 9, :o1, 8718669059, 3600 + tz.transition 1919, 4, :o2, 8719378259, 3600 + tz.transition 1919, 5, :o1, 8719561859, 3600 + tz.transition 1926, 5, :o3, 8728727159, 3600 + tz.transition 1940, 8, :o4, 29158157, 12 + tz.transition 1941, 6, :o5, 19441411, 8 + tz.transition 1942, 11, :o6, 58335973, 24 + tz.transition 1943, 3, :o5, 58339501, 24 + tz.transition 1943, 10, :o6, 58344037, 24 + tz.transition 1944, 4, :o5, 58348405, 24 + tz.transition 1944, 10, :o6, 58352773, 24 + tz.transition 1944, 10, :o4, 58353035, 24 + tz.transition 1981, 3, :o7, 354920400 + tz.transition 1981, 9, :o4, 370728000 + tz.transition 1982, 3, :o7, 386456400 + tz.transition 1982, 9, :o4, 402264000 + tz.transition 1983, 3, :o7, 417992400 + tz.transition 1983, 9, :o4, 433800000 + tz.transition 1984, 3, :o7, 449614800 + tz.transition 1984, 9, :o4, 465346800 + tz.transition 1985, 3, :o7, 481071600 + tz.transition 1985, 9, :o4, 496796400 + tz.transition 1986, 3, :o7, 512521200 + tz.transition 1986, 9, :o4, 528246000 + tz.transition 1987, 3, :o7, 543970800 + tz.transition 1987, 9, :o4, 559695600 + tz.transition 1988, 3, :o7, 575420400 + tz.transition 1988, 9, :o4, 591145200 + tz.transition 1989, 3, :o8, 606870000 + tz.transition 1989, 9, :o3, 622598400 + tz.transition 1990, 3, :o8, 638323200 + tz.transition 1990, 9, :o3, 654652800 + tz.transition 1991, 3, :o8, 670377600 + tz.transition 1991, 9, :o3, 686102400 + tz.transition 1992, 3, :o8, 701827200 + tz.transition 1992, 9, :o3, 717552000 + tz.transition 1993, 3, :o8, 733276800 + tz.transition 1993, 9, :o3, 749001600 + tz.transition 1994, 3, :o8, 764726400 + tz.transition 1994, 9, :o3, 780451200 + tz.transition 1995, 3, :o8, 796176000 + tz.transition 1995, 9, :o3, 811900800 + tz.transition 1996, 3, :o8, 828230400 + tz.transition 1996, 9, :o3, 843955200 + tz.transition 1997, 3, :o8, 859683600 + tz.transition 1997, 10, :o3, 877827600 + tz.transition 1998, 3, :o8, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o8, 922582800 + tz.transition 1999, 10, :o3, 941331600 + tz.transition 2001, 3, :o8, 985482000 + tz.transition 2001, 10, :o3, 1004230800 + tz.transition 2002, 3, :o8, 1017536400 + tz.transition 2002, 10, :o3, 1035680400 + tz.transition 2003, 3, :o8, 1048986000 + tz.transition 2003, 10, :o3, 1067130000 + tz.transition 2004, 3, :o8, 1080435600 + tz.transition 2004, 10, :o3, 1099184400 + tz.transition 2005, 3, :o8, 1111885200 + tz.transition 2005, 10, :o3, 1130634000 + tz.transition 2006, 3, :o8, 1143334800 + tz.transition 2006, 10, :o3, 1162083600 + tz.transition 2007, 3, :o8, 1174784400 + tz.transition 2007, 10, :o3, 1193533200 + tz.transition 2008, 3, :o8, 1206838800 + tz.transition 2008, 10, :o3, 1224982800 + tz.transition 2009, 3, :o8, 1238288400 + tz.transition 2009, 10, :o3, 1256432400 + tz.transition 2010, 3, :o8, 1269738000 + tz.transition 2010, 10, :o3, 1288486800 + tz.transition 2011, 3, :o8, 1301187600 + tz.transition 2011, 10, :o3, 1319936400 + tz.transition 2012, 3, :o8, 1332637200 + tz.transition 2012, 10, :o3, 1351386000 + tz.transition 2013, 3, :o8, 1364691600 + tz.transition 2013, 10, :o3, 1382835600 + tz.transition 2014, 3, :o8, 1396141200 + tz.transition 2014, 10, :o3, 1414285200 + tz.transition 2015, 3, :o8, 1427590800 + tz.transition 2015, 10, :o3, 1445734800 + tz.transition 2016, 3, :o8, 1459040400 + tz.transition 2016, 10, :o3, 1477789200 + tz.transition 2017, 3, :o8, 1490490000 + tz.transition 2017, 10, :o3, 1509238800 + tz.transition 2018, 3, :o8, 1521939600 + tz.transition 2018, 10, :o3, 1540688400 + tz.transition 2019, 3, :o8, 1553994000 + tz.transition 2019, 10, :o3, 1572138000 + tz.transition 2020, 3, :o8, 1585443600 + tz.transition 2020, 10, :o3, 1603587600 + tz.transition 2021, 3, :o8, 1616893200 + tz.transition 2021, 10, :o3, 1635642000 + tz.transition 2022, 3, :o8, 1648342800 + tz.transition 2022, 10, :o3, 1667091600 + tz.transition 2023, 3, :o8, 1679792400 + tz.transition 2023, 10, :o3, 1698541200 + tz.transition 2024, 3, :o8, 1711846800 + tz.transition 2024, 10, :o3, 1729990800 + tz.transition 2025, 3, :o8, 1743296400 + tz.transition 2025, 10, :o3, 1761440400 + tz.transition 2026, 3, :o8, 1774746000 + tz.transition 2026, 10, :o3, 1792890000 + tz.transition 2027, 3, :o8, 1806195600 + tz.transition 2027, 10, :o3, 1824944400 + tz.transition 2028, 3, :o8, 1837645200 + tz.transition 2028, 10, :o3, 1856394000 + tz.transition 2029, 3, :o8, 1869094800 + tz.transition 2029, 10, :o3, 1887843600 + tz.transition 2030, 3, :o8, 1901149200 + tz.transition 2030, 10, :o3, 1919293200 + tz.transition 2031, 3, :o8, 1932598800 + tz.transition 2031, 10, :o3, 1950742800 + tz.transition 2032, 3, :o8, 1964048400 + tz.transition 2032, 10, :o3, 1982797200 + tz.transition 2033, 3, :o8, 1995498000 + tz.transition 2033, 10, :o3, 2014246800 + tz.transition 2034, 3, :o8, 2026947600 + tz.transition 2034, 10, :o3, 2045696400 + tz.transition 2035, 3, :o8, 2058397200 + tz.transition 2035, 10, :o3, 2077146000 + tz.transition 2036, 3, :o8, 2090451600 + tz.transition 2036, 10, :o3, 2108595600 + tz.transition 2037, 3, :o8, 2121901200 + tz.transition 2037, 10, :o3, 2140045200 + tz.transition 2038, 3, :o8, 59172253, 24 + tz.transition 2038, 10, :o3, 59177461, 24 + tz.transition 2039, 3, :o8, 59180989, 24 + tz.transition 2039, 10, :o3, 59186197, 24 + tz.transition 2040, 3, :o8, 59189725, 24 + tz.transition 2040, 10, :o3, 59194933, 24 + tz.transition 2041, 3, :o8, 59198629, 24 + tz.transition 2041, 10, :o3, 59203669, 24 + tz.transition 2042, 3, :o8, 59207365, 24 + tz.transition 2042, 10, :o3, 59212405, 24 + tz.transition 2043, 3, :o8, 59216101, 24 + tz.transition 2043, 10, :o3, 59221141, 24 + tz.transition 2044, 3, :o8, 59224837, 24 + tz.transition 2044, 10, :o3, 59230045, 24 + tz.transition 2045, 3, :o8, 59233573, 24 + tz.transition 2045, 10, :o3, 59238781, 24 + tz.transition 2046, 3, :o8, 59242309, 24 + tz.transition 2046, 10, :o3, 59247517, 24 + tz.transition 2047, 3, :o8, 59251213, 24 + tz.transition 2047, 10, :o3, 59256253, 24 + tz.transition 2048, 3, :o8, 59259949, 24 + tz.transition 2048, 10, :o3, 59264989, 24 + tz.transition 2049, 3, :o8, 59268685, 24 + tz.transition 2049, 10, :o3, 59273893, 24 + tz.transition 2050, 3, :o8, 59277421, 24 + tz.transition 2050, 10, :o3, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Rome.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Rome.rb new file mode 100644 index 000000000..aa7b43d9d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Rome.rb @@ -0,0 +1,215 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Rome + include TimezoneDefinition + + timezone 'Europe/Rome' do |tz| + tz.offset :o0, 2996, 0, :LMT + tz.offset :o1, 2996, 0, :RMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1866, 9, :o1, 51901915651, 21600 + tz.transition 1893, 10, :o2, 52115798851, 21600 + tz.transition 1916, 6, :o3, 58104419, 24 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1917, 3, :o3, 58111667, 24 + tz.transition 1917, 9, :o2, 58116035, 24 + tz.transition 1918, 3, :o3, 58119899, 24 + tz.transition 1918, 10, :o2, 58124939, 24 + tz.transition 1919, 3, :o3, 58128467, 24 + tz.transition 1919, 10, :o2, 58133675, 24 + tz.transition 1920, 3, :o3, 58137707, 24 + tz.transition 1920, 9, :o2, 58142075, 24 + tz.transition 1940, 6, :o3, 58315091, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 9, :o2, 58352411, 24 + tz.transition 1945, 4, :o3, 58357141, 24 + tz.transition 1945, 9, :o2, 58361123, 24 + tz.transition 1946, 3, :o3, 58365517, 24 + tz.transition 1946, 10, :o2, 58370389, 24 + tz.transition 1947, 3, :o3, 58374251, 24 + tz.transition 1947, 10, :o2, 58379123, 24 + tz.transition 1948, 2, :o3, 58382653, 24 + tz.transition 1948, 10, :o2, 58387861, 24 + tz.transition 1966, 5, :o3, 58542419, 24 + tz.transition 1966, 9, :o2, 29272721, 12 + tz.transition 1967, 5, :o3, 58551323, 24 + tz.transition 1967, 9, :o2, 29277089, 12 + tz.transition 1968, 5, :o3, 58560059, 24 + tz.transition 1968, 9, :o2, 29281457, 12 + tz.transition 1969, 5, :o3, 58568963, 24 + tz.transition 1969, 9, :o2, 29285909, 12 + tz.transition 1970, 5, :o3, 12956400 + tz.transition 1970, 9, :o2, 23234400 + tz.transition 1971, 5, :o3, 43801200 + tz.transition 1971, 9, :o2, 54687600 + tz.transition 1972, 5, :o3, 75855600 + tz.transition 1972, 9, :o2, 86738400 + tz.transition 1973, 6, :o3, 107910000 + tz.transition 1973, 9, :o2, 118188000 + tz.transition 1974, 5, :o3, 138754800 + tz.transition 1974, 9, :o2, 149637600 + tz.transition 1975, 5, :o3, 170809200 + tz.transition 1975, 9, :o2, 181090800 + tz.transition 1976, 5, :o3, 202258800 + tz.transition 1976, 9, :o2, 212540400 + tz.transition 1977, 5, :o3, 233103600 + tz.transition 1977, 9, :o2, 243990000 + tz.transition 1978, 5, :o3, 265158000 + tz.transition 1978, 9, :o2, 276044400 + tz.transition 1979, 5, :o3, 296607600 + tz.transition 1979, 9, :o2, 307494000 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sarajevo.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sarajevo.rb new file mode 100644 index 000000000..068c5fe6a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sarajevo.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Sarajevo + include TimezoneDefinition + + linked_timezone 'Europe/Sarajevo', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Skopje.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Skopje.rb new file mode 100644 index 000000000..10b71f285 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Skopje.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Skopje + include TimezoneDefinition + + linked_timezone 'Europe/Skopje', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sofia.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sofia.rb new file mode 100644 index 000000000..38a70eceb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sofia.rb @@ -0,0 +1,173 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Sofia + include TimezoneDefinition + + timezone 'Europe/Sofia' do |tz| + tz.offset :o0, 5596, 0, :LMT + tz.offset :o1, 7016, 0, :IMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 3600, 0, :CET + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 52006653401, 21600 + tz.transition 1894, 11, :o2, 26062154123, 10800 + tz.transition 1942, 11, :o3, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o3, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 10, :o3, 58352773, 24 + tz.transition 1945, 4, :o2, 29178571, 12 + tz.transition 1979, 3, :o5, 291762000 + tz.transition 1979, 9, :o2, 307576800 + tz.transition 1980, 4, :o5, 323816400 + tz.transition 1980, 9, :o2, 339026400 + tz.transition 1981, 4, :o5, 355266000 + tz.transition 1981, 9, :o2, 370393200 + tz.transition 1982, 4, :o5, 386715600 + tz.transition 1982, 9, :o2, 401846400 + tz.transition 1983, 3, :o5, 417571200 + tz.transition 1983, 9, :o2, 433296000 + tz.transition 1984, 3, :o5, 449020800 + tz.transition 1984, 9, :o2, 465350400 + tz.transition 1985, 3, :o5, 481075200 + tz.transition 1985, 9, :o2, 496800000 + tz.transition 1986, 3, :o5, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o5, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o5, 575424000 + tz.transition 1988, 9, :o2, 591148800 + tz.transition 1989, 3, :o5, 606873600 + tz.transition 1989, 9, :o2, 622598400 + tz.transition 1990, 3, :o5, 638323200 + tz.transition 1990, 9, :o2, 654652800 + tz.transition 1991, 3, :o5, 670370400 + tz.transition 1991, 9, :o2, 686091600 + tz.transition 1992, 3, :o5, 701820000 + tz.transition 1992, 9, :o2, 717541200 + tz.transition 1993, 3, :o5, 733269600 + tz.transition 1993, 9, :o2, 748990800 + tz.transition 1994, 3, :o5, 764719200 + tz.transition 1994, 9, :o2, 780440400 + tz.transition 1995, 3, :o5, 796168800 + tz.transition 1995, 9, :o2, 811890000 + tz.transition 1996, 3, :o5, 828223200 + tz.transition 1996, 10, :o2, 846363600 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Stockholm.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Stockholm.rb new file mode 100644 index 000000000..43db70fa6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Stockholm.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Stockholm + include TimezoneDefinition + + timezone 'Europe/Stockholm' do |tz| + tz.offset :o0, 4332, 0, :LMT + tz.offset :o1, 3614, 0, :SET + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1878, 12, :o1, 17332923239, 7200 + tz.transition 1899, 12, :o2, 104328883793, 43200 + tz.transition 1916, 5, :o3, 29051981, 12 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Tallinn.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Tallinn.rb new file mode 100644 index 000000000..de5a8569f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Tallinn.rb @@ -0,0 +1,172 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Tallinn + include TimezoneDefinition + + timezone 'Europe/Tallinn' do |tz| + tz.offset :o0, 5940, 0, :LMT + tz.offset :o1, 5940, 0, :TMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + tz.offset :o4, 7200, 0, :EET + tz.offset :o5, 10800, 0, :MSK + tz.offset :o6, 10800, 3600, :MSD + tz.offset :o7, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 385234469, 160 + tz.transition 1918, 1, :o2, 387460069, 160 + tz.transition 1918, 4, :o3, 58120765, 24 + tz.transition 1918, 9, :o2, 58124461, 24 + tz.transition 1919, 6, :o1, 58131371, 24 + tz.transition 1921, 4, :o4, 387649669, 160 + tz.transition 1940, 8, :o5, 29158169, 12 + tz.transition 1941, 9, :o3, 19442019, 8 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 9, :o5, 29176265, 12 + tz.transition 1981, 3, :o6, 354920400 + tz.transition 1981, 9, :o5, 370728000 + tz.transition 1982, 3, :o6, 386456400 + tz.transition 1982, 9, :o5, 402264000 + tz.transition 1983, 3, :o6, 417992400 + tz.transition 1983, 9, :o5, 433800000 + tz.transition 1984, 3, :o6, 449614800 + tz.transition 1984, 9, :o5, 465346800 + tz.transition 1985, 3, :o6, 481071600 + tz.transition 1985, 9, :o5, 496796400 + tz.transition 1986, 3, :o6, 512521200 + tz.transition 1986, 9, :o5, 528246000 + tz.transition 1987, 3, :o6, 543970800 + tz.transition 1987, 9, :o5, 559695600 + tz.transition 1988, 3, :o6, 575420400 + tz.transition 1988, 9, :o5, 591145200 + tz.transition 1989, 3, :o7, 606870000 + tz.transition 1989, 9, :o4, 622598400 + tz.transition 1990, 3, :o7, 638323200 + tz.transition 1990, 9, :o4, 654652800 + tz.transition 1991, 3, :o7, 670377600 + tz.transition 1991, 9, :o4, 686102400 + tz.transition 1992, 3, :o7, 701827200 + tz.transition 1992, 9, :o4, 717552000 + tz.transition 1993, 3, :o7, 733276800 + tz.transition 1993, 9, :o4, 749001600 + tz.transition 1994, 3, :o7, 764726400 + tz.transition 1994, 9, :o4, 780451200 + tz.transition 1995, 3, :o7, 796176000 + tz.transition 1995, 9, :o4, 811900800 + tz.transition 1996, 3, :o7, 828230400 + tz.transition 1996, 10, :o4, 846374400 + tz.transition 1997, 3, :o7, 859680000 + tz.transition 1997, 10, :o4, 877824000 + tz.transition 1998, 3, :o7, 891129600 + tz.transition 1998, 10, :o4, 909277200 + tz.transition 1999, 3, :o7, 922582800 + tz.transition 1999, 10, :o4, 941331600 + tz.transition 2002, 3, :o7, 1017536400 + tz.transition 2002, 10, :o4, 1035680400 + tz.transition 2003, 3, :o7, 1048986000 + tz.transition 2003, 10, :o4, 1067130000 + tz.transition 2004, 3, :o7, 1080435600 + tz.transition 2004, 10, :o4, 1099184400 + tz.transition 2005, 3, :o7, 1111885200 + tz.transition 2005, 10, :o4, 1130634000 + tz.transition 2006, 3, :o7, 1143334800 + tz.transition 2006, 10, :o4, 1162083600 + tz.transition 2007, 3, :o7, 1174784400 + tz.transition 2007, 10, :o4, 1193533200 + tz.transition 2008, 3, :o7, 1206838800 + tz.transition 2008, 10, :o4, 1224982800 + tz.transition 2009, 3, :o7, 1238288400 + tz.transition 2009, 10, :o4, 1256432400 + tz.transition 2010, 3, :o7, 1269738000 + tz.transition 2010, 10, :o4, 1288486800 + tz.transition 2011, 3, :o7, 1301187600 + tz.transition 2011, 10, :o4, 1319936400 + tz.transition 2012, 3, :o7, 1332637200 + tz.transition 2012, 10, :o4, 1351386000 + tz.transition 2013, 3, :o7, 1364691600 + tz.transition 2013, 10, :o4, 1382835600 + tz.transition 2014, 3, :o7, 1396141200 + tz.transition 2014, 10, :o4, 1414285200 + tz.transition 2015, 3, :o7, 1427590800 + tz.transition 2015, 10, :o4, 1445734800 + tz.transition 2016, 3, :o7, 1459040400 + tz.transition 2016, 10, :o4, 1477789200 + tz.transition 2017, 3, :o7, 1490490000 + tz.transition 2017, 10, :o4, 1509238800 + tz.transition 2018, 3, :o7, 1521939600 + tz.transition 2018, 10, :o4, 1540688400 + tz.transition 2019, 3, :o7, 1553994000 + tz.transition 2019, 10, :o4, 1572138000 + tz.transition 2020, 3, :o7, 1585443600 + tz.transition 2020, 10, :o4, 1603587600 + tz.transition 2021, 3, :o7, 1616893200 + tz.transition 2021, 10, :o4, 1635642000 + tz.transition 2022, 3, :o7, 1648342800 + tz.transition 2022, 10, :o4, 1667091600 + tz.transition 2023, 3, :o7, 1679792400 + tz.transition 2023, 10, :o4, 1698541200 + tz.transition 2024, 3, :o7, 1711846800 + tz.transition 2024, 10, :o4, 1729990800 + tz.transition 2025, 3, :o7, 1743296400 + tz.transition 2025, 10, :o4, 1761440400 + tz.transition 2026, 3, :o7, 1774746000 + tz.transition 2026, 10, :o4, 1792890000 + tz.transition 2027, 3, :o7, 1806195600 + tz.transition 2027, 10, :o4, 1824944400 + tz.transition 2028, 3, :o7, 1837645200 + tz.transition 2028, 10, :o4, 1856394000 + tz.transition 2029, 3, :o7, 1869094800 + tz.transition 2029, 10, :o4, 1887843600 + tz.transition 2030, 3, :o7, 1901149200 + tz.transition 2030, 10, :o4, 1919293200 + tz.transition 2031, 3, :o7, 1932598800 + tz.transition 2031, 10, :o4, 1950742800 + tz.transition 2032, 3, :o7, 1964048400 + tz.transition 2032, 10, :o4, 1982797200 + tz.transition 2033, 3, :o7, 1995498000 + tz.transition 2033, 10, :o4, 2014246800 + tz.transition 2034, 3, :o7, 2026947600 + tz.transition 2034, 10, :o4, 2045696400 + tz.transition 2035, 3, :o7, 2058397200 + tz.transition 2035, 10, :o4, 2077146000 + tz.transition 2036, 3, :o7, 2090451600 + tz.transition 2036, 10, :o4, 2108595600 + tz.transition 2037, 3, :o7, 2121901200 + tz.transition 2037, 10, :o4, 2140045200 + tz.transition 2038, 3, :o7, 59172253, 24 + tz.transition 2038, 10, :o4, 59177461, 24 + tz.transition 2039, 3, :o7, 59180989, 24 + tz.transition 2039, 10, :o4, 59186197, 24 + tz.transition 2040, 3, :o7, 59189725, 24 + tz.transition 2040, 10, :o4, 59194933, 24 + tz.transition 2041, 3, :o7, 59198629, 24 + tz.transition 2041, 10, :o4, 59203669, 24 + tz.transition 2042, 3, :o7, 59207365, 24 + tz.transition 2042, 10, :o4, 59212405, 24 + tz.transition 2043, 3, :o7, 59216101, 24 + tz.transition 2043, 10, :o4, 59221141, 24 + tz.transition 2044, 3, :o7, 59224837, 24 + tz.transition 2044, 10, :o4, 59230045, 24 + tz.transition 2045, 3, :o7, 59233573, 24 + tz.transition 2045, 10, :o4, 59238781, 24 + tz.transition 2046, 3, :o7, 59242309, 24 + tz.transition 2046, 10, :o4, 59247517, 24 + tz.transition 2047, 3, :o7, 59251213, 24 + tz.transition 2047, 10, :o4, 59256253, 24 + tz.transition 2048, 3, :o7, 59259949, 24 + tz.transition 2048, 10, :o4, 59264989, 24 + tz.transition 2049, 3, :o7, 59268685, 24 + tz.transition 2049, 10, :o4, 59273893, 24 + tz.transition 2050, 3, :o7, 59277421, 24 + tz.transition 2050, 10, :o4, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vienna.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vienna.rb new file mode 100644 index 000000000..990aabab6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vienna.rb @@ -0,0 +1,183 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Vienna + include TimezoneDefinition + + timezone 'Europe/Vienna' do |tz| + tz.offset :o0, 3920, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + + tz.transition 1893, 3, :o1, 2605558811, 1080 + tz.transition 1916, 4, :o2, 29051813, 12 + tz.transition 1916, 9, :o1, 58107299, 24 + tz.transition 1917, 4, :o2, 58112029, 24 + tz.transition 1917, 9, :o1, 58115725, 24 + tz.transition 1918, 4, :o2, 58120765, 24 + tz.transition 1918, 9, :o1, 58124461, 24 + tz.transition 1920, 4, :o2, 58138069, 24 + tz.transition 1920, 9, :o1, 58141933, 24 + tz.transition 1940, 4, :o2, 58313293, 24 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 4, :o2, 58357141, 24 + tz.transition 1945, 4, :o1, 58357381, 24 + tz.transition 1946, 4, :o2, 58366189, 24 + tz.transition 1946, 10, :o1, 58370389, 24 + tz.transition 1947, 4, :o2, 58374757, 24 + tz.transition 1947, 10, :o1, 58379125, 24 + tz.transition 1948, 4, :o2, 58383829, 24 + tz.transition 1948, 10, :o1, 58387861, 24 + tz.transition 1980, 4, :o2, 323823600 + tz.transition 1980, 9, :o1, 338940000 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vilnius.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vilnius.rb new file mode 100644 index 000000000..d89d095a7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vilnius.rb @@ -0,0 +1,170 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Vilnius + include TimezoneDefinition + + timezone 'Europe/Vilnius' do |tz| + tz.offset :o0, 6076, 0, :LMT + tz.offset :o1, 5040, 0, :WMT + tz.offset :o2, 5736, 0, :KMT + tz.offset :o3, 3600, 0, :CET + tz.offset :o4, 7200, 0, :EET + tz.offset :o5, 10800, 0, :MSK + tz.offset :o6, 3600, 3600, :CEST + tz.offset :o7, 10800, 3600, :MSD + tz.offset :o8, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 52006653281, 21600 + tz.transition 1916, 12, :o2, 290547533, 120 + tz.transition 1919, 10, :o3, 8720069161, 3600 + tz.transition 1920, 7, :o4, 58140419, 24 + tz.transition 1920, 10, :o3, 29071277, 12 + tz.transition 1940, 8, :o5, 58316267, 24 + tz.transition 1941, 6, :o6, 19441355, 8 + tz.transition 1942, 11, :o3, 58335973, 24 + tz.transition 1943, 3, :o6, 58339501, 24 + tz.transition 1943, 10, :o3, 58344037, 24 + tz.transition 1944, 4, :o6, 58348405, 24 + tz.transition 1944, 7, :o5, 29175641, 12 + tz.transition 1981, 3, :o7, 354920400 + tz.transition 1981, 9, :o5, 370728000 + tz.transition 1982, 3, :o7, 386456400 + tz.transition 1982, 9, :o5, 402264000 + tz.transition 1983, 3, :o7, 417992400 + tz.transition 1983, 9, :o5, 433800000 + tz.transition 1984, 3, :o7, 449614800 + tz.transition 1984, 9, :o5, 465346800 + tz.transition 1985, 3, :o7, 481071600 + tz.transition 1985, 9, :o5, 496796400 + tz.transition 1986, 3, :o7, 512521200 + tz.transition 1986, 9, :o5, 528246000 + tz.transition 1987, 3, :o7, 543970800 + tz.transition 1987, 9, :o5, 559695600 + tz.transition 1988, 3, :o7, 575420400 + tz.transition 1988, 9, :o5, 591145200 + tz.transition 1989, 3, :o7, 606870000 + tz.transition 1989, 9, :o5, 622594800 + tz.transition 1990, 3, :o7, 638319600 + tz.transition 1990, 9, :o5, 654649200 + tz.transition 1991, 3, :o8, 670374000 + tz.transition 1991, 9, :o4, 686102400 + tz.transition 1992, 3, :o8, 701827200 + tz.transition 1992, 9, :o4, 717552000 + tz.transition 1993, 3, :o8, 733276800 + tz.transition 1993, 9, :o4, 749001600 + tz.transition 1994, 3, :o8, 764726400 + tz.transition 1994, 9, :o4, 780451200 + tz.transition 1995, 3, :o8, 796176000 + tz.transition 1995, 9, :o4, 811900800 + tz.transition 1996, 3, :o8, 828230400 + tz.transition 1996, 10, :o4, 846374400 + tz.transition 1997, 3, :o8, 859680000 + tz.transition 1997, 10, :o4, 877824000 + tz.transition 1998, 3, :o6, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o6, 922582800 + tz.transition 1999, 10, :o4, 941331600 + tz.transition 2003, 3, :o8, 1048986000 + tz.transition 2003, 10, :o4, 1067130000 + tz.transition 2004, 3, :o8, 1080435600 + tz.transition 2004, 10, :o4, 1099184400 + tz.transition 2005, 3, :o8, 1111885200 + tz.transition 2005, 10, :o4, 1130634000 + tz.transition 2006, 3, :o8, 1143334800 + tz.transition 2006, 10, :o4, 1162083600 + tz.transition 2007, 3, :o8, 1174784400 + tz.transition 2007, 10, :o4, 1193533200 + tz.transition 2008, 3, :o8, 1206838800 + tz.transition 2008, 10, :o4, 1224982800 + tz.transition 2009, 3, :o8, 1238288400 + tz.transition 2009, 10, :o4, 1256432400 + tz.transition 2010, 3, :o8, 1269738000 + tz.transition 2010, 10, :o4, 1288486800 + tz.transition 2011, 3, :o8, 1301187600 + tz.transition 2011, 10, :o4, 1319936400 + tz.transition 2012, 3, :o8, 1332637200 + tz.transition 2012, 10, :o4, 1351386000 + tz.transition 2013, 3, :o8, 1364691600 + tz.transition 2013, 10, :o4, 1382835600 + tz.transition 2014, 3, :o8, 1396141200 + tz.transition 2014, 10, :o4, 1414285200 + tz.transition 2015, 3, :o8, 1427590800 + tz.transition 2015, 10, :o4, 1445734800 + tz.transition 2016, 3, :o8, 1459040400 + tz.transition 2016, 10, :o4, 1477789200 + tz.transition 2017, 3, :o8, 1490490000 + tz.transition 2017, 10, :o4, 1509238800 + tz.transition 2018, 3, :o8, 1521939600 + tz.transition 2018, 10, :o4, 1540688400 + tz.transition 2019, 3, :o8, 1553994000 + tz.transition 2019, 10, :o4, 1572138000 + tz.transition 2020, 3, :o8, 1585443600 + tz.transition 2020, 10, :o4, 1603587600 + tz.transition 2021, 3, :o8, 1616893200 + tz.transition 2021, 10, :o4, 1635642000 + tz.transition 2022, 3, :o8, 1648342800 + tz.transition 2022, 10, :o4, 1667091600 + tz.transition 2023, 3, :o8, 1679792400 + tz.transition 2023, 10, :o4, 1698541200 + tz.transition 2024, 3, :o8, 1711846800 + tz.transition 2024, 10, :o4, 1729990800 + tz.transition 2025, 3, :o8, 1743296400 + tz.transition 2025, 10, :o4, 1761440400 + tz.transition 2026, 3, :o8, 1774746000 + tz.transition 2026, 10, :o4, 1792890000 + tz.transition 2027, 3, :o8, 1806195600 + tz.transition 2027, 10, :o4, 1824944400 + tz.transition 2028, 3, :o8, 1837645200 + tz.transition 2028, 10, :o4, 1856394000 + tz.transition 2029, 3, :o8, 1869094800 + tz.transition 2029, 10, :o4, 1887843600 + tz.transition 2030, 3, :o8, 1901149200 + tz.transition 2030, 10, :o4, 1919293200 + tz.transition 2031, 3, :o8, 1932598800 + tz.transition 2031, 10, :o4, 1950742800 + tz.transition 2032, 3, :o8, 1964048400 + tz.transition 2032, 10, :o4, 1982797200 + tz.transition 2033, 3, :o8, 1995498000 + tz.transition 2033, 10, :o4, 2014246800 + tz.transition 2034, 3, :o8, 2026947600 + tz.transition 2034, 10, :o4, 2045696400 + tz.transition 2035, 3, :o8, 2058397200 + tz.transition 2035, 10, :o4, 2077146000 + tz.transition 2036, 3, :o8, 2090451600 + tz.transition 2036, 10, :o4, 2108595600 + tz.transition 2037, 3, :o8, 2121901200 + tz.transition 2037, 10, :o4, 2140045200 + tz.transition 2038, 3, :o8, 59172253, 24 + tz.transition 2038, 10, :o4, 59177461, 24 + tz.transition 2039, 3, :o8, 59180989, 24 + tz.transition 2039, 10, :o4, 59186197, 24 + tz.transition 2040, 3, :o8, 59189725, 24 + tz.transition 2040, 10, :o4, 59194933, 24 + tz.transition 2041, 3, :o8, 59198629, 24 + tz.transition 2041, 10, :o4, 59203669, 24 + tz.transition 2042, 3, :o8, 59207365, 24 + tz.transition 2042, 10, :o4, 59212405, 24 + tz.transition 2043, 3, :o8, 59216101, 24 + tz.transition 2043, 10, :o4, 59221141, 24 + tz.transition 2044, 3, :o8, 59224837, 24 + tz.transition 2044, 10, :o4, 59230045, 24 + tz.transition 2045, 3, :o8, 59233573, 24 + tz.transition 2045, 10, :o4, 59238781, 24 + tz.transition 2046, 3, :o8, 59242309, 24 + tz.transition 2046, 10, :o4, 59247517, 24 + tz.transition 2047, 3, :o8, 59251213, 24 + tz.transition 2047, 10, :o4, 59256253, 24 + tz.transition 2048, 3, :o8, 59259949, 24 + tz.transition 2048, 10, :o4, 59264989, 24 + tz.transition 2049, 3, :o8, 59268685, 24 + tz.transition 2049, 10, :o4, 59273893, 24 + tz.transition 2050, 3, :o8, 59277421, 24 + tz.transition 2050, 10, :o4, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Warsaw.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Warsaw.rb new file mode 100644 index 000000000..7fa51c269 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Warsaw.rb @@ -0,0 +1,212 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Warsaw + include TimezoneDefinition + + timezone 'Europe/Warsaw' do |tz| + tz.offset :o0, 5040, 0, :LMT + tz.offset :o1, 5040, 0, :WMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + tz.offset :o4, 7200, 0, :EET + tz.offset :o5, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 288925853, 120 + tz.transition 1915, 8, :o2, 290485733, 120 + tz.transition 1916, 4, :o3, 29051813, 12 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1917, 4, :o3, 58112029, 24 + tz.transition 1917, 9, :o2, 58115725, 24 + tz.transition 1918, 4, :o3, 58120765, 24 + tz.transition 1918, 9, :o4, 58124461, 24 + tz.transition 1919, 4, :o5, 4844127, 2 + tz.transition 1919, 9, :o4, 4844435, 2 + tz.transition 1922, 5, :o2, 29078477, 12 + tz.transition 1940, 6, :o3, 58315285, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 10, :o2, 4862735, 2 + tz.transition 1945, 4, :o3, 58357787, 24 + tz.transition 1945, 10, :o2, 29181125, 12 + tz.transition 1946, 4, :o3, 58366187, 24 + tz.transition 1946, 10, :o2, 58370413, 24 + tz.transition 1947, 5, :o3, 58375429, 24 + tz.transition 1947, 10, :o2, 58379125, 24 + tz.transition 1948, 4, :o3, 58383829, 24 + tz.transition 1948, 10, :o2, 58387861, 24 + tz.transition 1949, 4, :o3, 58392397, 24 + tz.transition 1949, 10, :o2, 58396597, 24 + tz.transition 1957, 6, :o3, 4871983, 2 + tz.transition 1957, 9, :o2, 4872221, 2 + tz.transition 1958, 3, :o3, 4872585, 2 + tz.transition 1958, 9, :o2, 4872949, 2 + tz.transition 1959, 5, :o3, 4873439, 2 + tz.transition 1959, 10, :o2, 4873691, 2 + tz.transition 1960, 4, :o3, 4874055, 2 + tz.transition 1960, 10, :o2, 4874419, 2 + tz.transition 1961, 5, :o3, 4874895, 2 + tz.transition 1961, 10, :o2, 4875147, 2 + tz.transition 1962, 5, :o3, 4875623, 2 + tz.transition 1962, 9, :o2, 4875875, 2 + tz.transition 1963, 5, :o3, 4876351, 2 + tz.transition 1963, 9, :o2, 4876603, 2 + tz.transition 1964, 5, :o3, 4877093, 2 + tz.transition 1964, 9, :o2, 4877331, 2 + tz.transition 1977, 4, :o3, 228873600 + tz.transition 1977, 9, :o2, 243993600 + tz.transition 1978, 4, :o3, 260323200 + tz.transition 1978, 10, :o2, 276048000 + tz.transition 1979, 4, :o3, 291772800 + tz.transition 1979, 9, :o2, 307497600 + tz.transition 1980, 4, :o3, 323827200 + tz.transition 1980, 9, :o2, 338947200 + tz.transition 1981, 3, :o3, 354672000 + tz.transition 1981, 9, :o2, 370396800 + tz.transition 1982, 3, :o3, 386121600 + tz.transition 1982, 9, :o2, 401846400 + tz.transition 1983, 3, :o3, 417571200 + tz.transition 1983, 9, :o2, 433296000 + tz.transition 1984, 3, :o3, 449020800 + tz.transition 1984, 9, :o2, 465350400 + tz.transition 1985, 3, :o3, 481075200 + tz.transition 1985, 9, :o2, 496800000 + tz.transition 1986, 3, :o3, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o3, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Zagreb.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Zagreb.rb new file mode 100644 index 000000000..ecdd903d2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Zagreb.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Zagreb + include TimezoneDefinition + + linked_timezone 'Europe/Zagreb', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Auckland.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Auckland.rb new file mode 100644 index 000000000..a524fd6b6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Auckland.rb @@ -0,0 +1,202 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Auckland + include TimezoneDefinition + + timezone 'Pacific/Auckland' do |tz| + tz.offset :o0, 41944, 0, :LMT + tz.offset :o1, 41400, 0, :NZMT + tz.offset :o2, 41400, 3600, :NZST + tz.offset :o3, 41400, 1800, :NZST + tz.offset :o4, 43200, 0, :NZST + tz.offset :o5, 43200, 3600, :NZDT + + tz.transition 1868, 11, :o1, 25959290557, 10800 + tz.transition 1927, 11, :o2, 116409125, 48 + tz.transition 1928, 3, :o1, 38804945, 16 + tz.transition 1928, 10, :o3, 116425589, 48 + tz.transition 1929, 3, :o1, 29108245, 12 + tz.transition 1929, 10, :o3, 116443061, 48 + tz.transition 1930, 3, :o1, 29112613, 12 + tz.transition 1930, 10, :o3, 116460533, 48 + tz.transition 1931, 3, :o1, 29116981, 12 + tz.transition 1931, 10, :o3, 116478005, 48 + tz.transition 1932, 3, :o1, 29121433, 12 + tz.transition 1932, 10, :o3, 116495477, 48 + tz.transition 1933, 3, :o1, 29125801, 12 + tz.transition 1933, 10, :o3, 116512949, 48 + tz.transition 1934, 4, :o1, 29130673, 12 + tz.transition 1934, 9, :o3, 116530085, 48 + tz.transition 1935, 4, :o1, 29135041, 12 + tz.transition 1935, 9, :o3, 116547557, 48 + tz.transition 1936, 4, :o1, 29139409, 12 + tz.transition 1936, 9, :o3, 116565029, 48 + tz.transition 1937, 4, :o1, 29143777, 12 + tz.transition 1937, 9, :o3, 116582501, 48 + tz.transition 1938, 4, :o1, 29148145, 12 + tz.transition 1938, 9, :o3, 116599973, 48 + tz.transition 1939, 4, :o1, 29152597, 12 + tz.transition 1939, 9, :o3, 116617445, 48 + tz.transition 1940, 4, :o1, 29156965, 12 + tz.transition 1940, 9, :o3, 116635253, 48 + tz.transition 1945, 12, :o4, 2431821, 1 + tz.transition 1974, 11, :o5, 152632800 + tz.transition 1975, 2, :o4, 162309600 + tz.transition 1975, 10, :o5, 183477600 + tz.transition 1976, 3, :o4, 194968800 + tz.transition 1976, 10, :o5, 215532000 + tz.transition 1977, 3, :o4, 226418400 + tz.transition 1977, 10, :o5, 246981600 + tz.transition 1978, 3, :o4, 257868000 + tz.transition 1978, 10, :o5, 278431200 + tz.transition 1979, 3, :o4, 289317600 + tz.transition 1979, 10, :o5, 309880800 + tz.transition 1980, 3, :o4, 320767200 + tz.transition 1980, 10, :o5, 341330400 + tz.transition 1981, 2, :o4, 352216800 + tz.transition 1981, 10, :o5, 372780000 + tz.transition 1982, 3, :o4, 384271200 + tz.transition 1982, 10, :o5, 404834400 + tz.transition 1983, 3, :o4, 415720800 + tz.transition 1983, 10, :o5, 436284000 + tz.transition 1984, 3, :o4, 447170400 + tz.transition 1984, 10, :o5, 467733600 + tz.transition 1985, 3, :o4, 478620000 + tz.transition 1985, 10, :o5, 499183200 + tz.transition 1986, 3, :o4, 510069600 + tz.transition 1986, 10, :o5, 530632800 + tz.transition 1987, 2, :o4, 541519200 + tz.transition 1987, 10, :o5, 562082400 + tz.transition 1988, 3, :o4, 573573600 + tz.transition 1988, 10, :o5, 594136800 + tz.transition 1989, 3, :o4, 605023200 + tz.transition 1989, 10, :o5, 623772000 + tz.transition 1990, 3, :o4, 637682400 + tz.transition 1990, 10, :o5, 655221600 + tz.transition 1991, 3, :o4, 669132000 + tz.transition 1991, 10, :o5, 686671200 + tz.transition 1992, 3, :o4, 700581600 + tz.transition 1992, 10, :o5, 718120800 + tz.transition 1993, 3, :o4, 732636000 + tz.transition 1993, 10, :o5, 749570400 + tz.transition 1994, 3, :o4, 764085600 + tz.transition 1994, 10, :o5, 781020000 + tz.transition 1995, 3, :o4, 795535200 + tz.transition 1995, 9, :o5, 812469600 + tz.transition 1996, 3, :o4, 826984800 + tz.transition 1996, 10, :o5, 844524000 + tz.transition 1997, 3, :o4, 858434400 + tz.transition 1997, 10, :o5, 875973600 + tz.transition 1998, 3, :o4, 889884000 + tz.transition 1998, 10, :o5, 907423200 + tz.transition 1999, 3, :o4, 921938400 + tz.transition 1999, 10, :o5, 938872800 + tz.transition 2000, 3, :o4, 953388000 + tz.transition 2000, 9, :o5, 970322400 + tz.transition 2001, 3, :o4, 984837600 + tz.transition 2001, 10, :o5, 1002376800 + tz.transition 2002, 3, :o4, 1016287200 + tz.transition 2002, 10, :o5, 1033826400 + tz.transition 2003, 3, :o4, 1047736800 + tz.transition 2003, 10, :o5, 1065276000 + tz.transition 2004, 3, :o4, 1079791200 + tz.transition 2004, 10, :o5, 1096725600 + tz.transition 2005, 3, :o4, 1111240800 + tz.transition 2005, 10, :o5, 1128175200 + tz.transition 2006, 3, :o4, 1142690400 + tz.transition 2006, 9, :o5, 1159624800 + tz.transition 2007, 3, :o4, 1174140000 + tz.transition 2007, 9, :o5, 1191074400 + tz.transition 2008, 4, :o4, 1207404000 + tz.transition 2008, 9, :o5, 1222524000 + tz.transition 2009, 4, :o4, 1238853600 + tz.transition 2009, 9, :o5, 1253973600 + tz.transition 2010, 4, :o4, 1270303200 + tz.transition 2010, 9, :o5, 1285423200 + tz.transition 2011, 4, :o4, 1301752800 + tz.transition 2011, 9, :o5, 1316872800 + tz.transition 2012, 3, :o4, 1333202400 + tz.transition 2012, 9, :o5, 1348927200 + tz.transition 2013, 4, :o4, 1365256800 + tz.transition 2013, 9, :o5, 1380376800 + tz.transition 2014, 4, :o4, 1396706400 + tz.transition 2014, 9, :o5, 1411826400 + tz.transition 2015, 4, :o4, 1428156000 + tz.transition 2015, 9, :o5, 1443276000 + tz.transition 2016, 4, :o4, 1459605600 + tz.transition 2016, 9, :o5, 1474725600 + tz.transition 2017, 4, :o4, 1491055200 + tz.transition 2017, 9, :o5, 1506175200 + tz.transition 2018, 3, :o4, 1522504800 + tz.transition 2018, 9, :o5, 1538229600 + tz.transition 2019, 4, :o4, 1554559200 + tz.transition 2019, 9, :o5, 1569679200 + tz.transition 2020, 4, :o4, 1586008800 + tz.transition 2020, 9, :o5, 1601128800 + tz.transition 2021, 4, :o4, 1617458400 + tz.transition 2021, 9, :o5, 1632578400 + tz.transition 2022, 4, :o4, 1648908000 + tz.transition 2022, 9, :o5, 1664028000 + tz.transition 2023, 4, :o4, 1680357600 + tz.transition 2023, 9, :o5, 1695477600 + tz.transition 2024, 4, :o4, 1712412000 + tz.transition 2024, 9, :o5, 1727532000 + tz.transition 2025, 4, :o4, 1743861600 + tz.transition 2025, 9, :o5, 1758981600 + tz.transition 2026, 4, :o4, 1775311200 + tz.transition 2026, 9, :o5, 1790431200 + tz.transition 2027, 4, :o4, 1806760800 + tz.transition 2027, 9, :o5, 1821880800 + tz.transition 2028, 4, :o4, 1838210400 + tz.transition 2028, 9, :o5, 1853330400 + tz.transition 2029, 3, :o4, 1869660000 + tz.transition 2029, 9, :o5, 1885384800 + tz.transition 2030, 4, :o4, 1901714400 + tz.transition 2030, 9, :o5, 1916834400 + tz.transition 2031, 4, :o4, 1933164000 + tz.transition 2031, 9, :o5, 1948284000 + tz.transition 2032, 4, :o4, 1964613600 + tz.transition 2032, 9, :o5, 1979733600 + tz.transition 2033, 4, :o4, 1996063200 + tz.transition 2033, 9, :o5, 2011183200 + tz.transition 2034, 4, :o4, 2027512800 + tz.transition 2034, 9, :o5, 2042632800 + tz.transition 2035, 3, :o4, 2058962400 + tz.transition 2035, 9, :o5, 2074687200 + tz.transition 2036, 4, :o4, 2091016800 + tz.transition 2036, 9, :o5, 2106136800 + tz.transition 2037, 4, :o4, 2122466400 + tz.transition 2037, 9, :o5, 2137586400 + tz.transition 2038, 4, :o4, 29586205, 12 + tz.transition 2038, 9, :o5, 29588305, 12 + tz.transition 2039, 4, :o4, 29590573, 12 + tz.transition 2039, 9, :o5, 29592673, 12 + tz.transition 2040, 3, :o4, 29594941, 12 + tz.transition 2040, 9, :o5, 29597125, 12 + tz.transition 2041, 4, :o4, 29599393, 12 + tz.transition 2041, 9, :o5, 29601493, 12 + tz.transition 2042, 4, :o4, 29603761, 12 + tz.transition 2042, 9, :o5, 29605861, 12 + tz.transition 2043, 4, :o4, 29608129, 12 + tz.transition 2043, 9, :o5, 29610229, 12 + tz.transition 2044, 4, :o4, 29612497, 12 + tz.transition 2044, 9, :o5, 29614597, 12 + tz.transition 2045, 4, :o4, 29616865, 12 + tz.transition 2045, 9, :o5, 29618965, 12 + tz.transition 2046, 3, :o4, 29621233, 12 + tz.transition 2046, 9, :o5, 29623417, 12 + tz.transition 2047, 4, :o4, 29625685, 12 + tz.transition 2047, 9, :o5, 29627785, 12 + tz.transition 2048, 4, :o4, 29630053, 12 + tz.transition 2048, 9, :o5, 29632153, 12 + tz.transition 2049, 4, :o4, 29634421, 12 + tz.transition 2049, 9, :o5, 29636521, 12 + tz.transition 2050, 4, :o4, 29638789, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Fiji.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Fiji.rb new file mode 100644 index 000000000..5fe9bbd9a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Fiji.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Fiji + include TimezoneDefinition + + timezone 'Pacific/Fiji' do |tz| + tz.offset :o0, 42820, 0, :LMT + tz.offset :o1, 43200, 0, :FJT + tz.offset :o2, 43200, 3600, :FJST + + tz.transition 1915, 10, :o1, 10457838739, 4320 + tz.transition 1998, 10, :o2, 909842400 + tz.transition 1999, 2, :o1, 920124000 + tz.transition 1999, 11, :o2, 941896800 + tz.transition 2000, 2, :o1, 951573600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Guam.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Guam.rb new file mode 100644 index 000000000..d4c1a0a68 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Guam.rb @@ -0,0 +1,22 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Guam + include TimezoneDefinition + + timezone 'Pacific/Guam' do |tz| + tz.offset :o0, -51660, 0, :LMT + tz.offset :o1, 34740, 0, :LMT + tz.offset :o2, 36000, 0, :GST + tz.offset :o3, 36000, 0, :ChST + + tz.transition 1844, 12, :o1, 1149567407, 480 + tz.transition 1900, 12, :o2, 1159384847, 480 + tz.transition 2000, 12, :o3, 977493600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Honolulu.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Honolulu.rb new file mode 100644 index 000000000..204b22653 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Honolulu.rb @@ -0,0 +1,28 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Honolulu + include TimezoneDefinition + + timezone 'Pacific/Honolulu' do |tz| + tz.offset :o0, -37886, 0, :LMT + tz.offset :o1, -37800, 0, :HST + tz.offset :o2, -37800, 3600, :HDT + tz.offset :o3, -37800, 3600, :HWT + tz.offset :o4, -37800, 3600, :HPT + tz.offset :o5, -36000, 0, :HST + + tz.transition 1900, 1, :o1, 104328926143, 43200 + tz.transition 1933, 4, :o2, 116505265, 48 + tz.transition 1933, 5, :o1, 116506271, 48 + tz.transition 1942, 2, :o3, 116659201, 48 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 116722991, 48 + tz.transition 1947, 6, :o5, 116752561, 48 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Majuro.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Majuro.rb new file mode 100644 index 000000000..32adad92c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Majuro.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Majuro + include TimezoneDefinition + + timezone 'Pacific/Majuro' do |tz| + tz.offset :o0, 41088, 0, :LMT + tz.offset :o1, 39600, 0, :MHT + tz.offset :o2, 43200, 0, :MHT + + tz.transition 1900, 12, :o1, 1086923261, 450 + tz.transition 1969, 9, :o2, 58571881, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Midway.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Midway.rb new file mode 100644 index 000000000..97784fcc1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Midway.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Midway + include TimezoneDefinition + + timezone 'Pacific/Midway' do |tz| + tz.offset :o0, -42568, 0, :LMT + tz.offset :o1, -39600, 0, :NST + tz.offset :o2, -39600, 3600, :NDT + tz.offset :o3, -39600, 0, :BST + tz.offset :o4, -39600, 0, :SST + + tz.transition 1901, 1, :o1, 26086168721, 10800 + tz.transition 1956, 6, :o2, 58455071, 24 + tz.transition 1956, 9, :o1, 29228627, 12 + tz.transition 1967, 4, :o3, 58549967, 24 + tz.transition 1983, 11, :o4, 439038000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Noumea.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Noumea.rb new file mode 100644 index 000000000..70173db8a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Noumea.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Noumea + include TimezoneDefinition + + timezone 'Pacific/Noumea' do |tz| + tz.offset :o0, 39948, 0, :LMT + tz.offset :o1, 39600, 0, :NCT + tz.offset :o2, 39600, 3600, :NCST + + tz.transition 1912, 1, :o1, 17419781071, 7200 + tz.transition 1977, 12, :o2, 250002000 + tz.transition 1978, 2, :o1, 257342400 + tz.transition 1978, 12, :o2, 281451600 + tz.transition 1979, 2, :o1, 288878400 + tz.transition 1996, 11, :o2, 849366000 + tz.transition 1997, 3, :o1, 857228400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Pago_Pago.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Pago_Pago.rb new file mode 100644 index 000000000..c8fcd7d52 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Pago_Pago.rb @@ -0,0 +1,26 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Pago_Pago + include TimezoneDefinition + + timezone 'Pacific/Pago_Pago' do |tz| + tz.offset :o0, 45432, 0, :LMT + tz.offset :o1, -40968, 0, :LMT + tz.offset :o2, -41400, 0, :SAMT + tz.offset :o3, -39600, 0, :NST + tz.offset :o4, -39600, 0, :BST + tz.offset :o5, -39600, 0, :SST + + tz.transition 1879, 7, :o1, 2889041969, 1200 + tz.transition 1911, 1, :o2, 2902845569, 1200 + tz.transition 1950, 1, :o3, 116797583, 48 + tz.transition 1967, 4, :o4, 58549967, 24 + tz.transition 1983, 11, :o5, 439038000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Port_Moresby.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Port_Moresby.rb new file mode 100644 index 000000000..f06cf6d54 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Port_Moresby.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Port_Moresby + include TimezoneDefinition + + timezone 'Pacific/Port_Moresby' do |tz| + tz.offset :o0, 35320, 0, :LMT + tz.offset :o1, 35312, 0, :PMMT + tz.offset :o2, 36000, 0, :PGT + + tz.transition 1879, 12, :o1, 5200664597, 2160 + tz.transition 1894, 12, :o2, 13031248093, 5400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Tongatapu.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Tongatapu.rb new file mode 100644 index 000000000..7578d92f3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Tongatapu.rb @@ -0,0 +1,27 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Tongatapu + include TimezoneDefinition + + timezone 'Pacific/Tongatapu' do |tz| + tz.offset :o0, 44360, 0, :LMT + tz.offset :o1, 44400, 0, :TOT + tz.offset :o2, 46800, 0, :TOT + tz.offset :o3, 46800, 3600, :TOST + + tz.transition 1900, 12, :o1, 5217231571, 2160 + tz.transition 1940, 12, :o2, 174959639, 72 + tz.transition 1999, 10, :o3, 939214800 + tz.transition 2000, 3, :o2, 953384400 + tz.transition 2000, 11, :o3, 973342800 + tz.transition 2001, 1, :o2, 980596800 + tz.transition 2001, 11, :o3, 1004792400 + tz.transition 2002, 1, :o2, 1012046400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/info_timezone.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/info_timezone.rb new file mode 100644 index 000000000..001303c59 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/info_timezone.rb @@ -0,0 +1,52 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/timezone' + +module TZInfo + + # A Timezone based on a TimezoneInfo. + class InfoTimezone < Timezone #:nodoc: + + # Constructs a new InfoTimezone with a TimezoneInfo instance. + def self.new(info) + tz = super() + tz.send(:setup, info) + tz + end + + # The identifier of the timezone, e.g. "Europe/Paris". + def identifier + @info.identifier + end + + protected + # The TimezoneInfo for this Timezone. + def info + @info + end + + def setup(info) + @info = info + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone.rb new file mode 100644 index 000000000..f8ec4fca8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone.rb @@ -0,0 +1,51 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/info_timezone' + +module TZInfo + + class LinkedTimezone < 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). + # + # If no TimezonePeriod could be found, PeriodNotFound is raised. + def period_for_utc(utc) + @linked_timezone.period_for_utc(utc) + end + + # Returns the set of TimezonePeriod instances that are valid for the given + # 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) + @linked_timezone.periods_for_local(local) + end + + protected + def setup(info) + super(info) + @linked_timezone = Timezone.get(info.link_to_identifier) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone_info.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone_info.rb new file mode 100644 index 000000000..8197ff3e8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone_info.rb @@ -0,0 +1,44 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/timezone_info' + +module TZInfo + # Represents a linked timezone defined in a data module. + class LinkedTimezoneInfo < TimezoneInfo #:nodoc: + + # The zone that provides the data (that this zone is an alias for). + attr_reader :link_to_identifier + + # Constructs a new TimezoneInfo with an identifier and the identifier + # of the zone linked to. + def initialize(identifier, link_to_identifier) + super(identifier) + @link_to_identifier = link_to_identifier + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #@identifier,#@link_to_identifier>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/offset_rationals.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/offset_rationals.rb new file mode 100644 index 000000000..32fa4123f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/offset_rationals.rb @@ -0,0 +1,95 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +module TZInfo + + # Provides a method for getting Rationals for a timezone offset in seconds. + # Pre-reduced rationals are returned for all the half-hour intervals between + # -14 and +14 hours to avoid having to call gcd at runtime. + module OffsetRationals #:nodoc: + @@rational_cache = { + -50400 => Rational(-7,12), + -48600 => Rational(-9,16), + -46800 => Rational(-13,24), + -45000 => Rational(-25,48), + -43200 => Rational(-1,2), + -41400 => Rational(-23,48), + -39600 => Rational(-11,24), + -37800 => Rational(-7,16), + -36000 => Rational(-5,12), + -34200 => Rational(-19,48), + -32400 => Rational(-3,8), + -30600 => Rational(-17,48), + -28800 => Rational(-1,3), + -27000 => Rational(-5,16), + -25200 => Rational(-7,24), + -23400 => Rational(-13,48), + -21600 => Rational(-1,4), + -19800 => Rational(-11,48), + -18000 => Rational(-5,24), + -16200 => Rational(-3,16), + -14400 => Rational(-1,6), + -12600 => Rational(-7,48), + -10800 => Rational(-1,8), + -9000 => Rational(-5,48), + -7200 => Rational(-1,12), + -5400 => Rational(-1,16), + -3600 => Rational(-1,24), + -1800 => Rational(-1,48), + 0 => Rational(0,1), + 1800 => Rational(1,48), + 3600 => Rational(1,24), + 5400 => Rational(1,16), + 7200 => Rational(1,12), + 9000 => Rational(5,48), + 10800 => Rational(1,8), + 12600 => Rational(7,48), + 14400 => Rational(1,6), + 16200 => Rational(3,16), + 18000 => Rational(5,24), + 19800 => Rational(11,48), + 21600 => Rational(1,4), + 23400 => Rational(13,48), + 25200 => Rational(7,24), + 27000 => Rational(5,16), + 28800 => Rational(1,3), + 30600 => Rational(17,48), + 32400 => Rational(3,8), + 34200 => Rational(19,48), + 36000 => Rational(5,12), + 37800 => Rational(7,16), + 39600 => Rational(11,24), + 41400 => Rational(23,48), + 43200 => Rational(1,2), + 45000 => Rational(25,48), + 46800 => Rational(13,24), + 48600 => Rational(9,16), + 50400 => Rational(7,12)} + + # Returns a Rational expressing the fraction of a day that offset in + # seconds represents (i.e. equivalent to Rational(offset, 86400)). + def rational_for_offset(offset) + @@rational_cache[offset] || Rational(offset, 86400) + end + module_function :rational_for_offset + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/time_or_datetime.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/time_or_datetime.rb new file mode 100644 index 000000000..264517f3e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/time_or_datetime.rb @@ -0,0 +1,292 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'date' +require 'time' +require 'tzinfo/offset_rationals' + +module TZInfo + # Used by TZInfo internally to represent either a Time, DateTime or integer + # timestamp (seconds since 1970-01-01 00:00:00). + class TimeOrDateTime #:nodoc: + include Comparable + + # Constructs a new TimeOrDateTime. timeOrDateTime can be a Time, DateTime + # or an integer. If using a Time or DateTime, any time zone information is + # ignored. + def initialize(timeOrDateTime) + @time = nil + @datetime = nil + @timestamp = nil + + if timeOrDateTime.is_a?(Time) + @time = timeOrDateTime + @time = Time.utc(@time.year, @time.mon, @time.mday, @time.hour, @time.min, @time.sec) unless @time.zone == 'UTC' + @orig = @time + elsif timeOrDateTime.is_a?(DateTime) + @datetime = timeOrDateTime + @datetime = @datetime.new_offset(0) unless @datetime.offset == 0 + @orig = @datetime + else + @timestamp = timeOrDateTime.to_i + @orig = @timestamp + end + end + + # Returns the time as a Time. + def to_time + unless @time + if @timestamp + @time = Time.at(@timestamp).utc + else + @time = Time.utc(year, mon, mday, hour, min, sec) + end + end + + @time + end + + # Returns the time as a DateTime. + def to_datetime + unless @datetime + @datetime = DateTime.new(year, mon, mday, hour, min, sec) + end + + @datetime + end + + # Returns the time as an integer timestamp. + def to_i + unless @timestamp + @timestamp = to_time.to_i + end + + @timestamp + end + + # Returns the time as the original time passed to new. + def to_orig + @orig + end + + # Returns a string representation of the TimeOrDateTime. + def to_s + if @orig.is_a?(Time) + "Time: #{@orig.to_s}" + elsif @orig.is_a?(DateTime) + "DateTime: #{@orig.to_s}" + else + "Timestamp: #{@orig.to_s}" + end + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #{@orig.inspect}>" + end + + # Returns the year. + def year + if @time + @time.year + elsif @datetime + @datetime.year + else + to_time.year + end + end + + # Returns the month of the year (1..12). + def mon + if @time + @time.mon + elsif @datetime + @datetime.mon + else + to_time.mon + end + end + alias :month :mon + + # Returns the day of the month (1..n). + def mday + if @time + @time.mday + elsif @datetime + @datetime.mday + else + to_time.mday + end + end + alias :day :mday + + # Returns the hour of the day (0..23). + def hour + if @time + @time.hour + elsif @datetime + @datetime.hour + else + to_time.hour + end + end + + # Returns the minute of the hour (0..59). + def min + if @time + @time.min + elsif @datetime + @datetime.min + else + to_time.min + end + end + + # Returns the second of the minute (0..60). (60 for a leap second). + def sec + if @time + @time.sec + elsif @datetime + @datetime.sec + else + to_time.sec + end + end + + # Compares this TimeOrDateTime with another Time, DateTime, integer + # timestamp or TimeOrDateTime. Returns -1, 0 or +1 depending whether the + # receiver is less than, equal to, or greater than timeOrDateTime. + # + # Milliseconds and smaller units are ignored in the comparison. + def <=>(timeOrDateTime) + if timeOrDateTime.is_a?(TimeOrDateTime) + orig = timeOrDateTime.to_orig + + if @orig.is_a?(DateTime) || orig.is_a?(DateTime) + # If either is a DateTime, assume it is there for a reason + # (i.e. for range). + to_datetime <=> timeOrDateTime.to_datetime + elsif orig.is_a?(Time) + to_time <=> timeOrDateTime.to_time + else + to_i <=> timeOrDateTime.to_i + end + elsif @orig.is_a?(DateTime) || timeOrDateTime.is_a?(DateTime) + # If either is a DateTime, assume it is there for a reason + # (i.e. for range). + to_datetime <=> TimeOrDateTime.wrap(timeOrDateTime).to_datetime + elsif timeOrDateTime.is_a?(Time) + to_time <=> timeOrDateTime + else + to_i <=> timeOrDateTime.to_i + end + end + + # Adds a number of seconds to the TimeOrDateTime. Returns a new + # TimeOrDateTime, preserving what the original constructed type was. + # If the original type is a Time and the resulting calculation goes out of + # range for Times, then an exception will be raised by the Time class. + def +(seconds) + if seconds == 0 + self + else + if @orig.is_a?(DateTime) + TimeOrDateTime.new(@orig + OffsetRationals.rational_for_offset(seconds)) + else + # + defined for Time and integer timestamps + TimeOrDateTime.new(@orig + seconds) + end + end + end + + # Subtracts a number of seconds from the TimeOrDateTime. Returns a new + # TimeOrDateTime, preserving what the original constructed type was. + # If the original type is a Time and the resulting calculation goes out of + # range for Times, then an exception will be raised by the Time class. + def -(seconds) + self + (-seconds) + end + + # Similar to the + operator, but for cases where adding would cause a + # timestamp or time to go out of the allowed range, converts to a DateTime + # based TimeOrDateTime. + def add_with_convert(seconds) + if seconds == 0 + self + else + if @orig.is_a?(DateTime) + TimeOrDateTime.new(@orig + OffsetRationals.rational_for_offset(seconds)) + else + # A Time or timestamp. + result = to_i + seconds + + if result < 0 || result > 2147483647 + result = TimeOrDateTime.new(to_datetime + OffsetRationals.rational_for_offset(seconds)) + else + result = TimeOrDateTime.new(@orig + seconds) + end + end + end + end + + # Returns true if todt represents the same time and was originally + # constructed with the same type (DateTime, Time or timestamp) as this + # TimeOrDateTime. + def eql?(todt) + todt.respond_to?(:to_orig) && to_orig.eql?(todt.to_orig) + end + + # Returns a hash of this TimeOrDateTime. + def hash + @orig.hash + end + + # If no block is given, returns a TimeOrDateTime wrapping the given + # timeOrDateTime. If a block is specified, a TimeOrDateTime is constructed + # and passed to the block. The result of the block must be a TimeOrDateTime. + # to_orig will be called on the result and the result of to_orig will be + # returned. + # + # timeOrDateTime can be a Time, DateTime, integer timestamp or TimeOrDateTime. + # If a TimeOrDateTime is passed in, no new TimeOrDateTime will be constructed, + # the passed in value will be used. + def self.wrap(timeOrDateTime) + t = timeOrDateTime.is_a?(TimeOrDateTime) ? timeOrDateTime : TimeOrDateTime.new(timeOrDateTime) + + if block_given? + t = yield t + + if timeOrDateTime.is_a?(TimeOrDateTime) + t + elsif timeOrDateTime.is_a?(Time) + t.to_time + elsif timeOrDateTime.is_a?(DateTime) + t.to_datetime + else + t.to_i + end + else + t + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone.rb new file mode 100644 index 000000000..04f2f2f0a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone.rb @@ -0,0 +1,508 @@ +#-- +# Copyright (c) 2005-2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'date' +# require 'tzinfo/country' +require 'tzinfo/time_or_datetime' +require 'tzinfo/timezone_period' + +module TZInfo + # Indicate a specified time in a local timezone has more than one + # possible time in UTC. This happens when switching from daylight savings time + # to normal time where the clocks are rolled back. Thrown by period_for_local + # and local_to_utc when using an ambiguous time and not specifying any + # means to resolve the ambiguity. + class AmbiguousTime < StandardError + end + + # Thrown to indicate that no TimezonePeriod matching a given time could be found. + class PeriodNotFound < StandardError + end + + # Thrown by Timezone#get if the identifier given is not valid. + class InvalidTimezoneIdentifier < StandardError + end + + # Thrown if an attempt is made to use a timezone created with Timezone.new(nil). + class UnknownTimezone < StandardError + end + + # Timezone is the base class of all timezones. It provides a factory method + # get to access timezones by identifier. Once a specific Timezone has been + # retrieved, DateTimes, Times and timestamps can be converted between the UTC + # and the local time for the zone. For example: + # + # tz = TZInfo::Timezone.get('America/New_York') + # puts tz.utc_to_local(DateTime.new(2005,8,29,15,35,0)).to_s + # puts tz.local_to_utc(Time.utc(2005,8,29,11,35,0)).to_s + # puts tz.utc_to_local(1125315300).to_s + # + # Each time conversion method returns an object of the same type it was + # passed. + # + # The timezone information all comes from the tz database + # (see http://www.twinsun.com/tz/tz-link.htm) + class Timezone + include Comparable + + # Cache of loaded zones by identifier to avoid using require if a zone + # has already been loaded. + @@loaded_zones = {} + + # Whether the timezones index has been loaded yet. + @@index_loaded = false + + # Returns a timezone by its identifier (e.g. "Europe/London", + # "America/Chicago" or "UTC"). + # + # Raises InvalidTimezoneIdentifier if the timezone couldn't be found. + def self.get(identifier) + instance = @@loaded_zones[identifier] + unless instance + raise InvalidTimezoneIdentifier, 'Invalid identifier' if identifier !~ /^[A-z0-9\+\-_]+(\/[A-z0-9\+\-_]+)*$/ + identifier = identifier.gsub(/-/, '__m__').gsub(/\+/, '__p__') + begin + # Use a temporary variable to avoid an rdoc warning + file = "tzinfo/definitions/#{identifier}" + require file + + m = Definitions + identifier.split(/\//).each {|part| + m = m.const_get(part) + } + + info = m.get + + # Could make Timezone subclasses register an interest in an info + # type. Since there are currently only two however, there isn't + # much point. + if info.kind_of?(DataTimezoneInfo) + instance = DataTimezone.new(info) + elsif info.kind_of?(LinkedTimezoneInfo) + instance = LinkedTimezone.new(info) + else + raise InvalidTimezoneIdentifier, "No handler for info type #{info.class}" + end + + @@loaded_zones[instance.identifier] = instance + rescue LoadError, NameError => e + raise InvalidTimezoneIdentifier, e.message + end + end + + instance + end + + # Returns a proxy for the Timezone with the given identifier. The proxy + # will cause the real timezone to be loaded when an attempt is made to + # find a period or convert a time. get_proxy will not validate the + # identifier. If an invalid identifier is specified, no exception will be + # raised until the proxy is used. + def self.get_proxy(identifier) + TimezoneProxy.new(identifier) + end + + # If identifier is nil calls super(), otherwise calls get. An identfier + # should always be passed in when called externally. + def self.new(identifier = nil) + if identifier + get(identifier) + else + super() + end + end + + # Returns an array containing all the available Timezones. + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all + get_proxies(all_identifiers) + end + + # Returns an array containing the identifiers of all the available + # Timezones. + def self.all_identifiers + load_index + Indexes::Timezones.timezones + end + + # Returns an array containing all the available Timezones that are based + # on data (are not links to other Timezones). + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all_data_zones + get_proxies(all_data_zone_identifiers) + end + + # Returns an array containing the identifiers of all the available + # Timezones that are based on data (are not links to other Timezones).. + def self.all_data_zone_identifiers + load_index + Indexes::Timezones.data_timezones + end + + # Returns an array containing all the available Timezones that are links + # to other Timezones. + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all_linked_zones + get_proxies(all_linked_zone_identifiers) + end + + # Returns an array containing the identifiers of all the available + # Timezones that are links to other Timezones. + def self.all_linked_zone_identifiers + load_index + Indexes::Timezones.linked_timezones + end + + # Returns all the Timezones defined for all Countries. This is not the + # complete set of Timezones as some are not country specific (e.g. + # 'Etc/GMT'). + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all_country_zones + Country.all_codes.inject([]) {|zones,country| + zones += Country.get(country).zones + } + end + + # Returns all the zone identifiers defined for all Countries. This is not the + # complete set of zone identifiers as some are not country specific (e.g. + # 'Etc/GMT'). You can obtain a Timezone instance for a given identifier + # with the get method. + def self.all_country_zone_identifiers + Country.all_codes.inject([]) {|zones,country| + zones += Country.get(country).zone_identifiers + } + end + + # Returns all US Timezone instances. A shortcut for + # TZInfo::Country.get('US').zones. + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.us_zones + Country.get('US').zones + end + + # Returns all US zone identifiers. A shortcut for + # TZInfo::Country.get('US').zone_identifiers. + def self.us_zone_identifiers + Country.get('US').zone_identifiers + end + + # The identifier of the timezone, e.g. "Europe/Paris". + def identifier + raise UnknownTimezone, 'TZInfo::Timezone constructed directly' + end + + # An alias for identifier. + def name + # Don't use alias, as identifier gets overridden. + identifier + end + + # Returns a friendlier version of the identifier. + def to_s + friendly_identifier + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #{identifier}>" + end + + # Returns a friendlier version of the identifier. Set skip_first_part to + # omit the first part of the identifier (typically a region name) where + # there is more than one part. + # + # For example: + # + # Timezone.get('Europe/Paris').friendly_identifier(false) #=> "Europe - Paris" + # Timezone.get('Europe/Paris').friendly_identifier(true) #=> "Paris" + # Timezone.get('America/Indiana/Knox').friendly_identifier(false) #=> "America - Knox, Indiana" + # Timezone.get('America/Indiana/Knox').friendly_identifier(true) #=> "Knox, Indiana" + def friendly_identifier(skip_first_part = false) + parts = identifier.split('/') + if parts.empty? + # shouldn't happen + identifier + elsif parts.length == 1 + parts[0] + else + if skip_first_part + result = '' + else + result = parts[0] + ' - ' + end + + parts[1, parts.length - 1].reverse_each {|part| + part.gsub!(/_/, ' ') + + if part.index(/[a-z]/) + # Missing a space if a lower case followed by an upper case and the + # name isn't McXxxx. + part.gsub!(/([^M][a-z])([A-Z])/, '\1 \2') + part.gsub!(/([M][a-bd-z])([A-Z])/, '\1 \2') + + # Missing an apostrophe if two consecutive upper case characters. + part.gsub!(/([A-Z])([A-Z])/, '\1\'\2') + end + + result << part + result << ', ' + } + + result.slice!(result.length - 2, 2) + result + end + end + + # 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). + def period_for_utc(utc) + raise UnknownTimezone, 'TZInfo::Timezone constructed directly' + end + + # Returns the set of TimezonePeriod instances that are valid for the given + # local time as an array. If you just want a single period, use + # period_for_local instead and specify how ambiguities should be resolved. + # Returns an empty array if no periods are found for the given time. + def periods_for_local(local) + raise UnknownTimezone, 'TZInfo::Timezone constructed directly' + end + + # Returns the TimezonePeriod for the given local time. local can either be + # a DateTime, Time or integer timestamp (Time.to_i). Any timezone + # information in local is ignored (it is treated as a time in the current + # timezone). + # + # Warning: There are local times that have no equivalent UTC times (e.g. + # in the transition from standard time to daylight savings time). There are + # also local times that have more than one UTC equivalent (e.g. in the + # transition from daylight savings time to standard time). + # + # In the first case (no equivalent UTC time), a PeriodNotFound exception + # will be raised. + # + # In the second case (more than one equivalent UTC time), an AmbiguousTime + # exception will be raised unless the optional dst parameter or block + # handles the ambiguity. + # + # If the ambiguity is due to a transition from daylight savings time to + # standard time, the dst parameter can be used to select whether the + # daylight savings time or local time is used. For example, + # + # Timezone.get('America/New_York').period_for_local(DateTime.new(2004,10,31,1,30,0)) + # + # would raise an AmbiguousTime exception. + # + # Specifying dst=true would the daylight savings period from April to + # October 2004. Specifying dst=false would return the standard period + # from October 2004 to April 2005. + # + # If the dst parameter does not resolve the ambiguity, and a block is + # specified, it is called. The block must take a single parameter - an + # array of the periods that need to be resolved. The block can select and + # return a single period or return nil or an empty array + # to cause an AmbiguousTime exception to be raised. + def period_for_local(local, dst = nil) + results = periods_for_local(local) + + if results.empty? + raise PeriodNotFound + elsif results.size < 2 + results.first + else + # ambiguous result try to resolve + + if !dst.nil? + matches = results.find_all {|period| period.dst? == dst} + results = matches if !matches.empty? + end + + if results.size < 2 + results.first + else + # still ambiguous, try the block + + if block_given? + results = yield results + end + + if results.is_a?(TimezonePeriod) + results + elsif results && results.size == 1 + results.first + else + raise AmbiguousTime, "#{local} is an ambiguous local time." + end + end + end + end + + # Converts a time in UTC to the local timezone. utc can either be + # a DateTime, Time or timestamp (Time.to_i). The returned time has the same + # type as utc. Any timezone information in utc is ignored (it is treated as + # a UTC time). + def utc_to_local(utc) + TimeOrDateTime.wrap(utc) {|utc| + period_for_utc(utc).to_local(utc) + } + end + + # Converts a time in the local timezone to UTC. local can either be + # a DateTime, Time or timestamp (Time.to_i). The returned time has the same + # type as local. Any timezone information in local is ignored (it is treated + # as a local time). + # + # Warning: There are local times that have no equivalent UTC times (e.g. + # in the transition from standard time to daylight savings time). There are + # also local times that have more than one UTC equivalent (e.g. in the + # transition from daylight savings time to standard time). + # + # In the first case (no equivalent UTC time), a PeriodNotFound exception + # will be raised. + # + # In the second case (more than one equivalent UTC time), an AmbiguousTime + # exception will be raised unless the optional dst parameter or block + # handles the ambiguity. + # + # If the ambiguity is due to a transition from daylight savings time to + # standard time, the dst parameter can be used to select whether the + # daylight savings time or local time is used. For example, + # + # Timezone.get('America/New_York').local_to_utc(DateTime.new(2004,10,31,1,30,0)) + # + # would raise an AmbiguousTime exception. + # + # Specifying dst=true would return 2004-10-31 5:30:00. Specifying dst=false + # would return 2004-10-31 6:30:00. + # + # If the dst parameter does not resolve the ambiguity, and a block is + # specified, it is called. The block must take a single parameter - an + # array of the periods that need to be resolved. The block can return a + # single period to use to convert the time or return nil or an empty array + # to cause an AmbiguousTime exception to be raised. + def local_to_utc(local, dst = nil) + TimeOrDateTime.wrap(local) {|local| + if block_given? + period = period_for_local(local, dst) {|periods| yield periods } + else + period = period_for_local(local, dst) + end + + period.to_utc(local) + } + end + + # Returns the current time in the timezone as a Time. + def now + utc_to_local(Time.now.utc) + end + + # Returns the TimezonePeriod for the current time. + def current_period + period_for_utc(Time.now.utc) + end + + # Returns the current Time and TimezonePeriod as an array. The first element + # is the time, the second element is the period. + def current_period_and_time + utc = Time.now.utc + period = period_for_utc(utc) + [period.to_local(utc), period] + end + + alias :current_time_and_period :current_period_and_time + + # Converts a time in UTC to local time and returns it as a string + # according to the given format. The formatting is identical to + # Time.strftime and DateTime.strftime, except %Z is replaced with the + # timezone abbreviation for the specified time (for example, EST or EDT). + def strftime(format, utc = Time.now.utc) + period = period_for_utc(utc) + local = period.to_local(utc) + local = Time.at(local).utc unless local.kind_of?(Time) || local.kind_of?(DateTime) + abbreviation = period.abbreviation.to_s.gsub(/%/, '%%') + + format = format.gsub(/(.?)%Z/) do + if $1 == '%' + # return %%Z so the real strftime treats it as a literal %Z too + '%%Z' + else + "#$1#{abbreviation}" + end + end + + local.strftime(format) + end + + # Compares two Timezones based on their identifier. Returns -1 if tz is less + # than self, 0 if tz is equal to self and +1 if tz is greater than self. + def <=>(tz) + identifier <=> tz.identifier + end + + # Returns true if and only if the identifier of tz is equal to the + # identifier of this Timezone. + def eql?(tz) + self == tz + end + + # Returns a hash of this Timezone. + def hash + identifier.hash + end + + # Dumps this Timezone for marshalling. + def _dump(limit) + identifier + end + + # Loads a marshalled Timezone. + def self._load(data) + Timezone.get(data) + end + + private + # Loads in the index of timezones if it hasn't already been loaded. + def self.load_index + unless @@index_loaded + require 'tzinfo/indexes/timezones' + @@index_loaded = true + end + end + + # Returns an array of proxies corresponding to the given array of + # identifiers. + def self.get_proxies(identifiers) + identifiers.collect {|identifier| get_proxy(identifier)} + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_definition.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_definition.rb new file mode 100644 index 000000000..39ca8bfa5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_definition.rb @@ -0,0 +1,56 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/data_timezone_info' +require 'tzinfo/linked_timezone_info' + +module TZInfo + + # TimezoneDefinition is included into Timezone definition modules. + # TimezoneDefinition provides the methods for defining timezones. + module TimezoneDefinition #:nodoc: + # Add class methods to the includee. + def self.append_features(base) + super + base.extend(ClassMethods) + end + + # Class methods for inclusion. + module ClassMethods #:nodoc: + # Returns and yields a DataTimezoneInfo object to define a timezone. + def timezone(identifier) + yield @timezone = DataTimezoneInfo.new(identifier) + end + + # Defines a linked timezone. + def linked_timezone(identifier, link_to_identifier) + @timezone = LinkedTimezoneInfo.new(identifier, link_to_identifier) + end + + # Returns the last TimezoneInfo to be defined with timezone or + # linked_timezone. + def get + @timezone + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_info.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_info.rb new file mode 100644 index 000000000..68e38c35f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_info.rb @@ -0,0 +1,40 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +module TZInfo + # Represents a timezone defined in a data module. + class TimezoneInfo #:nodoc: + + # The timezone identifier. + attr_reader :identifier + + # Constructs a new TimezoneInfo with an identifier. + def initialize(identifier) + @identifier = identifier + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #@identifier>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_offset_info.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_offset_info.rb new file mode 100644 index 000000000..913c4164a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_offset_info.rb @@ -0,0 +1,94 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +module TZInfo + # Represents an offset defined in a Timezone data file. + class TimezoneOffsetInfo #:nodoc: + # The base offset of the timezone from UTC in seconds. + attr_reader :utc_offset + + # The offset from standard time for the zone in seconds (i.e. non-zero if + # daylight savings is being observed). + attr_reader :std_offset + + # The total offset of this observance from UTC in seconds + # (utc_offset + std_offset). + attr_reader :utc_total_offset + + # The abbreviation that identifies this observance, e.g. "GMT" + # (Greenwich Mean Time) or "BST" (British Summer Time) for "Europe/London". The returned identifier is a + # symbol. + attr_reader :abbreviation + + # Constructs a new TimezoneOffsetInfo. utc_offset and std_offset are + # specified in seconds. + def initialize(utc_offset, std_offset, abbreviation) + @utc_offset = utc_offset + @std_offset = std_offset + @abbreviation = abbreviation + + @utc_total_offset = @utc_offset + @std_offset + end + + # True if std_offset is non-zero. + def dst? + @std_offset != 0 + end + + # Converts a UTC DateTime to local time based on the offset of this period. + def to_local(utc) + TimeOrDateTime.wrap(utc) {|utc| + utc + @utc_total_offset + } + end + + # Converts a local DateTime to UTC based on the offset of this period. + def to_utc(local) + TimeOrDateTime.wrap(local) {|local| + local - @utc_total_offset + } + end + + # Returns true if and only if toi has the same utc_offset, std_offset + # and abbreviation as this TimezoneOffsetInfo. + def ==(toi) + toi.respond_to?(:utc_offset) && toi.respond_to?(:std_offset) && toi.respond_to?(:abbreviation) && + utc_offset == toi.utc_offset && std_offset == toi.std_offset && abbreviation == toi.abbreviation + end + + # Returns true if and only if toi has the same utc_offset, std_offset + # and abbreviation as this TimezoneOffsetInfo. + def eql?(toi) + self == toi + end + + # Returns a hash of this TimezoneOffsetInfo. + def hash + utc_offset.hash ^ std_offset.hash ^ abbreviation.hash + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #@utc_offset,#@std_offset,#@abbreviation>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_period.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_period.rb new file mode 100644 index 000000000..00888fcfd --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_period.rb @@ -0,0 +1,198 @@ +#-- +# Copyright (c) 2005-2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/offset_rationals' +require 'tzinfo/time_or_datetime' + +module TZInfo + # A period of time in a timezone where the same offset from UTC applies. + # + # All the methods that take times accept instances of Time, DateTime or + # integer timestamps. + class TimezonePeriod + # The TimezoneTransitionInfo that defines the start of this TimezonePeriod + # (may be nil if unbounded). + attr_reader :start_transition + + # The TimezoneTransitionInfo that defines the end of this TimezonePeriod + # (may be nil if unbounded). + attr_reader :end_transition + + # The TimezoneOffsetInfo for this period. + attr_reader :offset + + # Initializes a new TimezonePeriod. + def initialize(start_transition, end_transition, offset = nil) + @start_transition = start_transition + @end_transition = end_transition + + if offset + raise ArgumentError, 'Offset specified with transitions' if @start_transition || @end_transition + @offset = offset + else + if @start_transition + @offset = @start_transition.offset + elsif @end_transition + @offset = @end_transition.previous_offset + else + raise ArgumentError, 'No offset specified and no transitions to determine it from' + end + end + + @utc_total_offset_rational = nil + end + + # Base offset of the timezone from UTC (seconds). + def utc_offset + @offset.utc_offset + end + + # Offset from the local time where daylight savings is in effect (seconds). + # E.g.: utc_offset could be -5 hours. Normally, std_offset would be 0. + # During daylight savings, std_offset would typically become +1 hours. + def std_offset + @offset.std_offset + end + + # The identifier of this period, e.g. "GMT" (Greenwich Mean Time) or "BST" + # (British Summer Time) for "Europe/London". The returned identifier is a + # symbol. + def abbreviation + @offset.abbreviation + end + alias :zone_identifier :abbreviation + + # Total offset from UTC (seconds). Equal to utc_offset + std_offset. + def utc_total_offset + @offset.utc_total_offset + end + + # Total offset from UTC (days). Result is a Rational. + def utc_total_offset_rational + unless @utc_total_offset_rational + @utc_total_offset_rational = OffsetRationals.rational_for_offset(utc_total_offset) + end + @utc_total_offset_rational + end + + # The start time of the period in UTC as a DateTime. May be nil if unbounded. + def utc_start + @start_transition ? @start_transition.at.to_datetime : nil + end + + # The end time of the period in UTC as a DateTime. May be nil if unbounded. + def utc_end + @end_transition ? @end_transition.at.to_datetime : nil + end + + # The start time of the period in local time as a DateTime. May be nil if + # unbounded. + def local_start + @start_transition ? @start_transition.local_start.to_datetime : nil + end + + # The end time of the period in local time as a DateTime. May be nil if + # unbounded. + def local_end + @end_transition ? @end_transition.local_end.to_datetime : nil + end + + # true if daylight savings is in effect for this period; otherwise false. + def dst? + @offset.dst? + end + + # true if this period is valid for the given UTC DateTime; otherwise false. + def valid_for_utc?(utc) + utc_after_start?(utc) && utc_before_end?(utc) + end + + # true if the given UTC DateTime is after the start of the period + # (inclusive); otherwise false. + def utc_after_start?(utc) + !@start_transition || @start_transition.at <= utc + end + + # true if the given UTC DateTime is before the end of the period + # (exclusive); otherwise false. + def utc_before_end?(utc) + !@end_transition || @end_transition.at > utc + end + + # true if this period is valid for the given local DateTime; otherwise false. + def valid_for_local?(local) + local_after_start?(local) && local_before_end?(local) + end + + # true if the given local DateTime is after the start of the period + # (inclusive); otherwise false. + def local_after_start?(local) + !@start_transition || @start_transition.local_start <= local + end + + # true if the given local DateTime is before the end of the period + # (exclusive); otherwise false. + def local_before_end?(local) + !@end_transition || @end_transition.local_end > local + end + + # Converts a UTC DateTime to local time based on the offset of this period. + def to_local(utc) + @offset.to_local(utc) + end + + # Converts a local DateTime to UTC based on the offset of this period. + def to_utc(local) + @offset.to_utc(local) + end + + # Returns true if this TimezonePeriod is equal to p. This compares the + # start_transition, end_transition and offset using ==. + def ==(p) + p.respond_to?(:start_transition) && p.respond_to?(:end_transition) && + p.respond_to?(:offset) && start_transition == p.start_transition && + end_transition == p.end_transition && offset == p.offset + end + + # Returns true if this TimezonePeriods is equal to p. This compares the + # start_transition, end_transition and offset using eql? + def eql?(p) + p.respond_to?(:start_transition) && p.respond_to?(:end_transition) && + p.respond_to?(:offset) && start_transition.eql?(p.start_transition) && + end_transition.eql?(p.end_transition) && offset.eql?(p.offset) + end + + # Returns a hash of this TimezonePeriod. + def hash + result = @start_transition.hash ^ @end_transition.hash + result ^= @offset.hash unless @start_transition || @end_transition + result + end + + # Returns internal object state as a programmer-readable string. + def inspect + result = "#<#{self.class}: #{@start_transition.inspect},#{@end_transition.inspect}" + result << ",#{@offset.inspect}>" unless @start_transition || @end_transition + result + '>' + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_transition_info.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_transition_info.rb new file mode 100644 index 000000000..6ae1b7df9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_transition_info.rb @@ -0,0 +1,138 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'date' +require 'tzinfo/time_or_datetime' + +module TZInfo + # Represents an offset defined in a Timezone data file. + class TimezoneTransitionInfo #:nodoc: + # The offset this transition changes to (a TimezoneOffsetInfo instance). + attr_reader :offset + + # The offset this transition changes from (a TimezoneOffsetInfo instance). + attr_reader :previous_offset + + # The numerator of the DateTime if the transition time is defined as a + # DateTime, otherwise the transition time as a timestamp. + attr_reader :numerator_or_time + protected :numerator_or_time + + # Either the denominotor of the DateTime if the transition time is defined + # as a DateTime, otherwise nil. + attr_reader :denominator + protected :denominator + + # Creates a new TimezoneTransitionInfo with the given offset, + # previous_offset (both TimezoneOffsetInfo instances) and UTC time. + # if denominator is nil, numerator_or_time is treated as a number of + # seconds since the epoch. If denominator is specified numerator_or_time + # and denominator are used to create a DateTime as follows: + # + # DateTime.new!(Rational.new!(numerator_or_time, denominator), 0, Date::ITALY) + # + # For performance reasons, the numerator and denominator must be specified + # in their lowest form. + def initialize(offset, previous_offset, numerator_or_time, denominator = nil) + @offset = offset + @previous_offset = previous_offset + @numerator_or_time = numerator_or_time + @denominator = denominator + + @at = nil + @local_end = nil + @local_start = nil + end + + # A TimeOrDateTime instance representing the UTC time when this transition + # occurs. + def at + unless @at + unless @denominator + @at = TimeOrDateTime.new(@numerator_or_time) + else + r = Rational.new!(@numerator_or_time, @denominator) + + # Ruby 1.8.6 introduced new! and deprecated new0. + # Ruby 1.9.0 removed new0. + # We still need to support new0 for older versions of Ruby. + if DateTime.respond_to? :new! + dt = DateTime.new!(r, 0, Date::ITALY) + else + dt = DateTime.new0(r, 0, Date::ITALY) + end + + @at = TimeOrDateTime.new(dt) + end + end + + @at + end + + # A TimeOrDateTime instance representing the local time when this transition + # causes the previous observance to end (calculated from at using + # previous_offset). + def local_end + @local_end = at.add_with_convert(@previous_offset.utc_total_offset) unless @local_end + @local_end + end + + # A TimeOrDateTime instance representing the local time when this transition + # causes the next observance to start (calculated from at using offset). + def local_start + @local_start = at.add_with_convert(@offset.utc_total_offset) unless @local_start + @local_start + end + + # Returns true if this TimezoneTransitionInfo is equal to the given + # TimezoneTransitionInfo. Two TimezoneTransitionInfo instances are + # considered to be equal by == if offset, previous_offset and at are all + # equal. + def ==(tti) + tti.respond_to?(:offset) && tti.respond_to?(:previous_offset) && tti.respond_to?(:at) && + offset == tti.offset && previous_offset == tti.previous_offset && at == tti.at + end + + # Returns true if this TimezoneTransitionInfo is equal to the given + # TimezoneTransitionInfo. Two TimezoneTransitionInfo instances are + # considered to be equal by eql? if offset, previous_offset, + # numerator_or_time and denominator are all equal. This is stronger than ==, + # which just requires the at times to be equal regardless of how they were + # originally specified. + def eql?(tti) + tti.respond_to?(:offset) && tti.respond_to?(:previous_offset) && + tti.respond_to?(:numerator_or_time) && tti.respond_to?(:denominator) && + offset == tti.offset && previous_offset == tti.previous_offset && + numerator_or_time == tti.numerator_or_time && denominator == tti.denominator + end + + # Returns a hash of this TimezoneTransitionInfo instance. + def hash + @offset.hash ^ @previous_offset.hash ^ @numerator_or_time.hash ^ @denominator.hash + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #{at.inspect},#{@offset.inspect}>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb new file mode 100644 index 000000000..0de24c0ef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb @@ -0,0 +1,1021 @@ +# = XmlSimple +# +# Author:: Maik Schmidt <contact@maik-schmidt.de> +# Copyright:: Copyright (c) 2003-2006 Maik Schmidt +# License:: Distributes under the same terms as Ruby. +# +require 'rexml/document' +require 'stringio' + +# Easy API to maintain XML (especially configuration files). +class XmlSimple + include REXML + + @@VERSION = '1.0.11' + + # A simple cache for XML documents that were already transformed + # by xml_in. + class Cache + # Creates and initializes a new Cache object. + def initialize + @mem_share_cache = {} + @mem_copy_cache = {} + end + + # Saves a data structure into a file. + # + # data:: + # Data structure to be saved. + # filename:: + # Name of the file belonging to the data structure. + def save_storable(data, filename) + cache_file = get_cache_filename(filename) + File.open(cache_file, "w+") { |f| Marshal.dump(data, f) } + end + + # Restores a data structure from a file. If restoring the data + # structure failed for any reason, nil will be returned. + # + # filename:: + # Name of the file belonging to the data structure. + def restore_storable(filename) + cache_file = get_cache_filename(filename) + return nil unless File::exist?(cache_file) + return nil unless File::mtime(cache_file).to_i > File::mtime(filename).to_i + data = nil + File.open(cache_file) { |f| data = Marshal.load(f) } + data + end + + # Saves a data structure in a shared memory cache. + # + # data:: + # Data structure to be saved. + # filename:: + # Name of the file belonging to the data structure. + def save_mem_share(data, filename) + @mem_share_cache[filename] = [Time::now.to_i, data] + end + + # Restores a data structure from a shared memory cache. You + # should consider these elements as "read only". If restoring + # the data structure failed for any reason, nil will be + # returned. + # + # filename:: + # Name of the file belonging to the data structure. + def restore_mem_share(filename) + get_from_memory_cache(filename, @mem_share_cache) + end + + # Copies a data structure to a memory cache. + # + # data:: + # Data structure to be copied. + # filename:: + # Name of the file belonging to the data structure. + def save_mem_copy(data, filename) + @mem_share_cache[filename] = [Time::now.to_i, Marshal.dump(data)] + end + + # Restores a data structure from a memory cache. If restoring + # the data structure failed for any reason, nil will be + # returned. + # + # filename:: + # Name of the file belonging to the data structure. + def restore_mem_copy(filename) + data = get_from_memory_cache(filename, @mem_share_cache) + data = Marshal.load(data) unless data.nil? + data + end + + private + + # Returns the "cache filename" belonging to a filename, i.e. + # the extension '.xml' in the original filename will be replaced + # by '.stor'. If filename does not have this extension, '.stor' + # will be appended. + # + # filename:: + # Filename to get "cache filename" for. + def get_cache_filename(filename) + filename.sub(/(\.xml)?$/, '.stor') + end + + # Returns a cache entry from a memory cache belonging to a + # certain filename. If no entry could be found for any reason, + # nil will be returned. + # + # filename:: + # Name of the file the cache entry belongs to. + # cache:: + # Memory cache to get entry from. + def get_from_memory_cache(filename, cache) + return nil unless cache[filename] + return nil unless cache[filename][0] > File::mtime(filename).to_i + return cache[filename][1] + end + end + + # Create a "global" cache. + @@cache = Cache.new + + # Creates and intializes a new XmlSimple object. + # + # defaults:: + # Default values for options. + def initialize(defaults = nil) + unless defaults.nil? || defaults.instance_of?(Hash) + raise ArgumentError, "Options have to be a Hash." + end + @default_options = normalize_option_names(defaults, (KNOWN_OPTIONS['in'] + KNOWN_OPTIONS['out']).uniq) + @options = Hash.new + @_var_values = nil + end + + # Converts an XML document in the same way as the Perl module XML::Simple. + # + # string:: + # XML source. Could be one of the following: + # + # - nil: Tries to load and parse '<scriptname>.xml'. + # - filename: Tries to load and parse filename. + # - IO object: Reads from object until EOF is detected and parses result. + # - XML string: Parses string. + # + # options:: + # Options to be used. + def xml_in(string = nil, options = nil) + handle_options('in', options) + + # If no XML string or filename was supplied look for scriptname.xml. + if string.nil? + string = File::basename($0) + string.sub!(/\.[^.]+$/, '') + string += '.xml' + + directory = File::dirname($0) + @options['searchpath'].unshift(directory) unless directory.nil? + end + + if string.instance_of?(String) + if string =~ /<.*?>/m + @doc = parse(string) + elsif string == '-' + @doc = parse($stdin.readlines.to_s) + else + filename = find_xml_file(string, @options['searchpath']) + + if @options.has_key?('cache') + @options['cache'].each { |scheme| + case(scheme) + when 'storable' + content = @@cache.restore_storable(filename) + when 'mem_share' + content = @@cache.restore_mem_share(filename) + when 'mem_copy' + content = @@cache.restore_mem_copy(filename) + else + raise ArgumentError, "Unsupported caching scheme: <#{scheme}>." + end + return content if content + } + end + + @doc = load_xml_file(filename) + end + elsif string.kind_of?(IO) || string.kind_of?(StringIO) + @doc = parse(string.readlines.to_s) + else + raise ArgumentError, "Could not parse object of type: <#{string.type}>." + end + + result = collapse(@doc.root) + result = @options['keeproot'] ? merge({}, @doc.root.name, result) : result + put_into_cache(result, filename) + result + end + + # This is the functional version of the instance method xml_in. + def XmlSimple.xml_in(string = nil, options = nil) + xml_simple = XmlSimple.new + xml_simple.xml_in(string, options) + end + + # Converts a data structure into an XML document. + # + # ref:: + # Reference to data structure to be converted into XML. + # options:: + # Options to be used. + def xml_out(ref, options = nil) + handle_options('out', options) + if ref.instance_of?(Array) + ref = { @options['anonymoustag'] => ref } + end + + if @options['keeproot'] + keys = ref.keys + if keys.size == 1 + ref = ref[keys[0]] + @options['rootname'] = keys[0] + end + elsif @options['rootname'] == '' + if ref.instance_of?(Hash) + refsave = ref + ref = {} + refsave.each { |key, value| + if !scalar(value) + ref[key] = value + else + ref[key] = [ value.to_s ] + end + } + end + end + + @ancestors = [] + xml = value_to_xml(ref, @options['rootname'], '') + @ancestors = nil + + if @options['xmldeclaration'] + xml = @options['xmldeclaration'] + "\n" + xml + end + + if @options.has_key?('outputfile') + if @options['outputfile'].kind_of?(IO) + return @options['outputfile'].write(xml) + else + File.open(@options['outputfile'], "w") { |file| file.write(xml) } + end + end + xml + end + + # This is the functional version of the instance method xml_out. + def XmlSimple.xml_out(hash, options = nil) + xml_simple = XmlSimple.new + xml_simple.xml_out(hash, options) + end + + private + + # Declare options that are valid for xml_in and xml_out. + KNOWN_OPTIONS = { + 'in' => %w( + keyattr keeproot forcecontent contentkey noattr + searchpath forcearray suppressempty anonymoustag + cache grouptags normalisespace normalizespace + variables varattr keytosymbol + ), + 'out' => %w( + keyattr keeproot contentkey noattr rootname + xmldeclaration outputfile noescape suppressempty + anonymoustag indent grouptags noindent + ) + } + + # Define some reasonable defaults. + DEF_KEY_ATTRIBUTES = [] + DEF_ROOT_NAME = 'opt' + DEF_CONTENT_KEY = 'content' + DEF_XML_DECLARATION = "<?xml version='1.0' standalone='yes'?>" + DEF_ANONYMOUS_TAG = 'anon' + DEF_FORCE_ARRAY = true + DEF_INDENTATION = ' ' + DEF_KEY_TO_SYMBOL = false + + # Normalizes option names in a hash, i.e., turns all + # characters to lower case and removes all underscores. + # Additionally, this method checks, if an unknown option + # was used and raises an according exception. + # + # options:: + # Hash to be normalized. + # known_options:: + # List of known options. + def normalize_option_names(options, known_options) + return nil if options.nil? + result = Hash.new + options.each { |key, value| + lkey = key.downcase + lkey.gsub!(/_/, '') + if !known_options.member?(lkey) + raise ArgumentError, "Unrecognised option: #{lkey}." + end + result[lkey] = value + } + result + end + + # Merges a set of options with the default options. + # + # direction:: + # 'in': If options should be handled for xml_in. + # 'out': If options should be handled for xml_out. + # options:: + # Options to be merged with the default options. + def handle_options(direction, options) + @options = options || Hash.new + + raise ArgumentError, "Options must be a Hash!" unless @options.instance_of?(Hash) + + unless KNOWN_OPTIONS.has_key?(direction) + raise ArgumentError, "Unknown direction: <#{direction}>." + end + + known_options = KNOWN_OPTIONS[direction] + @options = normalize_option_names(@options, known_options) + + unless @default_options.nil? + known_options.each { |option| + unless @options.has_key?(option) + if @default_options.has_key?(option) + @options[option] = @default_options[option] + end + end + } + end + + unless @options.has_key?('noattr') + @options['noattr'] = false + end + + if @options.has_key?('rootname') + @options['rootname'] = '' if @options['rootname'].nil? + else + @options['rootname'] = DEF_ROOT_NAME + end + + if @options.has_key?('xmldeclaration') && @options['xmldeclaration'] == true + @options['xmldeclaration'] = DEF_XML_DECLARATION + end + + @options['keytosymbol'] = DEF_KEY_TO_SYMBOL unless @options.has_key?('keytosymbol') + + if @options.has_key?('contentkey') + if @options['contentkey'] =~ /^-(.*)$/ + @options['contentkey'] = $1 + @options['collapseagain'] = true + end + else + @options['contentkey'] = DEF_CONTENT_KEY + end + + unless @options.has_key?('normalisespace') + @options['normalisespace'] = @options['normalizespace'] + end + @options['normalisespace'] = 0 if @options['normalisespace'].nil? + + if @options.has_key?('searchpath') + unless @options['searchpath'].instance_of?(Array) + @options['searchpath'] = [ @options['searchpath'] ] + end + else + @options['searchpath'] = [] + end + + if @options.has_key?('cache') && scalar(@options['cache']) + @options['cache'] = [ @options['cache'] ] + end + + @options['anonymoustag'] = DEF_ANONYMOUS_TAG unless @options.has_key?('anonymoustag') + + if !@options.has_key?('indent') || @options['indent'].nil? + @options['indent'] = DEF_INDENTATION + end + + @options['indent'] = '' if @options.has_key?('noindent') + + # Special cleanup for 'keyattr' which could be an array or + # a hash or left to default to array. + if @options.has_key?('keyattr') + if !scalar(@options['keyattr']) + # Convert keyattr => { elem => '+attr' } + # to keyattr => { elem => ['attr', '+'] } + if @options['keyattr'].instance_of?(Hash) + @options['keyattr'].each { |key, value| + if value =~ /^([-+])?(.*)$/ + @options['keyattr'][key] = [$2, $1 ? $1 : ''] + end + } + elsif !@options['keyattr'].instance_of?(Array) + raise ArgumentError, "'keyattr' must be String, Hash, or Array!" + end + else + @options['keyattr'] = [ @options['keyattr'] ] + end + else + @options['keyattr'] = DEF_KEY_ATTRIBUTES + end + + if @options.has_key?('forcearray') + if @options['forcearray'].instance_of?(Regexp) + @options['forcearray'] = [ @options['forcearray'] ] + end + + if @options['forcearray'].instance_of?(Array) + force_list = @options['forcearray'] + unless force_list.empty? + @options['forcearray'] = {} + force_list.each { |tag| + if tag.instance_of?(Regexp) + unless @options['forcearray']['_regex'].instance_of?(Array) + @options['forcearray']['_regex'] = [] + end + @options['forcearray']['_regex'] << tag + else + @options['forcearray'][tag] = true + end + } + else + @options['forcearray'] = false + end + else + @options['forcearray'] = @options['forcearray'] ? true : false + end + else + @options['forcearray'] = DEF_FORCE_ARRAY + end + + if @options.has_key?('grouptags') && !@options['grouptags'].instance_of?(Hash) + raise ArgumentError, "Illegal value for 'GroupTags' option - expected a Hash." + end + + if @options.has_key?('variables') && !@options['variables'].instance_of?(Hash) + raise ArgumentError, "Illegal value for 'Variables' option - expected a Hash." + end + + if @options.has_key?('variables') + @_var_values = @options['variables'] + elsif @options.has_key?('varattr') + @_var_values = {} + end + end + + # Actually converts an XML document element into a data structure. + # + # element:: + # The document element to be collapsed. + def collapse(element) + result = @options['noattr'] ? {} : get_attributes(element) + + if @options['normalisespace'] == 2 + result.each { |k, v| result[k] = normalise_space(v) } + end + + if element.has_elements? + element.each_element { |child| + value = collapse(child) + if empty(value) && (element.attributes.empty? || @options['noattr']) + next if @options.has_key?('suppressempty') && @options['suppressempty'] == true + end + result = merge(result, child.name, value) + } + if has_mixed_content?(element) + # normalisespace? + content = element.texts.map { |x| x.to_s } + content = content[0] if content.size == 1 + result[@options['contentkey']] = content + end + elsif element.has_text? # i.e. it has only text. + return collapse_text_node(result, element) + end + + # Turn Arrays into Hashes if key fields present. + count = fold_arrays(result) + + # Disintermediate grouped tags. + if @options.has_key?('grouptags') + result.each { |key, value| + next unless (value.instance_of?(Hash) && (value.size == 1)) + child_key, child_value = value.to_a[0] + if @options['grouptags'][key] == child_key + result[key] = child_value + end + } + end + + # Fold Hases containing a single anonymous Array up into just the Array. + if count == 1 + anonymoustag = @options['anonymoustag'] + if result.has_key?(anonymoustag) && result[anonymoustag].instance_of?(Array) + return result[anonymoustag] + end + end + + if result.empty? && @options.has_key?('suppressempty') + return @options['suppressempty'] == '' ? '' : nil + end + + result + end + + # Collapses a text node and merges it with an existing Hash, if + # possible. + # Thanks to Curtis Schofield for reporting a subtle bug. + # + # hash:: + # Hash to merge text node value with, if possible. + # element:: + # Text node to be collapsed. + def collapse_text_node(hash, element) + value = node_to_text(element) + if empty(value) && !element.has_attributes? + return {} + end + + if element.has_attributes? && !@options['noattr'] + return merge(hash, @options['contentkey'], value) + else + if @options['forcecontent'] + return merge(hash, @options['contentkey'], value) + else + return value + end + end + end + + # Folds all arrays in a Hash. + # + # hash:: + # Hash to be folded. + def fold_arrays(hash) + fold_amount = 0 + keyattr = @options['keyattr'] + if (keyattr.instance_of?(Array) || keyattr.instance_of?(Hash)) + hash.each { |key, value| + if value.instance_of?(Array) + if keyattr.instance_of?(Array) + hash[key] = fold_array(value) + else + hash[key] = fold_array_by_name(key, value) + end + fold_amount += 1 + end + } + end + fold_amount + end + + # Folds an Array to a Hash, if possible. Folding happens + # according to the content of keyattr, which has to be + # an array. + # + # array:: + # Array to be folded. + def fold_array(array) + hash = Hash.new + array.each { |x| + return array unless x.instance_of?(Hash) + key_matched = false + @options['keyattr'].each { |key| + if x.has_key?(key) + key_matched = true + value = x[key] + return array if value.instance_of?(Hash) || value.instance_of?(Array) + value = normalise_space(value) if @options['normalisespace'] == 1 + x.delete(key) + hash[value] = x + break + end + } + return array unless key_matched + } + hash = collapse_content(hash) if @options['collapseagain'] + hash + end + + # Folds an Array to a Hash, if possible. Folding happens + # according to the content of keyattr, which has to be + # a Hash. + # + # name:: + # Name of the attribute to be folded upon. + # array:: + # Array to be folded. + def fold_array_by_name(name, array) + return array unless @options['keyattr'].has_key?(name) + key, flag = @options['keyattr'][name] + + hash = Hash.new + array.each { |x| + if x.instance_of?(Hash) && x.has_key?(key) + value = x[key] + return array if value.instance_of?(Hash) || value.instance_of?(Array) + value = normalise_space(value) if @options['normalisespace'] == 1 + hash[value] = x + hash[value]["-#{key}"] = hash[value][key] if flag == '-' + hash[value].delete(key) unless flag == '+' + else + $stderr.puts("Warning: <#{name}> element has no '#{key}' attribute.") + return array + end + } + hash = collapse_content(hash) if @options['collapseagain'] + hash + end + + # Tries to collapse a Hash even more ;-) + # + # hash:: + # Hash to be collapsed again. + def collapse_content(hash) + content_key = @options['contentkey'] + hash.each_value { |value| + return hash unless value.instance_of?(Hash) && value.size == 1 && value.has_key?(content_key) + hash.each_key { |key| hash[key] = hash[key][content_key] } + } + hash + end + + # Adds a new key/value pair to an existing Hash. If the key to be added + # does already exist and the existing value associated with key is not + # an Array, it will be converted into an Array. Then the new value is + # appended to that Array. + # + # hash:: + # Hash to add key/value pair to. + # key:: + # Key to be added. + # value:: + # Value to be associated with key. + def merge(hash, key, value) + if value.instance_of?(String) + value = normalise_space(value) if @options['normalisespace'] == 2 + + # do variable substitutions + unless @_var_values.nil? || @_var_values.empty? + value.gsub!(/\$\{(\w+)\}/) { |x| get_var($1) } + end + + # look for variable definitions + if @options.has_key?('varattr') + varattr = @options['varattr'] + if hash.has_key?(varattr) + set_var(hash[varattr], value) + end + end + end + + #patch for converting keys to symbols + if @options.has_key?('keytosymbol') + if @options['keytosymbol'] == true + key = key.to_s.downcase.to_sym + end + end + + if hash.has_key?(key) + if hash[key].instance_of?(Array) + hash[key] << value + else + hash[key] = [ hash[key], value ] + end + elsif value.instance_of?(Array) # Handle anonymous arrays. + hash[key] = [ value ] + else + if force_array?(key) + hash[key] = [ value ] + else + hash[key] = value + end + end + hash + end + + # Checks, if the 'forcearray' option has to be used for + # a certain key. + def force_array?(key) + return false if key == @options['contentkey'] + return true if @options['forcearray'] == true + forcearray = @options['forcearray'] + if forcearray.instance_of?(Hash) + return true if forcearray.has_key?(key) + return false unless forcearray.has_key?('_regex') + forcearray['_regex'].each { |x| return true if key =~ x } + end + return false + end + + # Converts the attributes array of a document node into a Hash. + # Returns an empty Hash, if node has no attributes. + # + # node:: + # Document node to extract attributes from. + def get_attributes(node) + attributes = {} + node.attributes.each { |n,v| attributes[n] = v } + attributes + end + + # Determines, if a document element has mixed content. + # + # element:: + # Document element to be checked. + def has_mixed_content?(element) + if element.has_text? && element.has_elements? + return true if element.texts.join('') !~ /^\s*$/s + end + false + end + + # Called when a variable definition is encountered in the XML. + # A variable definition looks like + # <element attrname="name">value</element> + # where attrname matches the varattr setting. + def set_var(name, value) + @_var_values[name] = value + end + + # Called during variable substitution to get the value for the + # named variable. + def get_var(name) + if @_var_values.has_key?(name) + return @_var_values[name] + else + return "${#{name}}" + end + end + + # Recurses through a data structure building up and returning an + # XML representation of that structure as a string. + # + # ref:: + # Reference to the data structure to be encoded. + # name:: + # The XML tag name to be used for this item. + # indent:: + # A string of spaces for use as the current indent level. + def value_to_xml(ref, name, indent) + named = !name.nil? && name != '' + nl = @options.has_key?('noindent') ? '' : "\n" + + if !scalar(ref) + if @ancestors.member?(ref) + raise ArgumentError, "Circular data structures not supported!" + end + @ancestors << ref + else + if named + return [indent, '<', name, '>', @options['noescape'] ? ref.to_s : escape_value(ref.to_s), '</', name, '>', nl].join('') + else + return ref.to_s + nl + end + end + + # Unfold hash to array if possible. + if ref.instance_of?(Hash) && !ref.empty? && !@options['keyattr'].empty? && indent != '' + ref = hash_to_array(name, ref) + end + + result = [] + if ref.instance_of?(Hash) + # Reintermediate grouped values if applicable. + if @options.has_key?('grouptags') + ref.each { |key, value| + if @options['grouptags'].has_key?(key) + ref[key] = { @options['grouptags'][key] => value } + end + } + end + + nested = [] + text_content = nil + if named + result << indent << '<' << name + end + + if !ref.empty? + ref.each { |key, value| + next if !key.nil? && key[0, 1] == '-' + if value.nil? + unless @options.has_key?('suppressempty') && @options['suppressempty'].nil? + raise ArgumentError, "Use of uninitialized value!" + end + value = {} + end + + if !scalar(value) || @options['noattr'] + nested << value_to_xml(value, key, indent + @options['indent']) + else + value = value.to_s + value = escape_value(value) unless @options['noescape'] + if key == @options['contentkey'] + text_content = value + else + result << ' ' << key << '="' << value << '"' + end + end + } + else + text_content = '' + end + + if !nested.empty? || !text_content.nil? + if named + result << '>' + if !text_content.nil? + result << text_content + nested[0].sub!(/^\s+/, '') if !nested.empty? + else + result << nl + end + if !nested.empty? + result << nested << indent + end + result << '</' << name << '>' << nl + else + result << nested + end + else + result << ' />' << nl + end + elsif ref.instance_of?(Array) + ref.each { |value| + if scalar(value) + result << indent << '<' << name << '>' + result << (@options['noescape'] ? value.to_s : escape_value(value.to_s)) + result << '</' << name << '>' << nl + elsif value.instance_of?(Hash) + result << value_to_xml(value, name, indent) + else + result << indent << '<' << name << '>' << nl + result << value_to_xml(value, @options['anonymoustag'], indent + @options['indent']) + result << indent << '</' << name << '>' << nl + end + } + else + # Probably, this is obsolete. + raise ArgumentError, "Can't encode a value of type: #{ref.type}." + end + @ancestors.pop if !scalar(ref) + result.join('') + end + + # Checks, if a certain value is a "scalar" value. Whatever + # that will be in Ruby ... ;-) + # + # value:: + # Value to be checked. + def scalar(value) + return false if value.instance_of?(Hash) || value.instance_of?(Array) + return true + end + + # Attempts to unfold a hash of hashes into an array of hashes. Returns + # a reference to th array on success or the original hash, if unfolding + # is not possible. + # + # parent:: + # + # hashref:: + # Reference to the hash to be unfolded. + def hash_to_array(parent, hashref) + arrayref = [] + hashref.each { |key, value| + return hashref unless value.instance_of?(Hash) + + if @options['keyattr'].instance_of?(Hash) + return hashref unless @options['keyattr'].has_key?(parent) + arrayref << { @options['keyattr'][parent][0] => key }.update(value) + else + arrayref << { @options['keyattr'][0] => key }.update(value) + end + } + arrayref + end + + # Replaces XML markup characters by their external entities. + # + # data:: + # The string to be escaped. + def escape_value(data) + Text::normalize(data) + end + + # Removes leading and trailing whitespace and sequences of + # whitespaces from a string. + # + # text:: + # String to be normalised. + def normalise_space(text) + text.strip.gsub(/\s\s+/, ' ') + end + + # Checks, if an object is nil, an empty String or an empty Hash. + # Thanks to Norbert Gawor for a bugfix. + # + # value:: + # Value to be checked for emptyness. + def empty(value) + case value + when Hash + return value.empty? + when String + return value !~ /\S/m + else + return value.nil? + end + end + + # Converts a document node into a String. + # If the node could not be converted into a String + # for any reason, default will be returned. + # + # node:: + # Document node to be converted. + # default:: + # Value to be returned, if node could not be converted. + def node_to_text(node, default = nil) + if node.instance_of?(REXML::Element) + node.texts.map { |t| t.value }.join('') + elsif node.instance_of?(REXML::Attribute) + node.value.nil? ? default : node.value.strip + elsif node.instance_of?(REXML::Text) + node.value.strip + else + default + end + end + + # Parses an XML string and returns the according document. + # + # xml_string:: + # XML string to be parsed. + # + # The following exception may be raised: + # + # REXML::ParseException:: + # If the specified file is not wellformed. + def parse(xml_string) + Document.new(xml_string) + end + + # Searches in a list of paths for a certain file. Returns + # the full path to the file, if it could be found. Otherwise, + # an exception will be raised. + # + # filename:: + # Name of the file to search for. + # searchpath:: + # List of paths to search in. + def find_xml_file(file, searchpath) + filename = File::basename(file) + + if filename != file + return file if File::file?(file) + else + searchpath.each { |path| + full_path = File::join(path, filename) + return full_path if File::file?(full_path) + } + end + + if searchpath.empty? + return file if File::file?(file) + raise ArgumentError, "File does not exist: #{file}." + end + raise ArgumentError, "Could not find <#{filename}> in <#{searchpath.join(':')}>" + end + + # Loads and parses an XML configuration file. + # + # filename:: + # Name of the configuration file to be loaded. + # + # The following exceptions may be raised: + # + # Errno::ENOENT:: + # If the specified file does not exist. + # REXML::ParseException:: + # If the specified file is not wellformed. + def load_xml_file(filename) + parse(File.readlines(filename).to_s) + end + + # Caches the data belonging to a certain file. + # + # data:: + # Data to be cached. + # filename:: + # Name of file the data was read from. + def put_into_cache(data, filename) + if @options.has_key?('cache') + @options['cache'].each { |scheme| + case(scheme) + when 'storable' + @@cache.save_storable(data, filename) + when 'mem_share' + @@cache.save_mem_share(data, filename) + when 'mem_copy' + @@cache.save_mem_copy(data, filename) + else + raise ArgumentError, "Unsupported caching scheme: <#{scheme}>." + end + } + end + end +end + +# vim:sw=2 diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/version.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/version.rb new file mode 100644 index 000000000..b346459a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/version.rb @@ -0,0 +1,9 @@ +module ActiveSupport + module VERSION #:nodoc: + MAJOR = 2 + MINOR = 1 + TINY = 0 + + STRING = [MAJOR, MINOR, TINY].join('.') + end +end diff --git a/vendor/rails-2.1.0/activesupport/lib/active_support/whiny_nil.rb b/vendor/rails-2.1.0/activesupport/lib/active_support/whiny_nil.rb new file mode 100644 index 000000000..36fe9510b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/active_support/whiny_nil.rb @@ -0,0 +1,58 @@ +# Extensions to +nil+ which allow for more helpful error messages for people who +# are new to Rails. +# +# Ruby raises NoMethodError if you invoke a method on an object that does not +# respond to it: +# +# $ ruby -e nil.destroy +# -e:1: undefined method `destroy' for nil:NilClass (NoMethodError) +# +# With these extensions, if the method belongs to the public interface of the +# classes in NilClass::WHINERS the error message suggests which could be the +# actual intended class: +# +# $ script/runner nil.destroy +# ... +# You might have expected an instance of ActiveRecord::Base. +# ... +# +# NilClass#id exists in Ruby 1.8 (though it is deprecated). Since +id+ is a fundamental +# method of Active Record models NilClass#id is redefined as well to raise a RuntimeError +# and warn the user. She probably wanted a model database identifier and the 4 +# returned by the original method could result in obscure bugs. +# +# The flag <tt>config.whiny_nils</tt> determines whether this feature is enabled. +# By default it is on in development and test modes, and it is off in production +# mode. +class NilClass + WHINERS = [::Array] + WHINERS << ::ActiveRecord::Base if defined? ::ActiveRecord + + METHOD_CLASS_MAP = Hash.new + + WHINERS.each do |klass| + methods = klass.public_instance_methods - public_instance_methods + class_name = klass.name + methods.each { |method| METHOD_CLASS_MAP[method.to_sym] = class_name } + end + + # Raises a RuntimeError when you attempt to call +id+ on +nil+. + def id + raise RuntimeError, "Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id", caller + end + + private + def method_missing(method, *args, &block) + raise_nil_warning_for METHOD_CLASS_MAP[method], method, caller + end + + # Raises a NoMethodError when you attempt to call a method on +nil+. + def raise_nil_warning_for(class_name = nil, selector = nil, with_caller = nil) + message = "You have a nil object when you didn't expect it!" + message << "\nYou might have expected an instance of #{class_name}." if class_name + message << "\nThe error occurred while evaluating nil.#{selector}" if selector + + raise NoMethodError, message, with_caller || caller + end +end + diff --git a/vendor/rails-2.1.0/activesupport/lib/activesupport.rb b/vendor/rails-2.1.0/activesupport/lib/activesupport.rb new file mode 100644 index 000000000..69f36f793 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/lib/activesupport.rb @@ -0,0 +1 @@ +require 'active_support' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.gem b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.gem Binary files differnew file mode 100644 index 000000000..049eb8cae --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.gem diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.tgz b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.tgz Binary files differnew file mode 100644 index 000000000..3977a0dcc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.tgz diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.zip b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.zip Binary files differnew file mode 100644 index 000000000..461df18ad --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0.zip diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/CHANGELOG b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/CHANGELOG new file mode 100644 index 000000000..690bb987d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/CHANGELOG @@ -0,0 +1,1181 @@ +*2.1.0 (May 31st, 2008)* + +* TimeZone#to_s shows offset as GMT instead of UTC, because GMT will be more familiar to end users (see time zone selects used by Windows OS, google.com and yahoo.com.) Reverts [8370] [Geoff Buesing] + +* Hash.from_xml: datetime xml types overflow to Ruby DateTime class when out of range of Time. Adding tests for utc offsets [Geoff Buesing] + +* TimeWithZone #+ and #- : ensure overflow to DateTime with Numeric arg [Geoff Buesing] + +* Time#to_json: don't convert to utc before encoding. References #175 [Geoff Buesing] + +* Remove unused JSON::RESERVED_WORDS, JSON.valid_identifier? and JSON.reserved_word? methods. Resolves #164. [Cheah Chu Yeow] + +* Adding Date.current, which returns Time.zone.today if config.time_zone is set; otherwise returns Date.today [Geoff Buesing] + +* TimeWithZone: date part getter methods (#year #mon #day etc) are defined on class; no longer relying on method_missing [Geoff Buesing] + +* Time.zone.parse return nil for strings with no date information [Geoff Buesing] + +* Time.zone.parse respects offset information in string. Resolves #105. [Scott Fleckenstein, Geoff Buesing] + +* Added Ruby 1.8 implementation of Process.daemon + +* Duration #since and #ago with no argument (e.g., 5.days.ago) return TimeWithZone when config.time_zone is set. Introducing Time.current, which returns Time.zone.now if config.time_zone is set, otherwise just returns Time.now [Geoff Buesing] + +* Time#since behaves correctly when passed a Duration. Closes #11527 [kemiller] + +* Add #getutc alias for DateTime#utc [Geoff Buesing] + +* Refactor TimeWithZone: don't send #since, #ago, #+, #-, #advance through method_missing [Geoff Buesing] + +* TimeWithZone respects config.active_support.use_standard_json_time_format [Geoff Buesing] + +* Add config.active_support.escape_html_entities_in_json to allow disabling of html entity escaping. [rick] + +* Improve documentation. [Xavier Noria] + +* Modified ActiveSupport::Callbacks::Callback#call to accept multiple arguments. + +* Time #yesterday and #tomorrow behave correctly crossing DST boundary. Closes #7399 [sblackstone] + +* TimeWithZone: Adding tests for dst and leap day edge cases when advancing time [Geoff Buesing] + +* TimeWithZone#method_missing: send to utc to advance with dst correctness, otherwise send to time. Adding tests for time calculations methods [Geoff Buesing] + +* Add config.active_support.use_standard_json_time_format setting so that Times and Dates export to ISO 8601 dates. [rick] + +* TZInfo: Removing unneeded TimezoneProxy class [Geoff Buesing] + +* TZInfo: Removing unneeded TimezoneIndexDefinition, since we're not including Indexes::Timezones [Geoff Buesing] + +* Removing unnecessary uses_tzinfo helper from tests, given that TZInfo is now bundled [Geoff Buesing] + +* Bundling abbreviated version of TZInfo gem 0.3.8: only the classes and zone definitions required to support Rails time zone features are included. If a recent version of the full TZInfo gem is installed, this will take precedence over the bundled version [Geoff Buesing] + +* TimeWithZone#marshal_load does zone lookup via Time.get_zone, so that tzinfo/Olson identifiers are handled [Geoff Buesing] + +* Time.zone= accepts TZInfo::Timezone instances and Olson identifiers; wraps result in TimeZone instance [Geoff Buesing] + +* TimeWithZone time conversions don't need to be wrapped in TimeOrDateTime, because TZInfo does this internally [Geoff Buesing] + +* TimeWithZone#usec returns 0 instead of error when DateTime is wrapped [Geoff Buesing] + +* Improve documentation. [Radar, Jan De Poorter, chuyeow, xaviershay, danger, miloops, Xavier Noria, Sunny Ripert] + +* Ensure that TimeWithZone#to_yaml works when passed a YAML::Emitter. [rick] + +* Ensure correct TimeWithZone#to_date [Geoff Buesing] + +* Make TimeWithZone work with tzinfo 0.2.x: use TZInfo::Timezone#zone_identifier alias for #abbreviation, silence warnings on tests. Raise LoadError when TZInfo version is < 0.2 by sniffing for TZInfo::TimeOrDateTime constant. Move all tzinfo-dependent TimeZone tests into uses_tzinfo block [Geoff Buesing] + +* Time, DateTime and TimeWithZone #in_time_zone defaults to Time.zone. Removing now unneeded #in_current_time_zone [Geoff Buesing] + +* TZInfo caches Timezone instances in its own internal hash cache, so TimeZone::MAPPING doesn't need to cache them as well [Geoff Buesing] + +* Adding TimeZone#parse [Geoff Buesing] + +* Adding TimeZone#at and DateTime#to_f [Geoff Buesing] + +* TimeWithZone responds to Ruby 1.9 weekday-named query methods [Geoff Buesing] + +* TimeWithZone caches TZInfo::TimezonePeriod used for time conversion so that it can be reused, and enforces DST rules correctly when instance is created from a local time [Geoff Buesing] + +* Fixed that BufferedLogger should create its own directory if one doesn't already exist #11285 [lotswholetime] + +* Fix Numeric time tests broken by DST change by anchoring them to fixed times instead of Time.now. Anchor TimeZone#now DST test to time specified with Time.at instead of Time.local to work around platform differences with Time.local and DST representation [Geoff Buesing] + +* Removing unneeded #change_time_zone method from Time, DateTime and TimeWithZone [Geoff Buesing] + +* TimeZone #local and #now correctly enforce DST rules [Geoff Buesing] + +* TimeWithZone instances correctly enforce DST rules. Adding TimeZone#period_for_utc [Geoff Buesing] + +* test_time_with_datetime_fallback expects DateTime.local_offset instead of DateTime.now.offset [Geoff Buesing] + +* Adding TimeWithZone #marshal_dump and #marshal_load [Geoff Buesing] + +* Add OrderedHash#to_hash [josh] + +* Adding Time#end_of_day, _quarter, _week, and _year. #9312 [Juanjo Bazan, Tarmo Tänav, BigTitus] + +* Adding TimeWithZone#between? [Geoff Buesing] + +* Time.=== returns true for TimeWithZone instances [Geoff Buesing] + +* TimeWithZone #+ and #- behave consistently with numeric arguments regardless of whether wrapped time is a Time or DateTime; consistenty answers false to #acts_like?(:date) [Geoff Buesing] + +* Add String#squish and String#squish! to remove consecutive chunks of whitespace. #11123 [jordi, Henrik N] + +* Serialize BigDecimals as Floats when using to_yaml. #8746 [ernesto.jimenez] + +* Adding TimeWithZone #to_yaml, #to_datetime, #eql? and method aliases for duck-typing compatibility with Time [Geoff Buesing] + +* TimeWithZone #in_time_zone returns +self+ if zone argument is the same as #time_zone [Geoff Buesing] + +* Adding TimeWithZone #to_a, #to_f, #to_i, #httpdate, #rfc2822 [Geoff Buesing] + +* Pruning unneeded TimeWithZone#change_time_zone_to_current [Geoff Buesing] + +* Time#zone=, #in_time_zone and #change_time_zone accept a Duration [Geoff Buesing] + +* Time#in_time_zone handles Time.local instances correctly [Geoff Buesing] + +* Pruning unneeded Time#change_time_zone_to_current. Enhanced docs to #change_time_zone to explain the difference between this method and #in_time_zone [Geoff Buesing] + +* TimeZone#new method renamed #local; when used with Time.zone, constructor now reads: Time.zone.local() [Geoff Buesing] + +* Added Base64.encode64s to encode values in base64 without the newlines. This makes the values immediately usable as URL parameters or memcache keys without further processing [DHH] + +* Remove :nodoc: entries around the ActiveSupport test/unit assertions. #10946 [dancroak, jamesh] + +* Add Time.zone_default accessor for setting the default time zone. Rails::Configuration.time_zone sets this. #10982 [Geoff Buesing] + +* cache.fetch(key, :force => true) to force a cache miss. [Jeremy Kemper] + +* Support retrieving TimeZones with a Duration. TimeZone[-28800] == TimeZone[-480.minutes]. [rick] + +* TimeWithZone#- added, so that #- can handle a Time or TimeWithZone argument correctly [Geoff Buesing] + +* with_timezone test helper renamed with_env_tz, to distinguish between setting ENV['TZ'] and setting Time.zone in tests [Geoff Buesing] + +* Time#- coerces TimeWithZone argument to a Time instance so that difference in seconds can be calculated. Closes #10914 [Geoff Buesing, yyyc514] + +* Adding UTC zone to TimeZone; TimeWithZone no longer has to fake UTC zone with nil [Geoff Buesing] + +* Time.get_zone refactored to private method, given that the encapsulated logic is only useful internally [Geoff Buesing] + +* Time.zone uses thread-local variable for thread safety. Adding Time.use_zone, for overriding Time.zone locally inside a block. Removing unneeded Time.zone_reset! [Geoff Buesing] + +* TimeZone#to_s uses UTC rather than GMT; reapplying change that was undone in [8679]. #1689 [Cheah Chu Yeow] + +* Time.days_in_month defaults to current year if no year is supplied as argument #10799 [Radar], uses Date.gregorian_leap? to determine leap year, and uses constant lookup to determine days in month [Geoff Buesing] + +* Adding Time and DateTime #compare_with_coercion, which layers behavior on #<=> so that any combination of Time, DateTime and ActiveSupport::TimeWithZone instances can be chronologically compared [Geoff Buesing] + +* TimeZone#now returns an ActiveSupport::TimeWithZone [Geoff Buesing] + +* Time #in_current_time_zone and #change_time_zone_to_current return self when Time.zone is nil [Geoff Buesing] + +* Remove unneeded #to_datetime_default_s alias for DateTime#to_s, given that we inherit a #to_default_s from Date that does exactly the same thing [Geoff Buesing] + +* Refactor Time and DateTime #to_formatted_s: use ternary instead of nested if/else [Geoff Buesing] + +* Adding Time and DateTime #formatted_offset, for outputting +HH:MM utc offset strings with cross-platform consistency [Geoff Buesing] + +* Adding alternate_utc_string option to TimeZone#formatted_offset. Removing unneeded TimeZone#offset. [Geoff Buesing] + +* Introduce ActiveSupport::TimeWithZone, for wrapping Time instances with a TimeZone. Introduce instance methods to Time for creating TimeWithZone instances, and class methods for managing a global time zone. [Geoff Buesing] + +>>>>>>> .r8815 +* Replace non-dst-aware TimeZone class with dst-aware class from tzinfo_timezone plugin. TimeZone#adjust and #unadjust are no longer available; tzinfo gem must now be present in order to perform time zone calculations, via #local_to_utc and #utc_to_local methods. [Geoff Buesing] + +* Extract ActiveSupport::Callbacks from Active Record, test case setup and teardown, and ActionController::Dispatcher. #10727 [Josh Peek] + +* Introducing DateTime #utc, #utc? and #utc_offset, for duck-typing compatibility with Time. Closes #10002 [Geoff Buesing] + +* Time#to_json uses Numeric#to_utc_offset_s to output a cross-platform-consistent representation without having to convert to DateTime. References #9750 [Geoff Buesing] + +* Refactor number-to-HH:MM-string conversion logic from TimeZone#formatted_offset to a reusable Numeric#to_utc_offset_s method. [Geoff Buesing] + +* Continue evolution toward ActiveSupport::TestCase. #10679 [Josh Peek] + +* TestCase: introduce declared setup and teardown callbacks. Pass a list of methods and an optional block to call before setup or after teardown. Setup callbacks are run in the order declared; teardown callbacks are run in reverse. [Jeremy Kemper] + +* Added ActiveSupport::Gzip.decompress/compress(source) as an easy wrapper for Zlib [Tobias Luetke] + +* Included MemCache-Client to make the improved ActiveSupport::Cache::MemCacheStore work out of the box [Bob Cottrell, Eric Hodel] + +* Added ActiveSupport::Cache::* framework as an extraction from ActionController::Caching::Fragments::* [DHH] + +* Fixed String#titleize to work for strings with 's too #10571 [trek] + +* Changed the implementation of Enumerable#group_by to use a double array approach instead of a hash such that the insert order is honored [DHH/Marcel] + +* remove multiple enumerations from ActiveSupport::JSON#convert_json_to_yaml when dealing with date/time values. [rick] + +* Hash#symbolize_keys skips keys that can't be symbolized. #10500 [Brad Greenlee] + +* Ruby 1.9 compatibility. #1689, #10466, #10468, #10554, #10594, #10632 [Cheah Chu Yeow, Pratik Naik, Jeremy Kemper, Dirkjan Bussink, fxn] + +* TimeZone#to_s uses UTC rather than GMT. #1689 [Cheah Chu Yeow] + +* Refactor of Hash#symbolize_keys! to use Hash#replace. Closes #10420 [ReinH] + +* Fix HashWithIndifferentAccess#to_options! so it doesn't clear the options hash. Closes #10419 [ReinH] + + +*2.0.1* (December 7th, 2007) + +* Added Array#from and Array#to that behaves just from String#from and String#to [DHH] + +* Fix that empty collections should be treated as empty arrays regardless of whitespace for Hash#from_xml #10255 [adamj] + +* Time#time_with_datetime_fallback, Time#to_datetime, Date#to_datetime and String#to_datetime honor Ruby's default calendar reform setting. #10201 [Geoff Buesing] + +* Change Time and DateTime #end_of_month to return last second of month instead of beginning of last day of month. Closes #10200 [Geoff Buesing] + +* Speedup String#blank? [Jeremy Kemper, Koz] + +* Add documentation for Hash#diff. Closes #9306 [Tarmo Tänav] + +* Add new superclass_delegating_accessors. Similar to class inheritable attributes but with subtly different semantics. [Koz, Tarmo Tänav] + +* Change JSON to encode %w(< > &) as 4 digit hex codes to be in compliance with the JSON spec. Closes #9975 [Josh Peek, Cheah Chu Yeow, Tim Pope] + +* Fix JSON encoding/decoding bugs dealing with /'s. Closes #9990 [Rick, theamazingrando] + +* Introduce a base class for all test cases used by rails applications. ActiveSupport::TestCase [Koz] + + The intention is to use this to reduce the amount of monkeypatching / overriding that + is done to test/unit's classes. + +* Document Enumerable and Hash #to_json. #9970 [Cheah Chu Yeow] + +* Hash#to_xml handles symbol values. #9954 [Assaf] + +* Hash#symbolize_keys behaves well with integer keys. #9890 [PotatoSalad] + +* Multibyte: String#slice supports regexp argument. #9646 [yob] + +* object.duplicable? returns true if object.dup is safe. False for nil, true, false, symbols, and numbers; true otherwise. #9333 [sur] + +* Time, Date and DateTime #advance accept :weeks option. #9866 [Geoff Buesing] + +* Fix Time#years_ago and #years_since from leap days. #9865 [Geoff Buesing] + +* Time and DateTime#advance accept :hours, :minutes, and :seconds options. #9825 [Geoff Buesing] + +* Fix Date#years_ago and #years_since from leap days. #9864 [Geoff Buesing] + +* Refactor Time and Date#months_since and #months_ago to use #advance. #9863 [Geoff Buesing] + +* Rebundle Builder 2.1.2 but prefer a newer RubyGem if available. [Jeremy Kemper] + +* Add Range#overlaps?(range), Range#include?(range), and Range#step without a block. [brandon] + +* Correct BufferedLogger#level? checks. #9806 [wildchild, Johan Sorensen] + +* String#to_xs uses Eric Wong's fast_xs extension, if available, for Builder speedup. http://bogomips.org/fast_xs/ [Jeremy Kemper] + +* Introduce BasicObject as Builder::BlankSlate for Ruby 1.9 forward compatibility. [Jeremy Kemper] + +* Unbundle Builder in favor of a gem dependency. [Jeremy Kemper] + +* Disambiguate Time, Date, and DateTime#to_json formatting. #9750 [Geoff Buesing, Cheah Chu Yeow] + +* Hash#to_json takes :only or :except options to specific or omit certain hash keys. Enumerable#to_json passes through its options to each element. #9751 [Cheah Chu Yeow] + +* BufferedLogger#auto_flushing = N flushes the log every N messages. Buffers with an array instead of string. Disabling auto_flushing still flushes when the buffer hits a maximum size, as a failsafe against memory-gobbling. [Jeremy Kemper] + +* Fixed Date#xmlschema for dates outside the range of what can be created with Time #9744 [Geoff Buesing] + +* Fixed that La Paz was included in -25200 and -14400 offsets when it should only be in -14400 #9735 [bermi] + +* Fixed JSON encoding to use quoted keys according to the JSON standard. #8762 [choonkat, Cheah Chu Yeow] + +* Alias Object#send to send! for Ruby 1.9 forward compatibility. [Jeremy Kemper] + +* Backport Object#instance_variable_defined? for Ruby < 1.8.6. [Jeremy Kemper] + +* BufferedLogger#add converts the message to a string. #9702, #9724 [eigentone, DrMark, tomafro] + +* Added ActiveSupport::BufferedLogger as a duck-typing alternative (albeit with no formatter) to the Ruby Logger, which provides a very nice speed bump (inspired by Ezra's buffered logger) [DHH] + +* Object#instance_exec produces fewer garbage methods. [Mauricio Fernandez] + +* Decode json strings as Dates/Times if they're using a YAML-compatible format. Closes #9614 [Rick] + +* Fixed cache_page to use the request url instead of the routing options when picking a save path. #8614 [Josh Peek] + +* Object.subclasses_of includes anonymous subclasses. [Jeremy Kemper] + +* Fixed that pluralizing an empty string should return the same empty string, not "s". #7720 [Josh Peek] + +* Added call to inspect on non-string classes for the logger #8533 [codahale] + +* Deprecation: remove deprecated :mday option from Time, Date, and DateTime#change. [Jeremy Kemper] + +* Fix JSON decoder with nested quotes and commas. #9579 [zdennis] + +* Hash#to_xml doesn't double-unescape. #8806 [Ezran] + +* Added Array#rand #9170 [Norbert Crombach]. Examples: + + [].rand # => nil + ['a'].rand # => 'a' + [1,2,3].rand # => 1 or 2 or 3 + +* Deprecation: removed Reloadable. [Jeremy Kemper] + +* Make the utf-handler return the correct value for non-matching regular expressions. Closes #9049 [manfred] + +* Add ljust, rjust and center to utf8-handler. Closes #9165 [manfred] + +* Fix Time#advance bug when trying to advance a year from leap day. Closes #8655 [gbuesing] + +* Add support for []= on ActiveSupport::Multibyte::Chars. Closes #9142. [ewan, manfred] + +* Added Array#extract_options! to encapsulate the pattern of getting an options hash out of a variable number of parameters. #8759 [Norbert Crombach] + +* Let alias_attribute work with attributes with initial capital letters (legacy columns etc). Closes #8596 [mpalmer] + +* Added Hash#except which is the inverse of Hash#slice -- return the hash except the keys that are specified [DHH] + +* Added support for pluralization with a different starting letter than the singular version (cow/kine) #4929 [norri_b/hasmanyjosh] + +* Demote Hash#to_xml to use XmlSimple#xml_in_string so it can't read files or stdin. #8453 [candlerb, Jeremy Kemper] + +* Backport clean_logger changes to support ruby 1.8.2 [mislav] + +* Added proper handling of arrays #8537 [hasmanyjosh] + + Before: + Hash.from_xml '<images></images>' + # => {:images => nil} + + Hash.from_xml '<images><image>foo.jpg</image></images>' + # => {:images => {:image => "foo.jpg"}} + + Hash.from_xml '<images><image>foo.jpg</image><image>bar.jpg</image></images>' + # => {:images => {:image => ["foo.jpg", "bar.jpg"]}} + + After: + Hash.from_xml '<images type="array"></images>' + # => {:images => []} + + Hash.from_xml '<images type="array"><image>foo.jpg</image></images>' + # => {:images => ["foo.jpg"]} + + Hash.from_xml '<images type="array"><image>foo.jpg</image><image>bar.jpg</image></images>' + # => {:images => ["foo.jpg", "bar.jpg"]} + +* Improve Time and Date test coverage. #8646 [Josh Peek] + +* Add Date#since, ago, beginning_of_day, and end_of_day. Date + seconds works now. #8575 [Geoff Buesing] + +* String#to_time overflows to DateTime. Add String#to_datetime. #8572 [Geoff Buesing] + +* Date.yesterday and .tomorrow. #8571 [Geoff Buesing] + +* Readable Date and DateTime#inspect. #8570 [Geoff Buesing] + +* Move common DateTime calculations to Date. #8536 [Geoff Buesing] + +* Added Date#change (like Time#change) [DHH] + +* DateTime#to_time converts to Time unless out of range. #8512 [Geoff Buesing] + +* Date#to_datetime, #to_s(:rfc822). #8512 [Geoff Buesing] + +* Time durations use since instead of + for accuracy. #8513 [Geoff Buesing] + +* escape <'s and >'s in JSON strings. #8371 [Rick] + +* Inflections: MatrixTest -> MatrixTests instead of MatricesTest. #8496 [jbwiv] + +* Multibyte strings respond_to the String methods they proxy so they can be duck-typed. #6549 [Tuxie] + +* Array#to_xml yields the builder just like Hash and ActiveRecord::Base. #8472 [seth] + +* Date, Time, and DateTime support formatting blocks in addition to strftime strings. Introduce :long_ordinal format, e.g. "February 21st, 2005". #8191 [Coda Hale] + +* Document Object#blank?. #6491 [Chris Mear] + +* Date, Time, and DateTime#to_json. #8399 [wycats] + +* Simplify API of assert_difference by passing in an expression that is evaluated before and after the passed in block. See documenation for examples of new API. [Marcel Molina Jr.] + +* Added assert_difference and assert_no_difference to test/unit assertions [Tobias Luetke] + +* Removed breakpointer and Binding.of_caller in favor of relying on ruby-debug by Kent Sibilev since the breakpointer has been broken since Ruby 1.8.4 and will not be coming back [DHH] + +* Added parsing of file type in Hash.xml_in so you can easily do file uploads with base64 from an API [DHH] + + <person> + <name>David</name> + <avatar type="file" name="me.jpg" content_type="image/jpg">R0lGODlhkACZAPUAAM5lcfjrtMQCG=\n</avatar> + </person> + + ...becomes: + + attributes = { :person => { :name => "David", :avatar => #<StringIO> } } + attributes[:person][:avatar].content_type # => "image/jpg" + attributes[:person][:avatar].original_filename # => "me.jpg" + attributes[:person][:avatar].read # => binary data of the file + + Which is duck-type compatible with the files that you get when doing multipart uploads through HTML. + +* Improved multibyte performance by relying less on exception raising #8159 [Blaine] + +* Use XSD-compatible type names for Hash#to_xml and make the converters extendable #8047 [Tim Pope] + +* Added yielding of builder in Hash#to_xml [DHH] + +* Hash#with_indifferent_access now also converts hashes kept in arrays to indifferent access (makes it easier to treat HTML and XML parameters the same) [DHH] + +* Hash#to_xml supports YAML attributes. #7502 [jonathan] + +* Refactor ActiveSupport::JSON to be less obtuse. Add support for JSON decoding by way of Syck with ActiveSupport::JSON.decode(json_string). Prevent hash keys that are JavaScript reserved words from being unquoted during encoding. [Sam Stephenson] + +* alias_method_chain preserves the original method's visibility. #7854 [Jonathan Viney] + +* Update Dependencies to ignore constants inherited from ancestors. Closes #6951. [Nicholas Seckar] + +* Array#to_query preserves its ordering. #7756 [Greg Spurrier] + +* Out-of-range Time calculations transparently overflow to DateTime. Introduce Time#to_datetime. #7706, #7715 [Geoff Buesing] + +* DateTime calculations analogous to the Date and Time extensions. #7693 [Geoff Buesing] + +* Give DateTime correct .to_s implementations, lets it play nice with ActiveRecord quoting. #7649 [Geoff Buesing] + +* Add File.atomic_write, allows you to write large files in an atomic manner, preventing users from seeing half written files. [Koz] + +* Allow users to provide custom formatters to Logger. [aeden] + +* Hash#to_query CGI-escapes its keys. [Jeremy Kemper] + +* Optimize Class Inheritable Attributes so that unnecessary hashes are not created. Closes #7472 [Bruce Perens] + +* :db format for Date#to_s [Jeremy Kemper] + Date.new(2007, 1, 27).to_s(:db) # => '2007-01-27' + +* Added :instance_writer option to #mattr_writer/accessor, #cattr_writer/accessor, and #class_inheritable_writer to skip the creation of the instance writer. [Rick] + +* Added Hash#to_query to turn a hash of values into a form-encoded query string [Nicholas Seckar] + +* Increase test coverage for subclasses_of. Closes #7335. [Roman2K, Nicholas Seckar] + +* Remove unused code from Duration#inspect. Closes #7180. [Rich Collins] + +* Added test coverage for Inflector.inflections.clear. Closes #7179. [Rich Collins] + +* ActiveSupport::Multibyte::Handlers::UTF8Handler should raise when a range and an integer are passed in (just like the native implementation). Closes #7176 [Rich Collins] + +* A couple extra tests for #classify. Closes #7273. [Josh Susser] + +* Better docs for Object extensions [zackchandler, Jamis Buck] + +* Fix that Dates couldn't be subtracted from Dates after [5940]. [Sam Stephenson] + +* Add Object#acts_like? and Time#acts_like_time? and Date#acts_like_date? to facilitate duck-typing. [Jamis Buck] + +* Make 1.months and friends accurate by introducing a Duration class. #6835 [eventualbuddha] + + +*1.4.2* (March 12th, 2007) + +* Ruby 1.8.6 and 1.9 define private Time#to_date and #to_datetime; make them +public for compatibility. [Jeremy Kemper] + +* Deprecation: warn on stderr if RAILS_DEFAULT_LOGGER isn't set yet. [Jeremy Kemper] + + +*1.4.1* (February 5th, 2007) + +* Optimize Class Inheritable Attributes so that unnecessary hashes are not created. Closes #7472 [Bruce Perens] + +* Added :instance_writer option to #mattr_writer/accessor, #cattr_writer/accessor, and #class_inheritable_writer to skip the creation of the instance writer. [Rick] + +* Full test coverage for Inflector. #7228 [Dan Kubb] + + +*1.4.0* (January 16th, 2007) + +* Document Inflector.ordinalize and merge docs from String inflections. #7023 [smeade] + +* Unbundle flexmock. [Jeremy Kemper] + +* Fix Dependencies.autoloaded? to ignore anonymous modules. Closes #6561. [Nicholas Seckar] + +* Update load once paths to prevent nested once constants from being detected and claimed by an external non-once load. [Nicholas Seckar] + +* Deprecation: silence warnings when reporting test errors. [Jeremy Kemper] + +* Hash#slice(*keys) returns a new hash with only the given keys. #slice! replaces the hash with only the given keys. Works with HashWithIndifferentAccess also. [Jeremy Kemper] + +* HashWithIndifferentAccess#to_hash converts to a Hash with String keys and the same default value. [Jeremy Kemper] + +* Fix remove_constant to correctly handle constant names of the form "::A::...". References #6720. [Nicholas Seckar] + +* Fixed Array#to_xml when it contains a series of hashes (each piece would get its own XML declaration) #6610 [thkarcher/cyu] + +* Added Time#to_s(:time) which will just return H:M, like 17:44 [DHH] + +* Add Module#attr_accessor_with_default to initialize value of attribute before setting it. Closes #6538. [Stuart Halloway, Marcel Molina Jr.] + +* Hash#to_xml handles keys with the same name as Kernel methods. #6613 [Catfish] + +* Added Time#end_of_day to get 23:59:59 of that day [DHH] + +* Don't quote hash keys in Hash#to_json if they're valid JavaScript identifiers. Disable this with ActiveSupport::JSON.unquote_hash_key_identifiers = false if you need strict JSON compliance. [Sam Stephenson] + +* Lazily load the Unicode Database in the UTF-8 Handler [Rick Olson] + +* Update dependencies to delete partially loaded constants. [Nicholas Seckar] + +* Fix unicode JSON regexp for Onigurama compatibility. #6494 [whitley] + +* update XmlSimple to 1.0.10. Closes #6532. [nicksieger] + +* Update dependencies to allow constants to be defined alongside their siblings. A common case for this is AR model classes with STI; user.rb might define User, Administrator and Guest for example. [Nicholas Seckar] + +* next_week respects DST changes. #6483, #5617, #2353, #2509, #4551 [marclove, rabiedenharn, rails@roetzel.de, jsolson@damogran.org, drbrain@segment7.net] + +* Expose methods added to Enumerable in the documentation, such as group_by. Closes #6170. [sergeykojin@gmail.com, Marcel Molina Jr.] + +* Ensure Chars#tidy_bytes only tidies broken bytes. Closes #6397 [Manfred Stienstra] + +* Add 'unloadable', a method used to mark any constant as requiring an unload after each request. [Nicholas Seckar] + +* Make core_ext/string/access.rb multibyte safe. Closes #6388 [Manfred Stienstra] + +* Make String#chars slicing behaviour consistent with String. Closes #6387 [Manfred Stienstra] + +* Pull in latest multibyte patch. Closes #6346 [Manfred Stienstra] + +* Add ActiveSupport::Multibyte. Provides String#chars which lets you deal with strings as a sequence of chars, not of bytes. Closes #6242 [Julian Tarkhanov, Manfred Stienstra, Thijs van der Vossen & Jan Behrens] + +* Fix issue with #class_inheritable_accessor saving updates to the parent class when initialized with an Array or Hash [mojombo] + +* Hash#to_xml supports Bignum and BigDecimal. #6313 [edibiase] + +* Don't undefine #class in OptionMerger [Rick] + +* Hash.create_from_xml has been renamed to Hash.from_xml, alias will exist until Rails 2.0 [DHH] + +* alias_method_chain works with accessor= methods also. #6153 [Caio Chassot] + +* Fix loadable_constants_for_path to handle load paths that do not end with a slash. [Nicholas Seckar] + +* Fix logic error in determining what was loaded by a given file. Closes #6039. [Nicholas Seckar] + +* Equate Kernel.const_missing with Object.const_missing. Fixes #5988. [Nicholas Seckar] + +* Add ApplicationController special case to Dependencies. [Nicholas Seckar] + +* Don't pad remaining places with in_groups_of if specified padding value is false. [Marcel Molina Jr.] + +* Fix cases where empty xml nodes weren't being translated to nil in Hash.create_from_xml [Rick Olso n] + + <written-on type="date"></written-on> # => { :type => 'date' } # WRONG + <written-on type="date"></written-on> # => nil # RIGHT + +* Tighten rescue clauses. #5985 [james@grayproductions.net] + +* Inflections: don't singularize -ies plurals. [foamdino@gmail.com, Mark Van Holstyn] + +* Update Initializer to use load_once_paths to avoid plugin reloading. References #5852. [Nicholas Seckar] + +* Use Array#assoc in ActiveSupport::OrderedHash. [Mauricio Fernandez] + +* Greatly increased performance of String.to_json, which speeds up RJS considerably on large pages, fixes #3473 [Shugo Maeda] + +* Detect missing_constants calls from removed modules and fail accordingly. [Nicholas Seckar] + +* Stop using defined? in Dependencies.qualified_const_defined? since defined? may invoke const_missing. [Nicholas Seckar] + +* Dependencies can autoload directories of nested classes. [Jeremy Kemper] + Example: + invoice.rb class Invoice + invoice/lineitem.rb class Invoice::Lineitem + +* Add Deprecation.silence so that Reloadable does not scold itself. [Nicholas Seckar] + +* Add debugging logging to Dependencies. Currently can be enabled with Dependencies.log_activity = true; adding to Initializer and documenting is forthcoming. [Nicholas Seckar] + +* Replace Reloadable with improvements to the Dependencies mechanism. [Nicholas Seckar] + +* DateTime#to_time gives hour/minute/second resolution. #5747 [jon.evans@pobox.com] + +* attr_internal to support namespacing and deprecation. Like attr_* except backed by internally-named instance variable. Set attr_internal_naming_format to change the format from the default '@_%s'. [Jeremy Kemper] + # def foo() @foo__rofl end + # def foo=(v) @foo__rofl = v end + self.attr_internal_naming_format = '@%s__rofl' + attr_internal :foo + +* Raise fully qualified names upon name errors. #5533 [lars@pinds.com, Nicholas Seckar] + +* Add extention to obtain the missing constant from NameError instances. [Nicholas Seckar] + +* Thoroughly document inflections. #5700 [petermichaux@gmail.com] + +* Added Module#alias_attribute [Jamis/DHH]. Example: + + class Content < ActiveRecord::Base + # has a title attribute + end + + class Email < ActiveRecord::Base + alias_attribute :subject, :title + end + + e = Email.find(1) + e.title # => "Superstars" + e.subject # => "Superstars" + e.subject? # => true + e.subject = "Megastars" + e.title # => "Megastars" + +* Deprecation: easier to work with warning behavior as procs; default behaviors for each environment so users needn't update env.rb; and testing pleasure with assert_deprecated, assert_not_deprecated. [Jeremy Kemper] + By default, test prints to $stderr, dev logs, production ignores. + Provide your own per-environment in e.g. config/environments/development.rb: + ActiveSupport::Deprecation.behavior = Proc.new { |message| raise message } + +* First cut of the Rails Deprecation system. [Koz] + +* Strip boolean XML content before checking for 'true' [Rick Olson] + +* Customize default BigDecimal formatting. References #5672 [dave@pragprog.com] + +* Correctly convert <foo nil="true"> to nil when using Hash.create_from_xml. [Rick] + +* Optional identity for Enumerable#sum defaults to zero. #5657 [gensym@mac.com] + +* HashWithIndifferentAccess shouldn't confuse false and nil. #5601 [shugo@ruby-lang.org] + +* Fixed HashWithIndifferentAccess#default #5586 [chris@seagul.co.uk] + +* More compatible Hash.create_from_xml. #5523 [nunemaker@gmail.com] + +* Added Enumerable#sum for calculating a sum from the elements [DHH, jonathan@daikini.com]. Examples: + + [1, 2, 3].sum + payments.sum { |p| p.price * p.tax_rate } + payments.sum(&:price) + + This is instead of payments.inject(0) { |sum, p| sum + p.price } + +* Correct and clarify Array#to_sentence docs. #5458 [brad@madriska.com] + +* alias_method_chain preserves method punctuation so foo, foo?, and foo! may be chained with the same feature. [Jeremy Kemper] + Example: + alias_method_chain :save!, :validation + is equivalent to + alias_method :save_without_validation!, :save! + alias_method :save!, :save_with_validation! + +* Enhance Symbol#to_proc so it works with list objects, such as multi-dimensional arrays. Closes #5295 [nov@yo.rim.or.jp]. Example: + + {1 => "one", 2 => "two", 3 => "three"}.sort_by(&:first).map(&:last) + #=> ["one", "two", "three"] + +* Added Hash.create_from_xml(string) which will create a hash from a XML string and even typecast if possible [DHH]. Example: + + Hash.create_from_xml <<-EOT + <note> + <title>This is a note</title> + <created-at type="date">2004-10-10</created-at> + </note> + EOT + + ...would return: + + { :note => { :title => "This is a note", :created_at => Date.new(2004, 10, 10) } } + +* Added Jim Weirich's excellent FlexMock class to vendor (Copyright 2003, 2004 by Jim Weirich (jim@weriichhouse.org)) -- it's not automatically required, though, so require 'flexmock' is still necessary [DHH] + +* Fixed that Module#alias_method_chain should work with both foo? foo! and foo at the same time #4954 [anna@wota.jp] + +* to_xml fixes, features, and speedup: introduce :dasherize option that converts updated_at to updated-at if true (the existing default); binary columns get encoding="base64" attribute; nil values get nil="true" attribute to distinguish empty values; add type information for float columns; allow arbitrarily deep :include; include SQL type information as the type attribute. #4989 [Blair Zajac <blair@orcaware.com>] + +* Add OrderedHash#values. [Sam Stephenson] + +* Added Array#to_s(:db) that'll produce a comma-separated list of ids [DHH]. Example: + + Purchase.find(:all, :conditions => "product_id IN (#{shops.products.to_s(:db)})" + +* Normalize classify's argument to a String so that it plays nice with Symbols. [Marcel Molina Jr.] + +* Strip out leading schema name in classify. References #5139. [schoenm@earthlink.net] + +* Remove Enumerable#first_match since break(value) handles the use case well enough. [Nicholas Seckar] + + Enumerable#first_match was like detect, but instead of returning the matching element, the yielded value returned. For example: + + user_xml = adapters(:from => User, :to => Xml).first_match do |adapter| + adapter.adapt @user + end + + But this is just as easily done with: + + user_xml = adapters(:from => User, :to => Xml).each do + break adapter.adapt(@user) + end + +* Make Array#in_groups_of just return the grouped collection if a block isn't given. [Marcel Molina Jr.] + +* Don't destroy a HashWithIndifferentAccess if symbolize_keys! or stringify_keys! is called on it. Closes #5076. [Marcel Molina Jr., guy.naor@famundo.com] + +* Document Module::delegate. #5002 [pergesu@gmail.com] + +* Replace alias method chaining with Module#alias_method_chain. [Marcel Molina Jr.] + +* Strip out punctuation on predicates or bang methods being aliased with alias_method_chain since target?_without_feature is not a valid method name. Add tests for Module#alias_method_chain. [Marcel Molina Jr.] + +* Replace Ruby's deprecated append_features in favor of included. [Marcel Molina Jr.] + +* Allow default options in with_options to be overridden. Closes #4480. [murphy@cYcnus.de] + +* Added Module#alias_method_chain [Jamis Buck] + +* Updated to Builder 2.0 [DHH] + +* Add Array#split for dividing arrays into one or more subarrays by value or block. [Sam Stephenson] + +*1.3.1* (April 6th, 2006) + +* Clean paths inside of exception messages and traces. [Nicholas Seckar] + +* Add Pathname.clean_within for cleaning all the paths inside of a string. [Nicholas Seckar] + +* provide an empty Dependencies::LoadingModule.load which prints deprecation warnings. Lets 1.0 applications function with .13-style environment.rb. + + +*1.3.0* (March 27th, 2006) + +* When possible, avoid incorrectly obtaining constants from parent modules. Fixes #4221. [Nicholas Seckar] + +* Add more tests for dependencies; refactor existing cases. [Nicholas Seckar] + +* Move Module#parent and Module#as_load_path into core_ext. Add Module#parent. [Nicholas Seckar] + +* Add CachingTools::HashCaching to simplify the creation of nested, autofilling hashes. [Nicholas Seckar] + +* Remove a hack intended to avoid unloading the same class twice, but which would not work anyways. [Nicholas Seckar] + +* Update Object.subclasses_of to locate nested classes. This affects Object.remove_subclasses_of in that nested classes will now be unloaded. [Nicholas Seckar] + +* Update Object.remove_subclasses_of to use Class.remove_class, reducing duplication. [Nicholas Seckar] + +* Added Fixnum#seconds for consistency, so you can say 5.minutes + 30.seconds instead of 5.minutes + 30 #4389 [François Beausoleil] + +* Added option to String#camelize to generate lower-cased camel case by passing in :lower, like "super_man".camelize(:lower) # => "superMan" [DHH] + +* Added Hash#diff to show the difference between two hashes [Chris McGrath] + +* Added Time#advance to do precise time time calculations for cases where a month being approximated to 30 days won't do #1860 [Rick Olson] + +* Enhance Inflector.underscore to convert '-' into '_' (as the inverse of Inflector.dasherize) [Jamis Buck] + +* Switched to_xml to use the xml schema format for datetimes. This allows the encoding of time zones and should improve operability. [Koz] + +* Added a note to the documentation for the Date related Numeric extensions to indicate that they're +approximations and shouldn't be used for critical calculations. [Koz] + +* Added Hash#to_xml and Array#to_xml that makes it much easier to produce XML from basic structures [DHH]. Examples: + + { :name => "David", :street_name => "Paulina", :age => 26, :moved_on => Date.new(2005, 11, 15) }.to_xml + + ...returns: + + <person> + <street-name>Paulina</street-name> + <name>David</name> + <age type="integer">26</age> + <moved-on type="date">2005-11-15</moved-on> + </person> + +* Moved Jim Weirich's wonderful Builder from Action Pack to Active Support (it's simply too useful to be stuck in AP) [DHH] + +* Fixed that Array#to_sentence will return "" on an empty array instead of ", and" #3842, #4031 [rubyonrails@beautifulpixel.com] + +* Add Enumerable#group_by for grouping collections based on the result of some + block. Useful, for example, for grouping records by date. + + ex. + + latest_transcripts.group_by(&:day).each do |day, transcripts| + p "#{day} -> #{transcripts.map(&:class) * ', '}" + end + "2006-03-01 -> Transcript" + "2006-02-28 -> Transcript" + "2006-02-27 -> Transcript, Transcript" + "2006-02-26 -> Transcript, Transcript" + + Add Array#in_groups_of, for iterating over an array in groups of a certain + size. + + ex. + + %w(1 2 3 4 5 6 7).in_groups_of(3) {|g| p g} + ["1", "2", "3"] + ["4", "5", "6"] + ["7", nil, nil] + + [Marcel Molina Jr., Sam Stephenson] + +* Added Kernel#daemonize to turn the current process into a daemon that can be killed with a TERM signal [DHH] + +* Add 'around' methods to Logger, to make it easy to log before and after messages for a given block as requested in #3809. [Michael Koziarski] Example: + + logger.around_info("Start rendering component (#{options.inspect}): ", + "\n\nEnd of component rendering") { yield } + +* Added Time#beginning_of_quarter #3607 [cohen.jeff@gmail.com] + +* Fix Object.subclasses_of to only return currently defined objects [Jonathan Viney <jonathan@bluewire.net.nz>] + +* Fix constantize to properly handle names beginning with '::'. [Nicholas Seckar] + +* Make String#last return the string instead of nil when it is shorter than the limit [Scott Barron]. + +* Added delegation support to Module that allows multiple delegations at once (unlike Forwardable in the stdlib) [DHH]. Example: + + class Account < ActiveRecord::Base + has_one :subscription + delegate :free?, :paying?, :to => :subscription + delegate :overdue?, :to => "subscription.last_payment" + end + + account.free? # => account.subscription.free? + account.overdue? # => account.subscription.last_payment.overdue? + +* Fix Reloadable to handle the case where a class that has been 'removed' has not yet been garbage collected. [Nicholas Seckar] + +* Don't allow Reloadable to be included into Modules. + +* Remove LoadingModule. [Nicholas Seckar] + +* Add documentation for Reloadable::Subclasses. [Nicholas Seckar] + +* Add Reloadable::Subclasses which handles the common case where a base class should not be reloaded, but its subclasses should be. [Nicholas Seckar] + +* Further improvements to reloading code [Nicholas Seckar, Trevor Squires] + + - All classes/modules which include Reloadable can define reloadable? for fine grained control of reloading + - Class.remove_class uses Module#parent to access the parent module + - Class.remove_class expanded to handle multiple classes in a single call + - LoadingModule.clear! has been removed as it is no longer required + - Module#remove_classes_including has been removed in favor of Reloadable.reloadable_classes + +* Added reusable reloading support through the inclusion of the Relodable module that all subclasses of ActiveRecord::Base, ActiveRecord::Observer, ActiveController::Base, and ActionMailer::Base automatically gets. This means that these classes will be reloaded by the dispatcher when Dependencies.mechanism = :load. You can make your own models reloadable easily: + + class Setting + include Reloadable + end + + Reloading a class is done by removing its constant which will cause it to be loaded again on the next reference. [DHH] + +* Added auto-loading support for classes in modules, so Conductor::Migration will look for conductor/migration.rb and Conductor::Database::Settings will look for conductor/database/settings.rb [Nicholas Seckar] + +* Add Object#instance_exec, like instance_eval but passes its arguments to the block. (Active Support will not override the Ruby 1.9 implementation of this method.) [Sam Stephenson] + +* Add Proc#bind(object) for changing a proc or block's self by returning a Method bound to the given object. Based on why the lucky stiff's "cloaker" method. [Sam Stephenson] + +* Fix merge and dup for hashes with indifferent access #3404 [kenneth.miller@bitfield.net] + +* Fix the requires in option_merger_test to unbreak AS tests. [Sam Stephenson] + +* Make HashWithIndifferentAccess#update behave like Hash#update by returning the hash. #3419, #3425 [asnem@student.ethz.ch, JanPrill@blauton.de, Marcel Molina Jr.] + +* Add ActiveSupport::JSON and Object#to_json for converting Ruby objects to JSON strings. [Sam Stephenson] + +* Add Object#with_options for DRYing up multiple calls to methods having shared options. [Sam Stephenson] Example: + + ActionController::Routing::Routes.draw do |map| + # Account routes + map.with_options(:controller => 'account') do |account| + account.home '', :action => 'dashboard' + account.signup 'signup', :action => 'new' + account.logout 'logout', :action => 'logout' + end + end + +* Introduce Dependencies.warnings_on_first_load setting. If true, enables warnings on first load of a require_dependency. Otherwise, loads without warnings. Disabled (set to false) by default. [Jeremy Kemper] + +* Active Support is warnings-safe. #1792 [Eric Hodel] + +* Introduce enable_warnings counterpart to silence_warnings. Turn warnings on when loading a file for the first time if Dependencies.mechanism == :load. Common mistakes such as redefined methods will print warnings to stderr. [Jeremy Kemper] + +* Add Symbol#to_proc, which allows for, e.g. [:foo, :bar].map(&:to_s). [Marcel Molina Jr.] + +* Added the following methods [Marcel Molina Jr., Sam Stephenson]: + * Object#copy_instance_variables_from(object) to copy instance variables from one object to another + * Object#extended_by to get an instance's included/extended modules + * Object#extend_with_included_modules_from(object) to extend an instance with the modules from another instance + +*1.2.5* (December 13th, 2005) + +* Become part of Rails 1.0 + +* Rename Version constant to VERSION. #2802 [Marcel Molina Jr.] + +*1.2.3* (November 7th, 2005) + +* Change Inflector#constantize to use eval instead of const_get. [Nicholas Seckar] + +* Fix const_missing handler to ignore the trailing '.rb' on files when comparing paths. [Nicholas Seckar] + +* Define kernel.rb methods in "class Object" instead of "module Kernel" to work around a Windows peculiarity [Sam Stephenson] + +* Fix broken tests caused by incomplete loading of active support. [Nicholas Seckar] + +* Fix status pluralization bug so status_codes doesn't get pluralized as statuses_code. #2758 [keithm@infused.org] + +* Added Kernel#silence_stderr to silence stderr for the duration of the given block [Sam Stephenson] + +* Changed Kernel#` to print a message to stderr (like Unix) instead of raising Errno::ENOENT on Win32 [Sam Stephenson] + +* Changed 0.blank? to false rather than true since it violates everyone's expectation of blankness. #2518, #2705 [rails@jeffcole.net] + +* When loading classes using const_missing, raise a NameError if and only if the file we tried to load was not present. [Nicholas Seckar] + +* Added petabytes and exebytes to numeric extensions #2397 [timct@mac.com] + +* Added Time#end_of_month to accompany Time#beginning_of_month #2514 [Jens-Christian Fischer] + + +*1.2.2* (October 26th, 2005) + +* Set Logger.silencer = false to disable Logger#silence. Useful for debugging fixtures. + +* Add title case method to String to do, e.g., 'action_web_service'.titlecase # => 'Action Web Service'. [Marcel Molina Jr.] + + +*1.2.1* (October 19th, 2005) + +* Classify generated routing code as framework code to avoid appearing in application traces. [Nicholas Seckar] + +* Show all framework frames in the framework trace. [Nicholas Seckar] + + +*1.2.0* (October 16th, 2005) + +* Update Exception extension to show the first few framework frames in an application trace. [Nicholas Seckar] + +* Added Exception extension to provide support for clean backtraces. [Nicholas Seckar] + +* Updated whiny nil to be more concise and useful. [Nicholas Seckar] + +* Added Enumerable#first_match [Nicholas Seckar] + +* Fixed that Time#change should also reset usec when also resetting minutes #2459 [ikeda@dream.big.or.jp] + +* Fix Logger compatibility for distributions that don't keep Ruby and its standard library in sync. + +* Replace '%e' from long and short time formats as Windows does not support it. #2344. [Tom Ward <tom@popdog.net>] + +* Added to_s(:db) to Range, so you can get "BETWEEN '2005-12-10' AND '2005-12-12'" from Date.new(2005, 12, 10)..Date.new(2005, 12, 12) (and likewise with Times) + +* Moved require_library_or_gem into Kernel. #1992 [Michael Schuerig <michael@schuerig.de>] + +* Add :rfc822 as an option for Time#to_s (to get rfc822-formatted times) + +* Chain the const_missing hook to any previously existing hook so rails can play nicely with rake + +* Clean logger is compatible with both 1.8.2 and 1.8.3 Logger. #2263 [Michael Schuerig <michael@schuerig.de>] + +* Added native, faster implementations of .blank? for the core types #2286 [skae] + +* Fixed clean logger to work with Ruby 1.8.3 Logger class #2245 + +* Fixed memory leak with Active Record classes when Dependencies.mechanism = :load #1704 [c.r.mcgrath@gmail.com] + +* Fixed Inflector.underscore for use with acronyms, so HTML becomes html instead of htm_l #2173 [k@v2studio.com] + +* Fixed dependencies related infinite recursion bug when a controller file does not contain a controller class. Closes #1760. [rcolli2@tampabay.rr.com] + +* Fixed inflections for status, quiz, move #2056 [deirdre@deirdre.net] + +* Added Hash#reverse_merge, Hash#reverse_merge!, and Hash#reverse_update to ease the use of default options + +* Added Array#to_sentence that'll turn ['one', 'two', 'three'] into "one, two, and three" #2157 [m.stienstra@fngtps.com] + +* Added Kernel#silence_warnings to turn off warnings temporarily for the passed block + +* Added String#starts_with? and String#ends_with? #2118 [thijs@vandervossen.net] + +* Added easy extendability to the inflector through Inflector.inflections (using the Inflector::Inflections singleton class). Examples: + + Inflector.inflections do |inflect| + inflect.plural /^(ox)$/i, '\1\2en' + inflect.singular /^(ox)en/i, '\1' + + inflect.irregular 'octopus', 'octopi' + + inflect.uncountable "equipment" + end + +* Added String#at, String#from, String#to, String#first, String#last in ActiveSupport::CoreExtensions::String::Access to ease access to individual characters and substrings in a string serving basically as human names for range access. + +* Make Time#last_month work when invoked on the 31st of a month. + +* Add Time.days_in_month, and make Time#next_month work when invoked on the 31st of a month + +* Fixed that Time#midnight would have a non-zero usec on some platforms #1836 + +* Fixed inflections of "index/indices" #1766 [damn_pepe@gmail.com] + +* Added stripping of _id to String#humanize, so "employee_id" becomes "Employee" #1574 [Justin French] + +* Factor Fixnum and Bignum extensions into Integer extensions [Nicholas Seckar] + +* Hooked #ordinalize into Fixnum and Bignum classes. [Nicholas Seckar, danp] + +* Added Fixnum#ordinalize to turn 1.ordinalize to "1st", 3.ordinalize to "3rd", and 10.ordinalize to "10th" and so on #1724 [paul@cnt.org] + + +*1.1.1* (11 July, 2005) + +* Added more efficient implementation of the development mode reset of classes #1638 [Chris McGrath] + + +*1.1.0* (6 July, 2005) + +* Fixed conflict with Glue gem #1606 [Rick Olson] + +* Added new rules to the Inflector to deal with more unusual plurals mouse/louse => mice/lice, information => information, ox => oxen, virus => viri, archive => archives #1571, #1583, #1490, #1599, #1608 [foamdino@gmail.com/others] + +* Fixed memory leak with Object#remove_subclasses_of, which inflicted a Rails application running in development mode with a ~20KB leak per request #1289 [c.r.mcgrath@gmail.com] + +* Made 1.year == 365.25.days to account for leap years. This allows you to do User.find(:all, :conditions => ['birthday > ?', 50.years.ago]) without losing a lot of days. #1488 [tuxie@dekadance.se] + +* Added an exception if calling id on nil to WhinyNil #584 [kevin-temp@writesoon.com] + +* Added Fix/Bignum#multiple_of? which returns true on 14.multiple_of?(7) and false on 16.multiple_of?(7) #1464 [Thomas Fuchs] + +* Added even? and odd? to work with Bignums in addition to Fixnums #1464 [Thomas Fuchs] + +* Fixed Time#at_beginning_of_week returned the next Monday instead of the previous one when called on a Sunday #1403 [jean.helou@gmail.com] + +* Increased the speed of indifferent hash access by using Hash#default. #1436 [Nicholas Seckar] + +* Added that " " is now also blank? (using strip if available) + +* Fixed Dependencies so all modules are able to load missing constants #1173 [Nicholas Seckar] + +* Fixed the Inflector to underscore strings containing numbers, so Area51Controller becomes area51_controller #1176 [Nicholas Seckar] + +* Fixed that HashWithIndifferentAccess stringified all keys including symbols, ints, objects, and arrays #1162 [Nicholas Seckar] + +* Fixed Time#last_year to go back in time, not forward #1278 [fabien@odilat.com] + +* Fixed the pluralization of analysis to analyses #1295 [seattle@rootimage.msu.edu] + +* Fixed that Time.local(2005,12).months_since(1) would raise "ArgumentError: argument out of range" #1311 [jhahn@niveon.com] + +* Added silencing to the default Logger class + + +*1.0.4* (19th April, 2005) + +* Fixed that in some circumstances controllers outside of modules may have hidden ones inside modules. For example, admin/content might have been hidden by /content. #1075 [Nicholas Seckar] + +* Fixed inflection of perspectives and similar words #1045 [thijs@vandervossen.net] + +* Added Fixnum#even? and Fixnum#odd? + +* Fixed problem with classes being required twice. Object#const_missing now uses require_dependency to load files. It used to use require_or_load which would cause models to be loaded twice, which was not good for validations and other class methods #971 [Nicholas Seckar] + + +*1.0.3* (27th March, 2005) + +* Fixed Inflector.pluralize to handle capitalized words #932 [Jeremy Kemper] + +* Added Object#suppress which allows you to make a saner choice around with exceptions to swallow #980. Example: + + suppress(ZeroDivisionError) { 1/0 } + + ...instead of: + + 1/0 rescue nil # BAD, EVIL, DIRTY. + + +*1.0.2* (22th March, 2005) + +* Added Kernel#returning -- a Ruby-ized realization of the K combinator, courtesy of Mikael Brockman. + + def foo + returning values = [] do + values << 'bar' + values << 'baz' + end + end + + foo # => ['bar', 'baz'] + + +*1.0.1* (7th March, 2005) + +* Fixed Hash#indifferent_access to also deal with include? and fetch and nested hashes #726 [Nicholas Seckar] + +* Added Object#blank? -- see http://redhanded.hobix.com/inspect/objectBlank.html #783 [_why the lucky stiff] + +* Added inflection rules for "sh" words, like "wish" and "fish" #755 [phillip@pjbsoftware.com] + +* Fixed an exception when using Ajax based requests from Safari because Safari appends a \000 to the post body. Symbols can't have \000 in them so indifferent access would throw an exception in the constructor. Indifferent hashes now use strings internally instead. #746 [Tobias Luetke] + +* Added String#to_time and String#to_date for wrapping ParseDate + + +*1.0.0* (24th February, 2005) + +* Added TimeZone as the first of a number of value objects that among others Active Record can use rich value objects using composed_of #688 [Jamis Buck] + +* Added Date::Conversions for getting dates in different convenient string representations and other objects + +* Added Time::Conversions for getting times in different convenient string representations and other objects + +* Added Time::Calculations to ask for things like Time.now.tomorrow, Time.now.yesterday, Time.now.months_ago(4) #580 [DP|Flurin]. Examples: + + "Later today" => now.in(3.hours), + "Tomorrow morning" => now.tomorrow.change(:hour => 9), + "Tomorrow afternoon" => now.tomorrow.change(:hour => 14), + "In a couple of days" => now.tomorrow.tomorrow.change(:hour => 9), + "Next monday" => now.next_week.change(:hour => 9), + "In a month" => now.next_month.change(:hour => 9), + "In 6 months" => now.months_since(6).change(:hour => 9), + "In a year" => now.in(1.year).change(:hour => 9) + +* Upgraded to breakpoint 92 which fixes: + + * overload IRB.parse_opts(), fixes #443 + => breakpoints in tests work even when running them via rake + * untaint handlers, might fix an issue discussed on the Rails ML + * added verbose mode to breakpoint_client + * less noise caused by breakpoint_client by default + * ignored TerminateLineInput exception in signal handler + => quiet exit on Ctrl-C + +* Fixed Inflector for words like "news" and "series" that are the same in plural and singular #603 [echion], #615 [marcenuc] + +* Added Hash#stringify_keys and Hash#stringify_keys! + +* Added IndifferentAccess as a way to wrap a hash by a symbol-based store that also can be accessed by string keys + +* Added Inflector.constantize to turn "Admin::User" into a reference for the constant Admin::User + +* Added that Inflector.camelize and Inflector.underscore can deal with modules like turning "Admin::User" into "admin/user" and back + +* Added Inflector.humanize to turn attribute names like employee_salary into "Employee salary". Used by automated error reporting in AR. + +* Added availability of class inheritable attributes to the masses #477 [Jeremy Kemper] + + class Foo + class_inheritable_reader :read_me + class_inheritable_writer :write_me + class_inheritable_accessor :read_and_write_me + class_inheritable_array :read_and_concat_me + class_inheritable_hash :read_and_update_me + end + + # Bar gets a clone of (not a reference to) Foo's attributes. + class Bar < Foo + end + + Bar.read_and_write_me == Foo.read_and_write_me + Bar.read_and_write_me = 'bar' + Bar.read_and_write_me != Foo.read_and_write_me + +* Added Inflections as an extension on String, so Inflector.pluralize(Inflector.classify(name)) becomes name.classify.pluralize #476 [Jeremy Kemper] + +* Added Byte operations to Numeric, so 5.5.megabytes + 200.kilobytes #461 [Marcel Molina] + +* Fixed that Dependencies.reload can't load the same file twice #420 [Kent Sibilev] + +* Added Fixnum#ago/until, Fixnum#since/from_now #450 [Jeremy Kemper] + +* Added that Inflector now accepts Symbols and Classes by calling .to_s on the word supplied + +* Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours. diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/README b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/README new file mode 100644 index 000000000..9fb9a80cb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/README @@ -0,0 +1,43 @@ += Active Support -- Utility classes and standard library extensions from Rails + +Active Support is a collection of various utility classes and standard library extensions that were found useful +for Rails. All these additions have hence been collected in this bundle as way to gather all that sugar that makes +Ruby sweeter. + + +== Download + +The latest version of Active Support can be found at + +* http://rubyforge.org/project/showfiles.php?group_id=182 + +Documentation can be found at + +* http://as.rubyonrails.com + + +== Installation + +The preferred method of installing Active Support is through its GEM file. You'll need to have +RubyGems[http://rubygems.rubyforge.org/wiki/wiki.pl] installed for that, though. If you have it, +then use: + + % [sudo] gem install activesupport-1.0.0.gem + + +== License + +Active Support is released under the MIT license. + + +== Support + +The Active Support homepage is http://www.rubyonrails.com. You can find the Active Support +RubyForge page at http://rubyforge.org/projects/activesupport. And as Jim from Rake says: + + Feel free to submit commits or feature requests. If you send a patch, + remember to update the corresponding unit tests. If fact, I prefer + new feature to be submitted in the form of new unit tests. + +For other information, feel free to ask on the ruby-talk mailing list +(which is mirrored to comp.lang.ruby) or contact mailto:david@loudthinking.com. diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support.rb new file mode 100644 index 000000000..e4cb145c9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support.rb @@ -0,0 +1,55 @@ +#-- +# Copyright (c) 2005 David Heinemeier Hansson +# +# 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 copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +#++ + +$:.unshift(File.dirname(__FILE__)) + +require 'active_support/vendor' +require 'active_support/basic_object' +require 'active_support/inflector' +require 'active_support/callbacks' + +require 'active_support/core_ext' + +require 'active_support/clean_logger' +require 'active_support/buffered_logger' + +require 'active_support/gzip' +require 'active_support/cache' + +require 'active_support/dependencies' +require 'active_support/deprecation' + +require 'active_support/ordered_hash' +require 'active_support/ordered_options' +require 'active_support/option_merger' + +require 'active_support/values/time_zone' +require 'active_support/duration' + +require 'active_support/json' + +require 'active_support/multibyte' + +require 'active_support/base64' + +require 'active_support/time_with_zone' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/base64.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/base64.rb new file mode 100644 index 000000000..602eef06b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/base64.rb @@ -0,0 +1,22 @@ +begin + require 'base64' +rescue LoadError +end + +module ActiveSupport + if defined? ::Base64 + Base64 = ::Base64 + else + # Ruby 1.9 doesn't provide base64, so we wrap this here + module Base64 + + def self.encode64(data) + [data].pack("m") + end + + def self.decode64(data) + data.unpack("m").first + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/basic_object.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/basic_object.rb new file mode 100644 index 000000000..e06da79d2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/basic_object.rb @@ -0,0 +1,24 @@ +# A base class with no predefined methods that tries to behave like Builder's +# BlankSlate in Ruby 1.9. In Ruby pre-1.9, this is actually the +# Builder::BlankSlate class. +# +# Ruby 1.9 introduces BasicObject which differs slightly from Builder's +# BlankSlate that has been used so far. ActiveSupport::BasicObject provides a +# barebones base class that emulates Builder::BlankSlate while still relying on +# Ruby 1.9's BasicObject in Ruby 1.9. +module ActiveSupport + if RUBY_VERSION >= '1.9' + class BasicObject < ::BasicObject + undef_method :== + undef_method :equal? + + # Let ActiveSupport::BasicObject at least raise exceptions. + def raise(*args) + ::Object.send(:raise, *args) + end + end + else + require 'blankslate' + BasicObject = BlankSlate + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/buffered_logger.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/buffered_logger.rb new file mode 100644 index 000000000..67b0a580e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/buffered_logger.rb @@ -0,0 +1,121 @@ +module ActiveSupport + # Inspired by the buffered logger idea by Ezra + class BufferedLogger + module Severity + DEBUG = 0 + INFO = 1 + WARN = 2 + ERROR = 3 + FATAL = 4 + UNKNOWN = 5 + end + include Severity + + MAX_BUFFER_SIZE = 1000 + + # Set to false to disable the silencer + cattr_accessor :silencer + self.silencer = true + + # Silences the logger for the duration of the block. + def silence(temporary_level = ERROR) + if silencer + begin + old_logger_level, self.level = level, temporary_level + yield self + ensure + self.level = old_logger_level + end + else + yield self + end + end + + attr_accessor :level + attr_reader :auto_flushing + attr_reader :buffer + + def initialize(log, level = DEBUG) + @level = level + @buffer = [] + @auto_flushing = 1 + @no_block = false + + if log.respond_to?(:write) + @log = log + elsif File.exist?(log) + @log = open(log, (File::WRONLY | File::APPEND)) + @log.sync = true + else + FileUtils.mkdir_p(File.dirname(log)) + @log = open(log, (File::WRONLY | File::APPEND | File::CREAT)) + @log.sync = true + @log.write("# Logfile created on %s" % [Time.now.to_s]) + end + end + + def set_non_blocking_io + if !RUBY_PLATFORM.match(/java|mswin/) && !(@log == STDOUT) && @log.respond_to?(:write_nonblock) + @no_block = true + end + end + + def add(severity, message = nil, progname = nil, &block) + return if @level > severity + message = (message || (block && block.call) || progname).to_s + # If a newline is necessary then create a new message ending with a newline. + # Ensures that the original message is not mutated. + message = "#{message}\n" unless message[-1] == ?\n + buffer << message + auto_flush + message + end + + for severity in Severity.constants + class_eval <<-EOT, __FILE__, __LINE__ + def #{severity.downcase}(message = nil, progname = nil, &block) + add(#{severity}, message, progname, &block) + end + + def #{severity.downcase}? + #{severity} >= @level + end + EOT + end + + # Set the auto-flush period. Set to true to flush after every log message, + # to an integer to flush every N messages, or to false, nil, or zero to + # never auto-flush. If you turn auto-flushing off, be sure to regularly + # flush the log yourself -- it will eat up memory until you do. + def auto_flushing=(period) + @auto_flushing = + case period + when true; 1 + when false, nil, 0; MAX_BUFFER_SIZE + when Integer; period + else raise ArgumentError, "Unrecognized auto_flushing period: #{period.inspect}" + end + end + + def flush + unless buffer.empty? + if @no_block + @log.write_nonblock(buffer.slice!(0..-1).join) + else + @log.write(buffer.slice!(0..-1).join) + end + end + end + + def close + flush + @log.close if @log.respond_to?(:close) + @log = nil + end + + protected + def auto_flush + flush if buffer.size >= @auto_flushing + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache.rb new file mode 100644 index 000000000..2f1143e61 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache.rb @@ -0,0 +1,145 @@ +require 'benchmark' + +module ActiveSupport + module Cache + def self.lookup_store(*store_option) + store, *parameters = *([ store_option ].flatten) + + case store + when Symbol + store_class_name = (store == :drb_store ? "DRbStore" : store.to_s.camelize) + store_class = ActiveSupport::Cache.const_get(store_class_name) + store_class.new(*parameters) + when nil + ActiveSupport::Cache::MemoryStore.new + else + store + end + end + + def self.expand_cache_key(key, namespace = nil) + expanded_cache_key = namespace ? "#{namespace}/" : "" + + if ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"] + expanded_cache_key << "#{ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"]}/" + end + + expanded_cache_key << case + when key.respond_to?(:cache_key) + key.cache_key + when key.is_a?(Array) + key.collect { |element| expand_cache_key(element) }.to_param + when key.respond_to?(:to_param) + key.to_param + end + + expanded_cache_key + end + + + class Store + cattr_accessor :logger + + def initialize + end + + def threadsafe! + @mutex = Mutex.new + self.class.send :include, ThreadSafety + self + end + + # Pass <tt>:force => true</tt> to force a cache miss. + def fetch(key, options = {}) + @logger_off = true + if !options[:force] && value = read(key, options) + @logger_off = false + log("hit", key, options) + value + elsif block_given? + @logger_off = false + log("miss", key, options) + + value = nil + seconds = Benchmark.realtime { value = yield } + + @logger_off = true + write(key, value, options) + @logger_off = false + + log("write (will save #{'%.5f' % seconds})", key, nil) + + value + end + end + + def read(key, options = nil) + log("read", key, options) + end + + def write(key, value, options = nil) + log("write", key, options) + end + + def delete(key, options = nil) + log("delete", key, options) + end + + def delete_matched(matcher, options = nil) + log("delete matched", matcher.inspect, options) + end + + def exist?(key, options = nil) + log("exist?", key, options) + end + + def increment(key, amount = 1) + log("incrementing", key, amount) + if num = read(key) + write(key, num + amount) + else + nil + end + end + + def decrement(key, amount = 1) + log("decrementing", key, amount) + if num = read(key) + write(key, num - amount) + else + nil + end + end + + private + def log(operation, key, options) + logger.debug("Cache #{operation}: #{key}#{options ? " (#{options.inspect})" : ""}") if logger && !@logger_off + end + end + + + module ThreadSafety #:nodoc: + def read(key, options = nil) #:nodoc: + @mutex.synchronize { super } + end + + def write(key, value, options = nil) #:nodoc: + @mutex.synchronize { super } + end + + def delete(key, options = nil) #:nodoc: + @mutex.synchronize { super } + end + + def delete_matched(matcher, options = nil) #:nodoc: + @mutex.synchronize { super } + end + end + end +end + +require 'active_support/cache/file_store' +require 'active_support/cache/memory_store' +require 'active_support/cache/drb_store' +require 'active_support/cache/mem_cache_store' +require 'active_support/cache/compressed_mem_cache_store' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/compressed_mem_cache_store.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/compressed_mem_cache_store.rb new file mode 100644 index 000000000..9470ac9f6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/compressed_mem_cache_store.rb @@ -0,0 +1,15 @@ +module ActiveSupport + module Cache + class CompressedMemCacheStore < MemCacheStore + def read(name, options = {}) + if value = super(name, options.merge(:raw => true)) + Marshal.load(ActiveSupport::Gzip.decompress(value)) + end + end + + def write(name, value, options = {}) + super(name, ActiveSupport::Gzip.compress(Marshal.dump(value)), options.merge(:raw => true)) + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/drb_store.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/drb_store.rb new file mode 100644 index 000000000..b80c2ee4d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/drb_store.rb @@ -0,0 +1,15 @@ +require 'drb' + +module ActiveSupport + module Cache + class DRbStore < MemoryStore #:nodoc: + attr_reader :address + + def initialize(address = 'druby://localhost:9192') + super() + @address = address + @data = DRbObject.new(nil, address) + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/file_store.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/file_store.rb new file mode 100644 index 000000000..5b771b1da --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/file_store.rb @@ -0,0 +1,70 @@ +module ActiveSupport + module Cache + class FileStore < Store + attr_reader :cache_path + + def initialize(cache_path) + @cache_path = cache_path + end + + def read(name, options = nil) + super + File.open(real_file_path(name), 'rb') { |f| f.read } rescue nil + end + + def write(name, value, options = nil) + super + ensure_cache_path(File.dirname(real_file_path(name))) + File.open(real_file_path(name), "wb+") { |f| f.write(value) } + rescue => e + RAILS_DEFAULT_LOGGER.error "Couldn't create cache directory: #{name} (#{e.message})" if RAILS_DEFAULT_LOGGER + end + + def delete(name, options = nil) + super + File.delete(real_file_path(name)) + rescue SystemCallError => e + # If there's no cache, then there's nothing to complain about + end + + def delete_matched(matcher, options = nil) + super + search_dir(@cache_path) do |f| + if f =~ matcher + begin + File.delete(f) + rescue SystemCallError => e + # If there's no cache, then there's nothing to complain about + end + end + end + end + + def exist?(name, options = nil) + super + File.exist?(real_file_path(name)) + end + + private + def real_file_path(name) + '%s/%s.cache' % [@cache_path, name.gsub('?', '.').gsub(':', '.')] + end + + def ensure_cache_path(path) + FileUtils.makedirs(path) unless File.exist?(path) + end + + def search_dir(dir, &callback) + Dir.foreach(dir) do |d| + next if d == "." || d == ".." + name = File.join(dir, d) + if File.directory?(name) + search_dir(name, &callback) + else + callback.call name + end + end + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/mem_cache_store.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/mem_cache_store.rb new file mode 100644 index 000000000..b3769b812 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/mem_cache_store.rb @@ -0,0 +1,100 @@ +require 'memcache' + +module ActiveSupport + module Cache + class MemCacheStore < Store + module Response + STORED = "STORED\r\n" + NOT_STORED = "NOT_STORED\r\n" + EXISTS = "EXISTS\r\n" + NOT_FOUND = "NOT_FOUND\r\n" + DELETED = "DELETED\r\n" + end + + attr_reader :addresses + + def initialize(*addresses) + addresses = addresses.flatten + options = addresses.extract_options! + addresses = ["localhost"] if addresses.empty? + @addresses = addresses + @data = MemCache.new(addresses, options) + end + + def read(key, options = nil) + super + @data.get(key, raw?(options)) + rescue MemCache::MemCacheError => e + logger.error("MemCacheError (#{e}): #{e.message}") + nil + end + + # Set key = value. Pass :unless_exist => true if you don't + # want to update the cache if the key is already set. + def write(key, value, options = nil) + super + method = options && options[:unless_exist] ? :add : :set + response = @data.send(method, key, value, expires_in(options), raw?(options)) + response == Response::STORED + rescue MemCache::MemCacheError => e + logger.error("MemCacheError (#{e}): #{e.message}") + false + end + + def delete(key, options = nil) + super + response = @data.delete(key, expires_in(options)) + response == Response::DELETED + rescue MemCache::MemCacheError => e + logger.error("MemCacheError (#{e}): #{e.message}") + false + end + + def exist?(key, options = nil) + # Doesn't call super, cause exist? in memcache is in fact a read + # But who cares? Reading is very fast anyway + !read(key, options).nil? + end + + def increment(key, amount = 1) + log("incrementing", key, amount) + + response = @data.incr(key, amount) + response == Response::NOT_FOUND ? nil : response + rescue MemCache::MemCacheError + nil + end + + def decrement(key, amount = 1) + log("decrement", key, amount) + + response = data.decr(key, amount) + response == Response::NOT_FOUND ? nil : response + rescue MemCache::MemCacheError + nil + end + + def delete_matched(matcher, options = nil) + super + raise "Not supported by Memcache" + end + + def clear + @data.flush_all + end + + def stats + @data.stats + end + + private + def expires_in(options) + (options && options[:expires_in]) || 0 + end + + def raw?(options) + options && options[:raw] + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/memory_store.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/memory_store.rb new file mode 100644 index 000000000..6f114273e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/cache/memory_store.rb @@ -0,0 +1,38 @@ +module ActiveSupport + module Cache + class MemoryStore < Store + def initialize + @data = {} + end + + def read(name, options = nil) + super + @data[name] + end + + def write(name, value, options = nil) + super + @data[name] = value + end + + def delete(name, options = nil) + super + @data.delete(name) + end + + def delete_matched(matcher, options = nil) + super + @data.delete_if { |k,v| k =~ matcher } + end + + def exist?(name,options = nil) + super + @data.has_key?(name) + end + + def clear + @data.clear + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/callbacks.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/callbacks.rb new file mode 100644 index 000000000..9c59b7ac7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/callbacks.rb @@ -0,0 +1,275 @@ +module ActiveSupport + # Callbacks are hooks into the lifecycle of an object that allow you to trigger logic + # before or after an alteration of the object state. + # + # Mixing in this module allows you to define callbacks in your class. + # + # Example: + # class Storage + # include ActiveSupport::Callbacks + # + # define_callbacks :before_save, :after_save + # end + # + # class ConfigStorage < Storage + # before_save :saving_message + # def saving_message + # puts "saving..." + # end + # + # after_save do |object| + # puts "saved" + # end + # + # def save + # run_callbacks(:before_save) + # puts "- save" + # run_callbacks(:after_save) + # end + # end + # + # config = ConfigStorage.new + # config.save + # + # Output: + # saving... + # - save + # saved + # + # Callbacks from parent classes are inherited. + # + # Example: + # class Storage + # include ActiveSupport::Callbacks + # + # define_callbacks :before_save, :after_save + # + # before_save :prepare + # def prepare + # puts "preparing save" + # end + # end + # + # class ConfigStorage < Storage + # before_save :saving_message + # def saving_message + # puts "saving..." + # end + # + # after_save do |object| + # puts "saved" + # end + # + # def save + # run_callbacks(:before_save) + # puts "- save" + # run_callbacks(:after_save) + # end + # end + # + # config = ConfigStorage.new + # config.save + # + # Output: + # preparing save + # saving... + # - save + # saved + module Callbacks + class CallbackChain < Array + def self.build(kind, *methods, &block) + methods, options = extract_options(*methods, &block) + methods.map! { |method| Callback.new(kind, method, options) } + new(methods) + end + + def run(object, options = {}, &terminator) + enumerator = options[:enumerator] || :each + + unless block_given? + send(enumerator) { |callback| callback.call(object) } + else + send(enumerator) do |callback| + result = callback.call(object) + break result if terminator.call(result, object) + end + end + end + + def |(chain) + if chain.is_a?(CallbackChain) + chain.each { |callback| self | callback } + else + if (found_callback = find(chain)) && (index = index(chain)) + self[index] = chain + else + self << chain + end + end + self + end + + def find(callback, &block) + select { |c| c == callback && (!block_given? || yield(c)) }.first + end + + def delete(callback) + super(callback.is_a?(Callback) ? callback : find(callback)) + end + + private + def self.extract_options(*methods, &block) + methods.flatten! + options = methods.extract_options! + methods << block if block_given? + return methods, options + end + + def extract_options(*methods, &block) + self.class.extract_options(*methods, &block) + end + end + + class Callback + attr_reader :kind, :method, :identifier, :options + + def initialize(kind, method, options = {}) + @kind = kind + @method = method + @identifier = options[:identifier] + @options = options + end + + def ==(other) + case other + when Callback + (self.identifier && self.identifier == other.identifier) || self.method == other.method + else + (self.identifier && self.identifier == other) || self.method == other + end + end + + def eql?(other) + self == other + end + + def dup + self.class.new(@kind, @method, @options.dup) + end + + def call(*args, &block) + evaluate_method(method, *args, &block) if should_run_callback?(*args) + rescue LocalJumpError + raise ArgumentError, + "Cannot yield from a Proc type filter. The Proc must take two " + + "arguments and execute #call on the second argument." + end + + private + def evaluate_method(method, *args, &block) + case method + when Symbol + object = args.shift + object.send(method, *args, &block) + when String + eval(method, args.first.instance_eval { binding }) + when Proc, Method + method.call(*args, &block) + else + if method.respond_to?(kind) + method.send(kind, *args, &block) + else + raise ArgumentError, + "Callbacks must be a symbol denoting the method to call, a string to be evaluated, " + + "a block to be invoked, or an object responding to the callback method." + end + end + end + + def should_run_callback?(*args) + if options[:if] + evaluate_method(options[:if], *args) + elsif options[:unless] + !evaluate_method(options[:unless], *args) + else + true + end + end + end + + def self.included(base) + base.extend ClassMethods + end + + module ClassMethods + def define_callbacks(*callbacks) + callbacks.each do |callback| + class_eval <<-"end_eval" + def self.#{callback}(*methods, &block) + callbacks = CallbackChain.build(:#{callback}, *methods, &block) + (@#{callback}_callbacks ||= CallbackChain.new).concat callbacks + end + + def self.#{callback}_callback_chain + @#{callback}_callbacks ||= CallbackChain.new + + if superclass.respond_to?(:#{callback}_callback_chain) + CallbackChain.new(superclass.#{callback}_callback_chain + @#{callback}_callbacks) + else + @#{callback}_callbacks + end + end + end_eval + end + end + end + + # Runs all the callbacks defined for the given options. + # + # If a block is given it will be called after each callback receiving as arguments: + # + # * the result from the callback + # * the object which has the callback + # + # If the result from the block evaluates to false, the callback chain is stopped. + # + # Example: + # class Storage + # include ActiveSupport::Callbacks + # + # define_callbacks :before_save, :after_save + # end + # + # class ConfigStorage < Storage + # before_save :pass + # before_save :pass + # before_save :stop + # before_save :pass + # + # def pass + # puts "pass" + # end + # + # def stop + # puts "stop" + # return false + # end + # + # def save + # result = run_callbacks(:before_save) { |result, object| result == false } + # puts "- save" if result + # end + # end + # + # config = ConfigStorage.new + # config.save + # + # Output: + # pass + # pass + # stop + def run_callbacks(kind, options = {}, &block) + self.class.send("#{kind}_callback_chain").run(self, options, &block) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/clean_logger.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/clean_logger.rb new file mode 100644 index 000000000..b4c27ebc9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/clean_logger.rb @@ -0,0 +1,127 @@ +require 'logger' +require 'active_support/core_ext/class/attribute_accessors' + +# Extensions to the built in Ruby logger. +# +# If you want to use the default log formatter as defined in the Ruby core, then you +# will need to set the formatter for the logger as in: +# +# logger.formatter = Formatter.new +# +# You can then specify the datetime format, for example: +# +# logger.datetime_format = "%Y-%m-%d" +# +# Note: This logger is deprecated in favor of ActiveSupport::BufferedLogger +class Logger + # Set to false to disable the silencer + cattr_accessor :silencer + self.silencer = true + + # Silences the logger for the duration of the block. + def silence(temporary_level = Logger::ERROR) + if silencer + begin + old_logger_level, self.level = level, temporary_level + yield self + ensure + self.level = old_logger_level + end + else + yield self + end + end + + alias :old_datetime_format= :datetime_format= + # Logging date-time format (string passed to +strftime+). Ignored if the formatter + # does not respond to datetime_format=. + def datetime_format=(datetime_format) + formatter.datetime_format = datetime_format if formatter.respond_to?(:datetime_format=) + end + + alias :old_datetime_format :datetime_format + # Get the logging datetime format. Returns nil if the formatter does not support + # datetime formatting. + def datetime_format + formatter.datetime_format if formatter.respond_to?(:datetime_format) + end + + alias :old_formatter :formatter if method_defined?(:formatter) + # Get the current formatter. The default formatter is a SimpleFormatter which only + # displays the log message + def formatter + @formatter ||= SimpleFormatter.new + end + + unless const_defined? :Formatter + class Formatter + Format = "%s, [%s#%d] %5s -- %s: %s\n" + + attr_accessor :datetime_format + + def initialize + @datetime_format = nil + end + + def call(severity, time, progname, msg) + Format % [severity[0..0], format_datetime(time), $$, severity, progname, + msg2str(msg)] + end + + private + def format_datetime(time) + if @datetime_format.nil? + time.strftime("%Y-%m-%dT%H:%M:%S.") << "%06d " % time.usec + else + time.strftime(@datetime_format) + end + end + + def msg2str(msg) + case msg + when ::String + msg + when ::Exception + "#{ msg.message } (#{ msg.class })\n" << + (msg.backtrace || []).join("\n") + else + msg.inspect + end + end + end + end + + # Simple formatter which only displays the message. + class SimpleFormatter < Logger::Formatter + # This method is invoked when a log event occurs + def call(severity, timestamp, progname, msg) + "#{String === msg ? msg : msg.inspect}\n" + end + end + + private + alias old_format_message format_message + + # Ruby 1.8.3 transposed the msg and progname arguments to format_message. + # We can't test RUBY_VERSION because some distributions don't keep Ruby + # and its standard library in sync, leading to installations of Ruby 1.8.2 + # with Logger from 1.8.3 and vice versa. + if method_defined?(:formatter=) + def format_message(severity, timestamp, progname, msg) + formatter.call(severity, timestamp, progname, msg) + end + else + def format_message(severity, timestamp, msg, progname) + formatter.call(severity, timestamp, progname, msg) + end + + attr_writer :formatter + public :formatter= + + alias old_format_datetime format_datetime + def format_datetime(datetime) datetime end + + alias old_msg2str msg2str + def msg2str(msg) msg end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext.rb new file mode 100644 index 000000000..4deef8c7a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext.rb @@ -0,0 +1,4 @@ +Dir[File.dirname(__FILE__) + "/core_ext/*.rb"].sort.each do |path| + filename = File.basename(path) + require "active_support/core_ext/#{filename}" +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array.rb new file mode 100644 index 000000000..cc0a1ebc1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array.rb @@ -0,0 +1,13 @@ +require 'active_support/core_ext/array/access' +require 'active_support/core_ext/array/conversions' +require 'active_support/core_ext/array/extract_options' +require 'active_support/core_ext/array/grouping' +require 'active_support/core_ext/array/random_access' + +class Array #:nodoc: + include ActiveSupport::CoreExtensions::Array::Access + include ActiveSupport::CoreExtensions::Array::Conversions + include ActiveSupport::CoreExtensions::Array::ExtractOptions + include ActiveSupport::CoreExtensions::Array::Grouping + include ActiveSupport::CoreExtensions::Array::RandomAccess +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/access.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/access.rb new file mode 100644 index 000000000..21a8584bb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/access.rb @@ -0,0 +1,26 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + # Makes it easier to access parts of an array. + module Access + # Returns the tail of the array from +position+. + # + # %w( a b c d ).from(0) # => %w( a b c d ) + # %w( a b c d ).from(2) # => %w( c d ) + # %w( a b c d ).from(10) # => nil + def from(position) + self[position..-1] + end + + # Returns the beginning of the array up to +position+. + # + # %w( a b c d ).to(0) # => %w( a ) + # %w( a b c d ).to(2) # => %w( a b c ) + # %w( a b c d ).to(10) # => %w( a b c d ) + def to(position) + self[0..position] + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/conversions.rb new file mode 100644 index 000000000..a9882828c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/conversions.rb @@ -0,0 +1,178 @@ +require 'builder' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module Conversions + # Converts the array to a comma-separated sentence where the last element is joined by the connector word. Options: + # * <tt>:connector</tt> - The word used to join the last element in arrays with two or more elements (default: "and") + # * <tt>:skip_last_comma</tt> - Set to true to return "a, b and c" instead of "a, b, and c". + def to_sentence(options = {}) + options.assert_valid_keys(:connector, :skip_last_comma) + options.reverse_merge! :connector => 'and', :skip_last_comma => false + options[:connector] = "#{options[:connector]} " unless options[:connector].nil? || options[:connector].strip == '' + + case length + when 0 + "" + when 1 + self[0].to_s + when 2 + "#{self[0]} #{options[:connector]}#{self[1]}" + else + "#{self[0...-1].join(', ')}#{options[:skip_last_comma] ? '' : ','} #{options[:connector]}#{self[-1]}" + end + end + + # Calls <tt>to_param</tt> on all its elements and joins the result with + # slashes. This is used by <tt>url_for</tt> in Action Pack. + def to_param + map(&:to_param).join '/' + end + + # Converts an array into a string suitable for use as a URL query string, + # using the given +key+ as the param name. + # + # ['Rails', 'coding'].to_query('hobbies') # => "hobbies%5B%5D=Rails&hobbies%5B%5D=coding" + def to_query(key) + collect { |value| value.to_query("#{key}[]") } * '&' + end + + def self.included(base) #:nodoc: + base.class_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + + # Converts a collection of elements into a formatted string by calling + # <tt>to_s</tt> on all elements and joining them: + # + # Blog.find(:all).to_formatted_s # => "First PostSecond PostThird Post" + # + # Adding in the <tt>:db</tt> argument as the format yields a prettier + # output: + # + # Blog.find(:all).to_formatted_s(:db) # => "First Post,Second Post,Third Post" + def to_formatted_s(format = :default) + case format + when :db + if respond_to?(:empty?) && self.empty? + "null" + else + collect { |element| element.id }.join(",") + end + else + to_default_s + end + end + + # Returns a string that represents this array in XML by sending +to_xml+ + # to each element. Active Record collections delegate their representation + # in XML to this method. + # + # All elements are expected to respond to +to_xml+, if any of them does + # not an exception is raised. + # + # The root node reflects the class name of the first element in plural + # if all elements belong to the same type and that's not Hash: + # + # customer.projects.to_xml + # + # <?xml version="1.0" encoding="UTF-8"?> + # <projects type="array"> + # <project> + # <amount type="decimal">20000.0</amount> + # <customer-id type="integer">1567</customer-id> + # <deal-date type="date">2008-04-09</deal-date> + # ... + # </project> + # <project> + # <amount type="decimal">57230.0</amount> + # <customer-id type="integer">1567</customer-id> + # <deal-date type="date">2008-04-15</deal-date> + # ... + # </project> + # </projects> + # + # Otherwise the root element is "records": + # + # [{:foo => 1, :bar => 2}, {:baz => 3}].to_xml + # + # <?xml version="1.0" encoding="UTF-8"?> + # <records type="array"> + # <record> + # <bar type="integer">2</bar> + # <foo type="integer">1</foo> + # </record> + # <record> + # <baz type="integer">3</baz> + # </record> + # </records> + # + # If the collection is empty the root element is "nil-classes" by default: + # + # [].to_xml + # + # <?xml version="1.0" encoding="UTF-8"?> + # <nil-classes type="array"/> + # + # To ensure a meaningful root element use the <tt>:root</tt> option: + # + # customer_with_no_projects.projects.to_xml(:root => "projects") + # + # <?xml version="1.0" encoding="UTF-8"?> + # <projects type="array"/> + # + # By default root children have as node name the one of the root + # singularized. You can change it with the <tt>:children</tt> option. + # + # The +options+ hash is passed downwards: + # + # Message.all.to_xml(:skip_types => true) + # + # <?xml version="1.0" encoding="UTF-8"?> + # <messages> + # <message> + # <created-at>2008-03-07T09:58:18+01:00</created-at> + # <id>1</id> + # <name>1</name> + # <updated-at>2008-03-07T09:58:18+01:00</updated-at> + # <user-id>1</user-id> + # </message> + # </messages> + # + def to_xml(options = {}) + raise "Not all elements respond to to_xml" unless all? { |e| e.respond_to? :to_xml } + + options[:root] ||= all? { |e| e.is_a?(first.class) && first.class.to_s != "Hash" } ? first.class.to_s.underscore.pluralize : "records" + options[:children] ||= options[:root].singularize + options[:indent] ||= 2 + options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent]) + + root = options.delete(:root).to_s + children = options.delete(:children) + + if !options.has_key?(:dasherize) || options[:dasherize] + root = root.dasherize + end + + options[:builder].instruct! unless options.delete(:skip_instruct) + + opts = options.merge({ :root => children }) + + xml = options[:builder] + if empty? + xml.tag!(root, options[:skip_types] ? {} : {:type => "array"}) + else + xml.tag!(root, options[:skip_types] ? {} : {:type => "array"}) { + yield xml if block_given? + each { |e| e.to_xml(opts.merge!({ :skip_instruct => true })) } + } + end + end + + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/extract_options.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/extract_options.rb new file mode 100644 index 000000000..eb917576d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/extract_options.rb @@ -0,0 +1,20 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module ExtractOptions + # Extracts options from a set of arguments. Removes and returns the last + # element in the array if it's a hash, otherwise returns a blank hash. + # + # def options(*args) + # args.extract_options! + # end + # + # options(1, 2) # => {} + # options(1, 2, :a => :b) # => {:a=>:b} + def extract_options! + last.is_a?(::Hash) ? pop : {} + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/grouping.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/grouping.rb new file mode 100644 index 000000000..767acc4e0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/grouping.rb @@ -0,0 +1,63 @@ +require 'enumerator' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module Grouping + # Iterates over the array in groups of size +number+, padding any remaining + # slots with +fill_with+ unless it is +false+. + # + # %w(1 2 3 4 5 6 7).in_groups_of(3) {|g| p g} + # ["1", "2", "3"] + # ["4", "5", "6"] + # ["7", nil, nil] + # + # %w(1 2 3).in_groups_of(2, ' ') {|g| p g} + # ["1", "2"] + # ["3", " "] + # + # %w(1 2 3).in_groups_of(2, false) {|g| p g} + # ["1", "2"] + # ["3"] + def in_groups_of(number, fill_with = nil, &block) + if fill_with == false + collection = self + else + # size % number gives how many extra we have; + # subtracting from number gives how many to add; + # modulo number ensures we don't add group of just fill. + padding = (number - size % number) % number + collection = dup.concat([fill_with] * padding) + end + + if block_given? + collection.each_slice(number, &block) + else + returning [] do |groups| + collection.each_slice(number) { |group| groups << group } + end + end + end + + # Divides the array into one or more subarrays based on a delimiting +value+ + # or the result of an optional block. + # + # [1, 2, 3, 4, 5].split(3) # => [[1, 2], [4, 5]] + # (1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]] + def split(value = nil, &block) + block ||= Proc.new { |e| e == value } + + inject([[]]) do |results, element| + if block.call(element) + results << [] + else + results.last << element + end + + results + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/random_access.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/random_access.rb new file mode 100644 index 000000000..54d17cbf3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/array/random_access.rb @@ -0,0 +1,12 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Array #:nodoc: + module RandomAccess + # Returns a random element from the array. + def rand + self[Kernel.rand(length)] + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/base64.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/base64.rb new file mode 100644 index 000000000..235e2edf5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/base64.rb @@ -0,0 +1,4 @@ +require 'active_support/base64' +require 'active_support/core_ext/base64/encoding' + +ActiveSupport::Base64.extend ActiveSupport::CoreExtensions::Base64::Encoding diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/base64/encoding.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/base64/encoding.rb new file mode 100644 index 000000000..1a40da878 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/base64/encoding.rb @@ -0,0 +1,13 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Base64 #:nodoc: + module Encoding + # Encodes the value as base64 without the newline breaks. This makes the base64 encoding readily usable as URL parameters + # or memcache keys without further processing. + def encode64s(value) + encode64(value).gsub(/\n/, '') + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/benchmark.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/benchmark.rb new file mode 100644 index 000000000..79ba165e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/benchmark.rb @@ -0,0 +1,12 @@ +require 'benchmark' + +class << Benchmark + remove_method :realtime + + def realtime + r0 = Time.now + yield + r1 = Time.now + r1.to_f - r0.to_f + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/bigdecimal.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/bigdecimal.rb new file mode 100644 index 000000000..d429078c9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/bigdecimal.rb @@ -0,0 +1,6 @@ +require 'bigdecimal' +require 'active_support/core_ext/bigdecimal/conversions' + +class BigDecimal#:nodoc: + include ActiveSupport::CoreExtensions::BigDecimal::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/bigdecimal/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/bigdecimal/conversions.rb new file mode 100644 index 000000000..d2b01b1b8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/bigdecimal/conversions.rb @@ -0,0 +1,41 @@ +require 'yaml' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module BigDecimal #:nodoc: + module Conversions + def self.included(base) #:nodoc: + base.instance_eval do + alias_method :_original_to_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + + def to_formatted_s(format="F") + _original_to_s(format) + end + + yaml_as "tag:yaml.org,2002:float" + def to_yaml( opts = {} ) + YAML::quick_emit( nil, opts ) do |out| + # This emits the number without any scientific notation. + # I prefer it to using self.to_f.to_s, which would lose precision. + # + # Note that YAML allows that when reconsituting floats + # to native types, some precision may get lost. + # There is no full precision real YAML tag that I am aware of. + str = self.to_s + if str == "Infinity" + str = ".Inf" + elsif str == "-Infinity" + str = "-.Inf" + elsif str == "NaN" + str = ".NaN" + end + out.scalar( "tag:yaml.org,2002:float", str, :plain ) + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/blank.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/blank.rb new file mode 100644 index 000000000..dfe33162e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/blank.rb @@ -0,0 +1,53 @@ +class Object + # An object is blank if it's false, empty, or a whitespace string. + # For example, "", " ", +nil+, [], and {} are blank. + # + # This simplifies + # + # if !address.nil? && !address.empty? + # + # to + # + # if !address.blank? + def blank? + respond_to?(:empty?) ? empty? : !self + end +end + +class NilClass #:nodoc: + def blank? + true + end +end + +class FalseClass #:nodoc: + def blank? + true + end +end + +class TrueClass #:nodoc: + def blank? + false + end +end + +class Array #:nodoc: + alias_method :blank?, :empty? +end + +class Hash #:nodoc: + alias_method :blank?, :empty? +end + +class String #:nodoc: + def blank? + self !~ /\S/ + end +end + +class Numeric #:nodoc: + def blank? + false + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/cgi.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/cgi.rb new file mode 100644 index 000000000..db90e5c74 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/cgi.rb @@ -0,0 +1,5 @@ +require 'active_support/core_ext/cgi/escape_skipping_slashes' + +class CGI #:nodoc: + extend ActiveSupport::CoreExtensions::CGI::EscapeSkippingSlashes +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb new file mode 100644 index 000000000..a21e98fa8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb @@ -0,0 +1,14 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module CGI #:nodoc: + module EscapeSkippingSlashes #:nodoc: + def escape_skipping_slashes(str) + str = str.join('/') if str.respond_to? :join + str.gsub(/([^ \/a-zA-Z0-9_.-])/n) do + "%#{$1.unpack('H2').first.upcase}" + end.tr(' ', '+') + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class.rb new file mode 100644 index 000000000..44ad6c8c0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class.rb @@ -0,0 +1,4 @@ +require 'active_support/core_ext/class/attribute_accessors' +require 'active_support/core_ext/class/inheritable_attributes' +require 'active_support/core_ext/class/removal' +require 'active_support/core_ext/class/delegating_attributes' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/attribute_accessors.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/attribute_accessors.rb new file mode 100644 index 000000000..186ca69c0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/attribute_accessors.rb @@ -0,0 +1,54 @@ +# Extends the class object with class and instance accessors for class attributes, +# just like the native attr* accessors for instance attributes. +# +# class Person +# cattr_accessor :hair_colors +# end +# +# Person.hair_colors = [:brown, :black, :blonde, :red] +class Class + def cattr_reader(*syms) + syms.flatten.each do |sym| + next if sym.is_a?(Hash) + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym} + @@#{sym} + end + + def #{sym} + @@#{sym} + end + EOS + end + end + + def cattr_writer(*syms) + options = syms.extract_options! + syms.flatten.each do |sym| + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym}=(obj) + @@#{sym} = obj + end + + #{" + def #{sym}=(obj) + @@#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def cattr_accessor(*syms) + cattr_reader(*syms) + cattr_writer(*syms) + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/delegating_attributes.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/delegating_attributes.rb new file mode 100644 index 000000000..368317df9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/delegating_attributes.rb @@ -0,0 +1,46 @@ +# These class attributes behave something like the class +# inheritable accessors. But instead of copying the hash over at +# the time the subclass is first defined, the accessors simply +# delegate to their superclass unless they have been given a +# specific value. This stops the strange situation where values +# set after class definition don't get applied to subclasses. +class Class + def superclass_delegating_reader(*names) + class_name_to_stop_searching_on = self.superclass.name.blank? ? "Object" : self.superclass.name + names.each do |name| + class_eval <<-EOS + def self.#{name} + if defined?(@#{name}) + @#{name} + elsif superclass < #{class_name_to_stop_searching_on} && superclass.respond_to?(:#{name}) + superclass.#{name} + end + end + def #{name} + self.class.#{name} + end + def self.#{name}? + !!#{name} + end + def #{name}? + !!#{name} + end + EOS + end + end + + def superclass_delegating_writer(*names) + names.each do |name| + class_eval <<-EOS + def self.#{name}=(value) + @#{name} = value + end + EOS + end + end + + def superclass_delegating_accessor(*names) + superclass_delegating_reader(*names) + superclass_delegating_writer(*names) + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/inheritable_attributes.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/inheritable_attributes.rb new file mode 100644 index 000000000..8724a492b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/inheritable_attributes.rb @@ -0,0 +1,140 @@ +# Retain for backward compatibility. Methods are now included in Class. +module ClassInheritableAttributes # :nodoc: +end + +# Allows attributes to be shared within an inheritance hierarchy, but where each descendant gets a copy of +# their parents' attributes, instead of just a pointer to the same. This means that the child can add elements +# to, for example, an array without those additions being shared with either their parent, siblings, or +# children, which is unlike the regular class-level attributes that are shared across the entire hierarchy. +class Class # :nodoc: + def class_inheritable_reader(*syms) + syms.each do |sym| + next if sym.is_a?(Hash) + class_eval <<-EOS + def self.#{sym} + read_inheritable_attribute(:#{sym}) + end + + def #{sym} + self.class.#{sym} + end + EOS + end + end + + def class_inheritable_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval <<-EOS + def self.#{sym}=(obj) + write_inheritable_attribute(:#{sym}, obj) + end + + #{" + def #{sym}=(obj) + self.class.#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def class_inheritable_array_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval <<-EOS + def self.#{sym}=(obj) + write_inheritable_array(:#{sym}, obj) + end + + #{" + def #{sym}=(obj) + self.class.#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def class_inheritable_hash_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval <<-EOS + def self.#{sym}=(obj) + write_inheritable_hash(:#{sym}, obj) + end + + #{" + def #{sym}=(obj) + self.class.#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def class_inheritable_accessor(*syms) + class_inheritable_reader(*syms) + class_inheritable_writer(*syms) + end + + def class_inheritable_array(*syms) + class_inheritable_reader(*syms) + class_inheritable_array_writer(*syms) + end + + def class_inheritable_hash(*syms) + class_inheritable_reader(*syms) + class_inheritable_hash_writer(*syms) + end + + def inheritable_attributes + @inheritable_attributes ||= EMPTY_INHERITABLE_ATTRIBUTES + end + + def write_inheritable_attribute(key, value) + if inheritable_attributes.equal?(EMPTY_INHERITABLE_ATTRIBUTES) + @inheritable_attributes = {} + end + inheritable_attributes[key] = value + end + + def write_inheritable_array(key, elements) + write_inheritable_attribute(key, []) if read_inheritable_attribute(key).nil? + write_inheritable_attribute(key, read_inheritable_attribute(key) + elements) + end + + def write_inheritable_hash(key, hash) + write_inheritable_attribute(key, {}) if read_inheritable_attribute(key).nil? + write_inheritable_attribute(key, read_inheritable_attribute(key).merge(hash)) + end + + def read_inheritable_attribute(key) + inheritable_attributes[key] + end + + def reset_inheritable_attributes + @inheritable_attributes = EMPTY_INHERITABLE_ATTRIBUTES + end + + private + # Prevent this constant from being created multiple times + EMPTY_INHERITABLE_ATTRIBUTES = {}.freeze unless const_defined?(:EMPTY_INHERITABLE_ATTRIBUTES) + + def inherited_with_inheritable_attributes(child) + inherited_without_inheritable_attributes(child) if respond_to?(:inherited_without_inheritable_attributes) + + if inheritable_attributes.equal?(EMPTY_INHERITABLE_ATTRIBUTES) + new_inheritable_attributes = EMPTY_INHERITABLE_ATTRIBUTES + else + new_inheritable_attributes = inheritable_attributes.inject({}) do |memo, (key, value)| + memo.update(key => value.duplicable? ? value.dup : value) + end + end + + child.instance_variable_set('@inheritable_attributes', new_inheritable_attributes) + end + + alias inherited_without_inheritable_attributes inherited + alias inherited inherited_with_inheritable_attributes +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/removal.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/removal.rb new file mode 100644 index 000000000..10660edb2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/class/removal.rb @@ -0,0 +1,50 @@ +class Class #:nodoc: + + # Unassociates the class with its subclasses and removes the subclasses + # themselves. + # + # Integer.remove_subclasses # => [Bignum, Fixnum] + # Fixnum # => NameError: uninitialized constant Fixnum + def remove_subclasses + Object.remove_subclasses_of(self) + end + + # Returns an array with the names of the subclasses of +self+ as strings. + # + # Integer.subclasses # => ["Bignum", "Fixnum"] + def subclasses + Object.subclasses_of(self).map { |o| o.to_s } + end + + # Removes the classes in +klasses+ from their parent module. + # + # Ordinary classes belong to some module via a constant. This method computes + # that constant name from the class name and removes it from the module it + # belongs to. + # + # Object.remove_class(Integer) # => [Integer] + # Integer # => NameError: uninitialized constant Integer + # + # Take into account that in general the class object could be still stored + # somewhere else. + # + # i = Integer # => Integer + # Object.remove_class(Integer) # => [Integer] + # Integer # => NameError: uninitialized constant Integer + # i.subclasses # => ["Bignum", "Fixnum"] + # Fixnum.superclass # => Integer + def remove_class(*klasses) + klasses.flatten.each do |klass| + # Skip this class if there is nothing bound to this name + next unless defined?(klass.name) + + basename = klass.to_s.split("::").last + parent = klass.parent + + # Skip this class if it does not match the current one bound to this name + next unless parent.const_defined?(basename) && klass = parent.const_get(basename) + + parent.instance_eval { remove_const basename } unless parent == klass + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date.rb new file mode 100644 index 000000000..3f56c560b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date.rb @@ -0,0 +1,10 @@ +require 'date' +require 'active_support/core_ext/date/behavior' +require 'active_support/core_ext/date/calculations' +require 'active_support/core_ext/date/conversions' + +class Date#:nodoc: + include ActiveSupport::CoreExtensions::Date::Behavior + include ActiveSupport::CoreExtensions::Date::Calculations + include ActiveSupport::CoreExtensions::Date::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/behavior.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/behavior.rb new file mode 100644 index 000000000..011cc17cb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/behavior.rb @@ -0,0 +1,13 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Date #:nodoc: + module Behavior + # Enable more predictable duck-typing on Date-like classes. See + # Object#acts_like?. + def acts_like_date? + true + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/calculations.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/calculations.rb new file mode 100644 index 000000000..1e2dbf118 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/calculations.rb @@ -0,0 +1,215 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Date #:nodoc: + # Enables the use of time calculations within Time itself + module Calculations + def self.included(base) #:nodoc: + base.extend ClassMethods + + base.instance_eval do + alias_method :plus_without_duration, :+ + alias_method :+, :plus_with_duration + + alias_method :minus_without_duration, :- + alias_method :-, :minus_with_duration + end + end + + module ClassMethods + # Returns a new Date representing the date 1 day ago (i.e. yesterday's date). + def yesterday + ::Date.today.yesterday + end + + # Returns a new Date representing the date 1 day after today (i.e. tomorrow's date). + def tomorrow + ::Date.today.tomorrow + end + + # Returns Time.zone.today when config.time_zone is set, otherwise just returns Date.today. + def current + ::Time.zone_default ? ::Time.zone.today : ::Date.today + end + end + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) + # and then subtracts the specified number of seconds + def ago(seconds) + to_time.since(-seconds) + end + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) + # and then adds the specified number of seconds + def since(seconds) + to_time.since(seconds) + end + alias :in :since + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) + def beginning_of_day + to_time + end + alias :midnight :beginning_of_day + alias :at_midnight :beginning_of_day + alias :at_beginning_of_day :beginning_of_day + + # Converts Date to a Time (or DateTime if necessary) with the time portion set to the end of the day (23:59:59) + def end_of_day + to_time.end_of_day + end + + def plus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + other.since(self) + else + plus_without_duration(other) + end + end + + def minus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + plus_with_duration(-other) + else + minus_without_duration(other) + end + end + + # Provides precise Date calculations for years, months, and days. The +options+ parameter takes a hash with + # any of these keys: <tt>:years</tt>, <tt>:months</tt>, <tt>:weeks</tt>, <tt>:days</tt>. + def advance(options) + d = self + d = d >> options.delete(:years) * 12 if options[:years] + d = d >> options.delete(:months) if options[:months] + d = d + options.delete(:weeks) * 7 if options[:weeks] + d = d + options.delete(:days) if options[:days] + d + end + + # Returns a new Date where one or more of the elements have been changed according to the +options+ parameter. + # + # Examples: + # + # Date.new(2007, 5, 12).change(:day => 1) # => Date.new(2007, 5, 1) + # Date.new(2007, 5, 12).change(:year => 2005, :month => 1) # => Date.new(2005, 1, 12) + def change(options) + ::Date.new( + options[:year] || self.year, + options[:month] || self.month, + options[:day] || self.day + ) + end + + # Returns a new Date/DateTime representing the time a number of specified months ago + def months_ago(months) + advance(:months => -months) + end + + # Returns a new Date/DateTime representing the time a number of specified months in the future + def months_since(months) + advance(:months => months) + end + + # Returns a new Date/DateTime representing the time a number of specified years ago + def years_ago(years) + advance(:years => -years) + end + + # Returns a new Date/DateTime representing the time a number of specified years in the future + def years_since(years) + advance(:years => years) + end + + # Short-hand for years_ago(1) + def last_year + years_ago(1) + end + + # Short-hand for years_since(1) + def next_year + years_since(1) + end + + # Short-hand for months_ago(1) + def last_month + months_ago(1) + end + + # Short-hand for months_since(1) + def next_month + months_since(1) + end + + # Returns a new Date/DateTime representing the "start" of this week (i.e, Monday; DateTime objects will have time set to 0:00) + def beginning_of_week + days_to_monday = self.wday!=0 ? self.wday-1 : 6 + result = self - days_to_monday + self.acts_like?(:time) ? result.midnight : result + end + alias :monday :beginning_of_week + alias :at_beginning_of_week :beginning_of_week + + # Returns a new Date/DateTime representing the end of this week (Sunday, DateTime objects will have time set to 23:59:59) + def end_of_week + days_to_sunday = self.wday!=0 ? 7-self.wday : 0 + result = self + days_to_sunday.days + self.acts_like?(:time) ? result.end_of_day : result + end + alias :at_end_of_week :end_of_week + + # Returns a new Date/DateTime representing the start of the given day in next week (default is Monday). + def next_week(day = :monday) + days_into_week = { :monday => 0, :tuesday => 1, :wednesday => 2, :thursday => 3, :friday => 4, :saturday => 5, :sunday => 6} + result = (self + 7).beginning_of_week + days_into_week[day] + self.acts_like?(:time) ? result.change(:hour => 0) : result + end + + # Returns a new ; DateTime objects will have time set to 0:00DateTime representing the start of the month (1st of the month; DateTime objects will have time set to 0:00) + def beginning_of_month + self.acts_like?(:time) ? change(:day => 1,:hour => 0, :min => 0, :sec => 0) : change(:day => 1) + end + alias :at_beginning_of_month :beginning_of_month + + # Returns a new Date/DateTime representing the end of the month (last day of the month; DateTime objects will have time set to 0:00) + def end_of_month + last_day = ::Time.days_in_month( self.month, self.year ) + self.acts_like?(:time) ? change(:day => last_day, :hour => 23, :min => 59, :sec => 59) : change(:day => last_day) + end + alias :at_end_of_month :end_of_month + + # Returns a new Date/DateTime representing the start of the quarter (1st of january, april, july, october; DateTime objects will have time set to 0:00) + def beginning_of_quarter + beginning_of_month.change(:month => [10, 7, 4, 1].detect { |m| m <= self.month }) + end + alias :at_beginning_of_quarter :beginning_of_quarter + + # Returns a new Date/DateTime representing the end of the quarter (last day of march, june, september, december; DateTime objects will have time set to 23:59:59) + def end_of_quarter + change(:month => [3, 6, 9, 12].detect { |m| m >= self.month }).end_of_month + end + alias :at_end_of_quarter :end_of_quarter + + # Returns a new Date/DateTime representing the start of the year (1st of january; DateTime objects will have time set to 0:00) + def beginning_of_year + self.acts_like?(:time) ? change(:month => 1, :day => 1, :hour => 0, :min => 0, :sec => 0) : change(:month => 1, :day => 1) + end + alias :at_beginning_of_year :beginning_of_year + + # Returns a new Time representing the end of the year (31st of december; DateTime objects will have time set to 23:59:59) + def end_of_year + self.acts_like?(:time) ? change(:month => 12,:day => 31,:hour => 23, :min => 59, :sec => 59) : change(:month => 12, :day => 31) + end + alias :at_end_of_year :end_of_year + + # Convenience method which returns a new Date/DateTime representing the time 1 day ago + def yesterday + self - 1 + end + + # Convenience method which returns a new Date/DateTime representing the time 1 day since the instance time + def tomorrow + self + 1 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/conversions.rb new file mode 100644 index 000000000..d2d9699d0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date/conversions.rb @@ -0,0 +1,107 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Date #:nodoc: + # Converting dates to formatted strings, times, and datetimes. + module Conversions + DATE_FORMATS = { + :short => "%e %b", + :long => "%B %e, %Y", + :db => "%Y-%m-%d", + :number => "%Y%m%d", + :long_ordinal => lambda { |date| date.strftime("%B #{date.day.ordinalize}, %Y") }, # => "April 25th, 2007" + :rfc822 => "%e %b %Y" + } + + def self.included(base) #:nodoc: + base.instance_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + alias_method :default_inspect, :inspect + alias_method :inspect, :readable_inspect + + # Ruby 1.9 has Date#to_time which converts to localtime only. + remove_method :to_time if base.instance_methods.include?(:to_time) + + # Ruby 1.9 has Date#xmlschema which converts to a string without the time component. + remove_method :xmlschema if base.instance_methods.include?(:xmlschema) + end + end + + # Convert to a formatted string. See DATE_FORMATS for predefined formats. + # + # This method is aliased to <tt>to_s</tt>. + # + # ==== Examples: + # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 + # + # date.to_formatted_s(:db) # => "2007-11-10" + # date.to_s(:db) # => "2007-11-10" + # + # date.to_formatted_s(:short) # => "10 Nov" + # date.to_formatted_s(:long) # => "November 10, 2007" + # date.to_formatted_s(:long_ordinal) # => "November 10th, 2007" + # date.to_formatted_s(:rfc822) # => "10 Nov 2007" + # + # == Adding your own time formats to to_formatted_s + # You can add your own formats to the Date::DATE_FORMATS hash. + # Use the format name as the hash key and either a strftime string + # or Proc instance that takes a date argument as the value. + # + # # config/initializers/time_formats.rb + # Date::DATE_FORMATS[:month_and_year] = "%B %Y" + # Date::DATE_FORMATS[:short_ordinal] = lambda { |date| date.strftime("%B #{date.day.ordinalize}") } + def to_formatted_s(format = :default) + if formatter = DATE_FORMATS[format] + if formatter.respond_to?(:call) + formatter.call(self).to_s + else + strftime(formatter) + end + else + to_default_s + end + end + + # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005" + def readable_inspect + strftime("%a, %d %b %Y") + end + + # A method to keep Time, Date and DateTime instances interchangeable on conversions. + # In this case, it simply returns +self+. + def to_date + self + end if RUBY_VERSION < '1.9' + + # Converts a Date instance to a Time, where the time is set to the beginning of the day. + # The timezone can be either :local or :utc (default :local). + # + # ==== Examples: + # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 + # + # date.to_time # => Sat Nov 10 00:00:00 0800 2007 + # date.to_time(:local) # => Sat Nov 10 00:00:00 0800 2007 + # + # date.to_time(:utc) # => Sat Nov 10 00:00:00 UTC 2007 + def to_time(form = :local) + ::Time.send("#{form}_time", year, month, day) + end + + # Converts a Date instance to a DateTime, where the time is set to the beginning of the day + # and UTC offset is set to 0. + # + # ==== Example: + # date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 + # + # date.to_datetime # => Sat, 10 Nov 2007 00:00:00 0000 + def to_datetime + ::DateTime.civil(year, month, day, 0, 0, 0, 0) + end if RUBY_VERSION < '1.9' + + def xmlschema + to_time.xmlschema + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time.rb new file mode 100644 index 000000000..66a93eac4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time.rb @@ -0,0 +1,12 @@ +require 'date' +require 'active_support/core_ext/time/behavior' +require 'active_support/core_ext/time/zones' +require 'active_support/core_ext/date_time/calculations' +require 'active_support/core_ext/date_time/conversions' + +class DateTime + include ActiveSupport::CoreExtensions::Time::Behavior + include ActiveSupport::CoreExtensions::Time::Zones + include ActiveSupport::CoreExtensions::DateTime::Calculations + include ActiveSupport::CoreExtensions::DateTime::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time/calculations.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time/calculations.rb new file mode 100644 index 000000000..155c961a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time/calculations.rb @@ -0,0 +1,112 @@ +require 'rational' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module DateTime #:nodoc: + # Enables the use of time calculations within DateTime itself + module Calculations + def self.included(base) #:nodoc: + base.extend ClassMethods + + base.class_eval do + alias_method :compare_without_coercion, :<=> + alias_method :<=>, :compare_with_coercion + end + end + + module ClassMethods + # DateTimes aren't aware of DST rules, so use a consistent non-DST offset when creating a DateTime with an offset in the local zone + def local_offset + ::Time.local(2007).utc_offset.to_r / 86400 + end + end + + # Seconds since midnight: DateTime.now.seconds_since_midnight + def seconds_since_midnight + self.sec + (self.min * 60) + (self.hour * 3600) + end + + # Returns a new DateTime where one or more of the elements have been changed according to the +options+ parameter. The time options + # (hour, minute, sec) reset cascadingly, so if only the hour is passed, then minute and sec is set to 0. If the hour and + # minute is passed, then sec is set to 0. + def change(options) + ::DateTime.civil( + options[:year] || self.year, + options[:month] || self.month, + options[:day] || self.day, + options[:hour] || self.hour, + options[:min] || (options[:hour] ? 0 : self.min), + options[:sec] || ((options[:hour] || options[:min]) ? 0 : self.sec), + options[:offset] || self.offset, + options[:start] || self.start + ) + end + + # Uses Date to provide precise Time calculations for years, months, and days. + # The +options+ parameter takes a hash with any of these keys: <tt>:years</tt>, + # <tt>:months</tt>, <tt>:weeks</tt>, <tt>:days</tt>, <tt>:hours</tt>, + # <tt>:minutes</tt>, <tt>:seconds</tt>. + def advance(options) + d = to_date.advance(options) + datetime_advanced_by_date = change(:year => d.year, :month => d.month, :day => d.day) + seconds_to_advance = (options[:seconds] || 0) + (options[:minutes] || 0) * 60 + (options[:hours] || 0) * 3600 + seconds_to_advance == 0 ? datetime_advanced_by_date : datetime_advanced_by_date.since(seconds_to_advance) + end + + # Returns a new DateTime representing the time a number of seconds ago + # Do not use this method in combination with x.months, use months_ago instead! + def ago(seconds) + self.since(-seconds) + end + + # Returns a new DateTime representing the time a number of seconds since the instance time + # Do not use this method in combination with x.months, use months_since instead! + def since(seconds) + self + Rational(seconds.round, 86400) + end + alias :in :since + + # Returns a new DateTime representing the start of the day (0:00) + def beginning_of_day + change(:hour => 0) + end + alias :midnight :beginning_of_day + alias :at_midnight :beginning_of_day + alias :at_beginning_of_day :beginning_of_day + + # Returns a new DateTime representing the end of the day (23:59:59) + def end_of_day + change(:hour => 23, :min => 59, :sec => 59) + end + + # Adjusts DateTime to UTC by adding its offset value; offset is set to 0 + # + # Example: + # + # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)) # => Mon, 21 Feb 2005 10:11:12 -0600 + # DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc # => Mon, 21 Feb 2005 16:11:12 +0000 + def utc + new_offset(0) + end + alias_method :getutc, :utc + + # Returns true if offset == 0 + def utc? + offset == 0 + end + + # Returns the offset value in seconds + def utc_offset + (offset * 86400).to_i + end + + # Layers additional behavior on DateTime#<=> so that Time and ActiveSupport::TimeWithZone instances can be compared with a DateTime + def compare_with_coercion(other) + other = other.comparable_time if other.respond_to?(:comparable_time) + other = other.to_datetime unless other.acts_like?(:date) + compare_without_coercion(other) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time/conversions.rb new file mode 100644 index 000000000..c0175a5f2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/date_time/conversions.rb @@ -0,0 +1,96 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module DateTime #:nodoc: + # Converting datetimes to formatted strings, dates, and times. + module Conversions + def self.append_features(base) #:nodoc: + base.class_eval do + alias_method :default_inspect, :inspect + alias_method :to_default_s, :to_s unless (instance_methods(false) & [:to_s, 'to_s']).empty? + + # Ruby 1.9 has DateTime#to_time which internally relies on Time. We define our own #to_time which allows + # DateTimes outside the range of what can be created with Time. + remove_method :to_time if instance_methods.include?(:to_time) + end + + super + + base.class_eval do + alias_method :to_s, :to_formatted_s + alias_method :inspect, :readable_inspect + end + end + + # Convert to a formatted string. See Time::DATE_FORMATS for predefined formats. + # + # This method is aliased to <tt>to_s</tt>. + # + # === Examples: + # datetime = DateTime.civil(2007, 12, 4, 0, 0, 0, 0) # => Tue, 04 Dec 2007 00:00:00 +0000 + # + # datetime.to_formatted_s(:db) # => "2007-12-04 00:00:00" + # datetime.to_s(:db) # => "2007-12-04 00:00:00" + # datetime.to_s(:number) # => "20071204000000" + # datetime.to_formatted_s(:short) # => "04 Dec 00:00" + # datetime.to_formatted_s(:long) # => "December 04, 2007 00:00" + # datetime.to_formatted_s(:long_ordinal) # => "December 4th, 2007 00:00" + # datetime.to_formatted_s(:rfc822) # => "Tue, 04 Dec 2007 00:00:00 +0000" + # + # == Adding your own datetime formats to to_formatted_s + # DateTime formats are shared with Time. You can add your own to the + # Time::DATE_FORMATS hash. Use the format name as the hash key and + # either a strftime string or Proc instance that takes a time or + # datetime argument as the value. + # + # # config/initializers/time_formats.rb + # Time::DATE_FORMATS[:month_and_year] = "%B %Y" + # Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } + def to_formatted_s(format = :default) + return to_default_s unless formatter = ::Time::DATE_FORMATS[format] + formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter) + end + + # Returns the +utc_offset+ as an +HH:MM formatted string. Examples: + # + # datetime = DateTime.civil(2000, 1, 1, 0, 0, 0, Rational(-6, 24)) + # datetime.formatted_offset # => "-06:00" + # datetime.formatted_offset(false) # => "-0600" + def formatted_offset(colon = true, alternate_utc_string = nil) + utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Overrides the default inspect method with a human readable one, e.g., "Mon, 21 Feb 2005 14:30:00 +0000" + def readable_inspect + to_s(:rfc822) + end + + # Converts self to a Ruby Date object; time portion is discarded + def to_date + ::Date.new(year, month, day) + end + + # Attempts to convert self to a Ruby Time object; returns self if out of range of Ruby Time class + # If self has an offset other than 0, self will just be returned unaltered, since there's no clean way to map it to a Time + def to_time + self.offset == 0 ? ::Time.utc_time(year, month, day, hour, min, sec) : self + end + + # To be able to keep Times, Dates and DateTimes interchangeable on conversions + def to_datetime + self + end + + # Converts datetime to an appropriate format for use in XML + def xmlschema + strftime("%Y-%m-%dT%H:%M:%S%Z") + end if RUBY_VERSION < '1.9' + + # Converts self to a floating-point number of seconds since the Unix epoch + def to_f + days_since_unix_epoch = self - ::DateTime.civil(1970) + (days_since_unix_epoch * 86_400).to_f + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/duplicable.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/duplicable.rb new file mode 100644 index 000000000..adbbfd8c6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/duplicable.rb @@ -0,0 +1,37 @@ +class Object + # Can you safely .dup this object? + # False for nil, false, true, symbols, and numbers; true otherwise. + def duplicable? + true + end +end + +class NilClass #:nodoc: + def duplicable? + false + end +end + +class FalseClass #:nodoc: + def duplicable? + false + end +end + +class TrueClass #:nodoc: + def duplicable? + false + end +end + +class Symbol #:nodoc: + def duplicable? + false + end +end + +class Numeric #:nodoc: + def duplicable? + false + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/enumerable.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/enumerable.rb new file mode 100644 index 000000000..f1469aa0e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/enumerable.rb @@ -0,0 +1,69 @@ +module Enumerable + # Ruby 1.8.7 introduces group_by, but the result isn't ordered. Override it. + remove_method(:group_by) if [].respond_to?(:group_by) && RUBY_VERSION < '1.9' + + # Collect an enumerable into sets, grouped by the result of a block. Useful, + # for example, for grouping records by date. + # + # Example: + # + # latest_transcripts.group_by(&:day).each do |day, transcripts| + # p "#{day} -> #{transcripts.map(&:class).join(', ')}" + # end + # "2006-03-01 -> Transcript" + # "2006-02-28 -> Transcript" + # "2006-02-27 -> Transcript, Transcript" + # "2006-02-26 -> Transcript, Transcript" + # "2006-02-25 -> Transcript" + # "2006-02-24 -> Transcript, Transcript" + # "2006-02-23 -> Transcript" + def group_by + inject ActiveSupport::OrderedHash.new do |grouped, element| + (grouped[yield(element)] ||= []) << element + grouped + end + end unless [].respond_to?(:group_by) + + # Calculates a sum from the elements. Examples: + # + # payments.sum { |p| p.price * p.tax_rate } + # payments.sum(&:price) + # + # The latter is a shortcut for: + # + # payments.inject { |sum, p| sum + p.price } + # + # It can also calculate the sum without the use of a block. + # + # [5, 15, 10].sum # => 30 + # ["foo", "bar"].sum # => "foobar" + # [[1, 2], [3, 1, 5]].sum => [1, 2, 3, 1, 5] + # + # The default sum of an empty list is zero. You can override this default: + # + # [].sum(Payment.new(0)) { |i| i.amount } # => Payment.new(0) + # + def sum(identity = 0, &block) + return identity unless size > 0 + + if block_given? + map(&block).sum + else + inject { |sum, element| sum + element } + end + end + + # Convert an enumerable to a hash. Examples: + # + # people.index_by(&:login) + # => { "nextangle" => <Person ...>, "chade-" => <Person ...>, ...} + # people.index_by { |person| "#{person.first_name} #{person.last_name}" } + # => { "Chade- Fowlersburg-e" => <Person ...>, "David Heinemeier Hansson" => <Person ...>, ...} + # + def index_by + inject({}) do |accum, elem| + accum[yield(elem)] = elem + accum + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/exception.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/exception.rb new file mode 100644 index 000000000..57c856833 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/exception.rb @@ -0,0 +1,41 @@ +module ActiveSupport + if RUBY_VERSION >= '1.9' + FrozenObjectError = RuntimeError + else + FrozenObjectError = TypeError + end +end + +class Exception # :nodoc: + def clean_message + Pathname.clean_within message + end + + TraceSubstitutions = [] + FrameworkRegexp = /generated|vendor|dispatch|ruby|script\/\w+/ + + def clean_backtrace + backtrace.collect do |line| + Pathname.clean_within(TraceSubstitutions.inject(line) do |result, (regexp, sub)| + result.gsub regexp, sub + end) + end + end + + def application_backtrace + before_application_frame = true + + trace = clean_backtrace.reject do |line| + non_app_frame = (line =~ FrameworkRegexp) + before_application_frame = false unless non_app_frame + non_app_frame && ! before_application_frame + end + + # If we didn't find any application frames, return an empty app trace. + before_application_frame ? [] : trace + end + + def framework_backtrace + clean_backtrace.grep FrameworkRegexp + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/file.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/file.rb new file mode 100644 index 000000000..45d93b220 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/file.rb @@ -0,0 +1,21 @@ +require 'tempfile' + +# Write to a file atomically. Useful for situations where you don't +# want other processes or threads to see half-written files. +# +# File.atomic_write("important.file") do |file| +# file.write("hello") +# end +# +# If your temp directory is not on the same filesystem as the file you're +# trying to write, you can provide a different temporary directory. +# +# File.atomic_write("/data/something.important", "/data/tmp") do |f| +# file.write("hello") +# end +def File.atomic_write(file_name, temp_dir = Dir.tmpdir) + temp_file = Tempfile.new(File.basename(file_name), temp_dir) + yield temp_file + temp_file.close + File.rename(temp_file.path, file_name) +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/float.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/float.rb new file mode 100644 index 000000000..86862b715 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/float.rb @@ -0,0 +1,5 @@ +require 'active_support/core_ext/float/rounding' + +class Float #:nodoc: + include ActiveSupport::CoreExtensions::Float::Rounding +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/float/rounding.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/float/rounding.rb new file mode 100644 index 000000000..062d46683 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/float/rounding.rb @@ -0,0 +1,24 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Float #:nodoc: + module Rounding + def self.included(base) #:nodoc: + base.class_eval do + alias_method :round_without_precision, :round + alias_method :round, :round_with_precision + end + end + + # Rounds the float with the specified precision. + # + # x = 1.337 + # x.round # => 1 + # x.round(1) # => 1.3 + # x.round(2) # => 1.34 + def round_with_precision(precision = nil) + precision.nil? ? round_without_precision : (self * (10 ** precision)).round / (10 ** precision).to_f + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash.rb new file mode 100644 index 000000000..6cbd9dd37 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash.rb @@ -0,0 +1,13 @@ +%w(keys indifferent_access reverse_merge conversions diff slice except).each do |ext| + require "active_support/core_ext/hash/#{ext}" +end + +class Hash #:nodoc: + include ActiveSupport::CoreExtensions::Hash::Keys + include ActiveSupport::CoreExtensions::Hash::IndifferentAccess + include ActiveSupport::CoreExtensions::Hash::ReverseMerge + include ActiveSupport::CoreExtensions::Hash::Conversions + include ActiveSupport::CoreExtensions::Hash::Diff + include ActiveSupport::CoreExtensions::Hash::Slice + include ActiveSupport::CoreExtensions::Hash::Except +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/conversions.rb new file mode 100644 index 000000000..2c606b401 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/conversions.rb @@ -0,0 +1,259 @@ +require 'date' +require 'cgi' +require 'builder' +require 'xmlsimple' + +# Locked down XmlSimple#xml_in_string +class XmlSimple + # Same as xml_in but doesn't try to smartly shoot itself in the foot. + def xml_in_string(string, options = nil) + handle_options('in', options) + + @doc = parse(string) + result = collapse(@doc.root) + + if @options['keeproot'] + merge({}, @doc.root.name, result) + else + result + end + end + + def self.xml_in_string(string, options = nil) + new.xml_in_string(string, options) + end +end + +# This module exists to decorate files deserialized using Hash.from_xml with +# the <tt>original_filename</tt> and <tt>content_type</tt> methods. +module FileLike #:nodoc: + attr_writer :original_filename, :content_type + + def original_filename + @original_filename || 'untitled' + end + + def content_type + @content_type || 'application/octet-stream' + end +end + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module Conversions + + XML_TYPE_NAMES = { + "Symbol" => "symbol", + "Fixnum" => "integer", + "Bignum" => "integer", + "BigDecimal" => "decimal", + "Float" => "float", + "Date" => "date", + "DateTime" => "datetime", + "Time" => "datetime", + "TrueClass" => "boolean", + "FalseClass" => "boolean" + } unless defined?(XML_TYPE_NAMES) + + XML_FORMATTING = { + "symbol" => Proc.new { |symbol| symbol.to_s }, + "date" => Proc.new { |date| date.to_s(:db) }, + "datetime" => Proc.new { |time| time.xmlschema }, + "binary" => Proc.new { |binary| ActiveSupport::Base64.encode64(binary) }, + "yaml" => Proc.new { |yaml| yaml.to_yaml } + } unless defined?(XML_FORMATTING) + + # TODO: use Time.xmlschema instead of Time.parse; + # use regexp instead of Date.parse + unless defined?(XML_PARSING) + XML_PARSING = { + "symbol" => Proc.new { |symbol| symbol.to_sym }, + "date" => Proc.new { |date| ::Date.parse(date) }, + "datetime" => Proc.new { |time| ::Time.parse(time).utc rescue ::DateTime.parse(time).utc }, + "integer" => Proc.new { |integer| integer.to_i }, + "float" => Proc.new { |float| float.to_f }, + "decimal" => Proc.new { |number| BigDecimal(number) }, + "boolean" => Proc.new { |boolean| %w(1 true).include?(boolean.strip) }, + "string" => Proc.new { |string| string.to_s }, + "yaml" => Proc.new { |yaml| YAML::load(yaml) rescue yaml }, + "base64Binary" => Proc.new { |bin| ActiveSupport::Base64.decode64(bin) }, + "file" => Proc.new do |file, entity| + f = StringIO.new(ActiveSupport::Base64.decode64(file)) + f.extend(FileLike) + f.original_filename = entity['name'] + f.content_type = entity['content_type'] + f + end + } + + XML_PARSING.update( + "double" => XML_PARSING["float"], + "dateTime" => XML_PARSING["datetime"] + ) + end + + def self.included(klass) + klass.extend(ClassMethods) + end + + # Converts a hash into a string suitable for use as a URL query string. An optional <tt>namespace</tt> can be + # passed to enclose the param names (see example below). + # + # ==== Example: + # { :name => 'David', :nationality => 'Danish' }.to_query # => "name=David&nationality=Danish" + # + # { :name => 'David', :nationality => 'Danish' }.to_query('user') # => "user%5Bname%5D=David&user%5Bnationality%5D=Danish" + def to_query(namespace = nil) + collect do |key, value| + value.to_query(namespace ? "#{namespace}[#{key}]" : key) + end.sort * '&' + end + + alias_method :to_param, :to_query + + def to_xml(options = {}) + options[:indent] ||= 2 + options.reverse_merge!({ :builder => Builder::XmlMarkup.new(:indent => options[:indent]), + :root => "hash" }) + options[:builder].instruct! unless options.delete(:skip_instruct) + dasherize = !options.has_key?(:dasherize) || options[:dasherize] + root = dasherize ? options[:root].to_s.dasherize : options[:root].to_s + + options[:builder].__send__(:method_missing, root) do + each do |key, value| + case value + when ::Hash + value.to_xml(options.merge({ :root => key, :skip_instruct => true })) + when ::Array + value.to_xml(options.merge({ :root => key, :children => key.to_s.singularize, :skip_instruct => true})) + when ::Method, ::Proc + # If the Method or Proc takes two arguments, then + # pass the suggested child element name. This is + # used if the Method or Proc will be operating over + # multiple records and needs to create an containing + # element that will contain the objects being + # serialized. + if 1 == value.arity + value.call(options.merge({ :root => key, :skip_instruct => true })) + else + value.call(options.merge({ :root => key, :skip_instruct => true }), key.to_s.singularize) + end + else + if value.respond_to?(:to_xml) + value.to_xml(options.merge({ :root => key, :skip_instruct => true })) + else + type_name = XML_TYPE_NAMES[value.class.name] + + key = dasherize ? key.to_s.dasherize : key.to_s + + attributes = options[:skip_types] || value.nil? || type_name.nil? ? { } : { :type => type_name } + if value.nil? + attributes[:nil] = true + end + + options[:builder].tag!(key, + XML_FORMATTING[type_name] ? XML_FORMATTING[type_name].call(value) : value, + attributes + ) + end + end + end + + yield options[:builder] if block_given? + end + + end + + module ClassMethods + def from_xml(xml) + # TODO: Refactor this into something much cleaner that doesn't rely on XmlSimple + typecast_xml_value(undasherize_keys(XmlSimple.xml_in_string(xml, + 'forcearray' => false, + 'forcecontent' => true, + 'keeproot' => true, + 'contentkey' => '__content__') + )) + end + + private + def typecast_xml_value(value) + case value.class.to_s + when 'Hash' + if value['type'] == 'array' + child_key, entries = value.detect { |k,v| k != 'type' } # child_key is throwaway + if entries.nil? || (c = value['__content__'] && c.blank?) + [] + else + case entries.class.to_s # something weird with classes not matching here. maybe singleton methods breaking is_a? + when "Array" + entries.collect { |v| typecast_xml_value(v) } + when "Hash" + [typecast_xml_value(entries)] + else + raise "can't typecast #{entries.inspect}" + end + end + elsif value.has_key?("__content__") + content = value["__content__"] + if parser = XML_PARSING[value["type"]] + if parser.arity == 2 + XML_PARSING[value["type"]].call(content, value) + else + XML_PARSING[value["type"]].call(content) + end + else + content + end + elsif value['type'] == 'string' && value['nil'] != 'true' + "" + # blank or nil parsed values are represented by nil + elsif value.blank? || value['nil'] == 'true' + nil + # If the type is the only element which makes it then + # this still makes the value nil, except if type is + # a XML node(where type['value'] is a Hash) + elsif value['type'] && value.size == 1 && !value['type'].is_a?(::Hash) + nil + else + xml_value = value.inject({}) do |h,(k,v)| + h[k] = typecast_xml_value(v) + h + end + + # Turn { :files => { :file => #<StringIO> } into { :files => #<StringIO> } so it is compatible with + # how multipart uploaded files from HTML appear + xml_value["file"].is_a?(StringIO) ? xml_value["file"] : xml_value + end + when 'Array' + value.map! { |i| typecast_xml_value(i) } + case value.length + when 0 then nil + when 1 then value.first + else value + end + when 'String' + value + else + raise "can't typecast #{value.class.name} - #{value.inspect}" + end + end + + def undasherize_keys(params) + case params.class.to_s + when "Hash" + params.inject({}) do |h,(k,v)| + h[k.to_s.tr("-", "_")] = undasherize_keys(v) + h + end + when "Array" + params.map { |v| undasherize_keys(v) } + else + params + end + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/diff.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/diff.rb new file mode 100644 index 000000000..6abd67882 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/diff.rb @@ -0,0 +1,19 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module Diff + # Returns a hash that represents the difference between two hashes. + # + # Examples: + # + # {1 => 2}.diff(1 => 2) # => {} + # {1 => 2}.diff(1 => 3) # => {1 => 2} + # {}.diff(1 => 2) # => {1 => 2} + # {1 => 2, 3 => 4}.diff(1 => 2) # => {3 => 4} + def diff(h2) + self.dup.delete_if { |k, v| h2[k] == v }.merge(h2.dup.delete_if { |k, v| self.has_key?(k) }) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/except.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/except.rb new file mode 100644 index 000000000..8362cd880 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/except.rb @@ -0,0 +1,24 @@ +require 'set' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + # Return a hash that includes everything but the given keys. This is useful for + # limiting a set of parameters to everything but a few known toggles: + # + # @person.update_attributes(params[:person].except(:admin)) + module Except + # Returns a new hash without the given keys. + def except(*keys) + rejected = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys) + reject { |key,| rejected.include?(key) } + end + + # Replaces the hash without only the given keys. + def except!(*keys) + replace(except(*keys)) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/indifferent_access.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/indifferent_access.rb new file mode 100644 index 000000000..c96c5160b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/indifferent_access.rb @@ -0,0 +1,137 @@ +# This class has dubious semantics and we only have it so that +# people can write params[:key] instead of params['key'] +# and they get the same value for both keys. + +class HashWithIndifferentAccess < Hash + def initialize(constructor = {}) + if constructor.is_a?(Hash) + super() + update(constructor) + else + super(constructor) + end + end + + def default(key = nil) + if key.is_a?(Symbol) && include?(key = key.to_s) + self[key] + else + super + end + end + + alias_method :regular_writer, :[]= unless method_defined?(:regular_writer) + alias_method :regular_update, :update unless method_defined?(:regular_update) + + # Assigns a new value to the hash: + # + # hash = HashWithIndifferentAccess.new + # hash[:key] = "value" + # + def []=(key, value) + regular_writer(convert_key(key), convert_value(value)) + end + + # Updates the instantized hash with values from the second: + # + # hash_1 = HashWithIndifferentAccess.new + # hash_1[:key] = "value" + # + # hash_2 = HashWithIndifferentAccess.new + # hash_2[:key] = "New Value!" + # + # hash_1.update(hash_2) # => {"key"=>"New Value!"} + # + def update(other_hash) + other_hash.each_pair { |key, value| regular_writer(convert_key(key), convert_value(value)) } + self + end + + alias_method :merge!, :update + + # Checks the hash for a key matching the argument passed in: + # + # hash = HashWithIndifferentAccess.new + # hash["key"] = "value" + # hash.key? :key # => true + # hash.key? "key" # => true + # + def key?(key) + super(convert_key(key)) + end + + alias_method :include?, :key? + alias_method :has_key?, :key? + alias_method :member?, :key? + + # Fetches the value for the specified key, same as doing hash[key] + def fetch(key, *extras) + super(convert_key(key), *extras) + end + + # Returns an array of the values at the specified indices: + # + # hash = HashWithIndifferentAccess.new + # hash[:a] = "x" + # hash[:b] = "y" + # hash.values_at("a", "b") # => ["x", "y"] + # + def values_at(*indices) + indices.collect {|key| self[convert_key(key)]} + end + + # Returns an exact copy of the hash. + def dup + HashWithIndifferentAccess.new(self) + end + + # Merges the instantized and the specified hashes together, giving precedence to the values from the second hash + # Does not overwrite the existing hash. + def merge(hash) + self.dup.update(hash) + end + + # Removes a specified key from the hash. + def delete(key) + super(convert_key(key)) + end + + def stringify_keys!; self end + def symbolize_keys!; self end + def to_options!; self end + + # Convert to a Hash with String keys. + def to_hash + Hash.new(default).merge(self) + end + + protected + def convert_key(key) + key.kind_of?(Symbol) ? key.to_s : key + end + + def convert_value(value) + case value + when Hash + value.with_indifferent_access + when Array + value.collect { |e| e.is_a?(Hash) ? e.with_indifferent_access : e } + else + value + end + end +end + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module IndifferentAccess #:nodoc: + def with_indifferent_access + hash = HashWithIndifferentAccess.new(self) + hash.default = self.default + hash + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/keys.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/keys.rb new file mode 100644 index 000000000..7312bcb41 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/keys.rb @@ -0,0 +1,52 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + module Keys + # Return a new hash with all keys converted to strings. + def stringify_keys + inject({}) do |options, (key, value)| + options[key.to_s] = value + options + end + end + + # Destructively convert all keys to strings. + def stringify_keys! + keys.each do |key| + self[key.to_s] = delete(key) + end + self + end + + # Return a new hash with all keys converted to symbols. + def symbolize_keys + inject({}) do |options, (key, value)| + options[(key.to_sym rescue key) || key] = value + options + end + end + + # Destructively convert all keys to symbols. + def symbolize_keys! + self.replace(self.symbolize_keys) + end + + alias_method :to_options, :symbolize_keys + alias_method :to_options!, :symbolize_keys! + + # Validate all keys in a hash match *valid keys, raising ArgumentError on a mismatch. + # Note that keys are NOT treated indifferently, meaning if you use strings for keys but assert symbols + # as keys, this will fail. + # + # ==== Examples: + # { :name => "Rob", :years => "28" }.assert_valid_keys(:name, :age) # => raises "ArgumentError: Unknown key(s): years" + # { :name => "Rob", :age => "28" }.assert_valid_keys("name", "age") # => raises "ArgumentError: Unknown key(s): name, age" + # { :name => "Rob", :age => "28" }.assert_valid_keys(:name, :age) # => passes, raises nothing + def assert_valid_keys(*valid_keys) + unknown_keys = keys - [valid_keys].flatten + raise(ArgumentError, "Unknown key(s): #{unknown_keys.join(", ")}") unless unknown_keys.empty? + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/reverse_merge.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/reverse_merge.rb new file mode 100644 index 000000000..7af10846e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/reverse_merge.rb @@ -0,0 +1,28 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + # Allows for reverse merging where its the keys in the calling hash that wins over those in the <tt>other_hash</tt>. + # This is particularly useful for initializing an incoming option hash with default values: + # + # def setup(options = {}) + # options.reverse_merge! :size => 25, :velocity => 10 + # end + # + # The default <tt>:size</tt> and <tt>:velocity</tt> is only set if the +options+ passed in doesn't already have those keys set. + module ReverseMerge + # Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second. + def reverse_merge(other_hash) + other_hash.merge(self) + end + + # Performs the opposite of merge, with the keys and values from the first hash taking precedence over the second. + # Modifies the receiver in place. + def reverse_merge!(other_hash) + replace(reverse_merge(other_hash)) + end + + alias_method :reverse_update, :reverse_merge! + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/slice.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/slice.rb new file mode 100644 index 000000000..6fe5e0533 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/hash/slice.rb @@ -0,0 +1,28 @@ +require 'set' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Hash #:nodoc: + # Slice a hash to include only the given keys. This is useful for + # limiting an options hash to valid keys before passing to a method: + # + # def search(criteria = {}) + # assert_valid_keys(:mass, :velocity, :time) + # end + # + # search(options.slice(:mass, :velocity, :time)) + module Slice + # Returns a new hash with only the given keys. + def slice(*keys) + allowed = Set.new(respond_to?(:convert_key) ? keys.map { |key| convert_key(key) } : keys) + reject { |key,| !allowed.include?(key) } + end + + # Replaces the hash with only the given keys. + def slice!(*keys) + replace(slice(*keys)) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer.rb new file mode 100644 index 000000000..d1e6d76ac --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer.rb @@ -0,0 +1,7 @@ +require 'active_support/core_ext/integer/even_odd' +require 'active_support/core_ext/integer/inflections' + +class Integer #:nodoc: + include ActiveSupport::CoreExtensions::Integer::EvenOdd + include ActiveSupport::CoreExtensions::Integer::Inflections +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer/even_odd.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer/even_odd.rb new file mode 100644 index 000000000..b1d1e2806 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer/even_odd.rb @@ -0,0 +1,29 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Integer #:nodoc: + # For checking if a fixnum is even or odd. + # + # 2.even? # => true + # 2.odd? # => false + # 1.even? # => false + # 1.odd? # => true + # 0.even? # => true + # 0.odd? # => false + # -1.even? # => false + # -1.odd? # => true + module EvenOdd + def multiple_of?(number) + self % number == 0 + end + + def even? + multiple_of? 2 + end if RUBY_VERSION < '1.9' + + def odd? + !even? + end if RUBY_VERSION < '1.9' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer/inflections.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer/inflections.rb new file mode 100644 index 000000000..804702beb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/integer/inflections.rb @@ -0,0 +1,20 @@ +require 'active_support/inflector' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Integer #:nodoc: + module Inflections + # Ordinalize turns a number into an ordinal string used to denote the + # position in an ordered sequence such as 1st, 2nd, 3rd, 4th. + # + # 1.ordinalize # => "1st" + # 2.ordinalize # => "2nd" + # 1002.ordinalize # => "1002nd" + # 1003.ordinalize # => "1003rd" + def ordinalize + Inflector.ordinalize(self) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel.rb new file mode 100644 index 000000000..1922d804b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel.rb @@ -0,0 +1,5 @@ +require 'active_support/core_ext/kernel/daemonizing' +require 'active_support/core_ext/kernel/reporting' +require 'active_support/core_ext/kernel/agnostics' +require 'active_support/core_ext/kernel/requires' +require 'active_support/core_ext/kernel/debugger' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/agnostics.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/agnostics.rb new file mode 100644 index 000000000..c0cb4fb42 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/agnostics.rb @@ -0,0 +1,11 @@ +class Object + # Makes backticks behave (somewhat more) similarly on all platforms. + # On win32 `nonexistent_command` raises Errno::ENOENT; on Unix, the + # spawned shell prints a message to stderr and sets $?. We emulate + # Unix on the former but not the latter. + def `(command) #:nodoc: + super + rescue Errno::ENOENT => e + STDERR.puts "#$0: #{e}" + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/daemonizing.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/daemonizing.rb new file mode 100644 index 000000000..ed9d1f9bf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/daemonizing.rb @@ -0,0 +1,7 @@ +module Kernel + # Turns the current script into a daemon process that detaches from the console. + # It can be shut down with a TERM signal. + def daemonize + Process.daemon + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/debugger.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/debugger.rb new file mode 100644 index 000000000..c74d6cf88 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/debugger.rb @@ -0,0 +1,13 @@ +module Kernel + unless respond_to?(:debugger) + # Starts a debugging session if ruby-debug has been loaded (call script/server --debugger to do load it). + def debugger + RAILS_DEFAULT_LOGGER.info "\n***** Debugger requested, but was not available: Start server with --debugger to enable *****\n" + end + end + + def breakpoint + RAILS_DEFAULT_LOGGER.info "\n***** The 'breakpoint' command has been renamed 'debugger' -- please change *****\n" + debugger + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/reporting.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/reporting.rb new file mode 100644 index 000000000..0f101e8fa --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/reporting.rb @@ -0,0 +1,59 @@ +module Kernel + # Sets $VERBOSE to nil for the duration of the block and back to its original value afterwards. + # + # silence_warnings do + # value = noisy_call # no warning voiced + # end + # + # noisy_call # warning voiced + def silence_warnings + old_verbose, $VERBOSE = $VERBOSE, nil + yield + ensure + $VERBOSE = old_verbose + end + + # Sets $VERBOSE to true for the duration of the block and back to its original value afterwards. + def enable_warnings + old_verbose, $VERBOSE = $VERBOSE, true + yield + ensure + $VERBOSE = old_verbose + end + + # For compatibility + def silence_stderr #:nodoc: + silence_stream(STDERR) { yield } + end + + # Silences any stream for the duration of the block. + # + # silence_stream(STDOUT) do + # puts 'This will never be seen' + # end + # + # puts 'But this will' + def silence_stream(stream) + old_stream = stream.dup + stream.reopen(RUBY_PLATFORM =~ /mswin/ ? 'NUL:' : '/dev/null') + stream.sync = true + yield + ensure + stream.reopen(old_stream) + end + + # Blocks and ignores any exception passed as argument if raised within the block. + # + # suppress(ZeroDivisionError) do + # 1/0 + # puts "This code is NOT reached" + # end + # + # puts "This code gets executed and nothing related to ZeroDivisionError was seen" + def suppress(*exception_classes) + begin yield + rescue Exception => e + raise unless exception_classes.any? { |cls| e.kind_of?(cls) } + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/requires.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/requires.rb new file mode 100644 index 000000000..323fea49f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/kernel/requires.rb @@ -0,0 +1,24 @@ +module Kernel + # Require a library with fallback to RubyGems. Warnings during library + # loading are silenced to increase signal/noise for application warnings. + def require_library_or_gem(library_name) + silence_warnings do + begin + require library_name + rescue LoadError => cannot_require + # 1. Requiring the module is unsuccessful, maybe it's a gem and nobody required rubygems yet. Try. + begin + require 'rubygems' + rescue LoadError => rubygems_not_installed + raise cannot_require + end + # 2. Rubygems is installed and loaded. Try to load the library again + begin + require library_name + rescue LoadError => gem_not_installed + raise cannot_require + end + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/load_error.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/load_error.rb new file mode 100644 index 000000000..6165e9544 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/load_error.rb @@ -0,0 +1,38 @@ +class MissingSourceFile < LoadError #:nodoc: + attr_reader :path + def initialize(message, path) + super(message) + @path = path + end + + def is_missing?(path) + path.gsub(/\.rb$/, '') == self.path.gsub(/\.rb$/, '') + end + + def self.from_message(message) + REGEXPS.each do |regexp, capture| + match = regexp.match(message) + return MissingSourceFile.new(message, match[capture]) unless match.nil? + end + nil + end + + REGEXPS = [ + [/^no such file to load -- (.+)$/i, 1], + [/^Missing \w+ (file\s*)?([^\s]+.rb)$/i, 2], + [/^Missing API definition file in (.+)$/i, 1] + ] unless defined?(REGEXPS) +end + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module LoadErrorExtensions #:nodoc: + module LoadErrorClassMethods #:nodoc: + def new(*args) + (self == LoadError && MissingSourceFile.from_message(args.first)) || super + end + end + ::LoadError.extend(LoadErrorClassMethods) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/logger.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/logger.rb new file mode 100644 index 000000000..9c1fd274a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/logger.rb @@ -0,0 +1,16 @@ +# Adds the 'around_level' method to Logger. + +class Logger + def self.define_around_helper(level) + module_eval <<-end_eval + def around_#{level}(before_message, after_message, &block) + self.#{level}(before_message) + return_value = block.call(self) + self.#{level}(after_message) + return return_value + end + end_eval + end + [:debug, :info, :error, :fatal].each {|level| define_around_helper(level) } + +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module.rb new file mode 100644 index 000000000..da8d5b376 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module.rb @@ -0,0 +1,8 @@ +require 'active_support/core_ext/module/inclusion' +require 'active_support/core_ext/module/attribute_accessors' +require 'active_support/core_ext/module/attr_internal' +require 'active_support/core_ext/module/attr_accessor_with_default' +require 'active_support/core_ext/module/delegation' +require 'active_support/core_ext/module/introspection' +require 'active_support/core_ext/module/loading' +require 'active_support/core_ext/module/aliasing' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/aliasing.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/aliasing.rb new file mode 100644 index 000000000..1894e3b0a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/aliasing.rb @@ -0,0 +1,70 @@ +class Module + # Encapsulates the common pattern of: + # + # alias_method :foo_without_feature, :foo + # alias_method :foo, :foo_with_feature + # + # With this, you simply do: + # + # alias_method_chain :foo, :feature + # + # And both aliases are set up for you. + # + # Query and bang methods (foo?, foo!) keep the same punctuation: + # + # alias_method_chain :foo?, :feature + # + # is equivalent to + # + # alias_method :foo_without_feature?, :foo? + # alias_method :foo?, :foo_with_feature? + # + # so you can safely chain foo, foo?, and foo! with the same feature. + def alias_method_chain(target, feature) + # Strip out punctuation on predicates or bang methods since + # e.g. target?_without_feature is not a valid method name. + aliased_target, punctuation = target.to_s.sub(/([?!=])$/, ''), $1 + yield(aliased_target, punctuation) if block_given? + + with_method, without_method = "#{aliased_target}_with_#{feature}#{punctuation}", "#{aliased_target}_without_#{feature}#{punctuation}" + + alias_method without_method, target + alias_method target, with_method + + case + when public_method_defined?(without_method) + public target + when protected_method_defined?(without_method) + protected target + when private_method_defined?(without_method) + private target + end + end + + # Allows you to make aliases for attributes, which includes + # getter, setter, and query methods. + # + # Example: + # + # class Content < ActiveRecord::Base + # # has a title attribute + # end + # + # class Email < Content + # alias_attribute :subject, :title + # end + # + # e = Email.find(1) + # e.title # => "Superstars" + # e.subject # => "Superstars" + # e.subject? # => true + # e.subject = "Megastars" + # e.title # => "Megastars" + def alias_attribute(new_name, old_name) + module_eval <<-STR, __FILE__, __LINE__+1 + def #{new_name}; self.#{old_name}; end + def #{new_name}?; self.#{old_name}?; end + def #{new_name}=(v); self.#{old_name} = v; end + STR + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attr_accessor_with_default.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attr_accessor_with_default.rb new file mode 100644 index 000000000..683789d85 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attr_accessor_with_default.rb @@ -0,0 +1,31 @@ +class Module + # Declare an attribute accessor with an initial default return value. + # + # To give attribute <tt>:age</tt> the initial value <tt>25</tt>: + # + # class Person + # attr_accessor_with_default :age, 25 + # end + # + # some_person.age + # => 25 + # some_person.age = 26 + # some_person.age + # => 26 + # + # To give attribute <tt>:element_name</tt> a dynamic default value, evaluated + # in scope of self: + # + # attr_accessor_with_default(:element_name) { name.underscore } + # + def attr_accessor_with_default(sym, default = nil, &block) + raise 'Default value or block required' unless !default.nil? || block + define_method(sym, block_given? ? block : Proc.new { default }) + module_eval(<<-EVAL, __FILE__, __LINE__) + def #{sym}=(value) + class << self; attr_reader :#{sym} end + @#{sym} = value + end + EVAL + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attr_internal.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attr_internal.rb new file mode 100644 index 000000000..b66c0d750 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attr_internal.rb @@ -0,0 +1,32 @@ +class Module + # Declares an attribute reader backed by an internally-named instance variable. + def attr_internal_reader(*attrs) + attrs.each do |attr| + module_eval "def #{attr}() #{attr_internal_ivar_name(attr)} end" + end + end + + # Declares an attribute writer backed by an internally-named instance variable. + def attr_internal_writer(*attrs) + attrs.each do |attr| + module_eval "def #{attr}=(v) #{attr_internal_ivar_name(attr)} = v end" + end + end + + # Declares an attribute reader and writer backed by an internally-named instance + # variable. + def attr_internal_accessor(*attrs) + attr_internal_reader(*attrs) + attr_internal_writer(*attrs) + end + + alias_method :attr_internal, :attr_internal_accessor + + private + mattr_accessor :attr_internal_naming_format + self.attr_internal_naming_format = '@_%s' + + def attr_internal_ivar_name(attr) + attr_internal_naming_format % attr + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attribute_accessors.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attribute_accessors.rb new file mode 100644 index 000000000..51e1c9af9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/attribute_accessors.rb @@ -0,0 +1,58 @@ +# Extends the module object with module and instance accessors for class attributes, +# just like the native attr* accessors for instance attributes. +# +# module AppConfiguration +# mattr_accessor :google_api_key +# self.google_api_key = "123456789" +# +# mattr_accessor :paypal_url +# self.paypal_url = "www.sandbox.paypal.com" +# end +# +# AppConfiguration.google_api_key = "overriding the api key!" +class Module + def mattr_reader(*syms) + syms.each do |sym| + next if sym.is_a?(Hash) + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym} + @@#{sym} + end + + def #{sym} + @@#{sym} + end + EOS + end + end + + def mattr_writer(*syms) + options = syms.extract_options! + syms.each do |sym| + class_eval(<<-EOS, __FILE__, __LINE__) + unless defined? @@#{sym} + @@#{sym} = nil + end + + def self.#{sym}=(obj) + @@#{sym} = obj + end + + #{" + def #{sym}=(obj) + @@#{sym} = obj + end + " unless options[:instance_writer] == false } + EOS + end + end + + def mattr_accessor(*syms) + mattr_reader(*syms) + mattr_writer(*syms) + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/delegation.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/delegation.rb new file mode 100644 index 000000000..e0b5f3e37 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/delegation.rb @@ -0,0 +1,64 @@ +class Module + # Provides a delegate class method to easily expose contained objects' methods + # as your own. Pass one or more methods (specified as symbols or strings) + # and the name of the target object as the final <tt>:to</tt> option (also a symbol + # or string). At least one method and the <tt>:to</tt> option are required. + # + # Delegation is particularly useful with Active Record associations: + # + # class Greeter < ActiveRecord::Base + # def hello() "hello" end + # def goodbye() "goodbye" end + # end + # + # class Foo < ActiveRecord::Base + # belongs_to :greeter + # delegate :hello, :to => :greeter + # end + # + # Foo.new.hello # => "hello" + # Foo.new.goodbye # => NoMethodError: undefined method `goodbye' for #<Foo:0x1af30c> + # + # Multiple delegates to the same target are allowed: + # + # class Foo < ActiveRecord::Base + # belongs_to :greeter + # delegate :hello, :goodbye, :to => :greeter + # end + # + # Foo.new.goodbye # => "goodbye" + # + # Methods can be delegated to instance variables, class variables, or constants + # by providing them as a symbols: + # + # class Foo + # CONSTANT_ARRAY = [0,1,2,3] + # @@class_array = [4,5,6,7] + # + # def initialize + # @instance_array = [8,9,10,11] + # end + # delegate :sum, :to => :CONSTANT_ARRAY + # delegate :min, :to => :@@class_array + # delegate :max, :to => :@instance_array + # end + # + # Foo.new.sum # => 6 + # Foo.new.min # => 4 + # Foo.new.max # => 11 + # + def delegate(*methods) + options = methods.pop + unless options.is_a?(Hash) && to = options[:to] + raise ArgumentError, "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, :to => :greeter)." + end + + methods.each do |method| + module_eval(<<-EOS, "(__DELEGATION__)", 1) + def #{method}(*args, &block) + #{to}.__send__(#{method.inspect}, *args, &block) + end + EOS + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/inclusion.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/inclusion.rb new file mode 100644 index 000000000..4f2384164 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/inclusion.rb @@ -0,0 +1,30 @@ +class Module + # Returns the classes in the current ObjectSpace where this module has been + # mixed in according to Module#included_modules. + # + # module M + # end + # + # module N + # include M + # end + # + # class C + # include M + # end + # + # class D < C + # end + # + # p M.included_in_classes # => [C, D] + # + def included_in_classes + classes = [] + ObjectSpace.each_object(Class) { |k| classes << k if k.included_modules.include?(self) } + + classes.reverse.inject([]) do |unique_classes, klass| + unique_classes << klass unless unique_classes.collect { |k| k.to_s }.include?(klass.to_s) + unique_classes + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/introspection.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/introspection.rb new file mode 100644 index 000000000..40bbebb7c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/introspection.rb @@ -0,0 +1,75 @@ +class Module + # Returns the module which contains this one according to its name. + # + # module M + # module N + # end + # end + # X = M::N + # + # p M::N.parent # => M + # p X.parent # => M + # + # The parent of top-level and anonymous modules is Object. + # + # p M.parent # => Object + # p Module.new.parent # => Object + # + def parent + parent_name = name.split('::')[0..-2] * '::' + parent_name.empty? ? Object : parent_name.constantize + end + + # Returns all the parents of this module according to its name, ordered from + # nested outwards. The receiver is not contained within the result. + # + # module M + # module N + # end + # end + # X = M::N + # + # p M.parents # => [Object] + # p M::N.parents # => [M, Object] + # p X.parents # => [M, Object] + # + def parents + parents = [] + parts = name.split('::')[0..-2] + until parts.empty? + parents << (parts * '::').constantize + parts.pop + end + parents << Object unless parents.include? Object + parents + end + + if RUBY_VERSION < '1.9' + # Returns the constants that have been defined locally by this object and + # not in an ancestor. This method is exact if running under Ruby 1.9. In + # previous versions it may miss some constants if their definition in some + # ancestor is identical to their definition in the receiver. + def local_constants + inherited = {} + + ancestors.each do |anc| + next if anc == self + anc.constants.each { |const| inherited[const] = anc.const_get(const) } + end + + constants.select do |const| + !inherited.key?(const) || inherited[const].object_id != const_get(const).object_id + end + end + else + def local_constants #:nodoc: + constants(false) + end + end + + # Returns the names of the constants defined locally rather than the + # constants themselves. See <tt>local_constants</tt>. + def local_constant_names + local_constants.map(&:to_s) + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/loading.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/loading.rb new file mode 100644 index 000000000..4b4b110b2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/module/loading.rb @@ -0,0 +1,23 @@ +class Module + # Returns String#underscore applied to the module name minus trailing classes. + # + # ActiveRecord.as_load_path # => "active_record" + # ActiveRecord::Associations.as_load_path # => "active_record/associations" + # ActiveRecord::Base.as_load_path # => "active_record" (Base is a class) + # + # The Kernel module gives an empty string by definition. + # + # Kernel.as_load_path # => "" + # Math.as_load_path # => "math" + def as_load_path + if self == Object || self == Kernel + '' + elsif is_a? Class + parent == self ? '' : parent.as_load_path + else + name.split('::').collect do |word| + word.underscore + end * '/' + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/name_error.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/name_error.rb new file mode 100644 index 000000000..49176c12d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/name_error.rb @@ -0,0 +1,17 @@ +# Add a +missing_name+ method to NameError instances. +class NameError #:nodoc: + # Add a method to obtain the missing name from a NameError. + def missing_name + $1 if /((::)?([A-Z]\w*)(::[A-Z]\w*)*)$/ =~ message + end + + # Was this exception raised because the given name was missing? + def missing_name?(name) + if name.is_a? Symbol + last_name = (missing_name || '').split('::').last + last_name == name.to_s + else + missing_name == name.to_s + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric.rb new file mode 100644 index 000000000..759b86b81 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric.rb @@ -0,0 +1,9 @@ +require 'active_support/core_ext/numeric/time' +require 'active_support/core_ext/numeric/bytes' +require 'active_support/core_ext/numeric/conversions' + +class Numeric #:nodoc: + include ActiveSupport::CoreExtensions::Numeric::Time + include ActiveSupport::CoreExtensions::Numeric::Bytes + include ActiveSupport::CoreExtensions::Numeric::Conversions +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/bytes.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/bytes.rb new file mode 100644 index 000000000..56477673a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/bytes.rb @@ -0,0 +1,44 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Numeric #:nodoc: + # Enables the use of byte calculations and declarations, like 45.bytes + 2.6.megabytes + module Bytes + def bytes + self + end + alias :byte :bytes + + def kilobytes + self * 1024 + end + alias :kilobyte :kilobytes + + def megabytes + self * 1024.kilobytes + end + alias :megabyte :megabytes + + def gigabytes + self * 1024.megabytes + end + alias :gigabyte :gigabytes + + def terabytes + self * 1024.gigabytes + end + alias :terabyte :terabytes + + def petabytes + self * 1024.terabytes + end + alias :petabyte :petabytes + + def exabytes + self * 1024.petabytes + end + alias :exabyte :exabytes + + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/conversions.rb new file mode 100644 index 000000000..e652ae5ca --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/conversions.rb @@ -0,0 +1,19 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Numeric #:nodoc: + module Conversions + # Assumes self represents an offset from UTC in seconds (as returned from Time#utc_offset) + # and turns this into an +HH:MM formatted string. Example: + # + # -21_600.to_utc_offset_s # => "-06:00" + def to_utc_offset_s(colon=true) + seconds = self + sign = (seconds < 0 ? -1 : 1) + hours = seconds.abs / 3600 + minutes = (seconds.abs % 3600) / 60 + "%+03d%s%02d" % [ hours * sign, colon ? ":" : "", minutes ] + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/time.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/time.rb new file mode 100644 index 000000000..aac698f7a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/numeric/time.rb @@ -0,0 +1,91 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Numeric #:nodoc: + # Enables the use of time calculations and declarations, like 45.minutes + 2.hours + 4.years. + # + # These methods use Time#advance for precise date calculations when using from_now, ago, etc. + # as well as adding or subtracting their results from a Time object. For example: + # + # # equivalent to Time.now.advance(:months => 1) + # 1.month.from_now + # + # # equivalent to Time.now.advance(:years => 2) + # 2.years.from_now + # + # # equivalent to Time.now.advance(:months => 4, :years => 5) + # (4.months + 5.years).from_now + # + # While these methods provide precise calculation when used as in the examples above, care + # should be taken to note that this is not true if the result of `months', `years', etc is + # converted before use: + # + # # equivalent to 30.days.to_i.from_now + # 1.month.to_i.from_now + # + # # equivalent to 365.25.days.to_f.from_now + # 1.year.to_f.from_now + # + # In such cases, Ruby's core + # Date[http://stdlib.rubyonrails.org/libdoc/date/rdoc/index.html] and + # Time[http://stdlib.rubyonrails.org/libdoc/time/rdoc/index.html] should be used for precision + # date and time arithmetic + module Time + def seconds + ActiveSupport::Duration.new(self, [[:seconds, self]]) + end + alias :second :seconds + + def minutes + ActiveSupport::Duration.new(self * 60, [[:seconds, self * 60]]) + end + alias :minute :minutes + + def hours + ActiveSupport::Duration.new(self * 3600, [[:seconds, self * 3600]]) + end + alias :hour :hours + + def days + ActiveSupport::Duration.new(self * 24.hours, [[:days, self]]) + end + alias :day :days + + def weeks + ActiveSupport::Duration.new(self * 7.days, [[:days, self * 7]]) + end + alias :week :weeks + + def fortnights + ActiveSupport::Duration.new(self * 2.weeks, [[:days, self * 14]]) + end + alias :fortnight :fortnights + + def months + ActiveSupport::Duration.new(self * 30.days, [[:months, self]]) + end + alias :month :months + + def years + ActiveSupport::Duration.new(self * 365.25.days, [[:years, self]]) + end + alias :year :years + + # Reads best without arguments: 10.minutes.ago + def ago(time = ::Time.now) + time - self + end + + # Reads best with argument: 10.minutes.until(time) + alias :until :ago + + # Reads best with argument: 10.minutes.since(time) + def since(time = ::Time.now) + time + self + end + + # Reads best without arguments: 10.minutes.from_now + alias :from_now :since + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object.rb new file mode 100644 index 000000000..bbc7d8167 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object.rb @@ -0,0 +1,4 @@ +require 'active_support/core_ext/object/conversions' +require 'active_support/core_ext/object/extending' +require 'active_support/core_ext/object/instance_variables' +require 'active_support/core_ext/object/misc' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/conversions.rb new file mode 100644 index 000000000..ad752f0fc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/conversions.rb @@ -0,0 +1,14 @@ +class Object + # Alias of <tt>to_s</tt>. + def to_param + to_s + end + + # Converts an object into a string suitable for use as a URL query string, using the given <tt>key</tt> as the + # param name. + # + # Note: This method is defined as a default implementation for all Objects for Hash#to_query to work. + def to_query(key) + "#{CGI.escape(key.to_s)}=#{CGI.escape(to_param.to_s)}" + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/extending.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/extending.rb new file mode 100644 index 000000000..43a2be916 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/extending.rb @@ -0,0 +1,58 @@ +class Object + def remove_subclasses_of(*superclasses) #:nodoc: + Class.remove_class(*subclasses_of(*superclasses)) + end + + def subclasses_of(*superclasses) #:nodoc: + subclasses = [] + + # Exclude this class unless it's a subclass of our supers and is defined. + # We check defined? in case we find a removed class that has yet to be + # garbage collected. This also fails for anonymous classes -- please + # submit a patch if you have a workaround. + ObjectSpace.each_object(Class) do |k| + if superclasses.any? { |superclass| k < superclass } && + (k.name.blank? || eval("defined?(::#{k}) && ::#{k}.object_id == k.object_id")) + subclasses << k + end + end + + subclasses + end + + def extended_by #:nodoc: + ancestors = class << self; ancestors end + ancestors.select { |mod| mod.class == Module } - [ Object, Kernel ] + end + + def extend_with_included_modules_from(object) #:nodoc: + object.extended_by.each { |mod| extend mod } + end + + unless defined? instance_exec # 1.9 + module InstanceExecMethods #:nodoc: + end + include InstanceExecMethods + + # Evaluate the block with the given arguments within the context of + # this object, so self is set to the method receiver. + # + # From Mauricio's http://eigenclass.org/hiki/bounded+space+instance_exec + def instance_exec(*args, &block) + begin + old_critical, Thread.critical = Thread.critical, true + n = 0 + n += 1 while respond_to?(method_name = "__instance_exec#{n}") + InstanceExecMethods.module_eval { define_method(method_name, &block) } + ensure + Thread.critical = old_critical + end + + begin + send(method_name, *args) + ensure + InstanceExecMethods.module_eval { remove_method(method_name) } rescue nil + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/instance_variables.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/instance_variables.rb new file mode 100644 index 000000000..9f1d4ed2a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/instance_variables.rb @@ -0,0 +1,74 @@ +class Object + # Available in 1.8.6 and later. + unless respond_to?(:instance_variable_defined?) + def instance_variable_defined?(variable) + instance_variables.include?(variable.to_s) + end + end + + # Returns a hash that maps instance variable names without "@" to their + # corresponding values. Keys are strings both in Ruby 1.8 and 1.9. + # + # class C + # def initialize(x, y) + # @x, @y = x, y + # end + # end + # + # C.new(0, 1).instance_values # => {"x" => 0, "y" => 1} + def instance_values #:nodoc: + instance_variables.inject({}) do |values, name| + values[name.to_s[1..-1]] = instance_variable_get(name) + values + end + end + + # Returns an array of instance variable names including "@". They are strings + # both in Ruby 1.8 and 1.9. + # + # class C + # def initialize(x, y) + # @x, @y = x, y + # end + # end + # + # C.new(0, 1).instance_variable_names # => ["@y", "@x"] + if RUBY_VERSION >= '1.9' + def instance_variable_names + instance_variables.map(&:to_s) + end + else + alias_method :instance_variable_names, :instance_variables + end + + # Copies the instance variables of +object+ into +self+. + # + # Instance variable names in the +exclude+ array are ignored. If +object+ + # responds to <tt>protected_instance_variables</tt> the ones returned are + # also ignored. For example, Rails controllers implement that method. + # + # In both cases strings and symbols are understood, and they have to include + # the at sign. + # + # class C + # def initialize(x, y, z) + # @x, @y, @z = x, y, z + # end + # + # def protected_instance_variables + # %w(@z) + # end + # end + # + # a = C.new(0, 1, 2) + # b = C.new(3, 4, 5) + # + # a.copy_instance_variables_from(b, [:@y]) + # # a is now: @x = 3, @y = 1, @z = 2 + def copy_instance_variables_from(object, exclude = []) #:nodoc: + exclude += object.protected_instance_variables if object.respond_to? :protected_instance_variables + + vars = object.instance_variables.map(&:to_s) - exclude.map(&:to_s) + vars.each { |name| instance_variable_set(name, object.instance_variable_get(name)) } + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/misc.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/misc.rb new file mode 100644 index 000000000..8384a1232 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/object/misc.rb @@ -0,0 +1,59 @@ +class Object + unless respond_to?(:send!) + # Anticipating Ruby 1.9 neutering send + alias send! send + end + + # A Ruby-ized realization of the K combinator, courtesy of Mikael Brockman. + # + # def foo + # returning values = [] do + # values << 'bar' + # values << 'baz' + # end + # end + # + # foo # => ['bar', 'baz'] + # + # def foo + # returning [] do |values| + # values << 'bar' + # values << 'baz' + # end + # end + # + # foo # => ['bar', 'baz'] + # + def returning(value) + yield(value) + value + end + + # An elegant way to refactor out common options + # + # with_options :order => 'created_at', :class_name => 'Comment' do |post| + # post.has_many :comments, :conditions => ['approved = ?', true], :dependent => :delete_all + # post.has_many :unapproved_comments, :conditions => ['approved = ?', false] + # post.has_many :all_comments + # end + # + # Can also be used with an explicit receiver: + # + # map.with_options :controller => "people" do |people| + # people.connect "/people", :action => "index" + # people.connect "/people/:id", :action => "show" + # end + # + def with_options(options) + yield ActiveSupport::OptionMerger.new(self, options) + end + + # A duck-type assistant method. For example, Active Support extends Date + # to define an acts_like_date? method, and extends Time to define + # acts_like_time?. As a result, we can do "x.acts_like?(:time)" and + # "x.acts_like?(:date)" to do duck-type-safe comparisons, since classes that + # we want to act like Time simply need to define an acts_like_time? method. + def acts_like?(duck) + respond_to? "acts_like_#{duck}?" + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/pathname.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/pathname.rb new file mode 100644 index 000000000..4c5318ee6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/pathname.rb @@ -0,0 +1,7 @@ +require 'pathname' +require 'active_support/core_ext/pathname/clean_within' + +class Pathname#:nodoc: + extend ActiveSupport::CoreExtensions::Pathname::CleanWithin +end + diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/pathname/clean_within.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/pathname/clean_within.rb new file mode 100644 index 000000000..ae03e1bc5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/pathname/clean_within.rb @@ -0,0 +1,14 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Pathname #:nodoc: + module CleanWithin + # Clean the paths contained in the provided string. + def clean_within(string) + string.gsub(%r{[\w. ]+(/[\w. ]+)+(\.rb)?(\b|$)}) do |path| + new(path).cleanpath + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/proc.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/proc.rb new file mode 100644 index 000000000..2ca23f62e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/proc.rb @@ -0,0 +1,12 @@ +class Proc #:nodoc: + def bind(object) + block, time = self, Time.now + (class << object; self end).class_eval do + method_name = "__bind_#{time.to_i}_#{time.usec}" + define_method(method_name, &block) + method = instance_method(method_name) + remove_method(method_name) + method + end.bind(object) + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/process.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/process.rb new file mode 100644 index 000000000..0b0bc6dc6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/process.rb @@ -0,0 +1 @@ +require 'active_support/core_ext/process/daemon' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/process/daemon.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/process/daemon.rb new file mode 100644 index 000000000..95ad5f8a5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/process/daemon.rb @@ -0,0 +1,25 @@ +if RUBY_VERSION < "1.9" + module Process + def self.daemon(nochdir = nil, noclose = nil) + exit if fork # Parent exits, child continues. + Process.setsid # Become session leader. + exit if fork # Zap session leader. See [1]. + + unless nochdir + Dir.chdir "/" # Release old working directory. + end + + File.umask 0000 # Ensure sensible umask. Adjust as needed. + + unless noclose + STDIN.reopen "/dev/null" # Free file descriptors and + STDOUT.reopen "/dev/null", "a" # point them somewhere sensible. + STDERR.reopen '/dev/null', 'a' + end + + trap("TERM") { exit } + + return 0 + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range.rb new file mode 100644 index 000000000..0d2b169e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range.rb @@ -0,0 +1,11 @@ +require 'active_support/core_ext/range/conversions' +require 'active_support/core_ext/range/overlaps' +require 'active_support/core_ext/range/include_range' +require 'active_support/core_ext/range/blockless_step' + +class Range #:nodoc: + include ActiveSupport::CoreExtensions::Range::Conversions + include ActiveSupport::CoreExtensions::Range::Overlaps + include ActiveSupport::CoreExtensions::Range::IncludeRange + include ActiveSupport::CoreExtensions::Range::BlocklessStep +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/blockless_step.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/blockless_step.rb new file mode 100644 index 000000000..39dac8563 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/blockless_step.rb @@ -0,0 +1,32 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Return an array when step is called without a block. + module BlocklessStep + def self.included(base) #:nodoc: + base.alias_method_chain :step, :blockless + end + + if RUBY_VERSION < '1.9' + def step_with_blockless(value, &block) + if block_given? + step_without_blockless(value, &block) + else + returning [] do |array| + step_without_blockless(value) { |step| array << step } + end + end + end + else + def step_with_blockless(value, &block) + if block_given? + step_without_blockless(value, &block) + else + step_without_blockless(value).to_a + end + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/conversions.rb new file mode 100644 index 000000000..932bdedad --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/conversions.rb @@ -0,0 +1,27 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Getting ranges in different convenient string representations and other objects + module Conversions + RANGE_FORMATS = { + :db => Proc.new { |start, stop| "BETWEEN '#{start.to_s(:db)}' AND '#{stop.to_s(:db)}'" } + } + + def self.included(base) #:nodoc: + base.class_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + # Gives a human readable format of the range. + # + # ==== Example: + # + # [1..100].to_formatted_s # => "1..100" + def to_formatted_s(format = :default) + RANGE_FORMATS[format] ? RANGE_FORMATS[format].call(first, last) : to_default_s + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/include_range.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/include_range.rb new file mode 100644 index 000000000..9a7d23569 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/include_range.rb @@ -0,0 +1,30 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Check if a Range includes another Range. + module IncludeRange + def self.included(base) #:nodoc: + base.alias_method_chain :include?, :range + end + + # Extends the default Range#include? to support range comparisons. + # (1..5).include?(1..5) # => true + # (1..5).include?(2..3) # => true + # (1..5).include?(2..6) # => false + # + # The native Range#include? behavior is untouched. + # ("a".."f").include?("c") # => true + # (5..9).include?(11) # => false + def include_with_range?(value) + if value.is_a?(::Range) + operator = exclude_end? ? :< : :<= + end_value = value.exclude_end? ? last.succ : last + include?(value.first) && (value.last <=> end_value).send(operator, 0) + else + include_without_range?(value) + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/overlaps.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/overlaps.rb new file mode 100644 index 000000000..43c69453e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/range/overlaps.rb @@ -0,0 +1,15 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Range #:nodoc: + # Check if Ranges overlap. + module Overlaps + # Compare two ranges and see if they overlap eachother + # (1..5).overlaps?(4..6) # => true + # (1..5).overlaps?(7..9) # => false + def overlaps?(other) + include?(other.first) || other.include?(first) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string.rb new file mode 100644 index 000000000..25386af70 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string.rb @@ -0,0 +1,18 @@ +require 'active_support/core_ext/string/inflections' +require 'active_support/core_ext/string/conversions' +require 'active_support/core_ext/string/access' +require 'active_support/core_ext/string/starts_ends_with' +require 'active_support/core_ext/string/iterators' +require 'active_support/core_ext/string/unicode' +require 'active_support/core_ext/string/xchar' +require 'active_support/core_ext/string/filters' + +class String #:nodoc: + include ActiveSupport::CoreExtensions::String::Access + include ActiveSupport::CoreExtensions::String::Conversions + include ActiveSupport::CoreExtensions::String::Filters + include ActiveSupport::CoreExtensions::String::Inflections + include ActiveSupport::CoreExtensions::String::StartsEndsWith + include ActiveSupport::CoreExtensions::String::Iterators + include ActiveSupport::CoreExtensions::String::Unicode +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/access.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/access.rb new file mode 100644 index 000000000..1a949c0b7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/access.rb @@ -0,0 +1,82 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + unless '1.9'.respond_to?(:force_encoding) + # Makes it easier to access parts of a string, such as specific characters and substrings. + module Access + # Returns the character at the +position+ treating the string as an array (where 0 is the first character). + # + # Examples: + # "hello".at(0) # => "h" + # "hello".at(4) # => "o" + # "hello".at(10) # => nil + def at(position) + chars[position, 1].to_s + end + + # Returns the remaining of the string from the +position+ treating the string as an array (where 0 is the first character). + # + # Examples: + # "hello".from(0) # => "hello" + # "hello".from(2) # => "llo" + # "hello".from(10) # => nil + def from(position) + chars[position..-1].to_s + end + + # Returns the beginning of the string up to the +position+ treating the string as an array (where 0 is the first character). + # + # Examples: + # "hello".to(0) # => "h" + # "hello".to(2) # => "hel" + # "hello".to(10) # => "hello" + def to(position) + chars[0..position].to_s + end + + # Returns the first character of the string or the first +limit+ characters. + # + # Examples: + # "hello".first # => "h" + # "hello".first(2) # => "he" + # "hello".first(10) # => "hello" + def first(limit = 1) + chars[0..(limit - 1)].to_s + end + + # Returns the last character of the string or the last +limit+ characters. + # + # Examples: + # "hello".last # => "o" + # "hello".last(2) # => "lo" + # "hello".last(10) # => "hello" + def last(limit = 1) + (chars[(-limit)..-1] || self).to_s + end + end + else + module Access #:nodoc: + def at(position) + self[position] + end + + def from(position) + self[position..-1] + end + + def to(position) + self[0..position] + end + + def first(limit = 1) + self[0..(limit - 1)] + end + + def last(limit = 1) + from(-limit) || self + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/conversions.rb new file mode 100644 index 000000000..d4334dcef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/conversions.rb @@ -0,0 +1,28 @@ +require 'date' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # Converting strings to other objects + module Conversions + # 'a'.ord == 'a'[0] for Ruby 1.9 forward compatibility. + def ord + self[0] + end if RUBY_VERSION < '1.9' + + # Form can be either :utc (default) or :local. + def to_time(form = :utc) + ::Time.send("#{form}_time", *::Date._parse(self, false).values_at(:year, :mon, :mday, :hour, :min, :sec).map { |arg| arg || 0 }) + end + + def to_date + ::Date.new(*::Date._parse(self, false).values_at(:year, :mon, :mday)) + end + + def to_datetime + ::DateTime.civil(*::Date._parse(self, false).values_at(:year, :mon, :mday, :hour, :min, :sec).map { |arg| arg || 0 }) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/filters.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/filters.rb new file mode 100644 index 000000000..0329fbb8d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/filters.rb @@ -0,0 +1,26 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + module Filters + # Returns the string, first removing all whitespace on both ends of + # the string, and then changing remaining consecutive whitespace + # groups into one space each. + # + # Examples: + # %{ Multi-line + # string }.squish # => "Multi-line string" + # " foo bar \n \t boo".squish # => "foo bar boo" + def squish + dup.squish! + end + + # Performs a destructive squish. See String#squish. + def squish! + strip! + gsub!(/\s+/, ' ') + self + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/inflections.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/inflections.rb new file mode 100644 index 000000000..a009d7c08 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/inflections.rb @@ -0,0 +1,148 @@ +require 'active_support/inflector' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # String inflections define new methods on the String class to transform names for different purposes. + # For instance, you can figure out the name of a database from the name of a class. + # + # "ScaleScore".tableize # => "scale_scores" + module Inflections + # Returns the plural form of the word in the string. + # + # "post".pluralize # => "posts" + # "octopus".pluralize # => "octopi" + # "sheep".pluralize # => "sheep" + # "words".pluralize # => "words" + # "the blue mailman".pluralize # => "the blue mailmen" + # "CamelOctopus".pluralize # => "CamelOctopi" + def pluralize + Inflector.pluralize(self) + end + + # The reverse of +pluralize+, returns the singular form of a word in a string. + # + # "posts".singularize # => "post" + # "octopi".singularize # => "octopus" + # "sheep".singluarize # => "sheep" + # "word".singluarize # => "word" + # "the blue mailmen".singularize # => "the blue mailman" + # "CamelOctopi".singularize # => "CamelOctopus" + def singularize + Inflector.singularize(self) + end + + # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize + # is set to <tt>:lower</tt> then camelize produces lowerCamelCase. + # + # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces. + # + # "active_record".camelize # => "ActiveRecord" + # "active_record".camelize(:lower) # => "activeRecord" + # "active_record/errors".camelize # => "ActiveRecord::Errors" + # "active_record/errors".camelize(:lower) # => "activeRecord::Errors" + def camelize(first_letter = :upper) + case first_letter + when :upper then Inflector.camelize(self, true) + when :lower then Inflector.camelize(self, false) + end + end + alias_method :camelcase, :camelize + + # Capitalizes all the words and replaces some characters in the string to create + # a nicer looking title. +titleize+ is meant for creating pretty output. It is not + # used in the Rails internals. + # + # +titleize+ is also aliased as +titlecase+. + # + # "man from the boondocks".titleize # => "Man From The Boondocks" + # "x-men: the last stand".titleize # => "X Men: The Last Stand" + def titleize + Inflector.titleize(self) + end + alias_method :titlecase, :titleize + + # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string. + # + # +underscore+ will also change '::' to '/' to convert namespaces to paths. + # + # "ActiveRecord".underscore # => "active_record" + # "ActiveRecord::Errors".underscore # => active_record/errors + def underscore + Inflector.underscore(self) + end + + # Replaces underscores with dashes in the string. + # + # "puni_puni" # => "puni-puni" + def dasherize + Inflector.dasherize(self) + end + + # Removes the module part from the constant expression in the string. + # + # "ActiveRecord::CoreExtensions::String::Inflections".demodulize # => "Inflections" + # "Inflections".demodulize # => "Inflections" + def demodulize + Inflector.demodulize(self) + end + + # Creates the name of a table like Rails does for models to table names. This method + # uses the +pluralize+ method on the last word in the string. + # + # "RawScaledScorer".tableize # => "raw_scaled_scorers" + # "egg_and_ham".tableize # => "egg_and_hams" + # "fancyCategory".tableize # => "fancy_categories" + def tableize + Inflector.tableize(self) + end + + # Create a class name from a plural table name like Rails does for table names to models. + # Note that this returns a string and not a class. (To convert to an actual class + # follow +classify+ with +constantize+.) + # + # "egg_and_hams".classify # => "EggAndHam" + # "posts".classify # => "Post" + # + # Singular names are not handled correctly. + # + # "business".classify # => "Busines" + def classify + Inflector.classify(self) + end + + # Capitalizes the first word, turns underscores into spaces, and strips '_id'. + # Like +titleize+, this is meant for creating pretty output. + # + # "employee_salary" # => "Employee salary" + # "author_id" # => "Author" + def humanize + Inflector.humanize(self) + end + + # Creates a foreign key name from a class name. + # +separate_class_name_and_id_with_underscore+ sets whether + # the method should put '_' between the name and 'id'. + # + # Examples + # "Message".foreign_key # => "message_id" + # "Message".foreign_key(false) # => "messageid" + # "Admin::Post".foreign_key # => "post_id" + def foreign_key(separate_class_name_and_id_with_underscore = true) + Inflector.foreign_key(self, separate_class_name_and_id_with_underscore) + end + + # +constantize+ tries to find a declared constant with the name specified + # in the string. It raises a NameError when the name is not in CamelCase + # or is not initialized. + # + # Examples + # "Module".constantize # => Module + # "Class".constantize # => Class + def constantize + Inflector.constantize(self) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/iterators.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/iterators.rb new file mode 100644 index 000000000..66a08a5cd --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/iterators.rb @@ -0,0 +1,21 @@ +require 'strscan' + +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # Custom string iterators + module Iterators + def self.append_features(base) + super unless '1.9'.respond_to?(:each_char) + end + + # Yields a single-character string for each character in the string. + # When $KCODE = 'UTF8', multi-byte characters are yielded appropriately. + def each_char + scanner, char = StringScanner.new(self), /./mu + loop { yield(scanner.scan(char) || break) } + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/starts_ends_with.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/starts_ends_with.rb new file mode 100644 index 000000000..09f9a188b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/starts_ends_with.rb @@ -0,0 +1,35 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + # Additional string tests. + module StartsEndsWith + def self.append_features(base) + if '1.8.7 and up'.respond_to?(:start_with?) + base.class_eval do + alias_method :starts_with?, :start_with? + alias_method :ends_with?, :end_with? + end + else + super + base.class_eval do + alias_method :start_with?, :starts_with? + alias_method :end_with?, :ends_with? + end + end + end + + # Does the string start with the specified +prefix+? + def starts_with?(prefix) + prefix = prefix.to_s + self[0, prefix.length] == prefix + end + + # Does the string end with the specified +suffix+? + def ends_with?(suffix) + suffix = suffix.to_s + self[-suffix.length, suffix.length] == suffix + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/unicode.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/unicode.rb new file mode 100644 index 000000000..5e20534d1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/unicode.rb @@ -0,0 +1,68 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module String #:nodoc: + unless '1.9'.respond_to?(:force_encoding) + # Define methods for handling unicode data. + module Unicode + def self.append_features(base) + if '1.8.7'.respond_to?(:chars) + base.class_eval { remove_method :chars } + end + super + end + + # +chars+ is a Unicode safe proxy for string methods. It creates and returns an instance of the + # ActiveSupport::Multibyte::Chars class which encapsulates the original string. A Unicode safe version of all + # the String methods are defined on this proxy class. Undefined methods are forwarded to String, so all of the + # string overrides can also be called through the +chars+ proxy. + # + # name = 'Claus Müller' + # name.reverse # => "rell??M sualC" + # name.length # => 13 + # + # name.chars.reverse.to_s # => "rellüM sualC" + # name.chars.length # => 12 + # + # + # All the methods on the chars proxy which normally return a string will return a Chars object. This allows + # method chaining on the result of any of these methods. + # + # name.chars.reverse.length # => 12 + # + # The Char object tries to be as interchangeable with String objects as possible: sorting and comparing between + # String and Char work like expected. The bang! methods change the internal string representation in the Chars + # object. Interoperability problems can be resolved easily with a +to_s+ call. + # + # For more information about the methods defined on the Chars proxy see ActiveSupport::Multibyte::Chars and + # ActiveSupport::Multibyte::Handlers::UTF8Handler. + def chars + ActiveSupport::Multibyte::Chars.new(self) + end + + # Returns true if the string has UTF-8 semantics (a String used for purely byte resources is unlikely to have + # them), returns false otherwise. + def is_utf8? + ActiveSupport::Multibyte::Handlers::UTF8Handler.consumes?(self) + end + end + else + module Unicode #:nodoc: + def chars + self + end + + def is_utf8? + case encoding + when Encoding::UTF_8 + valid_encoding? + when Encoding::ASCII_8BIT + dup.force_encoding('UTF-8').valid_encoding? + else + false + end + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/xchar.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/xchar.rb new file mode 100644 index 000000000..df186e42d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/string/xchar.rb @@ -0,0 +1,11 @@ +begin + # See http://bogomips.org/fast_xs/ by Eric Wong + require 'fast_xs' + + class String + alias_method :original_xs, :to_xs if method_defined?(:to_xs) + alias_method :to_xs, :fast_xs + end +rescue LoadError + # fast_xs extension unavailable. +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/symbol.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/symbol.rb new file mode 100644 index 000000000..e4ac44380 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/symbol.rb @@ -0,0 +1,14 @@ +unless :to_proc.respond_to?(:to_proc) + class Symbol + # Turns the symbol into a simple proc, which is especially useful for enumerations. Examples: + # + # # The same as people.collect { |p| p.name } + # people.collect(&:name) + # + # # The same as people.select { |p| p.manager? }.collect { |p| p.salary } + # people.select(&:manager?).collect(&:salary) + def to_proc + Proc.new { |*args| args.shift.__send__(self, *args) } + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/test.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/test.rb new file mode 100644 index 000000000..c0b19bdc5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/test.rb @@ -0,0 +1 @@ +require 'active_support/core_ext/test/unit/assertions' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/test/unit/assertions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/test/unit/assertions.rb new file mode 100644 index 000000000..77fe325fb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/test/unit/assertions.rb @@ -0,0 +1,64 @@ +module Test + module Unit + #-- + # FIXME: no Proc#binding in Ruby 2, must change this API + #++ + module Assertions + # Test numeric difference between the return value of an expression as a result of what is evaluated + # in the yielded block. + # + # assert_difference 'Article.count' do + # post :create, :article => {...} + # end + # + # An arbitrary expression is passed in and evaluated. + # + # assert_difference 'assigns(:article).comments(:reload).size' do + # post :create, :comment => {...} + # end + # + # An arbitrary positive or negative difference can be specified. The default is +1. + # + # assert_difference 'Article.count', -1 do + # post :delete, :id => ... + # end + # + # An array of expressions can also be passed in and evaluated. + # + # assert_difference [ 'Article.count', 'Post.count' ], +2 do + # post :create, :article => {...} + # end + # + # A error message can be specified. + # + # assert_difference 'Article.count', -1, "An Article should be destroyed" do + # post :delete, :id => ... + # end + def assert_difference(expressions, difference = 1, message = nil, &block) + expression_evaluations = Array(expressions).collect{ |expression| lambda { eval(expression, block.send!(:binding)) } } + + original_values = expression_evaluations.inject([]) { |memo, expression| memo << expression.call } + yield + expression_evaluations.each_with_index do |expression, i| + assert_equal original_values[i] + difference, expression.call, message + end + end + + # Assertion that the numeric result of evaluating an expression is not changed before and after + # invoking the passed in block. + # + # assert_no_difference 'Article.count' do + # post :create, :article => invalid_attributes + # end + # + # A error message can be specified. + # + # assert_no_difference 'Article.count', "An Article should not be destroyed" do + # post :create, :article => invalid_attributes + # end + def assert_no_difference(expressions, message = nil, &block) + assert_difference expressions, 0, message, &block + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time.rb new file mode 100644 index 000000000..ea50511a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time.rb @@ -0,0 +1,21 @@ +require 'date' +require 'time' + +# Ruby 1.8-cvs and 1.9 define private Time#to_date +class Time + %w(to_date to_datetime).each do |method| + public method if private_instance_methods.include?(method) + end +end + +require 'active_support/core_ext/time/behavior' +require 'active_support/core_ext/time/calculations' +require 'active_support/core_ext/time/conversions' +require 'active_support/core_ext/time/zones' + +class Time#:nodoc: + include ActiveSupport::CoreExtensions::Time::Behavior + include ActiveSupport::CoreExtensions::Time::Calculations + include ActiveSupport::CoreExtensions::Time::Conversions + include ActiveSupport::CoreExtensions::Time::Zones +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/behavior.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/behavior.rb new file mode 100644 index 000000000..a5c0baacd --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/behavior.rb @@ -0,0 +1,13 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + module Behavior + # Enable more predictable duck-typing on Time-like classes. See + # Object#acts_like?. + def acts_like_time? + true + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/calculations.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/calculations.rb new file mode 100644 index 000000000..2cce78267 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/calculations.rb @@ -0,0 +1,276 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + # Enables the use of time calculations within Time itself + module Calculations + def self.included(base) #:nodoc: + base.extend ClassMethods + + base.class_eval do + alias_method :plus_without_duration, :+ + alias_method :+, :plus_with_duration + + alias_method :minus_without_duration, :- + alias_method :-, :minus_with_duration + + alias_method :minus_without_coercion, :- + alias_method :-, :minus_with_coercion + + alias_method :compare_without_coercion, :<=> + alias_method :<=>, :compare_with_coercion + end + end + + COMMON_YEAR_DAYS_IN_MONTH = [nil, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + + module ClassMethods + # Overriding case equality method so that it returns true for ActiveSupport::TimeWithZone instances + def ===(other) + other.is_a?(::Time) + end + + # Return the number of days in the given month. + # If no year is specified, it will use the current year. + def days_in_month(month, year = now.year) + return 29 if month == 2 && ::Date.gregorian_leap?(year) + COMMON_YEAR_DAYS_IN_MONTH[month] + end + + # Returns a new Time if requested year can be accommodated by Ruby's Time class + # (i.e., if year is within either 1970..2038 or 1902..2038, depending on system architecture); + # otherwise returns a DateTime + def time_with_datetime_fallback(utc_or_local, year, month=1, day=1, hour=0, min=0, sec=0, usec=0) + ::Time.send(utc_or_local, year, month, day, hour, min, sec, usec) + rescue + offset = utc_or_local.to_sym == :local ? ::DateTime.local_offset : 0 + ::DateTime.civil(year, month, day, hour, min, sec, offset) + end + + # Wraps class method +time_with_datetime_fallback+ with +utc_or_local+ set to <tt>:utc</tt>. + def utc_time(*args) + time_with_datetime_fallback(:utc, *args) + end + + # Wraps class method +time_with_datetime_fallback+ with +utc_or_local+ set to <tt>:local</tt>. + def local_time(*args) + time_with_datetime_fallback(:local, *args) + end + end + + # Seconds since midnight: Time.now.seconds_since_midnight + def seconds_since_midnight + self.to_i - self.change(:hour => 0).to_i + (self.usec/1.0e+6) + end + + # Returns a new Time where one or more of the elements have been changed according to the +options+ parameter. The time options + # (hour, minute, sec, usec) reset cascadingly, so if only the hour is passed, then minute, sec, and usec is set to 0. If the hour and + # minute is passed, then sec and usec is set to 0. + def change(options) + ::Time.send( + self.utc? ? :utc_time : :local_time, + options[:year] || self.year, + options[:month] || self.month, + options[:day] || self.day, + options[:hour] || self.hour, + options[:min] || (options[:hour] ? 0 : self.min), + options[:sec] || ((options[:hour] || options[:min]) ? 0 : self.sec), + options[:usec] || ((options[:hour] || options[:min] || options[:sec]) ? 0 : self.usec) + ) + end + + # Uses Date to provide precise Time calculations for years, months, and days. + # The +options+ parameter takes a hash with any of these keys: <tt>:years</tt>, + # <tt>:months</tt>, <tt>:weeks</tt>, <tt>:days</tt>, <tt>:hours</tt>, + # <tt>:minutes</tt>, <tt>:seconds</tt>. + def advance(options) + d = to_date.advance(options) + time_advanced_by_date = change(:year => d.year, :month => d.month, :day => d.day) + seconds_to_advance = (options[:seconds] || 0) + (options[:minutes] || 0) * 60 + (options[:hours] || 0) * 3600 + seconds_to_advance == 0 ? time_advanced_by_date : time_advanced_by_date.since(seconds_to_advance) + end + + # Returns a new Time representing the time a number of seconds ago, this is basically a wrapper around the Numeric extension + def ago(seconds) + self.since(-seconds) + end + + # Returns a new Time representing the time a number of seconds since the instance time, this is basically a wrapper around + # the Numeric extension. + def since(seconds) + f = seconds.since(self) + if ActiveSupport::Duration === seconds + f + else + initial_dst = self.dst? ? 1 : 0 + final_dst = f.dst? ? 1 : 0 + (seconds.abs >= 86400 && initial_dst != final_dst) ? f + (initial_dst - final_dst).hours : f + end + rescue + self.to_datetime.since(seconds) + end + alias :in :since + + # Returns a new Time representing the time a number of specified months ago + def months_ago(months) + advance(:months => -months) + end + + # Returns a new Time representing the time a number of specified months in the future + def months_since(months) + advance(:months => months) + end + + # Returns a new Time representing the time a number of specified years ago + def years_ago(years) + advance(:years => -years) + end + + # Returns a new Time representing the time a number of specified years in the future + def years_since(years) + advance(:years => years) + end + + # Short-hand for years_ago(1) + def last_year + years_ago(1) + end + + # Short-hand for years_since(1) + def next_year + years_since(1) + end + + + # Short-hand for months_ago(1) + def last_month + months_ago(1) + end + + # Short-hand for months_since(1) + def next_month + months_since(1) + end + + # Returns a new Time representing the "start" of this week (Monday, 0:00) + def beginning_of_week + days_to_monday = self.wday!=0 ? self.wday-1 : 6 + (self - days_to_monday.days).midnight + end + alias :monday :beginning_of_week + alias :at_beginning_of_week :beginning_of_week + + # Returns a new Time representing the end of this week (Sunday, 23:59:59) + def end_of_week + days_to_sunday = self.wday!=0 ? 7-self.wday : 0 + (self + days_to_sunday.days).end_of_day + end + alias :at_end_of_week :end_of_week + + # Returns a new Time representing the start of the given day in next week (default is Monday). + def next_week(day = :monday) + days_into_week = { :monday => 0, :tuesday => 1, :wednesday => 2, :thursday => 3, :friday => 4, :saturday => 5, :sunday => 6} + since(1.week).beginning_of_week.since(days_into_week[day].day).change(:hour => 0) + end + + # Returns a new Time representing the start of the day (0:00) + def beginning_of_day + (self - self.seconds_since_midnight).change(:usec => 0) + end + alias :midnight :beginning_of_day + alias :at_midnight :beginning_of_day + alias :at_beginning_of_day :beginning_of_day + + # Returns a new Time representing the end of the day (23:59:59) + def end_of_day + change(:hour => 23, :min => 59, :sec => 59) + end + + # Returns a new Time representing the start of the month (1st of the month, 0:00) + def beginning_of_month + #self - ((self.mday-1).days + self.seconds_since_midnight) + change(:day => 1,:hour => 0, :min => 0, :sec => 0, :usec => 0) + end + alias :at_beginning_of_month :beginning_of_month + + # Returns a new Time representing the end of the month (last day of the month, 0:00) + def end_of_month + #self - ((self.mday-1).days + self.seconds_since_midnight) + last_day = ::Time.days_in_month( self.month, self.year ) + change(:day => last_day, :hour => 23, :min => 59, :sec => 59, :usec => 0) + end + alias :at_end_of_month :end_of_month + + # Returns a new Time representing the start of the quarter (1st of january, april, july, october, 0:00) + def beginning_of_quarter + beginning_of_month.change(:month => [10, 7, 4, 1].detect { |m| m <= self.month }) + end + alias :at_beginning_of_quarter :beginning_of_quarter + + # Returns a new Time representing the end of the quarter (last day of march, june, september, december, 23:59:59) + def end_of_quarter + change(:month => [3, 6, 9, 12].detect { |m| m >= self.month }).end_of_month + end + alias :at_end_of_quarter :end_of_quarter + + # Returns a new Time representing the start of the year (1st of january, 0:00) + def beginning_of_year + change(:month => 1,:day => 1,:hour => 0, :min => 0, :sec => 0, :usec => 0) + end + alias :at_beginning_of_year :beginning_of_year + + # Returns a new Time representing the end of the year (31st of december, 23:59:59) + def end_of_year + change(:month => 12,:day => 31,:hour => 23, :min => 59, :sec => 59) + end + alias :at_end_of_year :end_of_year + + # Convenience method which returns a new Time representing the time 1 day ago + def yesterday + advance(:days => -1) + end + + # Convenience method which returns a new Time representing the time 1 day since the instance time + def tomorrow + advance(:days => 1) + end + + def plus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + other.since(self) + else + plus_without_duration(other) + end + end + + def minus_with_duration(other) #:nodoc: + if ActiveSupport::Duration === other + other.until(self) + else + minus_without_duration(other) + end + end + + # Time#- can also be used to determine the number of seconds between two Time instances. + # We're layering on additional behavior so that ActiveSupport::TimeWithZone instances + # are coerced into values that Time#- will recognize + def minus_with_coercion(other) + other = other.comparable_time if other.respond_to?(:comparable_time) + minus_without_coercion(other) + end + + # Layers additional behavior on Time#<=> so that DateTime and ActiveSupport::TimeWithZone instances + # can be chronologically compared with a Time + def compare_with_coercion(other) + # if other is an ActiveSupport::TimeWithZone, coerce a Time instance from it so we can do <=> comparision + other = other.comparable_time if other.respond_to?(:comparable_time) + if other.acts_like?(:date) + # other is a Date/DateTime, so coerce self #to_datetime and hand off to DateTime#<=> + to_datetime.compare_without_coercion(other) + else + compare_without_coercion(other) + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/conversions.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/conversions.rb new file mode 100644 index 000000000..905400830 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/conversions.rb @@ -0,0 +1,89 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + # Converting times to formatted strings, dates, and datetimes. + module Conversions + DATE_FORMATS = { + :db => "%Y-%m-%d %H:%M:%S", + :number => "%Y%m%d%H%M%S", + :time => "%H:%M", + :short => "%d %b %H:%M", + :long => "%B %d, %Y %H:%M", + :long_ordinal => lambda { |time| time.strftime("%B #{time.day.ordinalize}, %Y %H:%M") }, + :rfc822 => "%a, %d %b %Y %H:%M:%S %z" + } + + def self.included(base) #:nodoc: + base.class_eval do + alias_method :to_default_s, :to_s + alias_method :to_s, :to_formatted_s + end + end + + # Converts to a formatted string. See DATE_FORMATS for builtin formats. + # + # This method is aliased to <tt>to_s</tt>. + # + # time = Time.now # => Thu Jan 18 06:10:17 CST 2007 + # + # time.to_formatted_s(:time) # => "06:10:17" + # time.to_s(:time) # => "06:10:17" + # + # time.to_formatted_s(:db) # => "2007-01-18 06:10:17" + # time.to_formatted_s(:short) # => "18 Jan 06:10" + # time.to_formatted_s(:long) # => "January 18, 2007 06:10" + # time.to_formatted_s(:long_ordinal) # => "January 18th, 2007 06:10" + # time.to_formatted_s(:rfc822) # => "Thu, 18 Jan 2007 06:10:17 -0600" + # + # == Adding your own time formats to +to_formatted_s+ + # You can add your own formats to the Time::DATE_FORMATS hash. + # Use the format name as the hash key and either a strftime string + # or Proc instance that takes a time argument as the value. + # + # # config/initializers/time_formats.rb + # Time::DATE_FORMATS[:month_and_year] = "%B %Y" + # Time::DATE_FORMATS[:short_ordinal] = lambda { |time| time.strftime("%B #{time.day.ordinalize}") } + def to_formatted_s(format = :default) + return to_default_s unless formatter = DATE_FORMATS[format] + formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter) + end + + # Returns the UTC offset as an +HH:MM formatted string. + # + # Time.local(2000).formatted_offset # => "-06:00" + # Time.local(2000).formatted_offset(false) # => "-0600" + def formatted_offset(colon = true, alternate_utc_string = nil) + utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Converts a Time object to a Date, dropping hour, minute, and second precision. + # + # my_time = Time.now # => Mon Nov 12 22:59:51 -0500 2007 + # my_time.to_date # => Mon, 12 Nov 2007 + # + # your_time = Time.parse("1/13/2009 1:13:03 P.M.") # => Tue Jan 13 13:13:03 -0500 2009 + # your_time.to_date # => Tue, 13 Jan 2009 + def to_date + ::Date.new(year, month, day) + end + + # A method to keep Time, Date and DateTime instances interchangeable on conversions. + # In this case, it simply returns +self+. + def to_time + self + end + + # Converts a Time instance to a Ruby DateTime instance, preserving UTC offset. + # + # my_time = Time.now # => Mon Nov 12 23:04:21 -0500 2007 + # my_time.to_datetime # => Mon, 12 Nov 2007 23:04:21 -0500 + # + # your_time = Time.parse("1/13/2009 1:13:03 P.M.") # => Tue Jan 13 13:13:03 -0500 2009 + # your_time.to_datetime # => Tue, 13 Jan 2009 13:13:03 -0500 + def to_datetime + ::DateTime.civil(year, month, day, hour, min, sec, Rational(utc_offset, 86400)) + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/zones.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/zones.rb new file mode 100644 index 000000000..079ecdd48 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/core_ext/time/zones.rb @@ -0,0 +1,86 @@ +module ActiveSupport #:nodoc: + module CoreExtensions #:nodoc: + module Time #:nodoc: + module Zones + def self.included(base) #:nodoc: + base.extend(ClassMethods) if base == ::Time # i.e., don't include class methods in DateTime + end + + module ClassMethods + attr_accessor :zone_default + + # Returns the TimeZone for the current request, if this has been set (via Time.zone=). + # If <tt>Time.zone</tt> has not been set for the current request, returns the TimeZone specified in <tt>config.time_zone</tt>. + def zone + Thread.current[:time_zone] || zone_default + end + + # Sets <tt>Time.zone</tt> to a TimeZone object for the current request/thread. + # + # This method accepts any of the following: + # + # * A Rails TimeZone object. + # * An identifier for a Rails TimeZone object (e.g., "Eastern Time (US & Canada)", <tt>-5.hours</tt>). + # * A TZInfo::Timezone object. + # * An identifier for a TZInfo::Timezone object (e.g., "America/New_York"). + # + # Here's an example of how you might set <tt>Time.zone</tt> on a per request basis -- <tt>current_user.time_zone</tt> + # just needs to return a string identifying the user's preferred TimeZone: + # + # class ApplicationController < ActionController::Base + # before_filter :set_time_zone + # + # def set_time_zone + # Time.zone = current_user.time_zone + # end + # end + def zone=(time_zone) + Thread.current[:time_zone] = get_zone(time_zone) + end + + # Allows override of <tt>Time.zone</tt> locally inside supplied block; resets <tt>Time.zone</tt> to existing value when done. + def use_zone(time_zone) + old_zone, ::Time.zone = ::Time.zone, get_zone(time_zone) + yield + ensure + ::Time.zone = old_zone + end + + # Returns <tt>Time.zone.now</tt> when <tt>config.time_zone</tt> is set, otherwise just returns <tt>Time.now</tt>. + def current + ::Time.zone_default ? ::Time.zone.now : ::Time.now + end + + private + def get_zone(time_zone) + return time_zone if time_zone.nil? || time_zone.is_a?(TimeZone) + # lookup timezone based on identifier (unless we've been passed a TZInfo::Timezone) + unless time_zone.respond_to?(:period_for_local) + time_zone = TimeZone[time_zone] || TZInfo::Timezone.get(time_zone) rescue nil + end + # Return if a TimeZone instance, or wrap in a TimeZone instance if a TZInfo::Timezone + if time_zone + time_zone.is_a?(TimeZone) ? time_zone : TimeZone.create(time_zone.name, nil, time_zone) + end + end + end + + # Returns the simultaneous time in <tt>Time.zone</tt>. + # + # Time.zone = 'Hawaii' # => 'Hawaii' + # Time.utc(2000).in_time_zone # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + # + # This method is similar to Time#localtime, except that it uses <tt>Time.zone</tt> as the local zone + # instead of the operating system's time zone. + # + # You can also pass in a TimeZone instance or string that identifies a TimeZone as an argument, + # and the conversion will be based on that zone instead of <tt>Time.zone</tt>. + # + # Time.utc(2000).in_time_zone('Alaska') # => Fri, 31 Dec 1999 15:00:00 AKST -09:00 + def in_time_zone(zone = ::Time.zone) + ActiveSupport::TimeWithZone.new(utc? ? self : getutc, ::Time.send!(:get_zone, zone)) + end + end + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/dependencies.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/dependencies.rb new file mode 100644 index 000000000..da2ece610 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/dependencies.rb @@ -0,0 +1,552 @@ +require 'set' +require 'active_support/core_ext/module/attribute_accessors' +require 'active_support/core_ext/load_error' +require 'active_support/core_ext/kernel' + +module Dependencies #:nodoc: + extend self + + # Should we turn on Ruby warnings on the first load of dependent files? + mattr_accessor :warnings_on_first_load + self.warnings_on_first_load = false + + # All files ever loaded. + mattr_accessor :history + self.history = Set.new + + # All files currently loaded. + mattr_accessor :loaded + self.loaded = Set.new + + # Should we load files or require them? + mattr_accessor :mechanism + self.mechanism = :load + + # The set of directories from which we may automatically load files. Files + # under these directories will be reloaded on each request in development mode, + # unless the directory also appears in load_once_paths. + mattr_accessor :load_paths + self.load_paths = [] + + # The set of directories from which automatically loaded constants are loaded + # only once. All directories in this set must also be present in +load_paths+. + mattr_accessor :load_once_paths + self.load_once_paths = [] + + # An array of qualified constant names that have been loaded. Adding a name to + # this array will cause it to be unloaded the next time Dependencies are cleared. + mattr_accessor :autoloaded_constants + self.autoloaded_constants = [] + + # An array of constant names that need to be unloaded on every request. Used + # to allow arbitrary constants to be marked for unloading. + mattr_accessor :explicitly_unloadable_constants + self.explicitly_unloadable_constants = [] + + # Set to true to enable logging of const_missing and file loads + mattr_accessor :log_activity + self.log_activity = false + + # An internal stack used to record which constants are loaded by any block. + mattr_accessor :constant_watch_stack + self.constant_watch_stack = [] + + def load? + mechanism == :load + end + + def depend_on(file_name, swallow_load_errors = false) + path = search_for_file(file_name) + require_or_load(path || file_name) + rescue LoadError + raise unless swallow_load_errors + end + + def associate_with(file_name) + depend_on(file_name, true) + end + + def clear + log_call + loaded.clear + remove_unloadable_constants! + end + + def require_or_load(file_name, const_path = nil) + log_call file_name, const_path + file_name = $1 if file_name =~ /^(.*)\.rb$/ + expanded = File.expand_path(file_name) + return if loaded.include?(expanded) + + # Record that we've seen this file *before* loading it to avoid an + # infinite loop with mutual dependencies. + loaded << expanded + + begin + if load? + log "loading #{file_name}" + + # Enable warnings iff this file has not been loaded before and + # warnings_on_first_load is set. + load_args = ["#{file_name}.rb"] + load_args << const_path unless const_path.nil? + + if !warnings_on_first_load or history.include?(expanded) + result = load_file(*load_args) + else + enable_warnings { result = load_file(*load_args) } + end + else + log "requiring #{file_name}" + result = require file_name + end + rescue Exception + loaded.delete expanded + raise + end + + # Record history *after* loading so first load gets warnings. + history << expanded + return result + end + + # Is the provided constant path defined? + def qualified_const_defined?(path) + raise NameError, "#{path.inspect} is not a valid constant name!" unless + /^(::)?([A-Z]\w*)(::[A-Z]\w*)*$/ =~ path + + names = path.to_s.split('::') + names.shift if names.first.empty? + + # We can't use defined? because it will invoke const_missing for the parent + # of the name we are checking. + names.inject(Object) do |mod, name| + return false unless uninherited_const_defined?(mod, name) + mod.const_get name + end + return true + end + + if Module.method(:const_defined?).arity == 1 + # Does this module define this constant? + # Wrapper to accomodate changing Module#const_defined? in Ruby 1.9 + def uninherited_const_defined?(mod, const) + mod.const_defined?(const) + end + else + def uninherited_const_defined?(mod, const) #:nodoc: + mod.const_defined?(const, false) + end + end + + # Given +path+, a filesystem path to a ruby file, return an array of constant + # paths which would cause Dependencies to attempt to load this file. + def loadable_constants_for_path(path, bases = load_paths) + path = $1 if path =~ /\A(.*)\.rb\Z/ + expanded_path = File.expand_path(path) + + bases.collect do |root| + expanded_root = File.expand_path(root) + next unless %r{\A#{Regexp.escape(expanded_root)}(/|\\)} =~ expanded_path + + nesting = expanded_path[(expanded_root.size)..-1] + nesting = nesting[1..-1] if nesting && nesting[0] == ?/ + next if nesting.blank? + + [ + nesting.camelize, + # Special case: application.rb might define ApplicationControlller. + ('ApplicationController' if nesting == 'application') + ] + end.flatten.compact.uniq + end + + # Search for a file in load_paths matching the provided suffix. + def search_for_file(path_suffix) + path_suffix = path_suffix + '.rb' unless path_suffix.ends_with? '.rb' + load_paths.each do |root| + path = File.join(root, path_suffix) + return path if File.file? path + end + nil # Gee, I sure wish we had first_match ;-) + end + + # Does the provided path_suffix correspond to an autoloadable module? + # Instead of returning a boolean, the autoload base for this module is returned. + def autoloadable_module?(path_suffix) + load_paths.each do |load_path| + return load_path if File.directory? File.join(load_path, path_suffix) + end + nil + end + + def load_once_path?(path) + load_once_paths.any? { |base| path.starts_with? base } + end + + # Attempt to autoload the provided module name by searching for a directory + # matching the expect path suffix. If found, the module is created and assigned + # to +into+'s constants with the name +const_name+. Provided that the directory + # was loaded from a reloadable base path, it is added to the set of constants + # that are to be unloaded. + def autoload_module!(into, const_name, qualified_name, path_suffix) + return nil unless base_path = autoloadable_module?(path_suffix) + mod = Module.new + into.const_set const_name, mod + autoloaded_constants << qualified_name unless load_once_paths.include?(base_path) + return mod + end + + # Load the file at the provided path. +const_paths+ is a set of qualified + # constant names. When loading the file, Dependencies will watch for the + # addition of these constants. Each that is defined will be marked as + # autoloaded, and will be removed when Dependencies.clear is next called. + # + # If the second parameter is left off, then Dependencies will construct a set + # of names that the file at +path+ may define. See + # +loadable_constants_for_path+ for more details. + def load_file(path, const_paths = loadable_constants_for_path(path)) + log_call path, const_paths + const_paths = [const_paths].compact unless const_paths.is_a? Array + parent_paths = const_paths.collect { |const_path| /(.*)::[^:]+\Z/ =~ const_path ? $1 : :Object } + + result = nil + newly_defined_paths = new_constants_in(*parent_paths) do + result = load_without_new_constant_marking path + end + + autoloaded_constants.concat newly_defined_paths unless load_once_path?(path) + autoloaded_constants.uniq! + log "loading #{path} defined #{newly_defined_paths * ', '}" unless newly_defined_paths.empty? + return result + end + + # Return the constant path for the provided parent and constant name. + def qualified_name_for(mod, name) + mod_name = to_constant_name mod + (%w(Object Kernel).include? mod_name) ? name.to_s : "#{mod_name}::#{name}" + end + + # Load the constant named +const_name+ which is missing from +from_mod+. If + # it is not possible to load the constant into from_mod, try its parent module + # using const_missing. + def load_missing_constant(from_mod, const_name) + log_call from_mod, const_name + if from_mod == Kernel + if ::Object.const_defined?(const_name) + log "Returning Object::#{const_name} for Kernel::#{const_name}" + return ::Object.const_get(const_name) + else + log "Substituting Object for Kernel" + from_mod = Object + end + end + + # If we have an anonymous module, all we can do is attempt to load from Object. + from_mod = Object if from_mod.name.blank? + + unless qualified_const_defined?(from_mod.name) && from_mod.name.constantize.object_id == from_mod.object_id + raise ArgumentError, "A copy of #{from_mod} has been removed from the module tree but is still active!" + end + + raise ArgumentError, "#{from_mod} is not missing constant #{const_name}!" if uninherited_const_defined?(from_mod, const_name) + + qualified_name = qualified_name_for from_mod, const_name + path_suffix = qualified_name.underscore + name_error = NameError.new("uninitialized constant #{qualified_name}") + + file_path = search_for_file(path_suffix) + if file_path && ! loaded.include?(File.expand_path(file_path)) # We found a matching file to load + require_or_load file_path + raise LoadError, "Expected #{file_path} to define #{qualified_name}" unless uninherited_const_defined?(from_mod, const_name) + return from_mod.const_get(const_name) + elsif mod = autoload_module!(from_mod, const_name, qualified_name, path_suffix) + return mod + elsif (parent = from_mod.parent) && parent != from_mod && + ! from_mod.parents.any? { |p| uninherited_const_defined?(p, const_name) } + # If our parents do not have a constant named +const_name+ then we are free + # to attempt to load upwards. If they do have such a constant, then this + # const_missing must be due to from_mod::const_name, which should not + # return constants from from_mod's parents. + begin + return parent.const_missing(const_name) + rescue NameError => e + raise unless e.missing_name? qualified_name_for(parent, const_name) + raise name_error + end + else + raise name_error + end + end + + # Remove the constants that have been autoloaded, and those that have been + # marked for unloading. + def remove_unloadable_constants! + autoloaded_constants.each { |const| remove_constant const } + autoloaded_constants.clear + explicitly_unloadable_constants.each { |const| remove_constant const } + end + + # Determine if the given constant has been automatically loaded. + def autoloaded?(desc) + # No name => anonymous module. + return false if desc.is_a?(Module) && desc.name.blank? + name = to_constant_name desc + return false unless qualified_const_defined? name + return autoloaded_constants.include?(name) + end + + # Will the provided constant descriptor be unloaded? + def will_unload?(const_desc) + autoloaded?(desc) || + explicitly_unloadable_constants.include?(to_constant_name(const_desc)) + end + + # Mark the provided constant name for unloading. This constant will be + # unloaded on each request, not just the next one. + def mark_for_unload(const_desc) + name = to_constant_name const_desc + if explicitly_unloadable_constants.include? name + return false + else + explicitly_unloadable_constants << name + return true + end + end + + # Run the provided block and detect the new constants that were loaded during + # its execution. Constants may only be regarded as 'new' once -- so if the + # block calls +new_constants_in+ again, then the constants defined within the + # inner call will not be reported in this one. + # + # If the provided block does not run to completion, and instead raises an + # exception, any new constants are regarded as being only partially defined + # and will be removed immediately. + def new_constants_in(*descs) + log_call(*descs) + + # Build the watch frames. Each frame is a tuple of + # [module_name_as_string, constants_defined_elsewhere] + watch_frames = descs.collect do |desc| + if desc.is_a? Module + mod_name = desc.name + initial_constants = desc.local_constant_names + elsif desc.is_a?(String) || desc.is_a?(Symbol) + mod_name = desc.to_s + + # Handle the case where the module has yet to be defined. + initial_constants = if qualified_const_defined?(mod_name) + mod_name.constantize.local_constant_names + else + [] + end + else + raise Argument, "#{desc.inspect} does not describe a module!" + end + + [mod_name, initial_constants] + end + + constant_watch_stack.concat watch_frames + + aborting = true + begin + yield # Now yield to the code that is to define new constants. + aborting = false + ensure + # Find the new constants. + new_constants = watch_frames.collect do |mod_name, prior_constants| + # Module still doesn't exist? Treat it as if it has no constants. + next [] unless qualified_const_defined?(mod_name) + + mod = mod_name.constantize + next [] unless mod.is_a? Module + new_constants = mod.local_constant_names - prior_constants + + # Make sure no other frames takes credit for these constants. + constant_watch_stack.each do |frame_name, constants| + constants.concat new_constants if frame_name == mod_name + end + + new_constants.collect do |suffix| + mod_name == "Object" ? suffix : "#{mod_name}::#{suffix}" + end + end.flatten + + log "New constants: #{new_constants * ', '}" + + if aborting + log "Error during loading, removing partially loaded constants " + new_constants.each { |name| remove_constant name } + new_constants.clear + end + end + + return new_constants + ensure + # Remove the stack frames that we added. + if defined?(watch_frames) && ! watch_frames.blank? + frame_ids = watch_frames.collect(&:object_id) + constant_watch_stack.delete_if do |watch_frame| + frame_ids.include? watch_frame.object_id + end + end + end + + class LoadingModule #:nodoc: + # Old style environment.rb referenced this method directly. Please note, it doesn't + # actually *do* anything any more. + def self.root(*args) + if defined?(RAILS_DEFAULT_LOGGER) + RAILS_DEFAULT_LOGGER.warn "Your environment.rb uses the old syntax, it may not continue to work in future releases." + RAILS_DEFAULT_LOGGER.warn "For upgrade instructions please see: http://manuals.rubyonrails.com/read/book/19" + end + end + end + + # Convert the provided const desc to a qualified constant name (as a string). + # A module, class, symbol, or string may be provided. + def to_constant_name(desc) #:nodoc: + name = case desc + when String then desc.starts_with?('::') ? desc[2..-1] : desc + when Symbol then desc.to_s + when Module + raise ArgumentError, "Anonymous modules have no name to be referenced by" if desc.name.blank? + desc.name + else raise TypeError, "Not a valid constant descriptor: #{desc.inspect}" + end + end + + def remove_constant(const) #:nodoc: + return false unless qualified_const_defined? const + + const = $1 if /\A::(.*)\Z/ =~ const.to_s + names = const.to_s.split('::') + if names.size == 1 # It's under Object + parent = Object + else + parent = (names[0..-2] * '::').constantize + end + + log "removing constant #{const}" + parent.instance_eval { remove_const names.last } + return true + end + +protected + def log_call(*args) + if defined?(RAILS_DEFAULT_LOGGER) && RAILS_DEFAULT_LOGGER && log_activity + arg_str = args.collect(&:inspect) * ', ' + /in `([a-z_\?\!]+)'/ =~ caller(1).first + selector = $1 || '<unknown>' + log "called #{selector}(#{arg_str})" + end + end + + def log(msg) + if defined?(RAILS_DEFAULT_LOGGER) && RAILS_DEFAULT_LOGGER && log_activity + RAILS_DEFAULT_LOGGER.debug "Dependencies: #{msg}" + end + end + +end + +Object.instance_eval do + define_method(:require_or_load) { |file_name| Dependencies.require_or_load(file_name) } unless Object.respond_to?(:require_or_load) + define_method(:require_dependency) { |file_name| Dependencies.depend_on(file_name) } unless Object.respond_to?(:require_dependency) + define_method(:require_association) { |file_name| Dependencies.associate_with(file_name) } unless Object.respond_to?(:require_association) +end + +class Module #:nodoc: + # Rename the original handler so we can chain it to the new one + alias :rails_original_const_missing :const_missing + + # Use const_missing to autoload associations so we don't have to + # require_association when using single-table inheritance. + def const_missing(class_id) + Dependencies.load_missing_constant self, class_id + end + + def unloadable(const_desc = self) + super(const_desc) + end + +end + +class Class + def const_missing(const_name) + if [Object, Kernel].include?(self) || parent == self + super + else + begin + begin + Dependencies.load_missing_constant self, const_name + rescue NameError + parent.send :const_missing, const_name + end + rescue NameError => e + # Make sure that the name we are missing is the one that caused the error + parent_qualified_name = Dependencies.qualified_name_for parent, const_name + raise unless e.missing_name? parent_qualified_name + qualified_name = Dependencies.qualified_name_for self, const_name + raise NameError.new("uninitialized constant #{qualified_name}").copy_blame!(e) + end + end + end +end + +class Object + alias_method :load_without_new_constant_marking, :load + + def load(file, *extras) #:nodoc: + Dependencies.new_constants_in(Object) { super } + rescue Exception => exception # errors from loading file + exception.blame_file! file + raise + end + + def require(file, *extras) #:nodoc: + Dependencies.new_constants_in(Object) { super } + rescue Exception => exception # errors from required file + exception.blame_file! file + raise + end + + # Mark the given constant as unloadable. Unloadable constants are removed each + # time dependencies are cleared. + # + # Note that marking a constant for unloading need only be done once. Setup + # or init scripts may list each unloadable constant that may need unloading; + # each constant will be removed for every subsequent clear, as opposed to for + # the first clear. + # + # The provided constant descriptor may be a (non-anonymous) module or class, + # or a qualified constant name as a string or symbol. + # + # Returns true if the constant was not previously marked for unloading, false + # otherwise. + def unloadable(const_desc) + Dependencies.mark_for_unload const_desc + end +end + +# Add file-blaming to exceptions +class Exception #:nodoc: + def blame_file!(file) + (@blamed_files ||= []).unshift file + end + + def blamed_files + @blamed_files ||= [] + end + + def describe_blame + return nil if blamed_files.empty? + "This error occurred while loading the following files:\n #{blamed_files.join "\n "}" + end + + def copy_blame!(exc) + @blamed_files = exc.blamed_files.clone + self + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/deprecation.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/deprecation.rb new file mode 100644 index 000000000..758aef544 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/deprecation.rb @@ -0,0 +1,205 @@ +require 'yaml' + +module ActiveSupport + module Deprecation #:nodoc: + mattr_accessor :debug + self.debug = false + + # Choose the default warn behavior according to RAILS_ENV. + # Ignore deprecation warnings in production. + DEFAULT_BEHAVIORS = { + 'test' => Proc.new { |message, callstack| + $stderr.puts(message) + $stderr.puts callstack.join("\n ") if debug + }, + 'development' => Proc.new { |message, callstack| + logger = defined?(::RAILS_DEFAULT_LOGGER) ? ::RAILS_DEFAULT_LOGGER : Logger.new($stderr) + logger.warn message + logger.debug callstack.join("\n ") if debug + } + } + + class << self + def warn(message = nil, callstack = caller) + behavior.call(deprecation_message(callstack, message), callstack) if behavior && !silenced? + end + + def default_behavior + if defined?(RAILS_ENV) + DEFAULT_BEHAVIORS[RAILS_ENV.to_s] + else + DEFAULT_BEHAVIORS['test'] + end + end + + # Have deprecations been silenced? + def silenced? + @silenced = false unless defined?(@silenced) + @silenced + end + + # Silence deprecation warnings within the block. + def silence + old_silenced, @silenced = @silenced, true + yield + ensure + @silenced = old_silenced + end + + attr_writer :silenced + + + private + def deprecation_message(callstack, message = nil) + message ||= "You are using deprecated behavior which will be removed from Rails 2.0." + "DEPRECATION WARNING: #{message} See http://www.rubyonrails.org/deprecation for details. #{deprecation_caller_message(callstack)}" + end + + def deprecation_caller_message(callstack) + file, line, method = extract_callstack(callstack) + if file + if line && method + "(called from #{method} at #{file}:#{line})" + else + "(called from #{file}:#{line})" + end + end + end + + def extract_callstack(callstack) + if md = callstack.first.match(/^(.+?):(\d+)(?::in `(.*?)')?/) + md.captures + else + callstack.first + end + end + end + + # Behavior is a block that takes a message argument. + mattr_accessor :behavior + self.behavior = default_behavior + + # Warnings are not silenced by default. + self.silenced = false + + module ClassMethods #:nodoc: + # Declare that a method has been deprecated. + def deprecate(*method_names) + options = method_names.extract_options! + method_names = method_names + options.keys + method_names.each do |method_name| + alias_method_chain(method_name, :deprecation) do |target, punctuation| + class_eval(<<-EOS, __FILE__, __LINE__) + def #{target}_with_deprecation#{punctuation}(*args, &block) + ::ActiveSupport::Deprecation.warn(self.class.deprecated_method_warning(:#{method_name}, #{options[method_name].inspect}), caller) + #{target}_without_deprecation#{punctuation}(*args, &block) + end + EOS + end + end + end + + def deprecated_method_warning(method_name, message=nil) + warning = "#{method_name} is deprecated and will be removed from Rails #{deprecation_horizon}" + case message + when Symbol then "#{warning} (use #{message} instead)" + when String then "#{warning} (#{message})" + else warning + end + end + + def deprecation_horizon + '2.0' + end + end + + module Assertions #:nodoc: + def assert_deprecated(match = nil, &block) + result, warnings = collect_deprecations(&block) + assert !warnings.empty?, "Expected a deprecation warning within the block but received none" + if match + match = Regexp.new(Regexp.escape(match)) unless match.is_a?(Regexp) + assert warnings.any? { |w| w =~ match }, "No deprecation warning matched #{match}: #{warnings.join(', ')}" + end + result + end + + def assert_not_deprecated(&block) + result, deprecations = collect_deprecations(&block) + assert deprecations.empty?, "Expected no deprecation warning within the block but received #{deprecations.size}: \n #{deprecations * "\n "}" + result + end + + private + def collect_deprecations + old_behavior = ActiveSupport::Deprecation.behavior + deprecations = [] + ActiveSupport::Deprecation.behavior = Proc.new do |message, callstack| + deprecations << message + end + result = yield + [result, deprecations] + ensure + ActiveSupport::Deprecation.behavior = old_behavior + end + end + + # Stand-in for <tt>@request</tt>, <tt>@attributes</tt>, <tt>@params</tt>, etc. + # which emits deprecation warnings on any method call (except +inspect+). + class DeprecatedInstanceVariableProxy #:nodoc: + silence_warnings do + instance_methods.each { |m| undef_method m unless m =~ /^__/ } + end + + def initialize(instance, method, var = "@#{method}") + @instance, @method, @var = instance, method, var + end + + # Don't give a deprecation warning on inspect since test/unit and error + # logs rely on it for diagnostics. + def inspect + target.inspect + end + + private + def method_missing(called, *args, &block) + warn caller, called, args + target.__send__(called, *args, &block) + end + + def target + @instance.__send__(@method) + end + + def warn(callstack, called, args) + ActiveSupport::Deprecation.warn("#{@var} is deprecated! Call #{@method}.#{called} instead of #{@var}.#{called}. Args: #{args.inspect}", callstack) + end + end + + end +end + +class Module + include ActiveSupport::Deprecation::ClassMethods +end + +require 'test/unit/error' + +module Test + module Unit + class TestCase + include ActiveSupport::Deprecation::Assertions + end + + class Error # :nodoc: + # Silence warnings when reporting test errors. + def message_with_silenced_deprecation + ActiveSupport::Deprecation.silence do + message_without_silenced_deprecation + end + end + + alias_method_chain :message, :silenced_deprecation + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/duration.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/duration.rb new file mode 100644 index 000000000..8eae85d38 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/duration.rb @@ -0,0 +1,96 @@ +module ActiveSupport + # Provides accurate date and time measurements using Date#advance and + # Time#advance, respectively. It mainly supports the methods on Numeric, + # such as in this example: + # + # 1.month.ago # equivalent to Time.now.advance(:months => -1) + class Duration < BasicObject + attr_accessor :value, :parts + + def initialize(value, parts) #:nodoc: + @value, @parts = value, parts + end + + # Adds another Duration or a Numeric to this Duration. Numeric values + # are treated as seconds. + def +(other) + if Duration === other + Duration.new(value + other.value, @parts + other.parts) + else + Duration.new(value + other, @parts + [[:seconds, other]]) + end + end + + # Subtracts another Duration or a Numeric from this Duration. Numeric + # values are treated as seconds. + def -(other) + self + (-other) + end + + def -@ #:nodoc: + Duration.new(-value, parts.map { |type,number| [type, -number] }) + end + + def is_a?(klass) #:nodoc: + klass == Duration || super + end + + # Returns true if <tt>other</tt> is also a Duration instance with the + # same <tt>value</tt>, or if <tt>other == value</tt>. + def ==(other) + if Duration === other + other.value == value + else + other == value + end + end + + def self.===(other) #:nodoc: + other.is_a?(Duration) rescue super + end + + # Calculates a new Time or Date that is as far in the future + # as this Duration represents. + def since(time = ::Time.current) + sum(1, time) + end + alias :from_now :since + + # Calculates a new Time or Date that is as far in the past + # as this Duration represents. + def ago(time = ::Time.current) + sum(-1, time) + end + alias :until :ago + + def inspect #:nodoc: + consolidated = parts.inject(::Hash.new(0)) { |h,part| h[part.first] += part.last; h } + [:years, :months, :days, :minutes, :seconds].map do |length| + n = consolidated[length] + "#{n} #{n == 1 ? length.to_s.singularize : length.to_s}" if n.nonzero? + end.compact.to_sentence + end + + protected + + def sum(sign, time = ::Time.current) #:nodoc: + parts.inject(time) do |t,(type,number)| + if t.acts_like?(:time) || t.acts_like?(:date) + if type == :seconds + t.since(sign * number) + else + t.advance(type => sign * number) + end + else + raise ::ArgumentError, "expected a time or date, got #{time.inspect}" + end + end + end + + private + + def method_missing(method, *args, &block) #:nodoc: + value.send(method, *args) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/gzip.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/gzip.rb new file mode 100644 index 000000000..35a50e9a7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/gzip.rb @@ -0,0 +1,25 @@ +require 'zlib' +require 'stringio' + +module ActiveSupport + # A convenient wrapper for the zlib standard library that allows compression/decompression of strings with gzip. + module Gzip + class Stream < StringIO + def close; rewind; end + end + + # Decompresses a gzipped string. + def self.decompress(source) + Zlib::GzipReader.new(StringIO.new(source)).read + end + + # Compresses a string using gzip. + def self.compress(source) + output = Stream.new + gz = Zlib::GzipWriter.new(output) + gz.write(source) + gz.close + output.string + end + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/inflections.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/inflections.rb new file mode 100644 index 000000000..967722c2b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/inflections.rb @@ -0,0 +1,53 @@ +Inflector.inflections do |inflect| + inflect.plural(/$/, 's') + inflect.plural(/s$/i, 's') + inflect.plural(/(ax|test)is$/i, '\1es') + inflect.plural(/(octop|vir)us$/i, '\1i') + inflect.plural(/(alias|status)$/i, '\1es') + inflect.plural(/(bu)s$/i, '\1ses') + inflect.plural(/(buffal|tomat)o$/i, '\1oes') + inflect.plural(/([ti])um$/i, '\1a') + inflect.plural(/sis$/i, 'ses') + inflect.plural(/(?:([^f])fe|([lr])f)$/i, '\1\2ves') + inflect.plural(/(hive)$/i, '\1s') + inflect.plural(/([^aeiouy]|qu)y$/i, '\1ies') + inflect.plural(/(x|ch|ss|sh)$/i, '\1es') + inflect.plural(/(matr|vert|ind)(?:ix|ex)$/i, '\1ices') + inflect.plural(/([m|l])ouse$/i, '\1ice') + inflect.plural(/^(ox)$/i, '\1en') + inflect.plural(/(quiz)$/i, '\1zes') + + inflect.singular(/s$/i, '') + inflect.singular(/(n)ews$/i, '\1ews') + inflect.singular(/([ti])a$/i, '\1um') + inflect.singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$/i, '\1\2sis') + inflect.singular(/(^analy)ses$/i, '\1sis') + inflect.singular(/([^f])ves$/i, '\1fe') + inflect.singular(/(hive)s$/i, '\1') + inflect.singular(/(tive)s$/i, '\1') + inflect.singular(/([lr])ves$/i, '\1f') + inflect.singular(/([^aeiouy]|qu)ies$/i, '\1y') + inflect.singular(/(s)eries$/i, '\1eries') + inflect.singular(/(m)ovies$/i, '\1ovie') + inflect.singular(/(x|ch|ss|sh)es$/i, '\1') + inflect.singular(/([m|l])ice$/i, '\1ouse') + inflect.singular(/(bus)es$/i, '\1') + inflect.singular(/(o)es$/i, '\1') + inflect.singular(/(shoe)s$/i, '\1') + inflect.singular(/(cris|ax|test)es$/i, '\1is') + inflect.singular(/(octop|vir)i$/i, '\1us') + inflect.singular(/(alias|status)es$/i, '\1') + inflect.singular(/^(ox)en/i, '\1') + inflect.singular(/(vert|ind)ices$/i, '\1ex') + inflect.singular(/(matr)ices$/i, '\1ix') + inflect.singular(/(quiz)zes$/i, '\1') + + inflect.irregular('person', 'people') + inflect.irregular('man', 'men') + inflect.irregular('child', 'children') + inflect.irregular('sex', 'sexes') + inflect.irregular('move', 'moves') + inflect.irregular('cow', 'kine') + + inflect.uncountable(%w(equipment information rice money species series fish sheep)) +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/inflector.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/inflector.rb new file mode 100644 index 000000000..a4fd61931 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/inflector.rb @@ -0,0 +1,308 @@ +require 'singleton' + +# The Inflector transforms words from singular to plural, class names to table names, modularized class names to ones without, +# and class names to foreign keys. The default inflections for pluralization, singularization, and uncountable words are kept +# in inflections.rb. +# +# The Rails core team has stated patches for the inflections library will not be accepted +# in order to avoid breaking legacy applications which may be relying on errant inflections. +# If you discover an incorrect inflection and require it for your application, you'll need +# to correct it yourself (explained below). +module Inflector + # A singleton instance of this class is yielded by Inflector.inflections, which can then be used to specify additional + # inflection rules. Examples: + # + # Inflector.inflections do |inflect| + # inflect.plural /^(ox)$/i, '\1\2en' + # inflect.singular /^(ox)en/i, '\1' + # + # inflect.irregular 'octopus', 'octopi' + # + # inflect.uncountable "equipment" + # end + # + # New rules are added at the top. So in the example above, the irregular rule for octopus will now be the first of the + # pluralization and singularization rules that is runs. This guarantees that your rules run before any of the rules that may + # already have been loaded. + class Inflections + include Singleton + + attr_reader :plurals, :singulars, :uncountables + + def initialize + @plurals, @singulars, @uncountables = [], [], [] + end + + # Specifies a new pluralization rule and its replacement. The rule can either be a string or a regular expression. + # The replacement should always be a string that may include references to the matched data from the rule. + def plural(rule, replacement) + @plurals.insert(0, [rule, replacement]) + end + + # Specifies a new singularization rule and its replacement. The rule can either be a string or a regular expression. + # The replacement should always be a string that may include references to the matched data from the rule. + def singular(rule, replacement) + @singulars.insert(0, [rule, replacement]) + end + + # Specifies a new irregular that applies to both pluralization and singularization at the same time. This can only be used + # for strings, not regular expressions. You simply pass the irregular in singular and plural form. + # + # Examples: + # irregular 'octopus', 'octopi' + # irregular 'person', 'people' + def irregular(singular, plural) + if singular[0,1].upcase == plural[0,1].upcase + plural(Regexp.new("(#{singular[0,1]})#{singular[1..-1]}$", "i"), '\1' + plural[1..-1]) + singular(Regexp.new("(#{plural[0,1]})#{plural[1..-1]}$", "i"), '\1' + singular[1..-1]) + else + plural(Regexp.new("#{singular[0,1].upcase}(?i)#{singular[1..-1]}$"), plural[0,1].upcase + plural[1..-1]) + plural(Regexp.new("#{singular[0,1].downcase}(?i)#{singular[1..-1]}$"), plural[0,1].downcase + plural[1..-1]) + singular(Regexp.new("#{plural[0,1].upcase}(?i)#{plural[1..-1]}$"), singular[0,1].upcase + singular[1..-1]) + singular(Regexp.new("#{plural[0,1].downcase}(?i)#{plural[1..-1]}$"), singular[0,1].downcase + singular[1..-1]) + end + end + + # Add uncountable words that shouldn't be attempted inflected. + # + # Examples: + # uncountable "money" + # uncountable "money", "information" + # uncountable %w( money information rice ) + def uncountable(*words) + (@uncountables << words).flatten! + end + + # Clears the loaded inflections within a given scope (default is <tt>:all</tt>). + # Give the scope as a symbol of the inflection type, the options are: <tt>:plurals</tt>, + # <tt>:singulars</tt>, <tt>:uncountables</tt>. + # + # Examples: + # clear :all + # clear :plurals + def clear(scope = :all) + case scope + when :all + @plurals, @singulars, @uncountables = [], [], [] + else + instance_variable_set "@#{scope}", [] + end + end + end + + extend self + + # Yields a singleton instance of Inflector::Inflections so you can specify additional + # inflector rules. + # + # Example: + # Inflector.inflections do |inflect| + # inflect.uncountable "rails" + # end + def inflections + if block_given? + yield Inflections.instance + else + Inflections.instance + end + end + + # Returns the plural form of the word in the string. + # + # Examples: + # "post".pluralize # => "posts" + # "octopus".pluralize # => "octopi" + # "sheep".pluralize # => "sheep" + # "words".pluralize # => "words" + # "the blue mailman".pluralize # => "the blue mailmen" + # "CamelOctopus".pluralize # => "CamelOctopi" + def pluralize(word) + result = word.to_s.dup + + if word.empty? || inflections.uncountables.include?(result.downcase) + result + else + inflections.plurals.each { |(rule, replacement)| break if result.gsub!(rule, replacement) } + result + end + end + + # The reverse of +pluralize+, returns the singular form of a word in a string. + # + # Examples: + # "posts".singularize # => "post" + # "octopi".singularize # => "octopus" + # "sheep".singluarize # => "sheep" + # "word".singluarize # => "word" + # "the blue mailmen".singularize # => "the blue mailman" + # "CamelOctopi".singularize # => "CamelOctopus" + def singularize(word) + result = word.to_s.dup + + if inflections.uncountables.include?(result.downcase) + result + else + inflections.singulars.each { |(rule, replacement)| break if result.gsub!(rule, replacement) } + result + end + end + + # By default, +camelize+ converts strings to UpperCamelCase. If the argument to +camelize+ + # is set to <tt>:lower</tt> then +camelize+ produces lowerCamelCase. + # + # +camelize+ will also convert '/' to '::' which is useful for converting paths to namespaces. + # + # Examples: + # "active_record".camelize # => "ActiveRecord" + # "active_record".camelize(:lower) # => "activeRecord" + # "active_record/errors".camelize # => "ActiveRecord::Errors" + # "active_record/errors".camelize(:lower) # => "activeRecord::Errors" + def camelize(lower_case_and_underscored_word, first_letter_in_uppercase = true) + if first_letter_in_uppercase + lower_case_and_underscored_word.to_s.gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } + else + lower_case_and_underscored_word.first + camelize(lower_case_and_underscored_word)[1..-1] + end + end + + # Capitalizes all the words and replaces some characters in the string to create + # a nicer looking title. +titleize+ is meant for creating pretty output. It is not + # used in the Rails internals. + # + # +titleize+ is also aliased as as +titlecase+. + # + # Examples: + # "man from the boondocks".titleize # => "Man From The Boondocks" + # "x-men: the last stand".titleize # => "X Men: The Last Stand" + def titleize(word) + humanize(underscore(word)).gsub(/\b('?[a-z])/) { $1.capitalize } + end + + # The reverse of +camelize+. Makes an underscored, lowercase form from the expression in the string. + # + # Changes '::' to '/' to convert namespaces to paths. + # + # Examples: + # "ActiveRecord".underscore # => "active_record" + # "ActiveRecord::Errors".underscore # => active_record/errors + def underscore(camel_cased_word) + camel_cased_word.to_s.gsub(/::/, '/'). + gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). + gsub(/([a-z\d])([A-Z])/,'\1_\2'). + tr("-", "_"). + downcase + end + + # Replaces underscores with dashes in the string. + # + # Example: + # "puni_puni" # => "puni-puni" + def dasherize(underscored_word) + underscored_word.gsub(/_/, '-') + end + + # Capitalizes the first word and turns underscores into spaces and strips a + # trailing "_id", if any. Like +titleize+, this is meant for creating pretty output. + # + # Examples: + # "employee_salary" # => "Employee salary" + # "author_id" # => "Author" + def humanize(lower_case_and_underscored_word) + lower_case_and_underscored_word.to_s.gsub(/_id$/, "").gsub(/_/, " ").capitalize + end + + # Removes the module part from the expression in the string. + # + # Examples: + # "ActiveRecord::CoreExtensions::String::Inflections".demodulize # => "Inflections" + # "Inflections".demodulize # => "Inflections" + def demodulize(class_name_in_module) + class_name_in_module.to_s.gsub(/^.*::/, '') + end + + # Create the name of a table like Rails does for models to table names. This method + # uses the +pluralize+ method on the last word in the string. + # + # Examples + # "RawScaledScorer".tableize # => "raw_scaled_scorers" + # "egg_and_ham".tableize # => "egg_and_hams" + # "fancyCategory".tableize # => "fancy_categories" + def tableize(class_name) + pluralize(underscore(class_name)) + end + + # Create a class name from a plural table name like Rails does for table names to models. + # Note that this returns a string and not a Class. (To convert to an actual class + # follow +classify+ with +constantize+.) + # + # Examples: + # "egg_and_hams".classify # => "EggAndHam" + # "posts".classify # => "Post" + # + # Singular names are not handled correctly: + # "business".classify # => "Busines" + def classify(table_name) + # strip out any leading schema name + camelize(singularize(table_name.to_s.sub(/.*\./, ''))) + end + + # Creates a foreign key name from a class name. + # +separate_class_name_and_id_with_underscore+ sets whether + # the method should put '_' between the name and 'id'. + # + # Examples: + # "Message".foreign_key # => "message_id" + # "Message".foreign_key(false) # => "messageid" + # "Admin::Post".foreign_key # => "post_id" + def foreign_key(class_name, separate_class_name_and_id_with_underscore = true) + underscore(demodulize(class_name)) + (separate_class_name_and_id_with_underscore ? "_id" : "id") + end + + # Tries to find a constant with the name specified in the argument string: + # + # "Module".constantize # => Module + # "Test::Unit".constantize # => Test::Unit + # + # The name is assumed to be the one of a top-level constant, no matter whether + # it starts with "::" or not. No lexical context is taken into account: + # + # C = 'outside' + # module M + # C = 'inside' + # C # => 'inside' + # "C".constantize # => 'outside', same as ::C + # end + # + # NameError is raised when the name is not in CamelCase or the constant is + # unknown. + def constantize(camel_cased_word) + unless /\A(?:::)?([A-Z]\w*(?:::[A-Z]\w*)*)\z/ =~ camel_cased_word + raise NameError, "#{camel_cased_word.inspect} is not a valid constant name!" + end + + Object.module_eval("::#{$1}", __FILE__, __LINE__) + end + + # Turns a number into an ordinal string used to denote the position in an + # ordered sequence such as 1st, 2nd, 3rd, 4th. + # + # Examples: + # ordinalize(1) # => "1st" + # ordinalize(2) # => "2nd" + # ordinalize(1002) # => "1002nd" + # ordinalize(1003) # => "1003rd" + def ordinalize(number) + if (11..13).include?(number.to_i % 100) + "#{number}th" + else + case number.to_i % 10 + when 1; "#{number}st" + when 2; "#{number}nd" + when 3; "#{number}rd" + else "#{number}th" + end + end + end +end + +require File.dirname(__FILE__) + '/inflections' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json.rb new file mode 100644 index 000000000..54a7becd0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json.rb @@ -0,0 +1,23 @@ +module ActiveSupport + # If true, use ISO 8601 format for dates and times. Otherwise, fall back to the Active Support legacy format. + mattr_accessor :use_standard_json_time_format + + class << self + def escape_html_entities_in_json + @escape_html_entities_in_json + end + + def escape_html_entities_in_json=(value) + ActiveSupport::JSON::Encoding.escape_regex = \ + if value + /[\010\f\n\r\t"\\><&]/ + else + /[\010\f\n\r\t"\\]/ + end + @escape_html_entities_in_json = value + end + end +end + +require 'active_support/json/encoding' +require 'active_support/json/decoding' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/decoding.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/decoding.rb new file mode 100644 index 000000000..fdb219dbf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/decoding.rb @@ -0,0 +1,63 @@ +require 'yaml' +require 'strscan' + +module ActiveSupport + module JSON + class ParseError < StandardError + end + + class << self + # Converts a JSON string into a Ruby object. + def decode(json) + YAML.load(convert_json_to_yaml(json)) + rescue ArgumentError => e + raise ParseError, "Invalid JSON string" + end + + protected + # matches YAML-formatted dates + DATE_REGEX = /^\d{4}-\d{2}-\d{2}|\d{4}-\d{1,2}-\d{1,2}[ \t]+\d{1,2}:\d{2}:\d{2}(\.[0-9]*)?(([ \t]*)Z|[-+]\d{2}?(:\d{2})?)?$/ + + # Ensure that ":" and "," are always followed by a space + def convert_json_to_yaml(json) #:nodoc: + scanner, quoting, marks, pos, times = StringScanner.new(json), false, [], nil, [] + while scanner.scan_until(/(\\['"]|['":,\\]|\\.)/) + case char = scanner[1] + when '"', "'" + if !quoting + quoting = char + pos = scanner.pos + elsif quoting == char + if json[pos..scanner.pos-2] =~ DATE_REGEX + # found a date, track the exact positions of the quotes so we can remove them later. + # oh, and increment them for each current mark, each one is an extra padded space that bumps + # the position in the final YAML output + total_marks = marks.size + times << pos+total_marks << scanner.pos+total_marks + end + quoting = false + end + when ":","," + marks << scanner.pos - 1 unless quoting + end + end + + if marks.empty? + json.gsub(/\\\//, '/') + else + left_pos = [-1].push(*marks) + right_pos = marks << json.length + output = [] + left_pos.each_with_index do |left, i| + output << json[left.succ..right_pos[i]] + end + output = output * " " + + times.each { |i| output[i-1] = ' ' } + output.gsub!(/\\\//, '/') + output + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/date.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/date.rb new file mode 100644 index 000000000..cb9419d29 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/date.rb @@ -0,0 +1,14 @@ +class Date + # Returns a JSON string representing the date. + # + # ==== Example: + # Date.new(2005,2,1).to_json + # # => "2005/02/01" + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + %("#{strftime("%Y-%m-%d")}") + else + %("#{strftime("%Y/%m/%d")}") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/date_time.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/date_time.rb new file mode 100644 index 000000000..d41c3e978 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/date_time.rb @@ -0,0 +1,14 @@ +class DateTime + # Returns a JSON string representing the datetime. + # + # ==== Example: + # DateTime.civil(2005,2,1,15,15,10).to_json + # # => "2005/02/01 15:15:10 +0000" + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + xmlschema.inspect + else + %("#{strftime("%Y/%m/%d %H:%M:%S %z")}") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/enumerable.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/enumerable.rb new file mode 100644 index 000000000..881b1d62c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/enumerable.rb @@ -0,0 +1,12 @@ +module Enumerable + # Returns a JSON string representing the enumerable. Any +options+ + # given will be passed on to its elements. For example: + # + # users = User.find(:all) + # # => users.to_json(:only => :name) + # + # will pass the <tt>:only => :name</tt> option to each user. + def to_json(options = {}) #:nodoc: + "[#{map { |value| ActiveSupport::JSON.encode(value, options) } * ', '}]" + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/false_class.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/false_class.rb new file mode 100644 index 000000000..bf0844334 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/false_class.rb @@ -0,0 +1,5 @@ +class FalseClass + def to_json(options = nil) #:nodoc: + 'false' + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/hash.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/hash.rb new file mode 100644 index 000000000..b9bdd55fa --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/hash.rb @@ -0,0 +1,47 @@ +class Hash + # Returns a JSON string representing the hash. + # + # Without any +options+, the returned JSON string will include all + # the hash keys. For example: + # + # { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json + # # => {"name": "Konata Izumi", 1: 2, "age": 16} + # + # The keys in the JSON string are unordered due to the nature of hashes. + # + # The <tt>:only</tt> and <tt>:except</tt> options can be used to limit the + # attributes included, and will accept 1 or more hash keys to include/exclude. + # + # { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json(:only => [:name, 'age']) + # # => {"name": "Konata Izumi", "age": 16} + # + # { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json(:except => 1) + # # => {"name": "Konata Izumi", "age": 16} + # + # The +options+ also filter down to any hash values. This is particularly + # useful for converting hashes containing ActiveRecord objects or any object + # that responds to options in their <tt>to_json</tt> method. For example: + # + # users = User.find(:all) + # { :users => users, :count => users.size }.to_json(:include => :posts) + # + # would pass the <tt>:include => :posts</tt> option to <tt>users</tt>, + # allowing the posts association in the User model to be converted to JSON + # as well. + def to_json(options = {}) #:nodoc: + hash_keys = self.keys + + if options[:except] + hash_keys = hash_keys - Array(options[:except]) + elsif options[:only] + hash_keys = hash_keys & Array(options[:only]) + end + + returning result = '{' do + result << hash_keys.map do |key| + "#{ActiveSupport::JSON.encode(key)}: #{ActiveSupport::JSON.encode(self[key], options)}" + end * ', ' + result << '}' + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/nil_class.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/nil_class.rb new file mode 100644 index 000000000..4763471ac --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/nil_class.rb @@ -0,0 +1,5 @@ +class NilClass + def to_json(options = nil) #:nodoc: + 'null' + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/numeric.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/numeric.rb new file mode 100644 index 000000000..38713fb36 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/numeric.rb @@ -0,0 +1,5 @@ +class Numeric + def to_json(options = nil) #:nodoc: + to_s + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/object.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/object.rb new file mode 100644 index 000000000..ca215d496 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/object.rb @@ -0,0 +1,6 @@ +class Object + # Dumps object in JSON (JavaScript Object Notation). See www.json.org for more info. + def to_json(options = {}) + ActiveSupport::JSON.encode(instance_values, options) + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/regexp.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/regexp.rb new file mode 100644 index 000000000..b6116b70b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/regexp.rb @@ -0,0 +1,5 @@ +class Regexp + def to_json(options = nil) #:nodoc: + inspect + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/string.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/string.rb new file mode 100644 index 000000000..5ef797955 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/string.rb @@ -0,0 +1,36 @@ +module ActiveSupport + module JSON + module Encoding + mattr_accessor :escape_regex + + ESCAPED_CHARS = { + "\010" => '\b', + "\f" => '\f', + "\n" => '\n', + "\r" => '\r', + "\t" => '\t', + '"' => '\"', + '\\' => '\\\\', + '>' => '\u003E', + '<' => '\u003C', + '&' => '\u0026' + } + end + end +end + +ActiveSupport.escape_html_entities_in_json = true + +class String + def to_json(options = nil) #:nodoc: + json = '"' + gsub(ActiveSupport::JSON::Encoding.escape_regex) { |s| + ActiveSupport::JSON::Encoding::ESCAPED_CHARS[s] + } + json.force_encoding('ascii-8bit') if respond_to?(:force_encoding) + json.gsub(/([\xC0-\xDF][\x80-\xBF]| + [\xE0-\xEF][\x80-\xBF]{2}| + [\xF0-\xF7][\x80-\xBF]{3})+/nx) { |s| + s.unpack("U*").pack("n*").unpack("H*")[0].gsub(/.{4}/, '\\\\u\&') + } + '"' + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/symbol.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/symbol.rb new file mode 100644 index 000000000..485112f97 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/symbol.rb @@ -0,0 +1,5 @@ +class Symbol + def to_json(options = {}) #:nodoc: + ActiveSupport::JSON.encode(to_s, options) + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/time.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/time.rb new file mode 100644 index 000000000..57ed3c9e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/time.rb @@ -0,0 +1,14 @@ +class Time + # Returns a JSON string representing the time. + # + # ==== Example: + # Time.utc(2005,2,1,15,15,10).to_json + # # => 2005/02/01 15:15:10 +0000" + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + xmlschema.inspect + else + %("#{strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)}") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/true_class.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/true_class.rb new file mode 100644 index 000000000..037d812b3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoders/true_class.rb @@ -0,0 +1,5 @@ +class TrueClass + def to_json(options = nil) #:nodoc: + 'true' + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoding.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoding.rb new file mode 100644 index 000000000..8650e3422 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/encoding.rb @@ -0,0 +1,37 @@ +require 'active_support/json/variable' +require 'active_support/json/encoders/object' # Require explicitly for rdoc. +Dir["#{File.dirname(__FILE__)}/encoders/**/*.rb"].each do |file| + basename = File.basename(file, '.rb') + unless basename == 'object' + require "active_support/json/encoders/#{basename}" + end +end + +module ActiveSupport + module JSON + class CircularReferenceError < StandardError + end + + class << self + REFERENCE_STACK_VARIABLE = :json_reference_stack #:nodoc: + + # Converts a Ruby object into a JSON string. + def encode(value, options = {}) + raise_on_circular_reference(value) do + value.send(:to_json, options) + end + end + + protected + def raise_on_circular_reference(value) #:nodoc: + stack = Thread.current[REFERENCE_STACK_VARIABLE] ||= [] + raise CircularReferenceError, 'object references itself' if + stack.include? value + stack << value + yield + ensure + stack.pop + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/variable.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/variable.rb new file mode 100644 index 000000000..7fd23b0a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/json/variable.rb @@ -0,0 +1,10 @@ +module ActiveSupport + module JSON + # A string that returns itself as its JSON-encoded form. + class Variable < String + def to_json(options=nil) + self + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte.rb new file mode 100644 index 000000000..27c0d180a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte.rb @@ -0,0 +1,9 @@ +module ActiveSupport + module Multibyte #:nodoc: + DEFAULT_NORMALIZATION_FORM = :kc + NORMALIZATIONS_FORMS = [:c, :kc, :d, :kd] + UNICODE_VERSION = '5.0.0' + end +end + +require 'active_support/multibyte/chars' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/chars.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/chars.rb new file mode 100644 index 000000000..185d03020 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/chars.rb @@ -0,0 +1,137 @@ +require 'active_support/multibyte/handlers/utf8_handler' +require 'active_support/multibyte/handlers/passthru_handler' + +# Encapsulates all the functionality related to the Chars proxy. +module ActiveSupport::Multibyte #:nodoc: + # Chars enables you to work transparently with multibyte encodings in the Ruby String class without having extensive + # knowledge about the encoding. A Chars object accepts a string upon initialization and proxies String methods in an + # encoding safe manner. All the normal String methods are also implemented on the proxy. + # + # String methods are proxied through the Chars object, and can be accessed through the +chars+ method. Methods + # which would normally return a String object now return a Chars object so methods can be chained. + # + # "The Perfect String ".chars.downcase.strip.normalize # => "the perfect string" + # + # Chars objects are perfectly interchangeable with String objects as long as no explicit class checks are made. + # If certain methods do explicitly check the class, call +to_s+ before you pass chars objects to them. + # + # bad.explicit_checking_method "T".chars.downcase.to_s + # + # The actual operations on the string are delegated to handlers. Theoretically handlers can be implemented for + # any encoding, but the default handler handles UTF-8. This handler is set during initialization, if you want to + # use you own handler, you can set it on the Chars class. Look at the UTF8Handler source for an example how to + # implement your own handler. If you your own handler to work on anything but UTF-8 you probably also + # want to override Chars#handler. + # + # ActiveSupport::Multibyte::Chars.handler = MyHandler + # + # Note that a few methods are defined on Chars instead of the handler because they are defined on Object or Kernel + # and method_missing can't catch them. + class Chars + + attr_reader :string # The contained string + alias_method :to_s, :string + + include Comparable + + # The magic method to make String and Chars comparable + def to_str + # Using any other ways of overriding the String itself will lead you all the way from infinite loops to + # core dumps. Don't go there. + @string + end + + # Make duck-typing with String possible + def respond_to?(method, include_priv = false) + super || @string.respond_to?(method, include_priv) || + handler.respond_to?(method, include_priv) || + (method.to_s =~ /(.*)!/ && handler.respond_to?($1, include_priv)) || + false + end + + # Create a new Chars instance. + def initialize(str) + @string = str.respond_to?(:string) ? str.string : str + end + + # Returns -1, 0 or +1 depending on whether the Chars object is to be sorted before, equal or after the + # object on the right side of the operation. It accepts any object that implements +to_s+. See String.<=> + # for more details. + def <=>(other); @string <=> other.to_s; end + + # Works just like String#split, with the exception that the items in the resulting list are Chars + # instances instead of String. This makes chaining methods easier. + def split(*args) + @string.split(*args).map { |i| i.chars } + end + + # Gsub works exactly the same as gsub on a normal string. + def gsub(*a, &b); @string.gsub(*a, &b).chars; end + + # Like String.=~ only it returns the character offset (in codepoints) instead of the byte offset. + def =~(other) + handler.translate_offset(@string, @string =~ other) + end + + # Try to forward all undefined methods to the handler, when a method is not defined on the handler, send it to + # the contained string. Method_missing is also responsible for making the bang! methods destructive. + def method_missing(m, *a, &b) + begin + # Simulate methods with a ! at the end because we can't touch the enclosed string from the handlers. + if m.to_s =~ /^(.*)\!$/ && handler.respond_to?($1) + result = handler.send($1, @string, *a, &b) + if result == @string + result = nil + else + @string.replace result + end + elsif handler.respond_to?(m) + result = handler.send(m, @string, *a, &b) + else + result = @string.send(m, *a, &b) + end + rescue Handlers::EncodingError + @string.replace handler.tidy_bytes(@string) + retry + end + + if result.kind_of?(String) + result.chars + else + result + end + end + + # Set the handler class for the Char objects. + def self.handler=(klass) + @@handler = klass + end + + # Returns the proper handler for the contained string depending on $KCODE and the encoding of the string. This + # method is used internally to always redirect messages to the proper classes depending on the context. + def handler + if utf8_pragma? + @@handler + else + ActiveSupport::Multibyte::Handlers::PassthruHandler + end + end + + private + + # +utf8_pragma+ checks if it can send this string to the handlers. It makes sure @string isn't nil and $KCODE is + # set to 'UTF8'. + def utf8_pragma? + !@string.nil? && ($KCODE == 'UTF8') + end + end +end + +# When we can load the utf8proc library, override normalization with the faster methods +begin + require 'utf8proc_native' + require 'active_support/multibyte/handlers/utf8_handler_proc' + ActiveSupport::Multibyte::Chars.handler = ActiveSupport::Multibyte::Handlers::UTF8HandlerProc +rescue LoadError + ActiveSupport::Multibyte::Chars.handler = ActiveSupport::Multibyte::Handlers::UTF8Handler +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/generators/generate_tables.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/generators/generate_tables.rb new file mode 100644 index 000000000..7f807585c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/generators/generate_tables.rb @@ -0,0 +1,149 @@ +#!/usr/bin/env ruby +begin + require File.dirname(__FILE__) + '/../../../active_support' +rescue IOError +end +require 'open-uri' +require 'tmpdir' + +module ActiveSupport::Multibyte::Handlers #:nodoc: + class UnicodeDatabase #:nodoc: + def self.load + [Hash.new(Codepoint.new),[],{},{}] + end + end + + class UnicodeTableGenerator #:nodoc: + BASE_URI = "http://www.unicode.org/Public/#{ActiveSupport::Multibyte::UNICODE_VERSION}/ucd/" + SOURCES = { + :codepoints => BASE_URI + 'UnicodeData.txt', + :composition_exclusion => BASE_URI + 'CompositionExclusions.txt', + :grapheme_break_property => BASE_URI + 'auxiliary/GraphemeBreakProperty.txt', + :cp1252 => 'http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT' + } + + def initialize + @ucd = UnicodeDatabase.new + + default = Codepoint.new + default.combining_class = 0 + default.uppercase_mapping = 0 + default.lowercase_mapping = 0 + @ucd.codepoints = Hash.new(default) + + @ucd.composition_exclusion = [] + @ucd.composition_map = {} + @ucd.boundary = {} + @ucd.cp1252 = {} + end + + def parse_codepoints(line) + codepoint = Codepoint.new + raise "Could not parse input." unless line =~ /^ + ([0-9A-F]+); # code + ([^;]+); # name + ([A-Z]+); # general category + ([0-9]+); # canonical combining class + ([A-Z]+); # bidi class + (<([A-Z]*)>)? # decomposition type + ((\ ?[0-9A-F]+)*); # decompomposition mapping + ([0-9]*); # decimal digit + ([0-9]*); # digit + ([^;]*); # numeric + ([YN]*); # bidi mirrored + ([^;]*); # unicode 1.0 name + ([^;]*); # iso comment + ([0-9A-F]*); # simple uppercase mapping + ([0-9A-F]*); # simple lowercase mapping + ([0-9A-F]*)$/ix # simple titlecase mapping + codepoint.code = $1.hex + #codepoint.name = $2 + #codepoint.category = $3 + codepoint.combining_class = Integer($4) + #codepoint.bidi_class = $5 + codepoint.decomp_type = $7 + codepoint.decomp_mapping = ($8=='') ? nil : $8.split.collect { |element| element.hex } + #codepoint.bidi_mirrored = ($13=='Y') ? true : false + codepoint.uppercase_mapping = ($16=='') ? 0 : $16.hex + codepoint.lowercase_mapping = ($17=='') ? 0 : $17.hex + #codepoint.titlecase_mapping = ($18=='') ? nil : $18.hex + @ucd.codepoints[codepoint.code] = codepoint + end + + def parse_grapheme_break_property(line) + if line =~ /^([0-9A-F\.]+)\s*;\s*([\w]+)\s*#/ + type = $2.downcase.intern + @ucd.boundary[type] ||= [] + if $1.include? '..' + parts = $1.split '..' + @ucd.boundary[type] << (parts[0].hex..parts[1].hex) + else + @ucd.boundary[type] << $1.hex + end + end + end + + def parse_composition_exclusion(line) + if line =~ /^([0-9A-F]+)/i + @ucd.composition_exclusion << $1.hex + end + end + + def parse_cp1252(line) + if line =~ /^([0-9A-Fx]+)\s([0-9A-Fx]+)/i + @ucd.cp1252[$1.hex] = $2.hex + end + end + + def create_composition_map + @ucd.codepoints.each do |_, cp| + if !cp.nil? and cp.combining_class == 0 and cp.decomp_type.nil? and !cp.decomp_mapping.nil? and cp.decomp_mapping.length == 2 and @ucd[cp.decomp_mapping[0]].combining_class == 0 and !@ucd.composition_exclusion.include?(cp.code) + @ucd.composition_map[cp.decomp_mapping[0]] ||= {} + @ucd.composition_map[cp.decomp_mapping[0]][cp.decomp_mapping[1]] = cp.code + end + end + end + + def normalize_boundary_map + @ucd.boundary.each do |k,v| + if [:lf, :cr].include? k + @ucd.boundary[k] = v[0] + end + end + end + + def parse + SOURCES.each do |type, url| + filename = File.join(Dir.tmpdir, "#{url.split('/').last}") + unless File.exist?(filename) + $stderr.puts "Downloading #{url.split('/').last}" + File.open(filename, 'wb') do |target| + open(url) do |source| + source.each_line { |line| target.write line } + end + end + end + File.open(filename) do |file| + file.each_line { |line| send "parse_#{type}".intern, line } + end + end + create_composition_map + normalize_boundary_map + end + + def dump_to(filename) + File.open(filename, 'wb') do |f| + f.write Marshal.dump([@ucd.codepoints, @ucd.composition_exclusion, @ucd.composition_map, @ucd.boundary, @ucd.cp1252]) + end + end + end +end + +if __FILE__ == $0 + filename = ActiveSupport::Multibyte::Handlers::UnicodeDatabase.filename + generator = ActiveSupport::Multibyte::Handlers::UnicodeTableGenerator.new + generator.parse + print "Writing to: #{filename}" + generator.dump_to filename + puts " (#{File.size(filename)} bytes)" +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/passthru_handler.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/passthru_handler.rb new file mode 100644 index 000000000..916215c2c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/passthru_handler.rb @@ -0,0 +1,9 @@ +# Chars uses this handler when $KCODE is not set to 'UTF8'. Because this handler doesn't define any methods all call +# will be forwarded to String. +class ActiveSupport::Multibyte::Handlers::PassthruHandler #:nodoc: + + # Return the original byteoffset + def self.translate_offset(string, byte_offset) #:nodoc: + byte_offset + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/utf8_handler.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/utf8_handler.rb new file mode 100644 index 000000000..aa9c16f57 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/utf8_handler.rb @@ -0,0 +1,564 @@ +# Contains all the handlers and helper classes +module ActiveSupport::Multibyte::Handlers #:nodoc: + class EncodingError < ArgumentError #:nodoc: + end + + class Codepoint #:nodoc: + attr_accessor :code, :combining_class, :decomp_type, :decomp_mapping, :uppercase_mapping, :lowercase_mapping + end + + class UnicodeDatabase #:nodoc: + attr_writer :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252 + + # self-expiring methods that lazily load the Unicode database and then return the value. + [:codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252].each do |attr_name| + class_eval(<<-EOS, __FILE__, __LINE__) + def #{attr_name} + load + @#{attr_name} + end + EOS + end + + # Shortcut to ucd.codepoints[] + def [](index); codepoints[index]; end + + # Returns the directory in which the data files are stored + def self.dirname + File.dirname(__FILE__) + '/../../values/' + end + + # Returns the filename for the data file for this version + def self.filename + File.expand_path File.join(dirname, "unicode_tables.dat") + end + + # Loads the unicode database and returns all the internal objects of UnicodeDatabase + # Once the values have been loaded, define attr_reader methods for the instance variables. + def load + begin + @codepoints, @composition_exclusion, @composition_map, @boundary, @cp1252 = File.open(self.class.filename, 'rb') { |f| Marshal.load f.read } + rescue Exception => e + raise IOError.new("Couldn't load the unicode tables for UTF8Handler (#{e.message}), handler is unusable") + end + @codepoints ||= Hash.new(Codepoint.new) + @composition_exclusion ||= [] + @composition_map ||= {} + @boundary ||= {} + @cp1252 ||= {} + + # Redefine the === method so we can write shorter rules for grapheme cluster breaks + @boundary.each do |k,_| + @boundary[k].instance_eval do + def ===(other) + detect { |i| i === other } ? true : false + end + end if @boundary[k].kind_of?(Array) + end + + # define attr_reader methods for the instance variables + class << self + attr_reader :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252 + end + end + end + + # UTF8Handler implements Unicode aware operations for strings, these operations will be used by the Chars + # proxy when $KCODE is set to 'UTF8'. + class UTF8Handler + # Hangul character boundaries and properties + HANGUL_SBASE = 0xAC00 + HANGUL_LBASE = 0x1100 + HANGUL_VBASE = 0x1161 + HANGUL_TBASE = 0x11A7 + HANGUL_LCOUNT = 19 + HANGUL_VCOUNT = 21 + HANGUL_TCOUNT = 28 + HANGUL_NCOUNT = HANGUL_VCOUNT * HANGUL_TCOUNT + HANGUL_SCOUNT = 11172 + HANGUL_SLAST = HANGUL_SBASE + HANGUL_SCOUNT + HANGUL_JAMO_FIRST = 0x1100 + HANGUL_JAMO_LAST = 0x11FF + + # All the unicode whitespace + UNICODE_WHITESPACE = [ + (0x0009..0x000D).to_a, # White_Space # Cc [5] <control-0009>..<control-000D> + 0x0020, # White_Space # Zs SPACE + 0x0085, # White_Space # Cc <control-0085> + 0x00A0, # White_Space # Zs NO-BREAK SPACE + 0x1680, # White_Space # Zs OGHAM SPACE MARK + 0x180E, # White_Space # Zs MONGOLIAN VOWEL SEPARATOR + (0x2000..0x200A).to_a, # White_Space # Zs [11] EN QUAD..HAIR SPACE + 0x2028, # White_Space # Zl LINE SEPARATOR + 0x2029, # White_Space # Zp PARAGRAPH SEPARATOR + 0x202F, # White_Space # Zs NARROW NO-BREAK SPACE + 0x205F, # White_Space # Zs MEDIUM MATHEMATICAL SPACE + 0x3000, # White_Space # Zs IDEOGRAPHIC SPACE + ].flatten.freeze + + # BOM (byte order mark) can also be seen as whitespace, it's a non-rendering character used to distinguish + # between little and big endian. This is not an issue in utf-8, so it must be ignored. + UNICODE_LEADERS_AND_TRAILERS = UNICODE_WHITESPACE + [65279] # ZERO-WIDTH NO-BREAK SPACE aka BOM + + # Borrowed from the Kconv library by Shinji KONO - (also as seen on the W3C site) + UTF8_PAT = /\A(?: + [\x00-\x7f] | + [\xc2-\xdf] [\x80-\xbf] | + \xe0 [\xa0-\xbf] [\x80-\xbf] | + [\xe1-\xef] [\x80-\xbf] [\x80-\xbf] | + \xf0 [\x90-\xbf] [\x80-\xbf] [\x80-\xbf] | + [\xf1-\xf3] [\x80-\xbf] [\x80-\xbf] [\x80-\xbf] | + \xf4 [\x80-\x8f] [\x80-\xbf] [\x80-\xbf] + )*\z/xn + + # Returns a regular expression pattern that matches the passed Unicode codepoints + def self.codepoints_to_pattern(array_of_codepoints) #:nodoc: + array_of_codepoints.collect{ |e| [e].pack 'U*' }.join('|') + end + UNICODE_TRAILERS_PAT = /(#{codepoints_to_pattern(UNICODE_LEADERS_AND_TRAILERS)})+\Z/ + UNICODE_LEADERS_PAT = /\A(#{codepoints_to_pattern(UNICODE_LEADERS_AND_TRAILERS)})+/ + + class << self + + # /// + # /// BEGIN String method overrides + # /// + + # Inserts the passed string at specified codepoint offsets + def insert(str, offset, fragment) + str.replace( + u_unpack(str).insert( + offset, + u_unpack(fragment) + ).flatten.pack('U*') + ) + end + + # Returns the position of the passed argument in the string, counting in codepoints + def index(str, *args) + bidx = str.index(*args) + bidx ? (u_unpack(str.slice(0...bidx)).size) : nil + end + + # Works just like the indexed replace method on string, except instead of byte offsets you specify + # character offsets. + # + # Example: + # + # s = "Müller" + # s.chars[2] = "e" # Replace character with offset 2 + # s # => "Müeler" + # + # s = "Müller" + # s.chars[1, 2] = "ö" # Replace 2 characters at character offset 1 + # s # => "Möler" + def []=(str, *args) + replace_by = args.pop + # Indexed replace with regular expressions already works + return str[*args] = replace_by if args.first.is_a?(Regexp) + result = u_unpack(str) + if args[0].is_a?(Fixnum) + raise IndexError, "index #{args[0]} out of string" if args[0] >= result.length + min = args[0] + max = args[1].nil? ? min : (min + args[1] - 1) + range = Range.new(min, max) + replace_by = [replace_by].pack('U') if replace_by.is_a?(Fixnum) + elsif args.first.is_a?(Range) + raise RangeError, "#{args[0]} out of range" if args[0].min >= result.length + range = args[0] + else + needle = args[0].to_s + min = index(str, needle) + max = min + length(needle) - 1 + range = Range.new(min, max) + end + result[range] = u_unpack(replace_by) + str.replace(result.pack('U*')) + end + + # Works just like String#rjust, only integer specifies characters instead of bytes. + # + # Example: + # + # "¾ cup".chars.rjust(8).to_s + # # => " ¾ cup" + # + # "¾ cup".chars.rjust(8, " ").to_s # Use non-breaking whitespace + # # => " ¾ cup" + def rjust(str, integer, padstr=' ') + justify(str, integer, :right, padstr) + end + + # Works just like String#ljust, only integer specifies characters instead of bytes. + # + # Example: + # + # "¾ cup".chars.rjust(8).to_s + # # => "¾ cup " + # + # "¾ cup".chars.rjust(8, " ").to_s # Use non-breaking whitespace + # # => "¾ cup " + def ljust(str, integer, padstr=' ') + justify(str, integer, :left, padstr) + end + + # Works just like String#center, only integer specifies characters instead of bytes. + # + # Example: + # + # "¾ cup".chars.center(8).to_s + # # => " ¾ cup " + # + # "¾ cup".chars.center(8, " ").to_s # Use non-breaking whitespace + # # => " ¾ cup " + def center(str, integer, padstr=' ') + justify(str, integer, :center, padstr) + end + + # Does Unicode-aware rstrip + def rstrip(str) + str.gsub(UNICODE_TRAILERS_PAT, '') + end + + # Does Unicode-aware lstrip + def lstrip(str) + str.gsub(UNICODE_LEADERS_PAT, '') + end + + # Removed leading and trailing whitespace + def strip(str) + str.gsub(UNICODE_LEADERS_PAT, '').gsub(UNICODE_TRAILERS_PAT, '') + end + + # Returns the number of codepoints in the string + def size(str) + u_unpack(str).size + end + alias_method :length, :size + + # Reverses codepoints in the string. + def reverse(str) + u_unpack(str).reverse.pack('U*') + end + + # Implements Unicode-aware slice with codepoints. Slicing on one point returns the codepoints for that + # character. + def slice(str, *args) + if args.size > 2 + raise ArgumentError, "wrong number of arguments (#{args.size} for 1)" # Do as if we were native + elsif (args.size == 2 && !(args.first.is_a?(Numeric) || args.first.is_a?(Regexp))) + raise TypeError, "cannot convert #{args.first.class} into Integer" # Do as if we were native + elsif (args.size == 2 && !args[1].is_a?(Numeric)) + raise TypeError, "cannot convert #{args[1].class} into Integer" # Do as if we were native + elsif args[0].kind_of? Range + cps = u_unpack(str).slice(*args) + cps.nil? ? nil : cps.pack('U*') + elsif args[0].kind_of? Regexp + str.slice(*args) + elsif args.size == 1 && args[0].kind_of?(Numeric) + u_unpack(str)[args[0]] + else + u_unpack(str).slice(*args).pack('U*') + end + end + alias_method :[], :slice + + # Convert characters in the string to uppercase + def upcase(str); to_case :uppercase_mapping, str; end + + # Convert characters in the string to lowercase + def downcase(str); to_case :lowercase_mapping, str; end + + # Returns a copy of +str+ with the first character converted to uppercase and the remainder to lowercase + def capitalize(str) + upcase(slice(str, 0..0)) + downcase(slice(str, 1..-1) || '') + end + + # /// + # /// Extra String methods for unicode operations + # /// + + # Returns the KC normalization of the string by default. NFKC is considered the best normalization form for + # passing strings to databases and validations. + # + # * <tt>str</tt> - The string to perform normalization on. + # * <tt>form</tt> - The form you want to normalize in. Should be one of the following: + # <tt>:c</tt>, <tt>:kc</tt>, <tt>:d</tt>, or <tt>:kd</tt>. Default is + # ActiveSupport::Multibyte::DEFAULT_NORMALIZATION_FORM. + def normalize(str, form=ActiveSupport::Multibyte::DEFAULT_NORMALIZATION_FORM) + # See http://www.unicode.org/reports/tr15, Table 1 + codepoints = u_unpack(str) + case form + when :d + reorder_characters(decompose_codepoints(:canonical, codepoints)) + when :c + compose_codepoints reorder_characters(decompose_codepoints(:canonical, codepoints)) + when :kd + reorder_characters(decompose_codepoints(:compatability, codepoints)) + when :kc + compose_codepoints reorder_characters(decompose_codepoints(:compatability, codepoints)) + else + raise ArgumentError, "#{form} is not a valid normalization variant", caller + end.pack('U*') + end + + # Perform decomposition on the characters in the string + def decompose(str) + decompose_codepoints(:canonical, u_unpack(str)).pack('U*') + end + + # Perform composition on the characters in the string + def compose(str) + compose_codepoints u_unpack(str).pack('U*') + end + + # /// + # /// BEGIN Helper methods for unicode operation + # /// + + # Used to translate an offset from bytes to characters, for instance one received from a regular expression match + def translate_offset(str, byte_offset) + return nil if byte_offset.nil? + return 0 if str == '' + chunk = str[0..byte_offset] + begin + begin + chunk.unpack('U*').length - 1 + rescue ArgumentError => e + chunk = str[0..(byte_offset+=1)] + # Stop retrying at the end of the string + raise e unless byte_offset < chunk.length + # We damaged a character, retry + retry + end + # Catch the ArgumentError so we can throw our own + rescue ArgumentError + raise EncodingError.new('malformed UTF-8 character') + end + end + + # Checks if the string is valid UTF8. + def consumes?(str) + # Unpack is a little bit faster than regular expressions + begin + str.unpack('U*') + true + rescue ArgumentError + false + end + end + + # Returns the number of grapheme clusters in the string. This method is very likely to be moved or renamed + # in future versions. + def g_length(str) + g_unpack(str).length + end + + # Replaces all the non-utf-8 bytes by their iso-8859-1 or cp1252 equivalent resulting in a valid utf-8 string + def tidy_bytes(str) + str.split(//u).map do |c| + if !UTF8_PAT.match(c) + n = c.unpack('C')[0] + n < 128 ? n.chr : + n < 160 ? [UCD.cp1252[n] || n].pack('U') : + n < 192 ? "\xC2" + n.chr : "\xC3" + (n-64).chr + else + c + end + end.join + end + + protected + + # Detect whether the codepoint is in a certain character class. Primarily used by the + # grapheme cluster support. + def in_char_class?(codepoint, classes) + classes.detect { |c| UCD.boundary[c] === codepoint } ? true : false + end + + # Unpack the string at codepoints boundaries + def u_unpack(str) + begin + str.unpack 'U*' + rescue ArgumentError + raise EncodingError.new('malformed UTF-8 character') + end + end + + # Unpack the string at grapheme boundaries instead of codepoint boundaries + def g_unpack(str) + codepoints = u_unpack(str) + unpacked = [] + pos = 0 + marker = 0 + eoc = codepoints.length + while(pos < eoc) + pos += 1 + previous = codepoints[pos-1] + current = codepoints[pos] + if ( + # CR X LF + one = ( previous == UCD.boundary[:cr] and current == UCD.boundary[:lf] ) or + # L X (L|V|LV|LVT) + two = ( UCD.boundary[:l] === previous and in_char_class?(current, [:l,:v,:lv,:lvt]) ) or + # (LV|V) X (V|T) + three = ( in_char_class?(previous, [:lv,:v]) and in_char_class?(current, [:v,:t]) ) or + # (LVT|T) X (T) + four = ( in_char_class?(previous, [:lvt,:t]) and UCD.boundary[:t] === current ) or + # X Extend + five = (UCD.boundary[:extend] === current) + ) + else + unpacked << codepoints[marker..pos-1] + marker = pos + end + end + unpacked + end + + # Reverse operation of g_unpack + def g_pack(unpacked) + unpacked.flatten + end + + # Justifies a string in a certain way. Valid values for <tt>way</tt> are <tt>:right</tt>, <tt>:left</tt> and + # <tt>:center</tt>. Is primarily used as a helper method by <tt>rjust</tt>, <tt>ljust</tt> and <tt>center</tt>. + def justify(str, integer, way, padstr=' ') + raise ArgumentError, "zero width padding" if padstr.length == 0 + padsize = integer - size(str) + padsize = padsize > 0 ? padsize : 0 + case way + when :right + str.dup.insert(0, padding(padsize, padstr)) + when :left + str.dup.insert(-1, padding(padsize, padstr)) + when :center + lpad = padding((padsize / 2.0).floor, padstr) + rpad = padding((padsize / 2.0).ceil, padstr) + str.dup.insert(0, lpad).insert(-1, rpad) + end + end + + # Generates a padding string of a certain size. + def padding(padsize, padstr=' ') + if padsize != 0 + slice(padstr * ((padsize / size(padstr)) + 1), 0, padsize) + else + '' + end + end + + # Convert characters to a different case + def to_case(way, str) + u_unpack(str).map do |codepoint| + cp = UCD[codepoint] + unless cp.nil? + ncp = cp.send(way) + ncp > 0 ? ncp : codepoint + else + codepoint + end + end.pack('U*') + end + + # Re-order codepoints so the string becomes canonical + def reorder_characters(codepoints) + length = codepoints.length- 1 + pos = 0 + while pos < length do + cp1, cp2 = UCD[codepoints[pos]], UCD[codepoints[pos+1]] + if (cp1.combining_class > cp2.combining_class) && (cp2.combining_class > 0) + codepoints[pos..pos+1] = cp2.code, cp1.code + pos += (pos > 0 ? -1 : 1) + else + pos += 1 + end + end + codepoints + end + + # Decompose composed characters to the decomposed form + def decompose_codepoints(type, codepoints) + codepoints.inject([]) do |decomposed, cp| + # if it's a hangul syllable starter character + if HANGUL_SBASE <= cp and cp < HANGUL_SLAST + sindex = cp - HANGUL_SBASE + ncp = [] # new codepoints + ncp << HANGUL_LBASE + sindex / HANGUL_NCOUNT + ncp << HANGUL_VBASE + (sindex % HANGUL_NCOUNT) / HANGUL_TCOUNT + tindex = sindex % HANGUL_TCOUNT + ncp << (HANGUL_TBASE + tindex) unless tindex == 0 + decomposed.concat ncp + # if the codepoint is decomposable in with the current decomposition type + elsif (ncp = UCD[cp].decomp_mapping) and (!UCD[cp].decomp_type || type == :compatability) + decomposed.concat decompose_codepoints(type, ncp.dup) + else + decomposed << cp + end + end + end + + # Compose decomposed characters to the composed form + def compose_codepoints(codepoints) + pos = 0 + eoa = codepoints.length - 1 + starter_pos = 0 + starter_char = codepoints[0] + previous_combining_class = -1 + while pos < eoa + pos += 1 + lindex = starter_char - HANGUL_LBASE + # -- Hangul + if 0 <= lindex and lindex < HANGUL_LCOUNT + vindex = codepoints[starter_pos+1] - HANGUL_VBASE rescue vindex = -1 + if 0 <= vindex and vindex < HANGUL_VCOUNT + tindex = codepoints[starter_pos+2] - HANGUL_TBASE rescue tindex = -1 + if 0 <= tindex and tindex < HANGUL_TCOUNT + j = starter_pos + 2 + eoa -= 2 + else + tindex = 0 + j = starter_pos + 1 + eoa -= 1 + end + codepoints[starter_pos..j] = (lindex * HANGUL_VCOUNT + vindex) * HANGUL_TCOUNT + tindex + HANGUL_SBASE + end + starter_pos += 1 + starter_char = codepoints[starter_pos] + # -- Other characters + else + current_char = codepoints[pos] + current = UCD[current_char] + if current.combining_class > previous_combining_class + if ref = UCD.composition_map[starter_char] + composition = ref[current_char] + else + composition = nil + end + unless composition.nil? + codepoints[starter_pos] = composition + starter_char = composition + codepoints.delete_at pos + eoa -= 1 + pos -= 1 + previous_combining_class = -1 + else + previous_combining_class = current.combining_class + end + else + previous_combining_class = current.combining_class + end + if current.combining_class == 0 + starter_pos = pos + starter_char = codepoints[pos] + end + end + end + codepoints + end + + # UniCode Database + UCD = UnicodeDatabase.new + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/utf8_handler_proc.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/utf8_handler_proc.rb new file mode 100644 index 000000000..f10eecc62 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/multibyte/handlers/utf8_handler_proc.rb @@ -0,0 +1,43 @@ +# Methods in this handler call functions in the utf8proc ruby extension. These are significantly faster than the +# pure ruby versions. Chars automatically uses this handler when it can load the utf8proc extension. For +# documentation on handler methods see UTF8Handler. +class ActiveSupport::Multibyte::Handlers::UTF8HandlerProc < ActiveSupport::Multibyte::Handlers::UTF8Handler #:nodoc: + class << self + def normalize(str, form=ActiveSupport::Multibyte::DEFAULT_NORMALIZATION_FORM) #:nodoc: + codepoints = str.unpack('U*') + case form + when :d + utf8map(str, :stable) + when :c + utf8map(str, :stable, :compose) + when :kd + utf8map(str, :stable, :compat) + when :kc + utf8map(str, :stable, :compose, :compat) + else + raise ArgumentError, "#{form} is not a valid normalization variant", caller + end + end + + def decompose(str) #:nodoc: + utf8map(str, :stable) + end + + def downcase(str) #:nodoc:c + utf8map(str, :casefold) + end + + protected + + def utf8map(str, *option_array) #:nodoc: + options = 0 + option_array.each do |option| + flag = Utf8Proc::Options[option] + raise ArgumentError, "Unknown argument given to utf8map." unless + flag + options |= flag + end + return Utf8Proc::utf8map(str, options) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/option_merger.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/option_merger.rb new file mode 100644 index 000000000..1a4ff9db9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/option_merger.rb @@ -0,0 +1,25 @@ +module ActiveSupport + class OptionMerger #:nodoc: + instance_methods.each do |method| + undef_method(method) if method !~ /^(__|instance_eval|class|object_id)/ + end + + def initialize(context, options) + @context, @options = context, options + end + + private + def method_missing(method, *arguments, &block) + merge_argument_options! arguments + @context.send!(method, *arguments, &block) + end + + def merge_argument_options!(arguments) + arguments << if arguments.last.respond_to? :to_hash + @options.merge(arguments.pop) + else + @options.dup + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/ordered_hash.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/ordered_hash.rb new file mode 100644 index 000000000..6993621ef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/ordered_hash.rb @@ -0,0 +1,43 @@ +# OrderedHash is namespaced to prevent conflicts with other implementations +module ActiveSupport + # Hash is ordered in Ruby 1.9! + if RUBY_VERSION >= '1.9' + OrderedHash = ::Hash + else + class OrderedHash < Array #:nodoc: + def []=(key, value) + if pair = assoc(key) + pair.pop + pair << value + else + self << [key, value] + end + end + + def [](key) + pair = assoc(key) + pair ? pair.last : nil + end + + def delete(key) + pair = assoc(key) + pair ? array_index = index(pair) : nil + array_index ? delete_at(array_index).last : nil + end + + def keys + collect { |key, value| key } + end + + def values + collect { |key, value| value } + end + + def to_hash + returning({}) do |hash| + each { |array| hash[array[0]] = array[1] } + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/ordered_options.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/ordered_options.rb new file mode 100644 index 000000000..306376e9a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/ordered_options.rb @@ -0,0 +1,17 @@ +class OrderedOptions < ActiveSupport::OrderedHash #:nodoc: + def []=(key, value) + super(key.to_sym, value) + end + + def [](key) + super(key.to_sym) + end + + def method_missing(name, *args) + if name.to_s =~ /(.*)=$/ + self[$1.to_sym] = args.first + else + self[name] + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/test_case.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/test_case.rb new file mode 100644 index 000000000..67cde1556 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/test_case.rb @@ -0,0 +1,13 @@ +require 'test/unit/testcase' +require 'active_support/testing/setup_and_teardown' +require 'active_support/testing/default' + +# TODO: move to core_ext +class Test::Unit::TestCase #:nodoc: + include ActiveSupport::Testing::SetupAndTeardown +end + +module ActiveSupport + class TestCase < Test::Unit::TestCase + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/testing/default.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/testing/default.rb new file mode 100644 index 000000000..a0bd6303c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/testing/default.rb @@ -0,0 +1,9 @@ +module ActiveSupport + module Testing + module Default #:nodoc: + # Placeholder so test/unit ignores test cases without any tests. + def default_test + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/testing/setup_and_teardown.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/testing/setup_and_teardown.rb new file mode 100644 index 000000000..ed8e34510 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/testing/setup_and_teardown.rb @@ -0,0 +1,93 @@ +module ActiveSupport + module Testing + module SetupAndTeardown + # For compatibility with Ruby < 1.8.6 + PASSTHROUGH_EXCEPTIONS = + if defined?(Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS) + Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS + else + [NoMemoryError, SignalException, Interrupt, SystemExit] + end + + def self.included(base) + base.send :include, ActiveSupport::Callbacks + base.define_callbacks :setup, :teardown + + begin + require 'mocha' + base.alias_method_chain :run, :callbacks_and_mocha + rescue LoadError + base.alias_method_chain :run, :callbacks + end + end + + # This redefinition is unfortunate but test/unit shows us no alternative. + def run_with_callbacks(result) #:nodoc: + return if @method_name.to_s == "default_test" + + yield(Test::Unit::TestCase::STARTED, name) + @_result = result + begin + run_callbacks :setup + setup + __send__(@method_name) + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue *PASSTHROUGH_EXCEPTIONS + raise + rescue Exception + add_error($!) + ensure + begin + teardown + run_callbacks :teardown, :enumerator => :reverse_each + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue *PASSTHROUGH_EXCEPTIONS + raise + rescue Exception + add_error($!) + end + end + result.add_run + yield(Test::Unit::TestCase::FINISHED, name) + end + + # Doubly unfortunate: mocha does the same so we have to hax their hax. + def run_with_callbacks_and_mocha(result) + return if @method_name.to_s == "default_test" + + yield(Test::Unit::TestCase::STARTED, name) + @_result = result + begin + mocha_setup + begin + run_callbacks :setup + setup + __send__(@method_name) + mocha_verify { add_assertion } + rescue Mocha::ExpectationError => e + add_failure(e.message, e.backtrace) + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue StandardError, ScriptError + add_error($!) + ensure + begin + teardown + run_callbacks :teardown, :enumerator => :reverse_each + rescue Test::Unit::AssertionFailedError => e + add_failure(e.message, e.backtrace) + rescue StandardError, ScriptError + add_error($!) + end + end + ensure + mocha_teardown + end + result.add_run + yield(Test::Unit::TestCase::FINISHED, name) + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/time_with_zone.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/time_with_zone.rb new file mode 100644 index 000000000..bfc5b1603 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/time_with_zone.rb @@ -0,0 +1,283 @@ +require 'tzinfo' +module ActiveSupport + # A Time-like class that can represent a time in any time zone. Necessary because standard Ruby Time instances are + # limited to UTC and the system's <tt>ENV['TZ']</tt> zone. + # + # You shouldn't ever need to create a TimeWithZone instance directly via <tt>new</tt> -- instead, Rails provides the methods + # +local+, +parse+, +at+ and +now+ on TimeZone instances, and +in_time_zone+ on Time and DateTime instances, for a more + # user-friendly syntax. Examples: + # + # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)' + # Time.zone.local(2007, 2, 10, 15, 30, 45) # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # Time.zone.parse('2007-02-01 15:30:45') # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # Time.zone.at(1170361845) # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # Time.zone.now # => Sun, 18 May 2008 13:07:55 EDT -04:00 + # Time.utc(2007, 2, 10, 20, 30, 45).in_time_zone # => Sat, 10 Feb 2007 15:30:45 EST -05:00 + # + # See TimeZone and ActiveSupport::CoreExtensions::Time::Zones for further documentation for these methods. + # + # TimeWithZone instances implement the same API as Ruby Time instances, so that Time and TimeWithZone instances are interchangable. Examples: + # + # t = Time.zone.now # => Sun, 18 May 2008 13:27:25 EDT -04:00 + # t.hour # => 13 + # t.dst? # => true + # t.utc_offset # => -14400 + # t.zone # => "EDT" + # t.to_s(:rfc822) # => "Sun, 18 May 2008 13:27:25 -0400" + # t + 1.day # => Mon, 19 May 2008 13:27:25 EDT -04:00 + # t.beginning_of_year # => Tue, 01 Jan 2008 00:00:00 EST -05:00 + # t > Time.utc(1999) # => true + # t.is_a?(Time) # => true + # t.is_a?(ActiveSupport::TimeWithZone) # => true + class TimeWithZone + include Comparable + attr_reader :time_zone + + def initialize(utc_time, time_zone, local_time = nil, period = nil) + @utc, @time_zone, @time = utc_time, time_zone, local_time + @period = @utc ? period : get_period_and_ensure_valid_local_time + end + + # Returns a Time or DateTime instance that represents the time in +time_zone+. + def time + @time ||= period.to_local(@utc) + end + + # Returns a Time or DateTime instance that represents the time in UTC. + def utc + @utc ||= period.to_utc(@time) + end + alias_method :comparable_time, :utc + alias_method :getgm, :utc + alias_method :getutc, :utc + alias_method :gmtime, :utc + + # Returns the underlying TZInfo::TimezonePeriod. + def period + @period ||= time_zone.period_for_utc(@utc) + end + + # Returns the simultaneous time in <tt>Time.zone</tt>, or the specified zone. + def in_time_zone(new_zone = ::Time.zone) + return self if time_zone == new_zone + utc.in_time_zone(new_zone) + end + + # Returns a <tt>Time.local()</tt> instance of the simultaneous time in your system's <tt>ENV['TZ']</tt> zone + def localtime + utc.getlocal + end + alias_method :getlocal, :localtime + + def dst? + period.dst? + end + alias_method :isdst, :dst? + + def utc? + time_zone.name == 'UTC' + end + alias_method :gmt?, :utc? + + def utc_offset + period.utc_total_offset + end + alias_method :gmt_offset, :utc_offset + alias_method :gmtoff, :utc_offset + + def formatted_offset(colon = true, alternate_utc_string = nil) + utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Time uses +zone+ to display the time zone abbreviation, so we're duck-typing it. + def zone + period.zone_identifier.to_s + end + + def inspect + "#{time.strftime('%a, %d %b %Y %H:%M:%S')} #{zone} #{formatted_offset}" + end + + def xmlschema + "#{time.strftime("%Y-%m-%dT%H:%M:%S")}#{formatted_offset(true, 'Z')}" + end + alias_method :iso8601, :xmlschema + + def to_json(options = nil) + if ActiveSupport.use_standard_json_time_format + xmlschema.inspect + else + %("#{time.strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)}") + end + end + + def to_yaml(options = {}) + if options.kind_of?(YAML::Emitter) + utc.to_yaml(options) + else + time.to_yaml(options).gsub('Z', formatted_offset(true, 'Z')) + end + end + + def httpdate + utc.httpdate + end + + def rfc2822 + to_s(:rfc822) + end + alias_method :rfc822, :rfc2822 + + # <tt>:db</tt> format outputs time in UTC; all others output time in local. + # Uses TimeWithZone's +strftime+, so <tt>%Z</tt> and <tt>%z</tt> work correctly. + def to_s(format = :default) + return utc.to_s(format) if format == :db + if formatter = ::Time::DATE_FORMATS[format] + formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter) + else + "#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby 1.9 Time#to_s format + end + end + + # Replaces <tt>%Z</tt> and <tt>%z</tt> directives with +zone+ and +formatted_offset+, respectively, before passing to + # Time#strftime, so that zone information is correct + def strftime(format) + format = format.gsub('%Z', zone).gsub('%z', formatted_offset(false)) + time.strftime(format) + end + + # Use the time in UTC for comparisons. + def <=>(other) + utc <=> other + end + + def between?(min, max) + utc.between?(min, max) + end + + def eql?(other) + utc == other + end + + # If wrapped +time+ is a DateTime, use DateTime#since instead of <tt>+</tt>. + # Otherwise, just pass on to +method_missing+. + def +(other) + result = utc.acts_like?(:date) ? utc.since(other) : utc + other rescue utc.since(other) + result.in_time_zone(time_zone) + end + + # If a time-like object is passed in, compare it with +utc+. + # Else if wrapped +time+ is a DateTime, use DateTime#ago instead of DateTime#-. + # Otherwise, just pass on to +method_missing+. + def -(other) + if other.acts_like?(:time) + utc - other + else + result = utc.acts_like?(:date) ? utc.ago(other) : utc - other rescue utc.ago(other) + result.in_time_zone(time_zone) + end + end + + def since(other) + utc.since(other).in_time_zone(time_zone) + end + + def ago(other) + utc.ago(other).in_time_zone(time_zone) + end + + def advance(options) + utc.advance(options).in_time_zone(time_zone) + end + + %w(year mon month day mday hour min sec).each do |method_name| + class_eval <<-EOV + def #{method_name} + time.#{method_name} + end + EOV + end + + def usec + time.respond_to?(:usec) ? time.usec : 0 + end + + def to_a + [time.sec, time.min, time.hour, time.day, time.mon, time.year, time.wday, time.yday, dst?, zone] + end + + def to_f + utc.to_f + end + + def to_i + utc.to_i + end + alias_method :hash, :to_i + alias_method :tv_sec, :to_i + + # A TimeWithZone acts like a Time, so just return +self+. + def to_time + self + end + + def to_datetime + utc.to_datetime.new_offset(Rational(utc_offset, 86_400)) + end + + # So that +self+ <tt>acts_like?(:time)</tt>. + def acts_like_time? + true + end + + # Say we're a Time to thwart type checking. + def is_a?(klass) + klass == ::Time || super + end + alias_method :kind_of?, :is_a? + + # Neuter freeze because freezing can cause problems with lazy loading of attributes. + def freeze + self + end + + def marshal_dump + [utc, time_zone.name, time] + end + + def marshal_load(variables) + initialize(variables[0], ::Time.send!(:get_zone, variables[1]), variables[2]) + end + + # Ensure proxy class responds to all methods that underlying time instance responds to. + def respond_to?(sym, include_priv = false) + # consistently respond false to acts_like?(:date), regardless of whether #time is a Time or DateTime + return false if sym.to_s == 'acts_like_date?' + super || time.respond_to?(sym, include_priv) + end + + # Send the missing method to +time+ instance, and wrap result in a new TimeWithZone with the existing +time_zone+. + def method_missing(sym, *args, &block) + result = time.__send__(sym, *args, &block) + result.acts_like?(:time) ? self.class.new(nil, time_zone, result) : result + end + + private + def get_period_and_ensure_valid_local_time + # we don't want a Time.local instance enforcing its own DST rules as well, + # so transfer time values to a utc constructor if necessary + @time = transfer_time_values_to_utc_constructor(@time) unless @time.utc? + begin + @time_zone.period_for_local(@time) + rescue ::TZInfo::PeriodNotFound + # time is in the "spring forward" hour gap, so we're moving the time forward one hour and trying again + @time += 1.hour + retry + end + end + + def transfer_time_values_to_utc_constructor(time) + ::Time.utc_time(time.year, time.month, time.day, time.hour, time.min, time.sec, time.respond_to?(:usec) ? time.usec : 0) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/values/time_zone.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/values/time_zone.rb new file mode 100644 index 000000000..a71c819fb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/values/time_zone.rb @@ -0,0 +1,394 @@ +# The TimeZone class serves as a wrapper around TZInfo::Timezone instances. It allows us to do the following: +# +# * Limit the set of zones provided by TZInfo to a meaningful subset of 142 zones. +# * Retrieve and display zones with a friendlier name (e.g., "Eastern Time (US & Canada)" instead of "America/New_York"). +# * Lazily load TZInfo::Timezone instances only when they're needed. +# * Create ActiveSupport::TimeWithZone instances via TimeZone's +local+, +parse+, +at+ and +now+ methods. +# +# If you set <tt>config.time_zone</tt> in the Rails Initializer, you can access this TimeZone object via <tt>Time.zone</tt>: +# +# # environment.rb: +# Rails::Initializer.run do |config| +# config.time_zone = "Eastern Time (US & Canada)" +# end +# +# Time.zone # => #<TimeZone:0x514834...> +# Time.zone.name # => "Eastern Time (US & Canada)" +# Time.zone.now # => Sun, 18 May 2008 14:30:44 EDT -04:00 +# +# The version of TZInfo bundled with Active Support only includes the definitions necessary to support the zones +# defined by the TimeZone class. If you need to use zones that aren't defined by TimeZone, you'll need to install the TZInfo gem +# (if a recent version of the gem is installed locally, this will be used instead of the bundled version.) +class TimeZone + unless const_defined?(:MAPPING) + # Keys are Rails TimeZone names, values are TZInfo identifiers + MAPPING = { + "International Date Line West" => "Pacific/Midway", + "Midway Island" => "Pacific/Midway", + "Samoa" => "Pacific/Pago_Pago", + "Hawaii" => "Pacific/Honolulu", + "Alaska" => "America/Juneau", + "Pacific Time (US & Canada)" => "America/Los_Angeles", + "Tijuana" => "America/Tijuana", + "Mountain Time (US & Canada)" => "America/Denver", + "Arizona" => "America/Phoenix", + "Chihuahua" => "America/Chihuahua", + "Mazatlan" => "America/Mazatlan", + "Central Time (US & Canada)" => "America/Chicago", + "Saskatchewan" => "America/Regina", + "Guadalajara" => "America/Mexico_City", + "Mexico City" => "America/Mexico_City", + "Monterrey" => "America/Monterrey", + "Central America" => "America/Guatemala", + "Eastern Time (US & Canada)" => "America/New_York", + "Indiana (East)" => "America/Indiana/Indianapolis", + "Bogota" => "America/Bogota", + "Lima" => "America/Lima", + "Quito" => "America/Lima", + "Atlantic Time (Canada)" => "America/Halifax", + "Caracas" => "America/Caracas", + "La Paz" => "America/La_Paz", + "Santiago" => "America/Santiago", + "Newfoundland" => "America/St_Johns", + "Brasilia" => "America/Argentina/Buenos_Aires", + "Buenos Aires" => "America/Argentina/Buenos_Aires", + "Georgetown" => "America/Argentina/San_Juan", + "Greenland" => "America/Godthab", + "Mid-Atlantic" => "Atlantic/South_Georgia", + "Azores" => "Atlantic/Azores", + "Cape Verde Is." => "Atlantic/Cape_Verde", + "Dublin" => "Europe/Dublin", + "Edinburgh" => "Europe/Dublin", + "Lisbon" => "Europe/Lisbon", + "London" => "Europe/London", + "Casablanca" => "Africa/Casablanca", + "Monrovia" => "Africa/Monrovia", + "UTC" => "Etc/UTC", + "Belgrade" => "Europe/Belgrade", + "Bratislava" => "Europe/Bratislava", + "Budapest" => "Europe/Budapest", + "Ljubljana" => "Europe/Ljubljana", + "Prague" => "Europe/Prague", + "Sarajevo" => "Europe/Sarajevo", + "Skopje" => "Europe/Skopje", + "Warsaw" => "Europe/Warsaw", + "Zagreb" => "Europe/Zagreb", + "Brussels" => "Europe/Brussels", + "Copenhagen" => "Europe/Copenhagen", + "Madrid" => "Europe/Madrid", + "Paris" => "Europe/Paris", + "Amsterdam" => "Europe/Amsterdam", + "Berlin" => "Europe/Berlin", + "Bern" => "Europe/Berlin", + "Rome" => "Europe/Rome", + "Stockholm" => "Europe/Stockholm", + "Vienna" => "Europe/Vienna", + "West Central Africa" => "Africa/Algiers", + "Bucharest" => "Europe/Bucharest", + "Cairo" => "Africa/Cairo", + "Helsinki" => "Europe/Helsinki", + "Kyev" => "Europe/Kiev", + "Riga" => "Europe/Riga", + "Sofia" => "Europe/Sofia", + "Tallinn" => "Europe/Tallinn", + "Vilnius" => "Europe/Vilnius", + "Athens" => "Europe/Athens", + "Istanbul" => "Europe/Istanbul", + "Minsk" => "Europe/Minsk", + "Jerusalem" => "Asia/Jerusalem", + "Harare" => "Africa/Harare", + "Pretoria" => "Africa/Johannesburg", + "Moscow" => "Europe/Moscow", + "St. Petersburg" => "Europe/Moscow", + "Volgograd" => "Europe/Moscow", + "Kuwait" => "Asia/Kuwait", + "Riyadh" => "Asia/Riyadh", + "Nairobi" => "Africa/Nairobi", + "Baghdad" => "Asia/Baghdad", + "Tehran" => "Asia/Tehran", + "Abu Dhabi" => "Asia/Muscat", + "Muscat" => "Asia/Muscat", + "Baku" => "Asia/Baku", + "Tbilisi" => "Asia/Tbilisi", + "Yerevan" => "Asia/Yerevan", + "Kabul" => "Asia/Kabul", + "Ekaterinburg" => "Asia/Yekaterinburg", + "Islamabad" => "Asia/Karachi", + "Karachi" => "Asia/Karachi", + "Tashkent" => "Asia/Tashkent", + "Chennai" => "Asia/Kolkata", + "Kolkata" => "Asia/Kolkata", + "Mumbai" => "Asia/Kolkata", + "New Delhi" => "Asia/Kolkata", + "Kathmandu" => "Asia/Katmandu", + "Astana" => "Asia/Dhaka", + "Dhaka" => "Asia/Dhaka", + "Sri Jayawardenepura" => "Asia/Dhaka", + "Almaty" => "Asia/Almaty", + "Novosibirsk" => "Asia/Novosibirsk", + "Rangoon" => "Asia/Rangoon", + "Bangkok" => "Asia/Bangkok", + "Hanoi" => "Asia/Bangkok", + "Jakarta" => "Asia/Jakarta", + "Krasnoyarsk" => "Asia/Krasnoyarsk", + "Beijing" => "Asia/Shanghai", + "Chongqing" => "Asia/Chongqing", + "Hong Kong" => "Asia/Hong_Kong", + "Urumqi" => "Asia/Urumqi", + "Kuala Lumpur" => "Asia/Kuala_Lumpur", + "Singapore" => "Asia/Singapore", + "Taipei" => "Asia/Taipei", + "Perth" => "Australia/Perth", + "Irkutsk" => "Asia/Irkutsk", + "Ulaan Bataar" => "Asia/Ulaanbaatar", + "Seoul" => "Asia/Seoul", + "Osaka" => "Asia/Tokyo", + "Sapporo" => "Asia/Tokyo", + "Tokyo" => "Asia/Tokyo", + "Yakutsk" => "Asia/Yakutsk", + "Darwin" => "Australia/Darwin", + "Adelaide" => "Australia/Adelaide", + "Canberra" => "Australia/Melbourne", + "Melbourne" => "Australia/Melbourne", + "Sydney" => "Australia/Sydney", + "Brisbane" => "Australia/Brisbane", + "Hobart" => "Australia/Hobart", + "Vladivostok" => "Asia/Vladivostok", + "Guam" => "Pacific/Guam", + "Port Moresby" => "Pacific/Port_Moresby", + "Magadan" => "Asia/Magadan", + "Solomon Is." => "Asia/Magadan", + "New Caledonia" => "Pacific/Noumea", + "Fiji" => "Pacific/Fiji", + "Kamchatka" => "Asia/Kamchatka", + "Marshall Is." => "Pacific/Majuro", + "Auckland" => "Pacific/Auckland", + "Wellington" => "Pacific/Auckland", + "Nuku'alofa" => "Pacific/Tongatapu" + }.each { |name, zone| name.freeze; zone.freeze } + MAPPING.freeze + end + + include Comparable + attr_reader :name + + # Create a new TimeZone object with the given name and offset. The + # offset is the number of seconds that this time zone is offset from UTC + # (GMT). Seconds were chosen as the offset unit because that is the unit that + # Ruby uses to represent time zone offsets (see Time#utc_offset). + def initialize(name, utc_offset, tzinfo = nil) + @name = name + @utc_offset = utc_offset + @tzinfo = tzinfo + end + + def utc_offset + @utc_offset ||= tzinfo.current_period.utc_offset + end + + # Returns the offset of this time zone as a formatted string, of the + # format "+HH:MM". + def formatted_offset(colon=true, alternate_utc_string = nil) + utc_offset == 0 && alternate_utc_string || utc_offset.to_utc_offset_s(colon) + end + + # Compare this time zone to the parameter. The two are comapred first on + # their offsets, and then by name. + def <=>(zone) + result = (utc_offset <=> zone.utc_offset) + result = (name <=> zone.name) if result == 0 + result + end + + # Returns a textual representation of this time zone. + def to_s + "(GMT#{formatted_offset}) #{name}" + end + + # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from given values. Example: + # + # Time.zone = "Hawaii" # => "Hawaii" + # Time.zone.local(2007, 2, 1, 15, 30, 45) # => Thu, 01 Feb 2007 15:30:45 HST -10:00 + def local(*args) + time = Time.utc_time(*args) + ActiveSupport::TimeWithZone.new(nil, self, time) + end + + # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from number of seconds since the Unix epoch. Example: + # + # Time.zone = "Hawaii" # => "Hawaii" + # Time.utc(2000).to_f # => 946684800.0 + # Time.zone.at(946684800.0) # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + def at(secs) + utc = Time.at(secs).utc rescue DateTime.civil(1970).since(secs) + utc.in_time_zone(self) + end + + # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from parsed string. Example: + # + # Time.zone = "Hawaii" # => "Hawaii" + # Time.zone.parse('1999-12-31 14:00:00') # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + # + # If upper components are missing from the string, they are supplied from TimeZone#now: + # + # Time.zone.now # => Fri, 31 Dec 1999 14:00:00 HST -10:00 + # Time.zone.parse('22:30:00') # => Fri, 31 Dec 1999 22:30:00 HST -10:00 + def parse(str, now=now) + date_parts = Date._parse(str) + return if date_parts.blank? + time = Time.parse(str, now) rescue DateTime.parse(str) + if date_parts[:offset].nil? + ActiveSupport::TimeWithZone.new(nil, self, time) + else + time.in_time_zone(self) + end + end + + # Returns an ActiveSupport::TimeWithZone instance representing the current time + # in the time zone represented by +self+. Example: + # + # Time.zone = 'Hawaii' # => "Hawaii" + # Time.zone.now # => Wed, 23 Jan 2008 20:24:27 HST -10:00 + def now + Time.now.utc.in_time_zone(self) + end + + # Return the current date in this time zone. + def today + tzinfo.now.to_date + end + + # Adjust the given time to the simultaneous time in the time zone represented by +self+. Returns a + # Time.utc() instance -- if you want an ActiveSupport::TimeWithZone instance, use Time#in_time_zone() instead. + def utc_to_local(time) + tzinfo.utc_to_local(time) + end + + # Adjust the given time to the simultaneous time in UTC. Returns a Time.utc() instance. + def local_to_utc(time, dst=true) + tzinfo.local_to_utc(time, dst) + end + + # Available so that TimeZone instances respond like TZInfo::Timezone instances + def period_for_utc(time) + tzinfo.period_for_utc(time) + end + + # Available so that TimeZone instances respond like TZInfo::Timezone instances + def period_for_local(time, dst=true) + tzinfo.period_for_local(time, dst) + end + + # TODO: Preload instead of lazy load for thread safety + def tzinfo + @tzinfo ||= TZInfo::Timezone.get(MAPPING[name]) + end + + unless const_defined?(:ZONES) + ZONES = [] + ZONES_MAP = {} + [[-39_600, "International Date Line West", "Midway Island", "Samoa" ], + [-36_000, "Hawaii" ], + [-32_400, "Alaska" ], + [-28_800, "Pacific Time (US & Canada)", "Tijuana" ], + [-25_200, "Mountain Time (US & Canada)", "Chihuahua", "Mazatlan", + "Arizona" ], + [-21_600, "Central Time (US & Canada)", "Saskatchewan", "Guadalajara", + "Mexico City", "Monterrey", "Central America" ], + [-18_000, "Eastern Time (US & Canada)", "Indiana (East)", "Bogota", + "Lima", "Quito" ], + [-14_400, "Atlantic Time (Canada)", "Caracas", "La Paz", "Santiago" ], + [-12_600, "Newfoundland" ], + [-10_800, "Brasilia", "Buenos Aires", "Georgetown", "Greenland" ], + [ -7_200, "Mid-Atlantic" ], + [ -3_600, "Azores", "Cape Verde Is." ], + [ 0, "Dublin", "Edinburgh", "Lisbon", "London", "Casablanca", + "Monrovia", "UTC" ], + [ 3_600, "Belgrade", "Bratislava", "Budapest", "Ljubljana", "Prague", + "Sarajevo", "Skopje", "Warsaw", "Zagreb", "Brussels", + "Copenhagen", "Madrid", "Paris", "Amsterdam", "Berlin", + "Bern", "Rome", "Stockholm", "Vienna", + "West Central Africa" ], + [ 7_200, "Bucharest", "Cairo", "Helsinki", "Kyev", "Riga", "Sofia", + "Tallinn", "Vilnius", "Athens", "Istanbul", "Minsk", + "Jerusalem", "Harare", "Pretoria" ], + [ 10_800, "Moscow", "St. Petersburg", "Volgograd", "Kuwait", "Riyadh", + "Nairobi", "Baghdad" ], + [ 12_600, "Tehran" ], + [ 14_400, "Abu Dhabi", "Muscat", "Baku", "Tbilisi", "Yerevan" ], + [ 16_200, "Kabul" ], + [ 18_000, "Ekaterinburg", "Islamabad", "Karachi", "Tashkent" ], + [ 19_800, "Chennai", "Kolkata", "Mumbai", "New Delhi" ], + [ 20_700, "Kathmandu" ], + [ 21_600, "Astana", "Dhaka", "Sri Jayawardenepura", "Almaty", + "Novosibirsk" ], + [ 23_400, "Rangoon" ], + [ 25_200, "Bangkok", "Hanoi", "Jakarta", "Krasnoyarsk" ], + [ 28_800, "Beijing", "Chongqing", "Hong Kong", "Urumqi", + "Kuala Lumpur", "Singapore", "Taipei", "Perth", "Irkutsk", + "Ulaan Bataar" ], + [ 32_400, "Seoul", "Osaka", "Sapporo", "Tokyo", "Yakutsk" ], + [ 34_200, "Darwin", "Adelaide" ], + [ 36_000, "Canberra", "Melbourne", "Sydney", "Brisbane", "Hobart", + "Vladivostok", "Guam", "Port Moresby" ], + [ 39_600, "Magadan", "Solomon Is.", "New Caledonia" ], + [ 43_200, "Fiji", "Kamchatka", "Marshall Is.", "Auckland", + "Wellington" ], + [ 46_800, "Nuku'alofa" ]]. + each do |offset, *places| + places.each do |place| + place.freeze + zone = new(place, offset) + ZONES << zone + ZONES_MAP[place] = zone + end + end + ZONES.sort! + ZONES.freeze + ZONES_MAP.freeze + + US_ZONES = ZONES.find_all { |z| z.name =~ /US|Arizona|Indiana|Hawaii|Alaska/ } + US_ZONES.freeze + end + + class << self + alias_method :create, :new + + # Return a TimeZone instance with the given name, or +nil+ if no + # such TimeZone instance exists. (This exists to support the use of + # this class with the +composed_of+ macro.) + def new(name) + self[name] + end + + # Return an array of all TimeZone objects. There are multiple + # TimeZone objects per time zone, in many cases, to make it easier + # for users to find their own time zone. + def all + ZONES + end + + # Locate a specific time zone object. If the argument is a string, it + # is interpreted to mean the name of the timezone to locate. If it is a + # numeric value it is either the hour offset, or the second offset, of the + # timezone to find. (The first one with that offset will be returned.) + # Returns +nil+ if no such time zone is known to the system. + def [](arg) + case arg + when String + ZONES_MAP[arg] + when Numeric, ActiveSupport::Duration + arg *= 3600 if arg.abs <= 13 + all.find { |z| z.utc_offset == arg.to_i } + else + raise ArgumentError, "invalid argument to TimeZone[]: #{arg.inspect}" + end + end + + # A convenience method for returning a collection of TimeZone objects + # for time zones in the USA. + def us_zones + US_ZONES + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/values/unicode_tables.dat b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/values/unicode_tables.dat Binary files differnew file mode 100644 index 000000000..35edb148c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/values/unicode_tables.dat diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor.rb new file mode 100644 index 000000000..cdbcedc75 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor.rb @@ -0,0 +1,26 @@ +# Prefer gems to the bundled libs. +require 'rubygems' + +begin + gem 'builder', '~> 2.1.2' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/builder-2.1.2" +end + +begin + gem 'xml-simple', '~> 1.0.11' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/xml-simple-1.0.11" +end + +begin + gem 'memcache-client', '~> 1.5.0' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/memcache-client-1.5.0" +end + +begin + gem 'tzinfo', '~> 0.3.8' +rescue Gem::LoadError + $:.unshift "#{File.dirname(__FILE__)}/vendor/tzinfo-0.3.8" +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/blankslate.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/blankslate.rb new file mode 100644 index 000000000..da6034d9c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/blankslate.rb @@ -0,0 +1,113 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +###################################################################### +# BlankSlate provides an abstract base class with no predefined +# methods (except for <tt>\_\_send__</tt> and <tt>\_\_id__</tt>). +# BlankSlate is useful as a base class when writing classes that +# depend upon <tt>method_missing</tt> (e.g. dynamic proxies). +# +class BlankSlate + class << self + + # Hide the method named +name+ in the BlankSlate class. Don't + # hide +instance_eval+ or any method beginning with "__". + def hide(name) + if instance_methods.include?(name.to_s) and + name !~ /^(__|instance_eval)/ + @hidden_methods ||= {} + @hidden_methods[name.to_sym] = instance_method(name) + undef_method name + end + end + + def find_hidden_method(name) + @hidden_methods ||= {} + @hidden_methods[name] || superclass.find_hidden_method(name) + end + + # Redefine a previously hidden method so that it may be called on a blank + # slate object. + def reveal(name) + bound_method = nil + unbound_method = find_hidden_method(name) + fail "Don't know how to reveal method '#{name}'" unless unbound_method + define_method(name) do |*args| + bound_method ||= unbound_method.bind(self) + bound_method.call(*args) + end + end + end + + instance_methods.each { |m| hide(m) } +end + +###################################################################### +# Since Ruby is very dynamic, methods added to the ancestors of +# BlankSlate <em>after BlankSlate is defined</em> will show up in the +# list of available BlankSlate methods. We handle this by defining a +# hook in the Object and Kernel classes that will hide any method +# defined after BlankSlate has been loaded. +# +module Kernel + class << self + alias_method :blank_slate_method_added, :method_added + + # Detect method additions to Kernel and remove them in the + # BlankSlate class. + def method_added(name) + result = blank_slate_method_added(name) + return result if self != Kernel + BlankSlate.hide(name) + result + end + end +end + +###################################################################### +# Same as above, except in Object. +# +class Object + class << self + alias_method :blank_slate_method_added, :method_added + + # Detect method additions to Object and remove them in the + # BlankSlate class. + def method_added(name) + result = blank_slate_method_added(name) + return result if self != Object + BlankSlate.hide(name) + result + end + + def find_hidden_method(name) + nil + end + end +end + +###################################################################### +# Also, modules included into Object need to be scanned and have their +# instance methods removed from blank slate. In theory, modules +# included into Kernel would have to be removed as well, but a +# "feature" of Ruby prevents late includes into modules from being +# exposed in the first place. +# +class Module + alias blankslate_original_append_features append_features + def append_features(mod) + result = blankslate_original_append_features(mod) + return result if mod != Object + instance_methods.each do |name| + BlankSlate.hide(name) + end + result + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder.rb new file mode 100644 index 000000000..971927766 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder.rb @@ -0,0 +1,13 @@ +#!/usr/bin/env ruby + +#-- +# Copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'builder/xmlmarkup' +require 'builder/xmlevents' diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb new file mode 100644 index 000000000..2935b6f1d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb @@ -0,0 +1,20 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'blankslate' + +###################################################################### +# BlankSlate has been promoted to a top level name and is now +# available as a standalone gem. We make the name available in the +# Builder namespace for compatibility. +# +module Builder + BlankSlate = ::BlankSlate +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/css.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/css.rb new file mode 100644 index 000000000..e086a1b13 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/css.rb @@ -0,0 +1,250 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org). +# Copyright 2005 by Scott Barron (scott@elitists.net). +# All rights reserved. +# +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +# +# Much of this is taken from Jim's work in xmlbase.rb and xmlmarkup.rb. +# Documentation has also been copied and pasted and modified to reflect +# that we're building CSS here instead of XML. Jim is conducting the +# orchestra here and I'm just off in the corner playing a flute. +#++ + +# Provide a flexible and easy to use Builder for creating Cascading +# Style Sheets (CSS). + + +require 'builder/blankslate' + +module Builder + + # Create a Cascading Style Sheet (CSS) using Ruby. + # + # Example usage: + # + # css = Builder::CSS.new + # + # text_color = '#7F7F7F' + # preferred_fonts = 'Helvetica, Arial, sans_serif' + # + # css.comment! 'This is our stylesheet' + # css.body { + # background_color '#FAFAFA' + # font_size 'small' + # font_family preferred_fonts + # color text_color + # } + # + # css.id!('navbar') { + # width '500px' + # } + # + # css.class!('navitem') { + # color 'red' + # } + # + # css.a :hover { + # text_decoration 'underline' + # } + # + # css.div(:id => 'menu') { + # background 'green' + # } + # + # css.div(:class => 'foo') { + # background 'red' + # } + # + # This will yield the following stylesheet: + # + # /* This is our stylesheet */ + # body { + # background_color: #FAFAFA; + # font_size: small; + # font_family: Helvetica, Arial, sans_serif; + # color: #7F7F7F; + # } + # + # #navbar { + # width: 500px; + # } + # + # .navitem { + # color: red; + # } + # + # a:hover { + # text_decoration: underline; + # } + # + # div#menu { + # background: green; + # } + # + # div.foo { + # background: red; + # } + # + class CSS < BlankSlate + + # Create a CSS builder. + # + # out:: Object receiving the markup.1 +out+ must respond to + # <tt><<</tt>. + # indent:: Number of spaces used for indentation (0 implies no + # indentation and no line breaks). + # + def initialize(indent=2) + @indent = indent + @target = [] + @parts = [] + @library = {} + end + + def +(part) + _join_with_op! '+' + self + end + + def >>(part) + _join_with_op! '' + self + end + + def >(part) + _join_with_op! '>' + self + end + + def |(part) + _join_with_op! ',' + self + end + + # Return the target of the builder + def target! + @target * '' + end + + # Create a comment string in the output. + def comment!(comment_text) + @target << "/* #{comment_text} */\n" + end + + def id!(arg, &block) + _start_container('#'+arg.to_s, nil, block_given?) + _css_block(block) if block + _unify_block + self + end + + def class!(arg, &block) + _start_container('.'+arg.to_s, nil, block_given?) + _css_block(block) if block + _unify_block + self + end + + def store!(sym, &block) + @library[sym] = block.to_proc + end + + def group!(*args, &block) + args.each do |arg| + if arg.is_a?(Symbol) + instance_eval(&@library[arg]) + else + instance_eval(&arg) + end + _text ', ' unless arg == args.last + end + if block + _css_block(block) + _unify_block + end + end + + def method_missing(sym, *args, &block) + sym = "#{sym}:#{args.shift}" if args.first.kind_of?(Symbol) + if block + _start_container(sym, args.first) + _css_block(block) + _unify_block + elsif @in_block + _indent + _css_line(sym, *args) + _newline + return self + else + _start_container(sym, args.first, false) + _unify_block + end + self + end + + # "Cargo culted" from Jim who also "cargo culted" it. See xmlbase.rb. + def nil? + false + end + + private + def _unify_block + @target << @parts * '' + @parts = [] + end + + def _join_with_op!(op) + rhs, lhs = @target.pop, @target.pop + @target << "#{lhs} #{op} #{rhs}" + end + + def _text(text) + @parts << text + end + + def _css_block(block) + _newline + _nested_structures(block) + _end_container + _end_block + end + + def _end_block + _newline + _newline + end + + def _newline + _text "\n" + end + + def _indent + _text ' ' * @indent + end + + def _nested_structures(block) + @in_block = true + self.instance_eval(&block) + @in_block = false + end + + def _start_container(sym, atts = {}, with_bracket = true) + selector = sym.to_s + selector << ".#{atts[:class]}" if atts && atts[:class] + selector << '#' + "#{atts[:id]}" if atts && atts[:id] + @parts << "#{selector}#{with_bracket ? ' {' : ''}" + end + + def _end_container + @parts << "}" + end + + def _css_line(sym, *args) + _text("#{sym.to_s.gsub('_','-')}: #{args * ' '};") + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb new file mode 100644 index 000000000..8bdbd0589 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb @@ -0,0 +1,115 @@ +#!/usr/bin/env ruby + +# The XChar library is provided courtesy of Sam Ruby (See +# http://intertwingly.net/stories/2005/09/28/xchar.rb) + +# -------------------------------------------------------------------- + +# If the Builder::XChar module is not currently defined, fail on any +# name clashes in standard library classes. + +module Builder + def self.check_for_name_collision(klass, method_name, defined_constant=nil) + if klass.instance_methods.include?(method_name.to_s) + fail RuntimeError, + "Name Collision: Method '#{method_name}' is already defined in #{klass}" + end + end +end + +if ! defined?(Builder::XChar) + Builder.check_for_name_collision(String, "to_xs") + Builder.check_for_name_collision(Fixnum, "xchr") +end + +###################################################################### +module Builder + + #################################################################### + # XML Character converter, from Sam Ruby: + # (see http://intertwingly.net/stories/2005/09/28/xchar.rb). + # + module XChar # :nodoc: + + # See + # http://intertwingly.net/stories/2004/04/14/i18n.html#CleaningWindows + # for details. + CP1252 = { # :nodoc: + 128 => 8364, # euro sign + 130 => 8218, # single low-9 quotation mark + 131 => 402, # latin small letter f with hook + 132 => 8222, # double low-9 quotation mark + 133 => 8230, # horizontal ellipsis + 134 => 8224, # dagger + 135 => 8225, # double dagger + 136 => 710, # modifier letter circumflex accent + 137 => 8240, # per mille sign + 138 => 352, # latin capital letter s with caron + 139 => 8249, # single left-pointing angle quotation mark + 140 => 338, # latin capital ligature oe + 142 => 381, # latin capital letter z with caron + 145 => 8216, # left single quotation mark + 146 => 8217, # right single quotation mark + 147 => 8220, # left double quotation mark + 148 => 8221, # right double quotation mark + 149 => 8226, # bullet + 150 => 8211, # en dash + 151 => 8212, # em dash + 152 => 732, # small tilde + 153 => 8482, # trade mark sign + 154 => 353, # latin small letter s with caron + 155 => 8250, # single right-pointing angle quotation mark + 156 => 339, # latin small ligature oe + 158 => 382, # latin small letter z with caron + 159 => 376, # latin capital letter y with diaeresis + } + + # See http://www.w3.org/TR/REC-xml/#dt-chardata for details. + PREDEFINED = { + 38 => '&', # ampersand + 60 => '<', # left angle bracket + 62 => '>', # right angle bracket + } + + # See http://www.w3.org/TR/REC-xml/#charsets for details. + VALID = [ + 0x9, 0xA, 0xD, + (0x20..0xD7FF), + (0xE000..0xFFFD), + (0x10000..0x10FFFF) + ] + end + +end + + +###################################################################### +# Enhance the Fixnum class with a XML escaped character conversion. +# +class Fixnum + XChar = Builder::XChar if ! defined?(XChar) + + # XML escaped version of chr + def xchr + n = XChar::CP1252[self] || self + case n when *XChar::VALID + XChar::PREDEFINED[n] or (n<128 ? n.chr : "&##{n};") + else + '*' + end + end +end + + +###################################################################### +# Enhance the String class with a XML escaped character version of +# to_s. +# +class String + # XML escaped version of to_s + def to_xs + unpack('U*').map {|n| n.xchr}.join # ASCII, UTF-8 + rescue + unpack('C*').map {|n| n.xchr}.join # ISO-8859-1, WIN-1252 + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb new file mode 100644 index 000000000..ace4b56d5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb @@ -0,0 +1,139 @@ +#!/usr/bin/env ruby + +require 'builder/blankslate' + +module Builder + + # Generic error for builder + class IllegalBlockError < RuntimeError; end + + # XmlBase is a base class for building XML builders. See + # Builder::XmlMarkup and Builder::XmlEvents for examples. + class XmlBase < BlankSlate + + # Create an XML markup builder. + # + # out:: Object receiving the markup. +out+ must respond to + # <tt><<</tt>. + # indent:: Number of spaces used for indentation (0 implies no + # indentation and no line breaks). + # initial:: Level of initial indentation. + # + def initialize(indent=0, initial=0) + @indent = indent + @level = initial + end + + # Create a tag named +sym+. Other than the first argument which + # is the tag name, the arguments are the same as the tags + # implemented via <tt>method_missing</tt>. + def tag!(sym, *args, &block) + method_missing(sym.to_sym, *args, &block) + end + + # Create XML markup based on the name of the method. This method + # is never invoked directly, but is called for each markup method + # in the markup block. + def method_missing(sym, *args, &block) + text = nil + attrs = nil + sym = "#{sym}:#{args.shift}" if args.first.kind_of?(Symbol) + args.each do |arg| + case arg + when Hash + attrs ||= {} + attrs.merge!(arg) + else + text ||= '' + text << arg.to_s + end + end + if block + unless text.nil? + raise ArgumentError, "XmlMarkup cannot mix a text argument with a block" + end + _indent + _start_tag(sym, attrs) + _newline + _nested_structures(block) + _indent + _end_tag(sym) + _newline + elsif text.nil? + _indent + _start_tag(sym, attrs, true) + _newline + else + _indent + _start_tag(sym, attrs) + text! text + _end_tag(sym) + _newline + end + @target + end + + # Append text to the output target. Escape any markup. May be + # used within the markup brackets as: + # + # builder.p { |b| b.br; b.text! "HI" } #=> <p><br/>HI</p> + def text!(text) + _text(_escape(text)) + end + + # Append text to the output target without escaping any markup. + # May be used within the markup brackets as: + # + # builder.p { |x| x << "<br/>HI" } #=> <p><br/>HI</p> + # + # This is useful when using non-builder enabled software that + # generates strings. Just insert the string directly into the + # builder without changing the inserted markup. + # + # It is also useful for stacking builder objects. Builders only + # use <tt><<</tt> to append to the target, so by supporting this + # method/operation builders can use other builders as their + # targets. + def <<(text) + _text(text) + end + + # For some reason, nil? is sent to the XmlMarkup object. If nil? + # is not defined and method_missing is invoked, some strange kind + # of recursion happens. Since nil? won't ever be an XML tag, it + # is pretty safe to define it here. (Note: this is an example of + # cargo cult programming, + # cf. http://fishbowl.pastiche.org/2004/10/13/cargo_cult_programming). + def nil? + false + end + + private + + require 'builder/xchar' + def _escape(text) + text.to_xs + end + + def _escape_quote(text) + _escape(text).gsub(%r{"}, '"') # " WART + end + + def _newline + return if @indent == 0 + text! "\n" + end + + def _indent + return if @indent == 0 || @level == 0 + text!(" " * (@level * @indent)) + end + + def _nested_structures(block) + @level += 1 + block.call(self) + ensure + @level -= 1 + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb new file mode 100644 index 000000000..91fcd21e1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb @@ -0,0 +1,63 @@ +#!/usr/bin/env ruby + +#-- +# Copyright 2004 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +require 'builder/xmlmarkup' + +module Builder + + # Create a series of SAX-like XML events (e.g. start_tag, end_tag) + # from the markup code. XmlEvent objects are used in a way similar + # to XmlMarkup objects, except that a series of events are generated + # and passed to a handler rather than generating character-based + # markup. + # + # Usage: + # xe = Builder::XmlEvents.new(hander) + # xe.title("HI") # Sends start_tag/end_tag/text messages to the handler. + # + # Indentation may also be selected by providing value for the + # indentation size and initial indentation level. + # + # xe = Builder::XmlEvents.new(handler, indent_size, initial_indent_level) + # + # == XML Event Handler + # + # The handler object must expect the following events. + # + # [<tt>start_tag(tag, attrs)</tt>] + # Announces that a new tag has been found. +tag+ is the name of + # the tag and +attrs+ is a hash of attributes for the tag. + # + # [<tt>end_tag(tag)</tt>] + # Announces that an end tag for +tag+ has been found. + # + # [<tt>text(text)</tt>] + # Announces that a string of characters (+text+) has been found. + # A series of characters may be broken up into more than one + # +text+ call, so the client cannot assume that a single + # callback contains all the text data. + # + class XmlEvents < XmlMarkup + def text!(text) + @target.text(text) + end + + def _start_tag(sym, attrs, end_too=false) + @target.start_tag(sym, attrs) + _end_tag(sym) if end_too + end + + def _end_tag(sym) + @target.end_tag(sym) + end + end + +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb new file mode 100644 index 000000000..ec59dddc3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb @@ -0,0 +1,328 @@ +#!/usr/bin/env ruby +#-- +# Copyright 2004, 2005 by Jim Weirich (jim@weirichhouse.org). +# All rights reserved. + +# Permission is granted for use, copying, modification, distribution, +# and distribution of modified versions of this work as long as the +# above copyright notice is included. +#++ + +# Provide a flexible and easy to use Builder for creating XML markup. +# See XmlBuilder for usage details. + +require 'builder/xmlbase' + +module Builder + + # Create XML markup easily. All (well, almost all) methods sent to + # an XmlMarkup object will be translated to the equivalent XML + # markup. Any method with a block will be treated as an XML markup + # tag with nested markup in the block. + # + # Examples will demonstrate this easier than words. In the + # following, +xm+ is an +XmlMarkup+ object. + # + # xm.em("emphasized") # => <em>emphasized</em> + # xm.em { xmm.b("emp & bold") } # => <em><b>emph & bold</b></em> + # xm.a("A Link", "href"=>"http://onestepback.org") + # # => <a href="http://onestepback.org">A Link</a> + # xm.div { br } # => <div><br/></div> + # xm.target("name"=>"compile", "option"=>"fast") + # # => <target option="fast" name="compile"\> + # # NOTE: order of attributes is not specified. + # + # xm.instruct! # <?xml version="1.0" encoding="UTF-8"?> + # xm.html { # <html> + # xm.head { # <head> + # xm.title("History") # <title>History</title> + # } # </head> + # xm.body { # <body> + # xm.comment! "HI" # <! -- HI --> + # xm.h1("Header") # <h1>Header</h1> + # xm.p("paragraph") # <p>paragraph</p> + # } # </body> + # } # </html> + # + # == Notes: + # + # * The order that attributes are inserted in markup tags is + # undefined. + # + # * Sometimes you wish to insert text without enclosing tags. Use + # the <tt>text!</tt> method to accomplish this. + # + # Example: + # + # xm.div { # <div> + # xm.text! "line"; xm.br # line<br/> + # xm.text! "another line"; xmbr # another line<br/> + # } # </div> + # + # * The special XML characters <, >, and & are converted to <, + # > and & automatically. Use the <tt><<</tt> operation to + # insert text without modification. + # + # * Sometimes tags use special characters not allowed in ruby + # identifiers. Use the <tt>tag!</tt> method to handle these + # cases. + # + # Example: + # + # xml.tag!("SOAP:Envelope") { ... } + # + # will produce ... + # + # <SOAP:Envelope> ... </SOAP:Envelope>" + # + # <tt>tag!</tt> will also take text and attribute arguments (after + # the tag name) like normal markup methods. (But see the next + # bullet item for a better way to handle XML namespaces). + # + # * Direct support for XML namespaces is now available. If the + # first argument to a tag call is a symbol, it will be joined to + # the tag to produce a namespace:tag combination. It is easier to + # show this than describe it. + # + # xml.SOAP :Envelope do ... end + # + # Just put a space before the colon in a namespace to produce the + # right form for builder (e.g. "<tt>SOAP:Envelope</tt>" => + # "<tt>xml.SOAP :Envelope</tt>") + # + # * XmlMarkup builds the markup in any object (called a _target_) + # that accepts the <tt><<</tt> method. If no target is given, + # then XmlMarkup defaults to a string target. + # + # Examples: + # + # xm = Builder::XmlMarkup.new + # result = xm.title("yada") + # # result is a string containing the markup. + # + # buffer = "" + # xm = Builder::XmlMarkup.new(buffer) + # # The markup is appended to buffer (using <<) + # + # xm = Builder::XmlMarkup.new(STDOUT) + # # The markup is written to STDOUT (using <<) + # + # xm = Builder::XmlMarkup.new + # x2 = Builder::XmlMarkup.new(:target=>xm) + # # Markup written to +x2+ will be send to +xm+. + # + # * Indentation is enabled by providing the number of spaces to + # indent for each level as a second argument to XmlBuilder.new. + # Initial indentation may be specified using a third parameter. + # + # Example: + # + # xm = Builder.new(:indent=>2) + # # xm will produce nicely formatted and indented XML. + # + # xm = Builder.new(:indent=>2, :margin=>4) + # # xm will produce nicely formatted and indented XML with 2 + # # spaces per indent and an over all indentation level of 4. + # + # builder = Builder::XmlMarkup.new(:target=>$stdout, :indent=>2) + # builder.name { |b| b.first("Jim"); b.last("Weirich) } + # # prints: + # # <name> + # # <first>Jim</first> + # # <last>Weirich</last> + # # </name> + # + # * The instance_eval implementation which forces self to refer to + # the message receiver as self is now obsolete. We now use normal + # block calls to execute the markup block. This means that all + # markup methods must now be explicitly send to the xml builder. + # For instance, instead of + # + # xml.div { strong("text") } + # + # you need to write: + # + # xml.div { xml.strong("text") } + # + # Although more verbose, the subtle change in semantics within the + # block was found to be prone to error. To make this change a + # little less cumbersome, the markup block now gets the markup + # object sent as an argument, allowing you to use a shorter alias + # within the block. + # + # For example: + # + # xml_builder = Builder::XmlMarkup.new + # xml_builder.div { |xml| + # xml.stong("text") + # } + # + class XmlMarkup < XmlBase + + # Create an XML markup builder. Parameters are specified by an + # option hash. + # + # :target=><em>target_object</em>:: + # Object receiving the markup. +out+ must respond to the + # <tt><<</tt> operator. The default is a plain string target. + # + # :indent=><em>indentation</em>:: + # Number of spaces used for indentation. The default is no + # indentation and no line breaks. + # + # :margin=><em>initial_indentation_level</em>:: + # Amount of initial indentation (specified in levels, not + # spaces). + # + # :escape_attrs=><b>OBSOLETE</em>:: + # The :escape_attrs option is no longer supported by builder + # (and will be quietly ignored). String attribute values are + # now automatically escaped. If you need unescaped attribute + # values (perhaps you are using entities in the attribute + # values), then give the value as a Symbol. This allows much + # finer control over escaping attribute values. + # + def initialize(options={}) + indent = options[:indent] || 0 + margin = options[:margin] || 0 + super(indent, margin) + @target = options[:target] || "" + end + + # Return the target of the builder. + def target! + @target + end + + def comment!(comment_text) + _ensure_no_block block_given? + _special("<!-- ", " -->", comment_text, nil) + end + + # Insert an XML declaration into the XML markup. + # + # For example: + # + # xml.declare! :ELEMENT, :blah, "yada" + # # => <!ELEMENT blah "yada"> + def declare!(inst, *args, &block) + _indent + @target << "<!#{inst}" + args.each do |arg| + case arg + when String + @target << %{ "#{arg}"} # " WART + when Symbol + @target << " #{arg}" + end + end + if block_given? + @target << " [" + _newline + _nested_structures(block) + @target << "]" + end + @target << ">" + _newline + end + + # Insert a processing instruction into the XML markup. E.g. + # + # For example: + # + # xml.instruct! + # #=> <?xml version="1.0" encoding="UTF-8"?> + # xml.instruct! :aaa, :bbb=>"ccc" + # #=> <?aaa bbb="ccc"?> + # + def instruct!(directive_tag=:xml, attrs={}) + _ensure_no_block block_given? + if directive_tag == :xml + a = { :version=>"1.0", :encoding=>"UTF-8" } + attrs = a.merge attrs + end + _special( + "<?#{directive_tag}", + "?>", + nil, + attrs, + [:version, :encoding, :standalone]) + end + + # Insert a CDATA section into the XML markup. + # + # For example: + # + # xml.cdata!("text to be included in cdata") + # #=> <![CDATA[text to be included in cdata]]> + # + def cdata!(text) + _ensure_no_block block_given? + _special("<![CDATA[", "]]>", text, nil) + end + + private + + # NOTE: All private methods of a builder object are prefixed when + # a "_" character to avoid possible conflict with XML tag names. + + # Insert text directly in to the builder's target. + def _text(text) + @target << text + end + + # Insert special instruction. + def _special(open, close, data=nil, attrs=nil, order=[]) + _indent + @target << open + @target << data if data + _insert_attributes(attrs, order) if attrs + @target << close + _newline + end + + # Start an XML tag. If <tt>end_too</tt> is true, then the start + # tag is also the end tag (e.g. <br/> + def _start_tag(sym, attrs, end_too=false) + @target << "<#{sym}" + _insert_attributes(attrs) + @target << "/" if end_too + @target << ">" + end + + # Insert an ending tag. + def _end_tag(sym) + @target << "</#{sym}>" + end + + # Insert the attributes (given in the hash). + def _insert_attributes(attrs, order=[]) + return if attrs.nil? + order.each do |k| + v = attrs[k] + @target << %{ #{k}="#{_attr_value(v)}"} if v # " WART + end + attrs.each do |k, v| + @target << %{ #{k}="#{_attr_value(v)}"} unless order.member?(k) # " WART + end + end + + def _attr_value(value) + case value + when Symbol + value.to_s + else + _escape_quote(value.to_s) + end + end + + def _ensure_no_block(got_block) + if got_block + fail IllegalBlockError, + "Blocks are not allowed on XML instructions" + end + end + + end + +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/memcache-client-1.5.0/memcache.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/memcache-client-1.5.0/memcache.rb new file mode 100644 index 000000000..dda7f2c30 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/memcache-client-1.5.0/memcache.rb @@ -0,0 +1,849 @@ +# All original code copyright 2005, 2006, 2007 Bob Cottrell, Eric Hodel, +# The Robot Co-op. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. Neither the names of the authors nor the names of their contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE +# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, +# OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +# OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +# EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +require 'socket' +require 'thread' +require 'timeout' +require 'rubygems' + +class String + + ## + # Uses the ITU-T polynomial in the CRC32 algorithm. + + def crc32_ITU_T + n = length + r = 0xFFFFFFFF + + n.times do |i| + r ^= self[i] + 8.times do + if (r & 1) != 0 then + r = (r>>1) ^ 0xEDB88320 + else + r >>= 1 + end + end + end + + r ^ 0xFFFFFFFF + end + +end + +## +# A Ruby client library for memcached. +# +# This is intended to provide access to basic memcached functionality. It +# does not attempt to be complete implementation of the entire API, but it is +# approaching a complete implementation. + +class MemCache + + ## + # The version of MemCache you are using. + + VERSION = '1.5.0' + + ## + # Default options for the cache object. + + DEFAULT_OPTIONS = { + :namespace => nil, + :readonly => false, + :multithread => false, + } + + ## + # Default memcached port. + + DEFAULT_PORT = 11211 + + ## + # Default memcached server weight. + + DEFAULT_WEIGHT = 1 + + ## + # The amount of time to wait for a response from a memcached server. If a + # response is not completed within this time, the connection to the server + # will be closed and an error will be raised. + + attr_accessor :request_timeout + + ## + # The namespace for this instance + + attr_reader :namespace + + ## + # The multithread setting for this instance + + attr_reader :multithread + + ## + # The servers this client talks to. Play at your own peril. + + attr_reader :servers + + ## + # Accepts a list of +servers+ and a list of +opts+. +servers+ may be + # omitted. See +servers=+ for acceptable server list arguments. + # + # Valid options for +opts+ are: + # + # [:namespace] Prepends this value to all keys added or retrieved. + # [:readonly] Raises an exeception on cache writes when true. + # [:multithread] Wraps cache access in a Mutex for thread safety. + # + # Other options are ignored. + + def initialize(*args) + servers = [] + opts = {} + + case args.length + when 0 then # NOP + when 1 then + arg = args.shift + case arg + when Hash then opts = arg + when Array then servers = arg + when String then servers = [arg] + else raise ArgumentError, 'first argument must be Array, Hash or String' + end + when 2 then + servers, opts = args + else + raise ArgumentError, "wrong number of arguments (#{args.length} for 2)" + end + + opts = DEFAULT_OPTIONS.merge opts + @namespace = opts[:namespace] + @readonly = opts[:readonly] + @multithread = opts[:multithread] + @mutex = Mutex.new if @multithread + @buckets = [] + self.servers = servers + end + + ## + # Returns a string representation of the cache object. + + def inspect + "<MemCache: %d servers, %d buckets, ns: %p, ro: %p>" % + [@servers.length, @buckets.length, @namespace, @readonly] + end + + ## + # Returns whether there is at least one active server for the object. + + def active? + not @servers.empty? + end + + ## + # Returns whether or not the cache object was created read only. + + def readonly? + @readonly + end + + ## + # Set the servers that the requests will be distributed between. Entries + # can be either strings of the form "hostname:port" or + # "hostname:port:weight" or MemCache::Server objects. + + def servers=(servers) + # Create the server objects. + @servers = servers.collect do |server| + case server + when String + host, port, weight = server.split ':', 3 + port ||= DEFAULT_PORT + weight ||= DEFAULT_WEIGHT + Server.new self, host, port, weight + when Server + if server.memcache.multithread != @multithread then + raise ArgumentError, "can't mix threaded and non-threaded servers" + end + server + else + raise TypeError, "cannot convert #{server.class} into MemCache::Server" + end + end + + # Create an array of server buckets for weight selection of servers. + @buckets = [] + @servers.each do |server| + server.weight.times { @buckets.push(server) } + end + end + + ## + # Deceremets the value for +key+ by +amount+ and returns the new value. + # +key+ must already exist. If +key+ is not an integer, it is assumed to be + # 0. +key+ can not be decremented below 0. + + def decr(key, amount = 1) + server, cache_key = request_setup key + + if @multithread then + threadsafe_cache_decr server, cache_key, amount + else + cache_decr server, cache_key, amount + end + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Retrieves +key+ from memcache. If +raw+ is false, the value will be + # unmarshalled. + + def get(key, raw = false) + server, cache_key = request_setup key + + value = if @multithread then + threadsafe_cache_get server, cache_key + else + cache_get server, cache_key + end + + return nil if value.nil? + + value = Marshal.load value unless raw + + return value + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Retrieves multiple values from memcached in parallel, if possible. + # + # The memcached protocol supports the ability to retrieve multiple + # keys in a single request. Pass in an array of keys to this method + # and it will: + # + # 1. map the key to the appropriate memcached server + # 2. send a single request to each server that has one or more key values + # + # Returns a hash of values. + # + # cache["a"] = 1 + # cache["b"] = 2 + # cache.get_multi "a", "b" # => { "a" => 1, "b" => 2 } + + def get_multi(*keys) + raise MemCacheError, 'No active servers' unless active? + + keys.flatten! + key_count = keys.length + cache_keys = {} + server_keys = Hash.new { |h,k| h[k] = [] } + + # map keys to servers + keys.each do |key| + server, cache_key = request_setup key + cache_keys[cache_key] = key + server_keys[server] << cache_key + end + + results = {} + + server_keys.each do |server, keys_for_server| + keys_for_server = keys_for_server.join ' ' + values = if @multithread then + threadsafe_cache_get_multi server, keys_for_server + else + cache_get_multi server, keys_for_server + end + values.each do |key, value| + results[cache_keys[key]] = Marshal.load value + end + end + + return results + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Increments the value for +key+ by +amount+ and retruns the new value. + # +key+ must already exist. If +key+ is not an integer, it is assumed to be + # 0. + + def incr(key, amount = 1) + server, cache_key = request_setup key + + if @multithread then + threadsafe_cache_incr server, cache_key, amount + else + cache_incr server, cache_key, amount + end + rescue TypeError, SocketError, SystemCallError, IOError => err + handle_error server, err + end + + ## + # Add +key+ to the cache with value +value+ that expires in +expiry+ + # seconds. If +raw+ is true, +value+ will not be Marshalled. + # + # Warning: Readers should not call this method in the event of a cache miss; + # see MemCache#add. + + def set(key, value, expiry = 0, raw = false) + raise MemCacheError, "Update of readonly cache" if @readonly + server, cache_key = request_setup key + socket = server.socket + + value = Marshal.dump value unless raw + command = "set #{cache_key} 0 #{expiry} #{value.size}\r\n#{value}\r\n" + + begin + @mutex.lock if @multithread + socket.write command + result = socket.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + ensure + @mutex.unlock if @multithread + end + end + + ## + # Add +key+ to the cache with value +value+ that expires in +expiry+ + # seconds, but only if +key+ does not already exist in the cache. + # If +raw+ is true, +value+ will not be Marshalled. + # + # Readers should call this method in the event of a cache miss, not + # MemCache#set or MemCache#[]=. + + def add(key, value, expiry = 0, raw = false) + raise MemCacheError, "Update of readonly cache" if @readonly + server, cache_key = request_setup key + socket = server.socket + + value = Marshal.dump value unless raw + command = "add #{cache_key} 0 #{expiry} #{value.size}\r\n#{value}\r\n" + + begin + @mutex.lock if @multithread + socket.write command + result = socket.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + ensure + @mutex.unlock if @multithread + end + end + + ## + # Removes +key+ from the cache in +expiry+ seconds. + + def delete(key, expiry = 0) + @mutex.lock if @multithread + + raise MemCacheError, "No active servers" unless active? + cache_key = make_cache_key key + server = get_server_for_key cache_key + + sock = server.socket + raise MemCacheError, "No connection to server" if sock.nil? + + begin + sock.write "delete #{cache_key} #{expiry}\r\n" + result = sock.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + end + ensure + @mutex.unlock if @multithread + end + + ## + # Flush the cache from all memcache servers. + + def flush_all + raise MemCacheError, 'No active servers' unless active? + raise MemCacheError, "Update of readonly cache" if @readonly + begin + @mutex.lock if @multithread + @servers.each do |server| + begin + sock = server.socket + raise MemCacheError, "No connection to server" if sock.nil? + sock.write "flush_all\r\n" + result = sock.gets + raise_on_error_response! result + result + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + end + end + ensure + @mutex.unlock if @multithread + end + end + + ## + # Reset the connection to all memcache servers. This should be called if + # there is a problem with a cache lookup that might have left the connection + # in a corrupted state. + + def reset + @servers.each { |server| server.close } + end + + ## + # Returns statistics for each memcached server. An explanation of the + # statistics can be found in the memcached docs: + # + # http://code.sixapart.com/svn/memcached/trunk/server/doc/protocol.txt + # + # Example: + # + # >> pp CACHE.stats + # {"localhost:11211"=> + # {"bytes"=>4718, + # "pid"=>20188, + # "connection_structures"=>4, + # "time"=>1162278121, + # "pointer_size"=>32, + # "limit_maxbytes"=>67108864, + # "cmd_get"=>14532, + # "version"=>"1.2.0", + # "bytes_written"=>432583, + # "cmd_set"=>32, + # "get_misses"=>0, + # "total_connections"=>19, + # "curr_connections"=>3, + # "curr_items"=>4, + # "uptime"=>1557, + # "get_hits"=>14532, + # "total_items"=>32, + # "rusage_system"=>0.313952, + # "rusage_user"=>0.119981, + # "bytes_read"=>190619}} + # => nil + + def stats + raise MemCacheError, "No active servers" unless active? + server_stats = {} + + @servers.each do |server| + sock = server.socket + raise MemCacheError, "No connection to server" if sock.nil? + + value = nil + begin + sock.write "stats\r\n" + stats = {} + while line = sock.gets do + raise_on_error_response! line + break if line == "END\r\n" + if line =~ /\ASTAT ([\w]+) ([\w\.\:]+)/ then + name, value = $1, $2 + stats[name] = case name + when 'version' + value + when 'rusage_user', 'rusage_system' then + seconds, microseconds = value.split(/:/, 2) + microseconds ||= 0 + Float(seconds) + (Float(microseconds) / 1_000_000) + else + if value =~ /\A\d+\Z/ then + value.to_i + else + value + end + end + end + end + server_stats["#{server.host}:#{server.port}"] = stats + rescue SocketError, SystemCallError, IOError => err + server.close + raise MemCacheError, err.message + end + end + + server_stats + end + + ## + # Shortcut to get a value from the cache. + + alias [] get + + ## + # Shortcut to save a value in the cache. This method does not set an + # expiration on the entry. Use set to specify an explicit expiry. + + def []=(key, value) + set key, value + end + + protected + + ## + # Create a key for the cache, incorporating the namespace qualifier if + # requested. + + def make_cache_key(key) + if namespace.nil? then + key + else + "#{@namespace}:#{key}" + end + end + + ## + # Pick a server to handle the request based on a hash of the key. + + def get_server_for_key(key) + raise ArgumentError, "illegal character in key #{key.inspect}" if + key =~ /\s/ + raise ArgumentError, "key too long #{key.inspect}" if key.length > 250 + raise MemCacheError, "No servers available" if @servers.empty? + return @servers.first if @servers.length == 1 + + hkey = hash_for key + + 20.times do |try| + server = @buckets[hkey % @buckets.nitems] + return server if server.alive? + hkey += hash_for "#{try}#{key}" + end + + raise MemCacheError, "No servers available" + end + + ## + # Returns an interoperable hash value for +key+. (I think, docs are + # sketchy for down servers). + + def hash_for(key) + (key.crc32_ITU_T >> 16) & 0x7fff + end + + ## + # Performs a raw decr for +cache_key+ from +server+. Returns nil if not + # found. + + def cache_decr(server, cache_key, amount) + socket = server.socket + socket.write "decr #{cache_key} #{amount}\r\n" + text = socket.gets + raise_on_error_response! text + return nil if text == "NOT_FOUND\r\n" + return text.to_i + end + + ## + # Fetches the raw data for +cache_key+ from +server+. Returns nil on cache + # miss. + + def cache_get(server, cache_key) + socket = server.socket + socket.write "get #{cache_key}\r\n" + keyline = socket.gets # "VALUE <key> <flags> <bytes>\r\n" + + if keyline.nil? then + server.close + raise MemCacheError, "lost connection to #{server.host}:#{server.port}" + end + + raise_on_error_response! keyline + return nil if keyline == "END\r\n" + + unless keyline =~ /(\d+)\r/ then + server.close + raise MemCacheError, "unexpected response #{keyline.inspect}" + end + value = socket.read $1.to_i + socket.read 2 # "\r\n" + socket.gets # "END\r\n" + return value + end + + ## + # Fetches +cache_keys+ from +server+ using a multi-get. + + def cache_get_multi(server, cache_keys) + values = {} + socket = server.socket + socket.write "get #{cache_keys}\r\n" + + while keyline = socket.gets do + return values if keyline == "END\r\n" + raise_on_error_response! keyline + + unless keyline =~ /\AVALUE (.+) (.+) (.+)/ then + server.close + raise MemCacheError, "unexpected response #{keyline.inspect}" + end + + key, data_length = $1, $3 + values[$1] = socket.read data_length.to_i + socket.read(2) # "\r\n" + end + + server.close + raise MemCacheError, "lost connection to #{server.host}:#{server.port}" + end + + ## + # Performs a raw incr for +cache_key+ from +server+. Returns nil if not + # found. + + def cache_incr(server, cache_key, amount) + socket = server.socket + socket.write "incr #{cache_key} #{amount}\r\n" + text = socket.gets + raise_on_error_response! text + return nil if text == "NOT_FOUND\r\n" + return text.to_i + end + + ## + # Handles +error+ from +server+. + + def handle_error(server, error) + server.close if server + new_error = MemCacheError.new error.message + new_error.set_backtrace error.backtrace + raise new_error + end + + ## + # Performs setup for making a request with +key+ from memcached. Returns + # the server to fetch the key from and the complete key to use. + + def request_setup(key) + raise MemCacheError, 'No active servers' unless active? + cache_key = make_cache_key key + server = get_server_for_key cache_key + raise MemCacheError, 'No connection to server' if server.socket.nil? + return server, cache_key + end + + def threadsafe_cache_decr(server, cache_key, amount) # :nodoc: + @mutex.lock + cache_decr server, cache_key, amount + ensure + @mutex.unlock + end + + def threadsafe_cache_get(server, cache_key) # :nodoc: + @mutex.lock + cache_get server, cache_key + ensure + @mutex.unlock + end + + def threadsafe_cache_get_multi(socket, cache_keys) # :nodoc: + @mutex.lock + cache_get_multi socket, cache_keys + ensure + @mutex.unlock + end + + def threadsafe_cache_incr(server, cache_key, amount) # :nodoc: + @mutex.lock + cache_incr server, cache_key, amount + ensure + @mutex.unlock + end + + def raise_on_error_response!(response) + if response =~ /\A(?:CLIENT_|SERVER_)?ERROR (.*)/ + raise MemCacheError, $1.strip + end + end + + + ## + # This class represents a memcached server instance. + + class Server + + ## + # The amount of time to wait to establish a connection with a memcached + # server. If a connection cannot be established within this time limit, + # the server will be marked as down. + + CONNECT_TIMEOUT = 0.25 + + ## + # The amount of time to wait before attempting to re-establish a + # connection with a server that is marked dead. + + RETRY_DELAY = 30.0 + + ## + # The host the memcached server is running on. + + attr_reader :host + + ## + # The port the memcached server is listening on. + + attr_reader :port + + ## + # The weight given to the server. + + attr_reader :weight + + ## + # The time of next retry if the connection is dead. + + attr_reader :retry + + ## + # A text status string describing the state of the server. + + attr_reader :status + + ## + # Create a new MemCache::Server object for the memcached instance + # listening on the given host and port, weighted by the given weight. + + def initialize(memcache, host, port = DEFAULT_PORT, weight = DEFAULT_WEIGHT) + raise ArgumentError, "No host specified" if host.nil? or host.empty? + raise ArgumentError, "No port specified" if port.nil? or port.to_i.zero? + + @memcache = memcache + @host = host + @port = port.to_i + @weight = weight.to_i + + @multithread = @memcache.multithread + @mutex = Mutex.new + + @sock = nil + @retry = nil + @status = 'NOT CONNECTED' + end + + ## + # Return a string representation of the server object. + + def inspect + "<MemCache::Server: %s:%d [%d] (%s)>" % [@host, @port, @weight, @status] + end + + ## + # Check whether the server connection is alive. This will cause the + # socket to attempt to connect if it isn't already connected and or if + # the server was previously marked as down and the retry time has + # been exceeded. + + def alive? + !!socket + end + + ## + # Try to connect to the memcached server targeted by this object. + # Returns the connected socket object on success or nil on failure. + + def socket + @mutex.lock if @multithread + return @sock if @sock and not @sock.closed? + + @sock = nil + + # If the host was dead, don't retry for a while. + return if @retry and @retry > Time.now + + # Attempt to connect if not already connected. + begin + @sock = timeout CONNECT_TIMEOUT do + TCPSocket.new @host, @port + end + if Socket.constants.include? 'TCP_NODELAY' then + @sock.setsockopt Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1 + end + @retry = nil + @status = 'CONNECTED' + rescue SocketError, SystemCallError, IOError, Timeout::Error => err + mark_dead err.message + end + + return @sock + ensure + @mutex.unlock if @multithread + end + + ## + # Close the connection to the memcached server targeted by this + # object. The server is not considered dead. + + def close + @mutex.lock if @multithread + @sock.close if @sock && !@sock.closed? + @sock = nil + @retry = nil + @status = "NOT CONNECTED" + ensure + @mutex.unlock if @multithread + end + + private + + ## + # Mark the server as dead and close its socket. + + def mark_dead(reason = "Unknown error") + @sock.close if @sock && !@sock.closed? + @sock = nil + @retry = Time.now + RETRY_DELAY + + @status = sprintf "DEAD: %s, will retry at %s", reason, @retry + end + end + + ## + # Base MemCache exception class. + + class MemCacheError < RuntimeError; end + +end + diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo.rb new file mode 100644 index 000000000..c8bdbeec5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo.rb @@ -0,0 +1,33 @@ +#-- +# Copyright (c) 2005-2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +# Add the directory containing this file to the start of the load path if it +# isn't there already. +$:.unshift(File.dirname(__FILE__)) unless + $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__))) + +require 'tzinfo/timezone' +# require 'tzinfo/country' +# require 'tzinfo/tzdataparser' +# require 'tzinfo/timezone_proxy' +require 'tzinfo/data_timezone' +require 'tzinfo/linked_timezone'
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone.rb new file mode 100644 index 000000000..5eccbdf0d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone.rb @@ -0,0 +1,47 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/info_timezone' + +module TZInfo + + # A Timezone based on a DataTimezoneInfo. + 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). + # + # If no TimezonePeriod could be found, PeriodNotFound is raised. + def period_for_utc(utc) + info.period_for_utc(utc) + end + + # Returns the set of TimezonePeriod instances that are valid for the given + # 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 +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone_info.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone_info.rb new file mode 100644 index 000000000..f34fabc36 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/data_timezone_info.rb @@ -0,0 +1,226 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/time_or_datetime' +require 'tzinfo/timezone_info' +require 'tzinfo/timezone_offset_info' +require 'tzinfo/timezone_period' +require 'tzinfo/timezone_transition_info' + +module TZInfo + # Thrown if no offsets have been defined when calling period_for_utc or + # periods_for_local. Indicates an error in the timezone data. + class NoOffsetsDefined < StandardError + end + + # Represents a (non-linked) timezone defined in a data module. + class DataTimezoneInfo < TimezoneInfo #:nodoc: + + # Constructs a new TimezoneInfo with its identifier. + def initialize(identifier) + super(identifier) + @offsets = {} + @transitions = [] + end + + # Defines a offset. The id uniquely identifies this offset within the + # timezone. utc_offset and std_offset define the offset in seconds of + # standard time from UTC and daylight savings from standard time + # respectively. abbreviation describes the timezone offset (e.g. GMT, BST, + # EST or EDT). + # + # The first offset to be defined is treated as the offset that applies + # until the first transition. This will usually be in Local Mean Time (LMT). + # + # ArgumentError will be raised if the id is already defined. + def offset(id, utc_offset, std_offset, abbreviation) + raise ArgumentError, 'Offset already defined' if @offsets.has_key?(id) + + offset = TimezoneOffsetInfo.new(utc_offset, std_offset, abbreviation) + @offsets[id] = offset + @previous_offset = offset unless @previous_offset + end + + # Defines a transition. Transitions must be defined in chronological order. + # ArgumentError will be raised if a transition is added out of order. + # offset_id refers to an id defined with offset. ArgumentError will be + # raised if the offset_id cannot be found. numerator_or_time and + # denomiator specify the time the transition occurs as. See + # TimezoneTransitionInfo for more detail about specifying times. + def transition(year, month, offset_id, numerator_or_time, denominator = nil) + offset = @offsets[offset_id] + raise ArgumentError, 'Offset not found' unless offset + + if @transitions_index + if year < @last_year || (year == @last_year && month < @last_month) + raise ArgumentError, 'Transitions must be increasing date order' + end + + # Record the position of the first transition with this index. + index = transition_index(year, month) + @transitions_index[index] ||= @transitions.length + + # Fill in any gaps + (index - 1).downto(0) do |i| + break if @transitions_index[i] + @transitions_index[i] = @transitions.length + end + else + @transitions_index = [@transitions.length] + @start_year = year + @start_month = month + end + + @transitions << TimezoneTransitionInfo.new(offset, @previous_offset, + numerator_or_time, denominator) + @last_year = year + @last_month = month + @previous_offset = offset + end + + # Returns the TimezonePeriod for the given UTC time. + # Raises NoOffsetsDefined if no offsets have been defined. + def period_for_utc(utc) + unless @transitions.empty? + utc = TimeOrDateTime.wrap(utc) + index = transition_index(utc.year, utc.mon) + + start_transition = nil + start = transition_before_end(index) + if start + start.downto(0) do |i| + if @transitions[i].at <= utc + start_transition = @transitions[i] + break + end + end + end + + end_transition = nil + start = transition_after_start(index) + if start + start.upto(@transitions.length - 1) do |i| + if @transitions[i].at > utc + end_transition = @transitions[i] + break + end + end + end + + if start_transition || end_transition + TimezonePeriod.new(start_transition, end_transition) + else + # Won't happen since there are transitions. Must always find one + # transition that is either >= or < the specified time. + raise 'No transitions found in search' + end + else + raise NoOffsetsDefined, 'No offsets have been defined' unless @previous_offset + TimezonePeriod.new(nil, nil, @previous_offset) + end + end + + # Returns the set of TimezonePeriods for the given local time as an array. + # Results returned are ordered by increasing UTC start date. + # Returns an empty array if no periods are found for the given time. + # Raises NoOffsetsDefined if no offsets have been defined. + def periods_for_local(local) + unless @transitions.empty? + local = TimeOrDateTime.wrap(local) + index = transition_index(local.year, local.mon) + + result = [] + + start_index = transition_after_start(index - 1) + if start_index && @transitions[start_index].local_end > local + if start_index > 0 + if @transitions[start_index - 1].local_start <= local + result << TimezonePeriod.new(@transitions[start_index - 1], @transitions[start_index]) + end + else + result << TimezonePeriod.new(nil, @transitions[start_index]) + end + end + + end_index = transition_before_end(index + 1) + + if end_index + start_index = end_index unless start_index + + start_index.upto(transition_before_end(index + 1)) do |i| + if @transitions[i].local_start <= local + if i + 1 < @transitions.length + if @transitions[i + 1].local_end > local + result << TimezonePeriod.new(@transitions[i], @transitions[i + 1]) + end + else + result << TimezonePeriod.new(@transitions[i], nil) + end + end + end + end + + result + else + raise NoOffsetsDefined, 'No offsets have been defined' unless @previous_offset + [TimezonePeriod.new(nil, nil, @previous_offset)] + end + end + + private + # Returns the index into the @transitions_index array for a given year + # and month. + def transition_index(year, month) + index = (year - @start_year) * 2 + index += 1 if month > 6 + index -= 1 if @start_month > 6 + index + end + + # Returns the index into @transitions of the first transition that occurs + # on or after the start of the given index into @transitions_index. + # Returns nil if there are no such transitions. + def transition_after_start(index) + if index >= @transitions_index.length + nil + else + index = 0 if index < 0 + @transitions_index[index] + end + end + + # Returns the index into @transitions of the first transition that occurs + # before the end of the given index into @transitions_index. + # Returns nil if there are no such transitions. + def transition_before_end(index) + index = index + 1 + + if index <= 0 + nil + elsif index >= @transitions_index.length + @transitions.length - 1 + else + @transitions_index[index] - 1 + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Algiers.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Algiers.rb new file mode 100644 index 000000000..8c5f25577 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Algiers.rb @@ -0,0 +1,55 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Algiers + include TimezoneDefinition + + timezone 'Africa/Algiers' do |tz| + tz.offset :o0, 732, 0, :LMT + tz.offset :o1, 561, 0, :PMT + tz.offset :o2, 0, 0, :WET + tz.offset :o3, 0, 3600, :WEST + tz.offset :o4, 3600, 0, :CET + tz.offset :o5, 3600, 3600, :CEST + + tz.transition 1891, 3, :o1, 2170625843, 900 + tz.transition 1911, 3, :o2, 69670267013, 28800 + tz.transition 1916, 6, :o3, 58104707, 24 + tz.transition 1916, 10, :o2, 58107323, 24 + tz.transition 1917, 3, :o3, 58111499, 24 + tz.transition 1917, 10, :o2, 58116227, 24 + tz.transition 1918, 3, :o3, 58119899, 24 + tz.transition 1918, 10, :o2, 58124963, 24 + tz.transition 1919, 3, :o3, 58128467, 24 + tz.transition 1919, 10, :o2, 58133699, 24 + tz.transition 1920, 2, :o3, 58136867, 24 + tz.transition 1920, 10, :o2, 58142915, 24 + tz.transition 1921, 3, :o3, 58146323, 24 + tz.transition 1921, 6, :o2, 58148699, 24 + tz.transition 1939, 9, :o3, 58308443, 24 + tz.transition 1939, 11, :o2, 4859173, 2 + tz.transition 1940, 2, :o4, 29156215, 12 + tz.transition 1944, 4, :o5, 58348405, 24 + tz.transition 1944, 10, :o4, 4862743, 2 + tz.transition 1945, 4, :o5, 58357141, 24 + tz.transition 1945, 9, :o4, 58361147, 24 + tz.transition 1946, 10, :o2, 58370411, 24 + tz.transition 1956, 1, :o4, 4871003, 2 + tz.transition 1963, 4, :o2, 58515203, 24 + tz.transition 1971, 4, :o3, 41468400 + tz.transition 1971, 9, :o2, 54774000 + tz.transition 1977, 5, :o3, 231724800 + tz.transition 1977, 10, :o4, 246236400 + tz.transition 1978, 3, :o5, 259545600 + tz.transition 1978, 9, :o4, 275274000 + tz.transition 1979, 10, :o2, 309740400 + tz.transition 1980, 4, :o3, 325468800 + tz.transition 1980, 10, :o2, 341802000 + tz.transition 1981, 5, :o4, 357523200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Cairo.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Cairo.rb new file mode 100644 index 000000000..6e6daf352 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Cairo.rb @@ -0,0 +1,219 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Cairo + include TimezoneDefinition + + timezone 'Africa/Cairo' do |tz| + tz.offset :o0, 7500, 0, :LMT + tz.offset :o1, 7200, 0, :EET + tz.offset :o2, 7200, 3600, :EEST + + tz.transition 1900, 9, :o1, 695604503, 288 + tz.transition 1940, 7, :o2, 29157905, 12 + tz.transition 1940, 9, :o1, 19439227, 8 + tz.transition 1941, 4, :o2, 29161193, 12 + tz.transition 1941, 9, :o1, 19442027, 8 + tz.transition 1942, 3, :o2, 29165405, 12 + tz.transition 1942, 10, :o1, 19445275, 8 + tz.transition 1943, 3, :o2, 29169785, 12 + tz.transition 1943, 10, :o1, 19448235, 8 + tz.transition 1944, 3, :o2, 29174177, 12 + tz.transition 1944, 10, :o1, 19451163, 8 + tz.transition 1945, 4, :o2, 29178737, 12 + tz.transition 1945, 10, :o1, 19454083, 8 + tz.transition 1957, 5, :o2, 29231621, 12 + tz.transition 1957, 9, :o1, 19488899, 8 + tz.transition 1958, 4, :o2, 29235893, 12 + tz.transition 1958, 9, :o1, 19491819, 8 + tz.transition 1959, 4, :o2, 58480547, 24 + tz.transition 1959, 9, :o1, 4873683, 2 + tz.transition 1960, 4, :o2, 58489331, 24 + tz.transition 1960, 9, :o1, 4874415, 2 + tz.transition 1961, 4, :o2, 58498091, 24 + tz.transition 1961, 9, :o1, 4875145, 2 + tz.transition 1962, 4, :o2, 58506851, 24 + tz.transition 1962, 9, :o1, 4875875, 2 + tz.transition 1963, 4, :o2, 58515611, 24 + tz.transition 1963, 9, :o1, 4876605, 2 + tz.transition 1964, 4, :o2, 58524395, 24 + tz.transition 1964, 9, :o1, 4877337, 2 + tz.transition 1965, 4, :o2, 58533155, 24 + tz.transition 1965, 9, :o1, 4878067, 2 + tz.transition 1966, 4, :o2, 58541915, 24 + tz.transition 1966, 10, :o1, 4878799, 2 + tz.transition 1967, 4, :o2, 58550675, 24 + tz.transition 1967, 10, :o1, 4879529, 2 + tz.transition 1968, 4, :o2, 58559459, 24 + tz.transition 1968, 10, :o1, 4880261, 2 + tz.transition 1969, 4, :o2, 58568219, 24 + tz.transition 1969, 10, :o1, 4880991, 2 + tz.transition 1970, 4, :o2, 10364400 + tz.transition 1970, 10, :o1, 23587200 + tz.transition 1971, 4, :o2, 41900400 + tz.transition 1971, 10, :o1, 55123200 + tz.transition 1972, 4, :o2, 73522800 + tz.transition 1972, 10, :o1, 86745600 + tz.transition 1973, 4, :o2, 105058800 + tz.transition 1973, 10, :o1, 118281600 + tz.transition 1974, 4, :o2, 136594800 + tz.transition 1974, 10, :o1, 149817600 + tz.transition 1975, 4, :o2, 168130800 + tz.transition 1975, 10, :o1, 181353600 + tz.transition 1976, 4, :o2, 199753200 + tz.transition 1976, 10, :o1, 212976000 + tz.transition 1977, 4, :o2, 231289200 + tz.transition 1977, 10, :o1, 244512000 + tz.transition 1978, 4, :o2, 262825200 + tz.transition 1978, 10, :o1, 276048000 + tz.transition 1979, 4, :o2, 294361200 + tz.transition 1979, 10, :o1, 307584000 + tz.transition 1980, 4, :o2, 325983600 + tz.transition 1980, 10, :o1, 339206400 + tz.transition 1981, 4, :o2, 357519600 + tz.transition 1981, 10, :o1, 370742400 + tz.transition 1982, 7, :o2, 396399600 + tz.transition 1982, 10, :o1, 402278400 + tz.transition 1983, 7, :o2, 426812400 + tz.transition 1983, 10, :o1, 433814400 + tz.transition 1984, 4, :o2, 452214000 + tz.transition 1984, 10, :o1, 465436800 + tz.transition 1985, 4, :o2, 483750000 + tz.transition 1985, 10, :o1, 496972800 + tz.transition 1986, 4, :o2, 515286000 + tz.transition 1986, 10, :o1, 528508800 + tz.transition 1987, 4, :o2, 546822000 + tz.transition 1987, 10, :o1, 560044800 + tz.transition 1988, 4, :o2, 578444400 + tz.transition 1988, 10, :o1, 591667200 + tz.transition 1989, 5, :o2, 610412400 + tz.transition 1989, 10, :o1, 623203200 + tz.transition 1990, 4, :o2, 641516400 + tz.transition 1990, 10, :o1, 654739200 + tz.transition 1991, 4, :o2, 673052400 + tz.transition 1991, 10, :o1, 686275200 + tz.transition 1992, 4, :o2, 704674800 + tz.transition 1992, 10, :o1, 717897600 + tz.transition 1993, 4, :o2, 736210800 + tz.transition 1993, 10, :o1, 749433600 + tz.transition 1994, 4, :o2, 767746800 + tz.transition 1994, 10, :o1, 780969600 + tz.transition 1995, 4, :o2, 799020000 + tz.transition 1995, 9, :o1, 812322000 + tz.transition 1996, 4, :o2, 830469600 + tz.transition 1996, 9, :o1, 843771600 + tz.transition 1997, 4, :o2, 861919200 + tz.transition 1997, 9, :o1, 875221200 + tz.transition 1998, 4, :o2, 893368800 + tz.transition 1998, 9, :o1, 906670800 + tz.transition 1999, 4, :o2, 925423200 + tz.transition 1999, 9, :o1, 938725200 + tz.transition 2000, 4, :o2, 956872800 + tz.transition 2000, 9, :o1, 970174800 + tz.transition 2001, 4, :o2, 988322400 + tz.transition 2001, 9, :o1, 1001624400 + tz.transition 2002, 4, :o2, 1019772000 + tz.transition 2002, 9, :o1, 1033074000 + tz.transition 2003, 4, :o2, 1051221600 + tz.transition 2003, 9, :o1, 1064523600 + tz.transition 2004, 4, :o2, 1083276000 + tz.transition 2004, 9, :o1, 1096578000 + tz.transition 2005, 4, :o2, 1114725600 + tz.transition 2005, 9, :o1, 1128027600 + tz.transition 2006, 4, :o2, 1146175200 + tz.transition 2006, 9, :o1, 1158872400 + tz.transition 2007, 4, :o2, 1177624800 + tz.transition 2007, 9, :o1, 1189112400 + tz.transition 2008, 4, :o2, 1209074400 + tz.transition 2008, 8, :o1, 1219957200 + tz.transition 2009, 4, :o2, 1240524000 + tz.transition 2009, 8, :o1, 1251406800 + tz.transition 2010, 4, :o2, 1272578400 + tz.transition 2010, 8, :o1, 1282856400 + tz.transition 2011, 4, :o2, 1304028000 + tz.transition 2011, 8, :o1, 1314306000 + tz.transition 2012, 4, :o2, 1335477600 + tz.transition 2012, 8, :o1, 1346360400 + tz.transition 2013, 4, :o2, 1366927200 + tz.transition 2013, 8, :o1, 1377810000 + tz.transition 2014, 4, :o2, 1398376800 + tz.transition 2014, 8, :o1, 1409259600 + tz.transition 2015, 4, :o2, 1429826400 + tz.transition 2015, 8, :o1, 1440709200 + tz.transition 2016, 4, :o2, 1461880800 + tz.transition 2016, 8, :o1, 1472158800 + tz.transition 2017, 4, :o2, 1493330400 + tz.transition 2017, 8, :o1, 1504213200 + tz.transition 2018, 4, :o2, 1524780000 + tz.transition 2018, 8, :o1, 1535662800 + tz.transition 2019, 4, :o2, 1556229600 + tz.transition 2019, 8, :o1, 1567112400 + tz.transition 2020, 4, :o2, 1587679200 + tz.transition 2020, 8, :o1, 1598562000 + tz.transition 2021, 4, :o2, 1619733600 + tz.transition 2021, 8, :o1, 1630011600 + tz.transition 2022, 4, :o2, 1651183200 + tz.transition 2022, 8, :o1, 1661461200 + tz.transition 2023, 4, :o2, 1682632800 + tz.transition 2023, 8, :o1, 1693515600 + tz.transition 2024, 4, :o2, 1714082400 + tz.transition 2024, 8, :o1, 1724965200 + tz.transition 2025, 4, :o2, 1745532000 + tz.transition 2025, 8, :o1, 1756414800 + tz.transition 2026, 4, :o2, 1776981600 + tz.transition 2026, 8, :o1, 1787864400 + tz.transition 2027, 4, :o2, 1809036000 + tz.transition 2027, 8, :o1, 1819314000 + tz.transition 2028, 4, :o2, 1840485600 + tz.transition 2028, 8, :o1, 1851368400 + tz.transition 2029, 4, :o2, 1871935200 + tz.transition 2029, 8, :o1, 1882818000 + tz.transition 2030, 4, :o2, 1903384800 + tz.transition 2030, 8, :o1, 1914267600 + tz.transition 2031, 4, :o2, 1934834400 + tz.transition 2031, 8, :o1, 1945717200 + tz.transition 2032, 4, :o2, 1966888800 + tz.transition 2032, 8, :o1, 1977166800 + tz.transition 2033, 4, :o2, 1998338400 + tz.transition 2033, 8, :o1, 2008616400 + tz.transition 2034, 4, :o2, 2029788000 + tz.transition 2034, 8, :o1, 2040670800 + tz.transition 2035, 4, :o2, 2061237600 + tz.transition 2035, 8, :o1, 2072120400 + tz.transition 2036, 4, :o2, 2092687200 + tz.transition 2036, 8, :o1, 2103570000 + tz.transition 2037, 4, :o2, 2124136800 + tz.transition 2037, 8, :o1, 2135019600 + tz.transition 2038, 4, :o2, 29586521, 12 + tz.transition 2038, 8, :o1, 19725299, 8 + tz.transition 2039, 4, :o2, 29590889, 12 + tz.transition 2039, 8, :o1, 19728211, 8 + tz.transition 2040, 4, :o2, 29595257, 12 + tz.transition 2040, 8, :o1, 19731179, 8 + tz.transition 2041, 4, :o2, 29599625, 12 + tz.transition 2041, 8, :o1, 19734091, 8 + tz.transition 2042, 4, :o2, 29603993, 12 + tz.transition 2042, 8, :o1, 19737003, 8 + tz.transition 2043, 4, :o2, 29608361, 12 + tz.transition 2043, 8, :o1, 19739915, 8 + tz.transition 2044, 4, :o2, 29612813, 12 + tz.transition 2044, 8, :o1, 19742827, 8 + tz.transition 2045, 4, :o2, 29617181, 12 + tz.transition 2045, 8, :o1, 19745795, 8 + tz.transition 2046, 4, :o2, 29621549, 12 + tz.transition 2046, 8, :o1, 19748707, 8 + tz.transition 2047, 4, :o2, 29625917, 12 + tz.transition 2047, 8, :o1, 19751619, 8 + tz.transition 2048, 4, :o2, 29630285, 12 + tz.transition 2048, 8, :o1, 19754531, 8 + tz.transition 2049, 4, :o2, 29634737, 12 + tz.transition 2049, 8, :o1, 19757443, 8 + tz.transition 2050, 4, :o2, 29639105, 12 + tz.transition 2050, 8, :o1, 19760355, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Casablanca.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Casablanca.rb new file mode 100644 index 000000000..10d28e761 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Casablanca.rb @@ -0,0 +1,38 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Casablanca + include TimezoneDefinition + + timezone 'Africa/Casablanca' do |tz| + tz.offset :o0, -1820, 0, :LMT + tz.offset :o1, 0, 0, :WET + tz.offset :o2, 0, 3600, :WEST + tz.offset :o3, 3600, 0, :CET + + tz.transition 1913, 10, :o1, 10454687371, 4320 + tz.transition 1939, 9, :o2, 4859037, 2 + tz.transition 1939, 11, :o1, 58310075, 24 + tz.transition 1940, 2, :o2, 4859369, 2 + tz.transition 1945, 11, :o1, 58362659, 24 + tz.transition 1950, 6, :o2, 4866887, 2 + tz.transition 1950, 10, :o1, 58406003, 24 + tz.transition 1967, 6, :o2, 2439645, 1 + tz.transition 1967, 9, :o1, 58554347, 24 + tz.transition 1974, 6, :o2, 141264000 + tz.transition 1974, 8, :o1, 147222000 + tz.transition 1976, 5, :o2, 199756800 + tz.transition 1976, 7, :o1, 207702000 + tz.transition 1977, 5, :o2, 231292800 + tz.transition 1977, 9, :o1, 244249200 + tz.transition 1978, 6, :o2, 265507200 + tz.transition 1978, 8, :o1, 271033200 + tz.transition 1984, 3, :o3, 448243200 + tz.transition 1985, 12, :o1, 504918000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Harare.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Harare.rb new file mode 100644 index 000000000..070c95ae0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Harare.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Harare + include TimezoneDefinition + + timezone 'Africa/Harare' do |tz| + tz.offset :o0, 7452, 0, :LMT + tz.offset :o1, 7200, 0, :CAT + + tz.transition 1903, 2, :o1, 1932939531, 800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Johannesburg.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Johannesburg.rb new file mode 100644 index 000000000..f0af0d8e3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Johannesburg.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Johannesburg + include TimezoneDefinition + + timezone 'Africa/Johannesburg' do |tz| + tz.offset :o0, 6720, 0, :LMT + tz.offset :o1, 5400, 0, :SAST + tz.offset :o2, 7200, 0, :SAST + tz.offset :o3, 7200, 3600, :SAST + + tz.transition 1892, 2, :o1, 108546139, 45 + tz.transition 1903, 2, :o2, 38658791, 16 + tz.transition 1942, 9, :o3, 4861245, 2 + tz.transition 1943, 3, :o2, 58339307, 24 + tz.transition 1943, 9, :o3, 4861973, 2 + tz.transition 1944, 3, :o2, 58348043, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Monrovia.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Monrovia.rb new file mode 100644 index 000000000..40e711fa4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Monrovia.rb @@ -0,0 +1,22 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Monrovia + include TimezoneDefinition + + timezone 'Africa/Monrovia' do |tz| + tz.offset :o0, -2588, 0, :LMT + tz.offset :o1, -2588, 0, :MMT + tz.offset :o2, -2670, 0, :LRT + tz.offset :o3, 0, 0, :GMT + + tz.transition 1882, 1, :o1, 52022445047, 21600 + tz.transition 1919, 3, :o2, 52315600247, 21600 + tz.transition 1972, 5, :o3, 73529070 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Nairobi.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Nairobi.rb new file mode 100644 index 000000000..7b0a2f43b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Africa/Nairobi.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Africa + module Nairobi + include TimezoneDefinition + + timezone 'Africa/Nairobi' do |tz| + tz.offset :o0, 8836, 0, :LMT + tz.offset :o1, 10800, 0, :EAT + tz.offset :o2, 9000, 0, :BEAT + tz.offset :o3, 9885, 0, :BEAUT + + tz.transition 1928, 6, :o1, 52389253391, 21600 + tz.transition 1929, 12, :o2, 19407819, 8 + tz.transition 1939, 12, :o3, 116622211, 48 + tz.transition 1959, 12, :o1, 14036742061, 5760 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/Buenos_Aires.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/Buenos_Aires.rb new file mode 100644 index 000000000..7536f7553 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/Buenos_Aires.rb @@ -0,0 +1,166 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Argentina + module Buenos_Aires + include TimezoneDefinition + + timezone 'America/Argentina/Buenos_Aires' do |tz| + tz.offset :o0, -14028, 0, :LMT + tz.offset :o1, -15408, 0, :CMT + tz.offset :o2, -14400, 0, :ART + tz.offset :o3, -14400, 3600, :ARST + tz.offset :o4, -10800, 0, :ART + tz.offset :o5, -10800, 3600, :ARST + + tz.transition 1894, 10, :o1, 17374555169, 7200 + tz.transition 1920, 5, :o2, 1453467407, 600 + tz.transition 1930, 12, :o3, 7278935, 3 + tz.transition 1931, 4, :o2, 19411461, 8 + tz.transition 1931, 10, :o3, 7279889, 3 + tz.transition 1932, 3, :o2, 19414141, 8 + tz.transition 1932, 11, :o3, 7281038, 3 + tz.transition 1933, 3, :o2, 19417061, 8 + tz.transition 1933, 11, :o3, 7282133, 3 + tz.transition 1934, 3, :o2, 19419981, 8 + tz.transition 1934, 11, :o3, 7283228, 3 + tz.transition 1935, 3, :o2, 19422901, 8 + tz.transition 1935, 11, :o3, 7284323, 3 + tz.transition 1936, 3, :o2, 19425829, 8 + tz.transition 1936, 11, :o3, 7285421, 3 + tz.transition 1937, 3, :o2, 19428749, 8 + tz.transition 1937, 11, :o3, 7286516, 3 + tz.transition 1938, 3, :o2, 19431669, 8 + tz.transition 1938, 11, :o3, 7287611, 3 + tz.transition 1939, 3, :o2, 19434589, 8 + tz.transition 1939, 11, :o3, 7288706, 3 + tz.transition 1940, 3, :o2, 19437517, 8 + tz.transition 1940, 7, :o3, 7289435, 3 + tz.transition 1941, 6, :o2, 19441285, 8 + tz.transition 1941, 10, :o3, 7290848, 3 + tz.transition 1943, 8, :o2, 19447501, 8 + tz.transition 1943, 10, :o3, 7293038, 3 + tz.transition 1946, 3, :o2, 19455045, 8 + tz.transition 1946, 10, :o3, 7296284, 3 + tz.transition 1963, 10, :o2, 19506429, 8 + tz.transition 1963, 12, :o3, 7315136, 3 + tz.transition 1964, 3, :o2, 19507645, 8 + tz.transition 1964, 10, :o3, 7316051, 3 + tz.transition 1965, 3, :o2, 19510565, 8 + tz.transition 1965, 10, :o3, 7317146, 3 + tz.transition 1966, 3, :o2, 19513485, 8 + tz.transition 1966, 10, :o3, 7318241, 3 + tz.transition 1967, 4, :o2, 19516661, 8 + tz.transition 1967, 10, :o3, 7319294, 3 + tz.transition 1968, 4, :o2, 19519629, 8 + tz.transition 1968, 10, :o3, 7320407, 3 + tz.transition 1969, 4, :o2, 19522541, 8 + tz.transition 1969, 10, :o4, 7321499, 3 + tz.transition 1974, 1, :o5, 128142000 + tz.transition 1974, 5, :o4, 136605600 + tz.transition 1988, 12, :o5, 596948400 + tz.transition 1989, 3, :o4, 605066400 + tz.transition 1989, 10, :o5, 624423600 + tz.transition 1990, 3, :o4, 636516000 + tz.transition 1990, 10, :o5, 656478000 + tz.transition 1991, 3, :o4, 667965600 + tz.transition 1991, 10, :o5, 687927600 + tz.transition 1992, 3, :o4, 699415200 + tz.transition 1992, 10, :o5, 719377200 + tz.transition 1993, 3, :o4, 731469600 + tz.transition 1999, 10, :o3, 938919600 + tz.transition 2000, 3, :o4, 952052400 + tz.transition 2007, 12, :o5, 1198983600 + tz.transition 2008, 3, :o4, 1205632800 + tz.transition 2008, 10, :o5, 1223175600 + tz.transition 2009, 3, :o4, 1237082400 + tz.transition 2009, 10, :o5, 1254625200 + tz.transition 2010, 3, :o4, 1269136800 + tz.transition 2010, 10, :o5, 1286074800 + tz.transition 2011, 3, :o4, 1300586400 + tz.transition 2011, 10, :o5, 1317524400 + tz.transition 2012, 3, :o4, 1332036000 + tz.transition 2012, 10, :o5, 1349578800 + tz.transition 2013, 3, :o4, 1363485600 + tz.transition 2013, 10, :o5, 1381028400 + tz.transition 2014, 3, :o4, 1394935200 + tz.transition 2014, 10, :o5, 1412478000 + tz.transition 2015, 3, :o4, 1426384800 + tz.transition 2015, 10, :o5, 1443927600 + tz.transition 2016, 3, :o4, 1458439200 + tz.transition 2016, 10, :o5, 1475377200 + tz.transition 2017, 3, :o4, 1489888800 + tz.transition 2017, 10, :o5, 1506826800 + tz.transition 2018, 3, :o4, 1521338400 + tz.transition 2018, 10, :o5, 1538881200 + tz.transition 2019, 3, :o4, 1552788000 + tz.transition 2019, 10, :o5, 1570330800 + tz.transition 2020, 3, :o4, 1584237600 + tz.transition 2020, 10, :o5, 1601780400 + tz.transition 2021, 3, :o4, 1616292000 + tz.transition 2021, 10, :o5, 1633230000 + tz.transition 2022, 3, :o4, 1647741600 + tz.transition 2022, 10, :o5, 1664679600 + tz.transition 2023, 3, :o4, 1679191200 + tz.transition 2023, 10, :o5, 1696129200 + tz.transition 2024, 3, :o4, 1710640800 + tz.transition 2024, 10, :o5, 1728183600 + tz.transition 2025, 3, :o4, 1742090400 + tz.transition 2025, 10, :o5, 1759633200 + tz.transition 2026, 3, :o4, 1773540000 + tz.transition 2026, 10, :o5, 1791082800 + tz.transition 2027, 3, :o4, 1805594400 + tz.transition 2027, 10, :o5, 1822532400 + tz.transition 2028, 3, :o4, 1837044000 + tz.transition 2028, 10, :o5, 1853982000 + tz.transition 2029, 3, :o4, 1868493600 + tz.transition 2029, 10, :o5, 1886036400 + tz.transition 2030, 3, :o4, 1899943200 + tz.transition 2030, 10, :o5, 1917486000 + tz.transition 2031, 3, :o4, 1931392800 + tz.transition 2031, 10, :o5, 1948935600 + tz.transition 2032, 3, :o4, 1963447200 + tz.transition 2032, 10, :o5, 1980385200 + tz.transition 2033, 3, :o4, 1994896800 + tz.transition 2033, 10, :o5, 2011834800 + tz.transition 2034, 3, :o4, 2026346400 + tz.transition 2034, 10, :o5, 2043284400 + tz.transition 2035, 3, :o4, 2057796000 + tz.transition 2035, 10, :o5, 2075338800 + tz.transition 2036, 3, :o4, 2089245600 + tz.transition 2036, 10, :o5, 2106788400 + tz.transition 2037, 3, :o4, 2120695200 + tz.transition 2037, 10, :o5, 2138238000 + tz.transition 2038, 3, :o4, 29586043, 12 + tz.transition 2038, 10, :o5, 19725597, 8 + tz.transition 2039, 3, :o4, 29590411, 12 + tz.transition 2039, 10, :o5, 19728509, 8 + tz.transition 2040, 3, :o4, 29594779, 12 + tz.transition 2040, 10, :o5, 19731477, 8 + tz.transition 2041, 3, :o4, 29599147, 12 + tz.transition 2041, 10, :o5, 19734389, 8 + tz.transition 2042, 3, :o4, 29603515, 12 + tz.transition 2042, 10, :o5, 19737301, 8 + tz.transition 2043, 3, :o4, 29607883, 12 + tz.transition 2043, 10, :o5, 19740213, 8 + tz.transition 2044, 3, :o4, 29612335, 12 + tz.transition 2044, 10, :o5, 19743125, 8 + tz.transition 2045, 3, :o4, 29616703, 12 + tz.transition 2045, 10, :o5, 19746037, 8 + tz.transition 2046, 3, :o4, 29621071, 12 + tz.transition 2046, 10, :o5, 19749005, 8 + tz.transition 2047, 3, :o4, 29625439, 12 + tz.transition 2047, 10, :o5, 19751917, 8 + tz.transition 2048, 3, :o4, 29629807, 12 + tz.transition 2048, 10, :o5, 19754829, 8 + tz.transition 2049, 3, :o4, 29634259, 12 + tz.transition 2049, 10, :o5, 19757741, 8 + tz.transition 2050, 3, :o4, 29638627, 12 + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/San_Juan.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/San_Juan.rb new file mode 100644 index 000000000..a5413612e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Argentina/San_Juan.rb @@ -0,0 +1,170 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Argentina + module San_Juan + include TimezoneDefinition + + timezone 'America/Argentina/San_Juan' do |tz| + tz.offset :o0, -16444, 0, :LMT + tz.offset :o1, -15408, 0, :CMT + tz.offset :o2, -14400, 0, :ART + tz.offset :o3, -14400, 3600, :ARST + tz.offset :o4, -10800, 0, :ART + tz.offset :o5, -10800, 3600, :ARST + tz.offset :o6, -14400, 0, :WART + + tz.transition 1894, 10, :o1, 52123666111, 21600 + tz.transition 1920, 5, :o2, 1453467407, 600 + tz.transition 1930, 12, :o3, 7278935, 3 + tz.transition 1931, 4, :o2, 19411461, 8 + tz.transition 1931, 10, :o3, 7279889, 3 + tz.transition 1932, 3, :o2, 19414141, 8 + tz.transition 1932, 11, :o3, 7281038, 3 + tz.transition 1933, 3, :o2, 19417061, 8 + tz.transition 1933, 11, :o3, 7282133, 3 + tz.transition 1934, 3, :o2, 19419981, 8 + tz.transition 1934, 11, :o3, 7283228, 3 + tz.transition 1935, 3, :o2, 19422901, 8 + tz.transition 1935, 11, :o3, 7284323, 3 + tz.transition 1936, 3, :o2, 19425829, 8 + tz.transition 1936, 11, :o3, 7285421, 3 + tz.transition 1937, 3, :o2, 19428749, 8 + tz.transition 1937, 11, :o3, 7286516, 3 + tz.transition 1938, 3, :o2, 19431669, 8 + tz.transition 1938, 11, :o3, 7287611, 3 + tz.transition 1939, 3, :o2, 19434589, 8 + tz.transition 1939, 11, :o3, 7288706, 3 + tz.transition 1940, 3, :o2, 19437517, 8 + tz.transition 1940, 7, :o3, 7289435, 3 + tz.transition 1941, 6, :o2, 19441285, 8 + tz.transition 1941, 10, :o3, 7290848, 3 + tz.transition 1943, 8, :o2, 19447501, 8 + tz.transition 1943, 10, :o3, 7293038, 3 + tz.transition 1946, 3, :o2, 19455045, 8 + tz.transition 1946, 10, :o3, 7296284, 3 + tz.transition 1963, 10, :o2, 19506429, 8 + tz.transition 1963, 12, :o3, 7315136, 3 + tz.transition 1964, 3, :o2, 19507645, 8 + tz.transition 1964, 10, :o3, 7316051, 3 + tz.transition 1965, 3, :o2, 19510565, 8 + tz.transition 1965, 10, :o3, 7317146, 3 + tz.transition 1966, 3, :o2, 19513485, 8 + tz.transition 1966, 10, :o3, 7318241, 3 + tz.transition 1967, 4, :o2, 19516661, 8 + tz.transition 1967, 10, :o3, 7319294, 3 + tz.transition 1968, 4, :o2, 19519629, 8 + tz.transition 1968, 10, :o3, 7320407, 3 + tz.transition 1969, 4, :o2, 19522541, 8 + tz.transition 1969, 10, :o4, 7321499, 3 + tz.transition 1974, 1, :o5, 128142000 + tz.transition 1974, 5, :o4, 136605600 + tz.transition 1988, 12, :o5, 596948400 + tz.transition 1989, 3, :o4, 605066400 + tz.transition 1989, 10, :o5, 624423600 + tz.transition 1990, 3, :o4, 636516000 + tz.transition 1990, 10, :o5, 656478000 + tz.transition 1991, 3, :o6, 667792800 + tz.transition 1991, 5, :o4, 673588800 + tz.transition 1991, 10, :o5, 687927600 + tz.transition 1992, 3, :o4, 699415200 + tz.transition 1992, 10, :o5, 719377200 + tz.transition 1993, 3, :o4, 731469600 + tz.transition 1999, 10, :o3, 938919600 + tz.transition 2000, 3, :o4, 952052400 + tz.transition 2004, 5, :o6, 1085972400 + tz.transition 2004, 7, :o4, 1090728000 + tz.transition 2007, 12, :o5, 1198983600 + tz.transition 2008, 3, :o4, 1205632800 + tz.transition 2008, 10, :o5, 1223175600 + tz.transition 2009, 3, :o4, 1237082400 + tz.transition 2009, 10, :o5, 1254625200 + tz.transition 2010, 3, :o4, 1269136800 + tz.transition 2010, 10, :o5, 1286074800 + tz.transition 2011, 3, :o4, 1300586400 + tz.transition 2011, 10, :o5, 1317524400 + tz.transition 2012, 3, :o4, 1332036000 + tz.transition 2012, 10, :o5, 1349578800 + tz.transition 2013, 3, :o4, 1363485600 + tz.transition 2013, 10, :o5, 1381028400 + tz.transition 2014, 3, :o4, 1394935200 + tz.transition 2014, 10, :o5, 1412478000 + tz.transition 2015, 3, :o4, 1426384800 + tz.transition 2015, 10, :o5, 1443927600 + tz.transition 2016, 3, :o4, 1458439200 + tz.transition 2016, 10, :o5, 1475377200 + tz.transition 2017, 3, :o4, 1489888800 + tz.transition 2017, 10, :o5, 1506826800 + tz.transition 2018, 3, :o4, 1521338400 + tz.transition 2018, 10, :o5, 1538881200 + tz.transition 2019, 3, :o4, 1552788000 + tz.transition 2019, 10, :o5, 1570330800 + tz.transition 2020, 3, :o4, 1584237600 + tz.transition 2020, 10, :o5, 1601780400 + tz.transition 2021, 3, :o4, 1616292000 + tz.transition 2021, 10, :o5, 1633230000 + tz.transition 2022, 3, :o4, 1647741600 + tz.transition 2022, 10, :o5, 1664679600 + tz.transition 2023, 3, :o4, 1679191200 + tz.transition 2023, 10, :o5, 1696129200 + tz.transition 2024, 3, :o4, 1710640800 + tz.transition 2024, 10, :o5, 1728183600 + tz.transition 2025, 3, :o4, 1742090400 + tz.transition 2025, 10, :o5, 1759633200 + tz.transition 2026, 3, :o4, 1773540000 + tz.transition 2026, 10, :o5, 1791082800 + tz.transition 2027, 3, :o4, 1805594400 + tz.transition 2027, 10, :o5, 1822532400 + tz.transition 2028, 3, :o4, 1837044000 + tz.transition 2028, 10, :o5, 1853982000 + tz.transition 2029, 3, :o4, 1868493600 + tz.transition 2029, 10, :o5, 1886036400 + tz.transition 2030, 3, :o4, 1899943200 + tz.transition 2030, 10, :o5, 1917486000 + tz.transition 2031, 3, :o4, 1931392800 + tz.transition 2031, 10, :o5, 1948935600 + tz.transition 2032, 3, :o4, 1963447200 + tz.transition 2032, 10, :o5, 1980385200 + tz.transition 2033, 3, :o4, 1994896800 + tz.transition 2033, 10, :o5, 2011834800 + tz.transition 2034, 3, :o4, 2026346400 + tz.transition 2034, 10, :o5, 2043284400 + tz.transition 2035, 3, :o4, 2057796000 + tz.transition 2035, 10, :o5, 2075338800 + tz.transition 2036, 3, :o4, 2089245600 + tz.transition 2036, 10, :o5, 2106788400 + tz.transition 2037, 3, :o4, 2120695200 + tz.transition 2037, 10, :o5, 2138238000 + tz.transition 2038, 3, :o4, 29586043, 12 + tz.transition 2038, 10, :o5, 19725597, 8 + tz.transition 2039, 3, :o4, 29590411, 12 + tz.transition 2039, 10, :o5, 19728509, 8 + tz.transition 2040, 3, :o4, 29594779, 12 + tz.transition 2040, 10, :o5, 19731477, 8 + tz.transition 2041, 3, :o4, 29599147, 12 + tz.transition 2041, 10, :o5, 19734389, 8 + tz.transition 2042, 3, :o4, 29603515, 12 + tz.transition 2042, 10, :o5, 19737301, 8 + tz.transition 2043, 3, :o4, 29607883, 12 + tz.transition 2043, 10, :o5, 19740213, 8 + tz.transition 2044, 3, :o4, 29612335, 12 + tz.transition 2044, 10, :o5, 19743125, 8 + tz.transition 2045, 3, :o4, 29616703, 12 + tz.transition 2045, 10, :o5, 19746037, 8 + tz.transition 2046, 3, :o4, 29621071, 12 + tz.transition 2046, 10, :o5, 19749005, 8 + tz.transition 2047, 3, :o4, 29625439, 12 + tz.transition 2047, 10, :o5, 19751917, 8 + tz.transition 2048, 3, :o4, 29629807, 12 + tz.transition 2048, 10, :o5, 19754829, 8 + tz.transition 2049, 3, :o4, 29634259, 12 + tz.transition 2049, 10, :o5, 19757741, 8 + tz.transition 2050, 3, :o4, 29638627, 12 + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Bogota.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Bogota.rb new file mode 100644 index 000000000..ef96435c6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Bogota.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Bogota + include TimezoneDefinition + + timezone 'America/Bogota' do |tz| + tz.offset :o0, -17780, 0, :LMT + tz.offset :o1, -17780, 0, :BMT + tz.offset :o2, -18000, 0, :COT + tz.offset :o3, -18000, 3600, :COST + + tz.transition 1884, 3, :o1, 10407954409, 4320 + tz.transition 1914, 11, :o2, 10456385929, 4320 + tz.transition 1992, 5, :o3, 704869200 + tz.transition 1993, 4, :o2, 733896000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Caracas.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Caracas.rb new file mode 100644 index 000000000..27392a540 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Caracas.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Caracas + include TimezoneDefinition + + timezone 'America/Caracas' do |tz| + tz.offset :o0, -16064, 0, :LMT + tz.offset :o1, -16060, 0, :CMT + tz.offset :o2, -16200, 0, :VET + tz.offset :o3, -14400, 0, :VET + + tz.transition 1890, 1, :o1, 1627673863, 675 + tz.transition 1912, 2, :o2, 10452001043, 4320 + tz.transition 1965, 1, :o3, 39020187, 16 + tz.transition 2007, 12, :o2, 1197183600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chicago.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chicago.rb new file mode 100644 index 000000000..0996857cf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chicago.rb @@ -0,0 +1,283 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Chicago + include TimezoneDefinition + + timezone 'America/Chicago' do |tz| + tz.offset :o0, -21036, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + tz.offset :o3, -18000, 0, :EST + tz.offset :o4, -21600, 3600, :CWT + tz.offset :o5, -21600, 3600, :CPT + + tz.transition 1883, 11, :o1, 9636533, 4 + tz.transition 1918, 3, :o2, 14530103, 6 + tz.transition 1918, 10, :o1, 58125451, 24 + tz.transition 1919, 3, :o2, 14532287, 6 + tz.transition 1919, 10, :o1, 58134187, 24 + tz.transition 1920, 6, :o2, 14534933, 6 + tz.transition 1920, 10, :o1, 58143091, 24 + tz.transition 1921, 3, :o2, 14536655, 6 + tz.transition 1921, 10, :o1, 58151827, 24 + tz.transition 1922, 4, :o2, 14539049, 6 + tz.transition 1922, 9, :o1, 58159723, 24 + tz.transition 1923, 4, :o2, 14541233, 6 + tz.transition 1923, 9, :o1, 58168627, 24 + tz.transition 1924, 4, :o2, 14543417, 6 + tz.transition 1924, 9, :o1, 58177363, 24 + tz.transition 1925, 4, :o2, 14545601, 6 + tz.transition 1925, 9, :o1, 58186099, 24 + tz.transition 1926, 4, :o2, 14547785, 6 + tz.transition 1926, 9, :o1, 58194835, 24 + tz.transition 1927, 4, :o2, 14549969, 6 + tz.transition 1927, 9, :o1, 58203571, 24 + tz.transition 1928, 4, :o2, 14552195, 6 + tz.transition 1928, 9, :o1, 58212475, 24 + tz.transition 1929, 4, :o2, 14554379, 6 + tz.transition 1929, 9, :o1, 58221211, 24 + tz.transition 1930, 4, :o2, 14556563, 6 + tz.transition 1930, 9, :o1, 58229947, 24 + tz.transition 1931, 4, :o2, 14558747, 6 + tz.transition 1931, 9, :o1, 58238683, 24 + tz.transition 1932, 4, :o2, 14560931, 6 + tz.transition 1932, 9, :o1, 58247419, 24 + tz.transition 1933, 4, :o2, 14563157, 6 + tz.transition 1933, 9, :o1, 58256155, 24 + tz.transition 1934, 4, :o2, 14565341, 6 + tz.transition 1934, 9, :o1, 58265059, 24 + tz.transition 1935, 4, :o2, 14567525, 6 + tz.transition 1935, 9, :o1, 58273795, 24 + tz.transition 1936, 3, :o3, 14569373, 6 + tz.transition 1936, 11, :o1, 58283707, 24 + tz.transition 1937, 4, :o2, 14571893, 6 + tz.transition 1937, 9, :o1, 58291267, 24 + tz.transition 1938, 4, :o2, 14574077, 6 + tz.transition 1938, 9, :o1, 58300003, 24 + tz.transition 1939, 4, :o2, 14576303, 6 + tz.transition 1939, 9, :o1, 58308739, 24 + tz.transition 1940, 4, :o2, 14578487, 6 + tz.transition 1940, 9, :o1, 58317643, 24 + tz.transition 1941, 4, :o2, 14580671, 6 + tz.transition 1941, 9, :o1, 58326379, 24 + tz.transition 1942, 2, :o4, 14582399, 6 + tz.transition 1945, 8, :o5, 58360379, 24 + tz.transition 1945, 9, :o1, 58361491, 24 + tz.transition 1946, 4, :o2, 14591633, 6 + tz.transition 1946, 9, :o1, 58370227, 24 + tz.transition 1947, 4, :o2, 14593817, 6 + tz.transition 1947, 9, :o1, 58378963, 24 + tz.transition 1948, 4, :o2, 14596001, 6 + tz.transition 1948, 9, :o1, 58387699, 24 + tz.transition 1949, 4, :o2, 14598185, 6 + tz.transition 1949, 9, :o1, 58396435, 24 + tz.transition 1950, 4, :o2, 14600411, 6 + tz.transition 1950, 9, :o1, 58405171, 24 + tz.transition 1951, 4, :o2, 14602595, 6 + tz.transition 1951, 9, :o1, 58414075, 24 + tz.transition 1952, 4, :o2, 14604779, 6 + tz.transition 1952, 9, :o1, 58422811, 24 + tz.transition 1953, 4, :o2, 14606963, 6 + tz.transition 1953, 9, :o1, 58431547, 24 + tz.transition 1954, 4, :o2, 14609147, 6 + tz.transition 1954, 9, :o1, 58440283, 24 + tz.transition 1955, 4, :o2, 14611331, 6 + tz.transition 1955, 10, :o1, 58449859, 24 + tz.transition 1956, 4, :o2, 14613557, 6 + tz.transition 1956, 10, :o1, 58458595, 24 + tz.transition 1957, 4, :o2, 14615741, 6 + tz.transition 1957, 10, :o1, 58467331, 24 + tz.transition 1958, 4, :o2, 14617925, 6 + tz.transition 1958, 10, :o1, 58476067, 24 + tz.transition 1959, 4, :o2, 14620109, 6 + tz.transition 1959, 10, :o1, 58484803, 24 + tz.transition 1960, 4, :o2, 14622293, 6 + tz.transition 1960, 10, :o1, 58493707, 24 + tz.transition 1961, 4, :o2, 14624519, 6 + tz.transition 1961, 10, :o1, 58502443, 24 + tz.transition 1962, 4, :o2, 14626703, 6 + tz.transition 1962, 10, :o1, 58511179, 24 + tz.transition 1963, 4, :o2, 14628887, 6 + tz.transition 1963, 10, :o1, 58519915, 24 + tz.transition 1964, 4, :o2, 14631071, 6 + tz.transition 1964, 10, :o1, 58528651, 24 + tz.transition 1965, 4, :o2, 14633255, 6 + tz.transition 1965, 10, :o1, 58537555, 24 + tz.transition 1966, 4, :o2, 14635439, 6 + tz.transition 1966, 10, :o1, 58546291, 24 + tz.transition 1967, 4, :o2, 14637665, 6 + tz.transition 1967, 10, :o1, 58555027, 24 + tz.transition 1968, 4, :o2, 14639849, 6 + tz.transition 1968, 10, :o1, 58563763, 24 + tz.transition 1969, 4, :o2, 14642033, 6 + tz.transition 1969, 10, :o1, 58572499, 24 + tz.transition 1970, 4, :o2, 9964800 + tz.transition 1970, 10, :o1, 25686000 + tz.transition 1971, 4, :o2, 41414400 + tz.transition 1971, 10, :o1, 57740400 + tz.transition 1972, 4, :o2, 73468800 + tz.transition 1972, 10, :o1, 89190000 + tz.transition 1973, 4, :o2, 104918400 + tz.transition 1973, 10, :o1, 120639600 + tz.transition 1974, 1, :o2, 126691200 + tz.transition 1974, 10, :o1, 152089200 + tz.transition 1975, 2, :o2, 162374400 + tz.transition 1975, 10, :o1, 183538800 + tz.transition 1976, 4, :o2, 199267200 + tz.transition 1976, 10, :o1, 215593200 + tz.transition 1977, 4, :o2, 230716800 + tz.transition 1977, 10, :o1, 247042800 + tz.transition 1978, 4, :o2, 262771200 + tz.transition 1978, 10, :o1, 278492400 + tz.transition 1979, 4, :o2, 294220800 + tz.transition 1979, 10, :o1, 309942000 + tz.transition 1980, 4, :o2, 325670400 + tz.transition 1980, 10, :o1, 341391600 + tz.transition 1981, 4, :o2, 357120000 + tz.transition 1981, 10, :o1, 372841200 + tz.transition 1982, 4, :o2, 388569600 + tz.transition 1982, 10, :o1, 404895600 + tz.transition 1983, 4, :o2, 420019200 + tz.transition 1983, 10, :o1, 436345200 + tz.transition 1984, 4, :o2, 452073600 + tz.transition 1984, 10, :o1, 467794800 + tz.transition 1985, 4, :o2, 483523200 + tz.transition 1985, 10, :o1, 499244400 + tz.transition 1986, 4, :o2, 514972800 + tz.transition 1986, 10, :o1, 530694000 + tz.transition 1987, 4, :o2, 544608000 + tz.transition 1987, 10, :o1, 562143600 + tz.transition 1988, 4, :o2, 576057600 + tz.transition 1988, 10, :o1, 594198000 + tz.transition 1989, 4, :o2, 607507200 + tz.transition 1989, 10, :o1, 625647600 + tz.transition 1990, 4, :o2, 638956800 + tz.transition 1990, 10, :o1, 657097200 + tz.transition 1991, 4, :o2, 671011200 + tz.transition 1991, 10, :o1, 688546800 + tz.transition 1992, 4, :o2, 702460800 + tz.transition 1992, 10, :o1, 719996400 + tz.transition 1993, 4, :o2, 733910400 + tz.transition 1993, 10, :o1, 752050800 + tz.transition 1994, 4, :o2, 765360000 + tz.transition 1994, 10, :o1, 783500400 + tz.transition 1995, 4, :o2, 796809600 + tz.transition 1995, 10, :o1, 814950000 + tz.transition 1996, 4, :o2, 828864000 + tz.transition 1996, 10, :o1, 846399600 + tz.transition 1997, 4, :o2, 860313600 + tz.transition 1997, 10, :o1, 877849200 + tz.transition 1998, 4, :o2, 891763200 + tz.transition 1998, 10, :o1, 909298800 + tz.transition 1999, 4, :o2, 923212800 + tz.transition 1999, 10, :o1, 941353200 + tz.transition 2000, 4, :o2, 954662400 + tz.transition 2000, 10, :o1, 972802800 + tz.transition 2001, 4, :o2, 986112000 + tz.transition 2001, 10, :o1, 1004252400 + tz.transition 2002, 4, :o2, 1018166400 + tz.transition 2002, 10, :o1, 1035702000 + tz.transition 2003, 4, :o2, 1049616000 + tz.transition 2003, 10, :o1, 1067151600 + tz.transition 2004, 4, :o2, 1081065600 + tz.transition 2004, 10, :o1, 1099206000 + tz.transition 2005, 4, :o2, 1112515200 + tz.transition 2005, 10, :o1, 1130655600 + tz.transition 2006, 4, :o2, 1143964800 + tz.transition 2006, 10, :o1, 1162105200 + tz.transition 2007, 3, :o2, 1173600000 + tz.transition 2007, 11, :o1, 1194159600 + tz.transition 2008, 3, :o2, 1205049600 + tz.transition 2008, 11, :o1, 1225609200 + tz.transition 2009, 3, :o2, 1236499200 + tz.transition 2009, 11, :o1, 1257058800 + tz.transition 2010, 3, :o2, 1268553600 + tz.transition 2010, 11, :o1, 1289113200 + tz.transition 2011, 3, :o2, 1300003200 + tz.transition 2011, 11, :o1, 1320562800 + tz.transition 2012, 3, :o2, 1331452800 + tz.transition 2012, 11, :o1, 1352012400 + tz.transition 2013, 3, :o2, 1362902400 + tz.transition 2013, 11, :o1, 1383462000 + tz.transition 2014, 3, :o2, 1394352000 + tz.transition 2014, 11, :o1, 1414911600 + tz.transition 2015, 3, :o2, 1425801600 + tz.transition 2015, 11, :o1, 1446361200 + tz.transition 2016, 3, :o2, 1457856000 + tz.transition 2016, 11, :o1, 1478415600 + tz.transition 2017, 3, :o2, 1489305600 + tz.transition 2017, 11, :o1, 1509865200 + tz.transition 2018, 3, :o2, 1520755200 + tz.transition 2018, 11, :o1, 1541314800 + tz.transition 2019, 3, :o2, 1552204800 + tz.transition 2019, 11, :o1, 1572764400 + tz.transition 2020, 3, :o2, 1583654400 + tz.transition 2020, 11, :o1, 1604214000 + tz.transition 2021, 3, :o2, 1615708800 + tz.transition 2021, 11, :o1, 1636268400 + tz.transition 2022, 3, :o2, 1647158400 + tz.transition 2022, 11, :o1, 1667718000 + tz.transition 2023, 3, :o2, 1678608000 + tz.transition 2023, 11, :o1, 1699167600 + tz.transition 2024, 3, :o2, 1710057600 + tz.transition 2024, 11, :o1, 1730617200 + tz.transition 2025, 3, :o2, 1741507200 + tz.transition 2025, 11, :o1, 1762066800 + tz.transition 2026, 3, :o2, 1772956800 + tz.transition 2026, 11, :o1, 1793516400 + tz.transition 2027, 3, :o2, 1805011200 + tz.transition 2027, 11, :o1, 1825570800 + tz.transition 2028, 3, :o2, 1836460800 + tz.transition 2028, 11, :o1, 1857020400 + tz.transition 2029, 3, :o2, 1867910400 + tz.transition 2029, 11, :o1, 1888470000 + tz.transition 2030, 3, :o2, 1899360000 + tz.transition 2030, 11, :o1, 1919919600 + tz.transition 2031, 3, :o2, 1930809600 + tz.transition 2031, 11, :o1, 1951369200 + tz.transition 2032, 3, :o2, 1962864000 + tz.transition 2032, 11, :o1, 1983423600 + tz.transition 2033, 3, :o2, 1994313600 + tz.transition 2033, 11, :o1, 2014873200 + tz.transition 2034, 3, :o2, 2025763200 + tz.transition 2034, 11, :o1, 2046322800 + tz.transition 2035, 3, :o2, 2057212800 + tz.transition 2035, 11, :o1, 2077772400 + tz.transition 2036, 3, :o2, 2088662400 + tz.transition 2036, 11, :o1, 2109222000 + tz.transition 2037, 3, :o2, 2120112000 + tz.transition 2037, 11, :o1, 2140671600 + tz.transition 2038, 3, :o2, 14792981, 6 + tz.transition 2038, 11, :o1, 59177635, 24 + tz.transition 2039, 3, :o2, 14795165, 6 + tz.transition 2039, 11, :o1, 59186371, 24 + tz.transition 2040, 3, :o2, 14797349, 6 + tz.transition 2040, 11, :o1, 59195107, 24 + tz.transition 2041, 3, :o2, 14799533, 6 + tz.transition 2041, 11, :o1, 59203843, 24 + tz.transition 2042, 3, :o2, 14801717, 6 + tz.transition 2042, 11, :o1, 59212579, 24 + tz.transition 2043, 3, :o2, 14803901, 6 + tz.transition 2043, 11, :o1, 59221315, 24 + tz.transition 2044, 3, :o2, 14806127, 6 + tz.transition 2044, 11, :o1, 59230219, 24 + tz.transition 2045, 3, :o2, 14808311, 6 + tz.transition 2045, 11, :o1, 59238955, 24 + tz.transition 2046, 3, :o2, 14810495, 6 + tz.transition 2046, 11, :o1, 59247691, 24 + tz.transition 2047, 3, :o2, 14812679, 6 + tz.transition 2047, 11, :o1, 59256427, 24 + tz.transition 2048, 3, :o2, 14814863, 6 + tz.transition 2048, 11, :o1, 59265163, 24 + tz.transition 2049, 3, :o2, 14817089, 6 + tz.transition 2049, 11, :o1, 59274067, 24 + tz.transition 2050, 3, :o2, 14819273, 6 + tz.transition 2050, 11, :o1, 59282803, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chihuahua.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chihuahua.rb new file mode 100644 index 000000000..1710b57c7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Chihuahua.rb @@ -0,0 +1,136 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Chihuahua + include TimezoneDefinition + + timezone 'America/Chihuahua' do |tz| + tz.offset :o0, -25460, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -21600, 0, :CST + tz.offset :o3, -21600, 3600, :CDT + tz.offset :o4, -25200, 3600, :MDT + + tz.transition 1922, 1, :o1, 58153339, 24 + tz.transition 1927, 6, :o2, 9700171, 4 + tz.transition 1930, 11, :o1, 9705183, 4 + tz.transition 1931, 5, :o2, 9705855, 4 + tz.transition 1931, 10, :o1, 9706463, 4 + tz.transition 1932, 4, :o2, 58243171, 24 + tz.transition 1996, 4, :o3, 828864000 + tz.transition 1996, 10, :o2, 846399600 + tz.transition 1997, 4, :o3, 860313600 + tz.transition 1997, 10, :o2, 877849200 + tz.transition 1998, 4, :o4, 891766800 + tz.transition 1998, 10, :o1, 909302400 + tz.transition 1999, 4, :o4, 923216400 + tz.transition 1999, 10, :o1, 941356800 + tz.transition 2000, 4, :o4, 954666000 + tz.transition 2000, 10, :o1, 972806400 + tz.transition 2001, 5, :o4, 989139600 + tz.transition 2001, 9, :o1, 1001836800 + tz.transition 2002, 4, :o4, 1018170000 + tz.transition 2002, 10, :o1, 1035705600 + tz.transition 2003, 4, :o4, 1049619600 + tz.transition 2003, 10, :o1, 1067155200 + tz.transition 2004, 4, :o4, 1081069200 + tz.transition 2004, 10, :o1, 1099209600 + tz.transition 2005, 4, :o4, 1112518800 + tz.transition 2005, 10, :o1, 1130659200 + tz.transition 2006, 4, :o4, 1143968400 + tz.transition 2006, 10, :o1, 1162108800 + tz.transition 2007, 4, :o4, 1175418000 + tz.transition 2007, 10, :o1, 1193558400 + tz.transition 2008, 4, :o4, 1207472400 + tz.transition 2008, 10, :o1, 1225008000 + tz.transition 2009, 4, :o4, 1238922000 + tz.transition 2009, 10, :o1, 1256457600 + tz.transition 2010, 4, :o4, 1270371600 + tz.transition 2010, 10, :o1, 1288512000 + tz.transition 2011, 4, :o4, 1301821200 + tz.transition 2011, 10, :o1, 1319961600 + tz.transition 2012, 4, :o4, 1333270800 + tz.transition 2012, 10, :o1, 1351411200 + tz.transition 2013, 4, :o4, 1365325200 + tz.transition 2013, 10, :o1, 1382860800 + tz.transition 2014, 4, :o4, 1396774800 + tz.transition 2014, 10, :o1, 1414310400 + tz.transition 2015, 4, :o4, 1428224400 + tz.transition 2015, 10, :o1, 1445760000 + tz.transition 2016, 4, :o4, 1459674000 + tz.transition 2016, 10, :o1, 1477814400 + tz.transition 2017, 4, :o4, 1491123600 + tz.transition 2017, 10, :o1, 1509264000 + tz.transition 2018, 4, :o4, 1522573200 + tz.transition 2018, 10, :o1, 1540713600 + tz.transition 2019, 4, :o4, 1554627600 + tz.transition 2019, 10, :o1, 1572163200 + tz.transition 2020, 4, :o4, 1586077200 + tz.transition 2020, 10, :o1, 1603612800 + tz.transition 2021, 4, :o4, 1617526800 + tz.transition 2021, 10, :o1, 1635667200 + tz.transition 2022, 4, :o4, 1648976400 + tz.transition 2022, 10, :o1, 1667116800 + tz.transition 2023, 4, :o4, 1680426000 + tz.transition 2023, 10, :o1, 1698566400 + tz.transition 2024, 4, :o4, 1712480400 + tz.transition 2024, 10, :o1, 1730016000 + tz.transition 2025, 4, :o4, 1743930000 + tz.transition 2025, 10, :o1, 1761465600 + tz.transition 2026, 4, :o4, 1775379600 + tz.transition 2026, 10, :o1, 1792915200 + tz.transition 2027, 4, :o4, 1806829200 + tz.transition 2027, 10, :o1, 1824969600 + tz.transition 2028, 4, :o4, 1838278800 + tz.transition 2028, 10, :o1, 1856419200 + tz.transition 2029, 4, :o4, 1869728400 + tz.transition 2029, 10, :o1, 1887868800 + tz.transition 2030, 4, :o4, 1901782800 + tz.transition 2030, 10, :o1, 1919318400 + tz.transition 2031, 4, :o4, 1933232400 + tz.transition 2031, 10, :o1, 1950768000 + tz.transition 2032, 4, :o4, 1964682000 + tz.transition 2032, 10, :o1, 1982822400 + tz.transition 2033, 4, :o4, 1996131600 + tz.transition 2033, 10, :o1, 2014272000 + tz.transition 2034, 4, :o4, 2027581200 + tz.transition 2034, 10, :o1, 2045721600 + tz.transition 2035, 4, :o4, 2059030800 + tz.transition 2035, 10, :o1, 2077171200 + tz.transition 2036, 4, :o4, 2091085200 + tz.transition 2036, 10, :o1, 2108620800 + tz.transition 2037, 4, :o4, 2122534800 + tz.transition 2037, 10, :o1, 2140070400 + tz.transition 2038, 4, :o4, 19724143, 8 + tz.transition 2038, 10, :o1, 14794367, 6 + tz.transition 2039, 4, :o4, 19727055, 8 + tz.transition 2039, 10, :o1, 14796551, 6 + tz.transition 2040, 4, :o4, 19729967, 8 + tz.transition 2040, 10, :o1, 14798735, 6 + tz.transition 2041, 4, :o4, 19732935, 8 + tz.transition 2041, 10, :o1, 14800919, 6 + tz.transition 2042, 4, :o4, 19735847, 8 + tz.transition 2042, 10, :o1, 14803103, 6 + tz.transition 2043, 4, :o4, 19738759, 8 + tz.transition 2043, 10, :o1, 14805287, 6 + tz.transition 2044, 4, :o4, 19741671, 8 + tz.transition 2044, 10, :o1, 14807513, 6 + tz.transition 2045, 4, :o4, 19744583, 8 + tz.transition 2045, 10, :o1, 14809697, 6 + tz.transition 2046, 4, :o4, 19747495, 8 + tz.transition 2046, 10, :o1, 14811881, 6 + tz.transition 2047, 4, :o4, 19750463, 8 + tz.transition 2047, 10, :o1, 14814065, 6 + tz.transition 2048, 4, :o4, 19753375, 8 + tz.transition 2048, 10, :o1, 14816249, 6 + tz.transition 2049, 4, :o4, 19756287, 8 + tz.transition 2049, 10, :o1, 14818475, 6 + tz.transition 2050, 4, :o4, 19759199, 8 + tz.transition 2050, 10, :o1, 14820659, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Denver.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Denver.rb new file mode 100644 index 000000000..1c1efb5ff --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Denver.rb @@ -0,0 +1,204 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Denver + include TimezoneDefinition + + timezone 'America/Denver' do |tz| + tz.offset :o0, -25196, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -25200, 3600, :MDT + tz.offset :o3, -25200, 3600, :MWT + tz.offset :o4, -25200, 3600, :MPT + + tz.transition 1883, 11, :o1, 57819199, 24 + tz.transition 1918, 3, :o2, 19373471, 8 + tz.transition 1918, 10, :o1, 14531363, 6 + tz.transition 1919, 3, :o2, 19376383, 8 + tz.transition 1919, 10, :o1, 14533547, 6 + tz.transition 1920, 3, :o2, 19379295, 8 + tz.transition 1920, 10, :o1, 14535773, 6 + tz.transition 1921, 3, :o2, 19382207, 8 + tz.transition 1921, 5, :o1, 14536991, 6 + tz.transition 1942, 2, :o3, 19443199, 8 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 14590373, 6 + tz.transition 1965, 4, :o2, 19511007, 8 + tz.transition 1965, 10, :o1, 14634389, 6 + tz.transition 1966, 4, :o2, 19513919, 8 + tz.transition 1966, 10, :o1, 14636573, 6 + tz.transition 1967, 4, :o2, 19516887, 8 + tz.transition 1967, 10, :o1, 14638757, 6 + tz.transition 1968, 4, :o2, 19519799, 8 + tz.transition 1968, 10, :o1, 14640941, 6 + tz.transition 1969, 4, :o2, 19522711, 8 + tz.transition 1969, 10, :o1, 14643125, 6 + tz.transition 1970, 4, :o2, 9968400 + tz.transition 1970, 10, :o1, 25689600 + tz.transition 1971, 4, :o2, 41418000 + tz.transition 1971, 10, :o1, 57744000 + tz.transition 1972, 4, :o2, 73472400 + tz.transition 1972, 10, :o1, 89193600 + tz.transition 1973, 4, :o2, 104922000 + tz.transition 1973, 10, :o1, 120643200 + tz.transition 1974, 1, :o2, 126694800 + tz.transition 1974, 10, :o1, 152092800 + tz.transition 1975, 2, :o2, 162378000 + tz.transition 1975, 10, :o1, 183542400 + tz.transition 1976, 4, :o2, 199270800 + tz.transition 1976, 10, :o1, 215596800 + tz.transition 1977, 4, :o2, 230720400 + tz.transition 1977, 10, :o1, 247046400 + tz.transition 1978, 4, :o2, 262774800 + tz.transition 1978, 10, :o1, 278496000 + tz.transition 1979, 4, :o2, 294224400 + tz.transition 1979, 10, :o1, 309945600 + tz.transition 1980, 4, :o2, 325674000 + tz.transition 1980, 10, :o1, 341395200 + tz.transition 1981, 4, :o2, 357123600 + tz.transition 1981, 10, :o1, 372844800 + tz.transition 1982, 4, :o2, 388573200 + tz.transition 1982, 10, :o1, 404899200 + tz.transition 1983, 4, :o2, 420022800 + tz.transition 1983, 10, :o1, 436348800 + tz.transition 1984, 4, :o2, 452077200 + tz.transition 1984, 10, :o1, 467798400 + tz.transition 1985, 4, :o2, 483526800 + tz.transition 1985, 10, :o1, 499248000 + tz.transition 1986, 4, :o2, 514976400 + tz.transition 1986, 10, :o1, 530697600 + tz.transition 1987, 4, :o2, 544611600 + tz.transition 1987, 10, :o1, 562147200 + tz.transition 1988, 4, :o2, 576061200 + tz.transition 1988, 10, :o1, 594201600 + tz.transition 1989, 4, :o2, 607510800 + tz.transition 1989, 10, :o1, 625651200 + tz.transition 1990, 4, :o2, 638960400 + tz.transition 1990, 10, :o1, 657100800 + tz.transition 1991, 4, :o2, 671014800 + tz.transition 1991, 10, :o1, 688550400 + tz.transition 1992, 4, :o2, 702464400 + tz.transition 1992, 10, :o1, 720000000 + tz.transition 1993, 4, :o2, 733914000 + tz.transition 1993, 10, :o1, 752054400 + tz.transition 1994, 4, :o2, 765363600 + tz.transition 1994, 10, :o1, 783504000 + tz.transition 1995, 4, :o2, 796813200 + tz.transition 1995, 10, :o1, 814953600 + tz.transition 1996, 4, :o2, 828867600 + tz.transition 1996, 10, :o1, 846403200 + tz.transition 1997, 4, :o2, 860317200 + tz.transition 1997, 10, :o1, 877852800 + tz.transition 1998, 4, :o2, 891766800 + tz.transition 1998, 10, :o1, 909302400 + tz.transition 1999, 4, :o2, 923216400 + tz.transition 1999, 10, :o1, 941356800 + tz.transition 2000, 4, :o2, 954666000 + tz.transition 2000, 10, :o1, 972806400 + tz.transition 2001, 4, :o2, 986115600 + tz.transition 2001, 10, :o1, 1004256000 + tz.transition 2002, 4, :o2, 1018170000 + tz.transition 2002, 10, :o1, 1035705600 + tz.transition 2003, 4, :o2, 1049619600 + tz.transition 2003, 10, :o1, 1067155200 + tz.transition 2004, 4, :o2, 1081069200 + tz.transition 2004, 10, :o1, 1099209600 + tz.transition 2005, 4, :o2, 1112518800 + tz.transition 2005, 10, :o1, 1130659200 + tz.transition 2006, 4, :o2, 1143968400 + tz.transition 2006, 10, :o1, 1162108800 + tz.transition 2007, 3, :o2, 1173603600 + tz.transition 2007, 11, :o1, 1194163200 + tz.transition 2008, 3, :o2, 1205053200 + tz.transition 2008, 11, :o1, 1225612800 + tz.transition 2009, 3, :o2, 1236502800 + tz.transition 2009, 11, :o1, 1257062400 + tz.transition 2010, 3, :o2, 1268557200 + tz.transition 2010, 11, :o1, 1289116800 + tz.transition 2011, 3, :o2, 1300006800 + tz.transition 2011, 11, :o1, 1320566400 + tz.transition 2012, 3, :o2, 1331456400 + tz.transition 2012, 11, :o1, 1352016000 + tz.transition 2013, 3, :o2, 1362906000 + tz.transition 2013, 11, :o1, 1383465600 + tz.transition 2014, 3, :o2, 1394355600 + tz.transition 2014, 11, :o1, 1414915200 + tz.transition 2015, 3, :o2, 1425805200 + tz.transition 2015, 11, :o1, 1446364800 + tz.transition 2016, 3, :o2, 1457859600 + tz.transition 2016, 11, :o1, 1478419200 + tz.transition 2017, 3, :o2, 1489309200 + tz.transition 2017, 11, :o1, 1509868800 + tz.transition 2018, 3, :o2, 1520758800 + tz.transition 2018, 11, :o1, 1541318400 + tz.transition 2019, 3, :o2, 1552208400 + tz.transition 2019, 11, :o1, 1572768000 + tz.transition 2020, 3, :o2, 1583658000 + tz.transition 2020, 11, :o1, 1604217600 + tz.transition 2021, 3, :o2, 1615712400 + tz.transition 2021, 11, :o1, 1636272000 + tz.transition 2022, 3, :o2, 1647162000 + tz.transition 2022, 11, :o1, 1667721600 + tz.transition 2023, 3, :o2, 1678611600 + tz.transition 2023, 11, :o1, 1699171200 + tz.transition 2024, 3, :o2, 1710061200 + tz.transition 2024, 11, :o1, 1730620800 + tz.transition 2025, 3, :o2, 1741510800 + tz.transition 2025, 11, :o1, 1762070400 + tz.transition 2026, 3, :o2, 1772960400 + tz.transition 2026, 11, :o1, 1793520000 + tz.transition 2027, 3, :o2, 1805014800 + tz.transition 2027, 11, :o1, 1825574400 + tz.transition 2028, 3, :o2, 1836464400 + tz.transition 2028, 11, :o1, 1857024000 + tz.transition 2029, 3, :o2, 1867914000 + tz.transition 2029, 11, :o1, 1888473600 + tz.transition 2030, 3, :o2, 1899363600 + tz.transition 2030, 11, :o1, 1919923200 + tz.transition 2031, 3, :o2, 1930813200 + tz.transition 2031, 11, :o1, 1951372800 + tz.transition 2032, 3, :o2, 1962867600 + tz.transition 2032, 11, :o1, 1983427200 + tz.transition 2033, 3, :o2, 1994317200 + tz.transition 2033, 11, :o1, 2014876800 + tz.transition 2034, 3, :o2, 2025766800 + tz.transition 2034, 11, :o1, 2046326400 + tz.transition 2035, 3, :o2, 2057216400 + tz.transition 2035, 11, :o1, 2077776000 + tz.transition 2036, 3, :o2, 2088666000 + tz.transition 2036, 11, :o1, 2109225600 + tz.transition 2037, 3, :o2, 2120115600 + tz.transition 2037, 11, :o1, 2140675200 + tz.transition 2038, 3, :o2, 19723975, 8 + tz.transition 2038, 11, :o1, 14794409, 6 + tz.transition 2039, 3, :o2, 19726887, 8 + tz.transition 2039, 11, :o1, 14796593, 6 + tz.transition 2040, 3, :o2, 19729799, 8 + tz.transition 2040, 11, :o1, 14798777, 6 + tz.transition 2041, 3, :o2, 19732711, 8 + tz.transition 2041, 11, :o1, 14800961, 6 + tz.transition 2042, 3, :o2, 19735623, 8 + tz.transition 2042, 11, :o1, 14803145, 6 + tz.transition 2043, 3, :o2, 19738535, 8 + tz.transition 2043, 11, :o1, 14805329, 6 + tz.transition 2044, 3, :o2, 19741503, 8 + tz.transition 2044, 11, :o1, 14807555, 6 + tz.transition 2045, 3, :o2, 19744415, 8 + tz.transition 2045, 11, :o1, 14809739, 6 + tz.transition 2046, 3, :o2, 19747327, 8 + tz.transition 2046, 11, :o1, 14811923, 6 + tz.transition 2047, 3, :o2, 19750239, 8 + tz.transition 2047, 11, :o1, 14814107, 6 + tz.transition 2048, 3, :o2, 19753151, 8 + tz.transition 2048, 11, :o1, 14816291, 6 + tz.transition 2049, 3, :o2, 19756119, 8 + tz.transition 2049, 11, :o1, 14818517, 6 + tz.transition 2050, 3, :o2, 19759031, 8 + tz.transition 2050, 11, :o1, 14820701, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Godthab.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Godthab.rb new file mode 100644 index 000000000..1e05518b0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Godthab.rb @@ -0,0 +1,161 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Godthab + include TimezoneDefinition + + timezone 'America/Godthab' do |tz| + tz.offset :o0, -12416, 0, :LMT + tz.offset :o1, -10800, 0, :WGT + tz.offset :o2, -10800, 3600, :WGST + + tz.transition 1916, 7, :o1, 3268448069, 1350 + tz.transition 1980, 4, :o2, 323845200 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Guatemala.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Guatemala.rb new file mode 100644 index 000000000..a2bf73401 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Guatemala.rb @@ -0,0 +1,27 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Guatemala + include TimezoneDefinition + + timezone 'America/Guatemala' do |tz| + tz.offset :o0, -21724, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + + tz.transition 1918, 10, :o1, 52312429831, 21600 + tz.transition 1973, 11, :o2, 123055200 + tz.transition 1974, 2, :o1, 130914000 + tz.transition 1983, 5, :o2, 422344800 + tz.transition 1983, 9, :o1, 433054800 + tz.transition 1991, 3, :o2, 669708000 + tz.transition 1991, 9, :o1, 684219600 + tz.transition 2006, 4, :o2, 1146376800 + tz.transition 2006, 10, :o1, 1159678800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Halifax.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Halifax.rb new file mode 100644 index 000000000..d25ae775b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Halifax.rb @@ -0,0 +1,274 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Halifax + include TimezoneDefinition + + timezone 'America/Halifax' do |tz| + tz.offset :o0, -15264, 0, :LMT + tz.offset :o1, -14400, 0, :AST + tz.offset :o2, -14400, 3600, :ADT + tz.offset :o3, -14400, 3600, :AWT + tz.offset :o4, -14400, 3600, :APT + + tz.transition 1902, 6, :o1, 724774703, 300 + tz.transition 1916, 4, :o2, 7262864, 3 + tz.transition 1916, 10, :o1, 19369101, 8 + tz.transition 1918, 4, :o2, 9686791, 4 + tz.transition 1918, 10, :o1, 58125545, 24 + tz.transition 1920, 5, :o2, 7267361, 3 + tz.transition 1920, 8, :o1, 19380525, 8 + tz.transition 1921, 5, :o2, 7268447, 3 + tz.transition 1921, 9, :o1, 19383501, 8 + tz.transition 1922, 4, :o2, 7269524, 3 + tz.transition 1922, 9, :o1, 19386421, 8 + tz.transition 1923, 5, :o2, 7270637, 3 + tz.transition 1923, 9, :o1, 19389333, 8 + tz.transition 1924, 5, :o2, 7271729, 3 + tz.transition 1924, 9, :o1, 19392349, 8 + tz.transition 1925, 5, :o2, 7272821, 3 + tz.transition 1925, 9, :o1, 19395373, 8 + tz.transition 1926, 5, :o2, 7273955, 3 + tz.transition 1926, 9, :o1, 19398173, 8 + tz.transition 1927, 5, :o2, 7275005, 3 + tz.transition 1927, 9, :o1, 19401197, 8 + tz.transition 1928, 5, :o2, 7276139, 3 + tz.transition 1928, 9, :o1, 19403989, 8 + tz.transition 1929, 5, :o2, 7277231, 3 + tz.transition 1929, 9, :o1, 19406861, 8 + tz.transition 1930, 5, :o2, 7278323, 3 + tz.transition 1930, 9, :o1, 19409877, 8 + tz.transition 1931, 5, :o2, 7279415, 3 + tz.transition 1931, 9, :o1, 19412901, 8 + tz.transition 1932, 5, :o2, 7280486, 3 + tz.transition 1932, 9, :o1, 19415813, 8 + tz.transition 1933, 4, :o2, 7281578, 3 + tz.transition 1933, 10, :o1, 19418781, 8 + tz.transition 1934, 5, :o2, 7282733, 3 + tz.transition 1934, 9, :o1, 19421573, 8 + tz.transition 1935, 6, :o2, 7283867, 3 + tz.transition 1935, 9, :o1, 19424605, 8 + tz.transition 1936, 6, :o2, 7284962, 3 + tz.transition 1936, 9, :o1, 19427405, 8 + tz.transition 1937, 5, :o2, 7285967, 3 + tz.transition 1937, 9, :o1, 19430429, 8 + tz.transition 1938, 5, :o2, 7287059, 3 + tz.transition 1938, 9, :o1, 19433341, 8 + tz.transition 1939, 5, :o2, 7288235, 3 + tz.transition 1939, 9, :o1, 19436253, 8 + tz.transition 1940, 5, :o2, 7289264, 3 + tz.transition 1940, 9, :o1, 19439221, 8 + tz.transition 1941, 5, :o2, 7290356, 3 + tz.transition 1941, 9, :o1, 19442133, 8 + tz.transition 1942, 2, :o3, 9721599, 4 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 58361489, 24 + tz.transition 1946, 4, :o2, 9727755, 4 + tz.transition 1946, 9, :o1, 58370225, 24 + tz.transition 1947, 4, :o2, 9729211, 4 + tz.transition 1947, 9, :o1, 58378961, 24 + tz.transition 1948, 4, :o2, 9730667, 4 + tz.transition 1948, 9, :o1, 58387697, 24 + tz.transition 1949, 4, :o2, 9732123, 4 + tz.transition 1949, 9, :o1, 58396433, 24 + tz.transition 1951, 4, :o2, 9735063, 4 + tz.transition 1951, 9, :o1, 58414073, 24 + tz.transition 1952, 4, :o2, 9736519, 4 + tz.transition 1952, 9, :o1, 58422809, 24 + tz.transition 1953, 4, :o2, 9737975, 4 + tz.transition 1953, 9, :o1, 58431545, 24 + tz.transition 1954, 4, :o2, 9739431, 4 + tz.transition 1954, 9, :o1, 58440281, 24 + tz.transition 1956, 4, :o2, 9742371, 4 + tz.transition 1956, 9, :o1, 58457921, 24 + tz.transition 1957, 4, :o2, 9743827, 4 + tz.transition 1957, 9, :o1, 58466657, 24 + tz.transition 1958, 4, :o2, 9745283, 4 + tz.transition 1958, 9, :o1, 58475393, 24 + tz.transition 1959, 4, :o2, 9746739, 4 + tz.transition 1959, 9, :o1, 58484129, 24 + tz.transition 1962, 4, :o2, 9751135, 4 + tz.transition 1962, 10, :o1, 58511177, 24 + tz.transition 1963, 4, :o2, 9752591, 4 + tz.transition 1963, 10, :o1, 58519913, 24 + tz.transition 1964, 4, :o2, 9754047, 4 + tz.transition 1964, 10, :o1, 58528649, 24 + tz.transition 1965, 4, :o2, 9755503, 4 + tz.transition 1965, 10, :o1, 58537553, 24 + tz.transition 1966, 4, :o2, 9756959, 4 + tz.transition 1966, 10, :o1, 58546289, 24 + tz.transition 1967, 4, :o2, 9758443, 4 + tz.transition 1967, 10, :o1, 58555025, 24 + tz.transition 1968, 4, :o2, 9759899, 4 + tz.transition 1968, 10, :o1, 58563761, 24 + tz.transition 1969, 4, :o2, 9761355, 4 + tz.transition 1969, 10, :o1, 58572497, 24 + tz.transition 1970, 4, :o2, 9957600 + tz.transition 1970, 10, :o1, 25678800 + tz.transition 1971, 4, :o2, 41407200 + tz.transition 1971, 10, :o1, 57733200 + tz.transition 1972, 4, :o2, 73461600 + tz.transition 1972, 10, :o1, 89182800 + tz.transition 1973, 4, :o2, 104911200 + tz.transition 1973, 10, :o1, 120632400 + tz.transition 1974, 4, :o2, 136360800 + tz.transition 1974, 10, :o1, 152082000 + tz.transition 1975, 4, :o2, 167810400 + tz.transition 1975, 10, :o1, 183531600 + tz.transition 1976, 4, :o2, 199260000 + tz.transition 1976, 10, :o1, 215586000 + tz.transition 1977, 4, :o2, 230709600 + tz.transition 1977, 10, :o1, 247035600 + tz.transition 1978, 4, :o2, 262764000 + tz.transition 1978, 10, :o1, 278485200 + tz.transition 1979, 4, :o2, 294213600 + tz.transition 1979, 10, :o1, 309934800 + tz.transition 1980, 4, :o2, 325663200 + tz.transition 1980, 10, :o1, 341384400 + tz.transition 1981, 4, :o2, 357112800 + tz.transition 1981, 10, :o1, 372834000 + tz.transition 1982, 4, :o2, 388562400 + tz.transition 1982, 10, :o1, 404888400 + tz.transition 1983, 4, :o2, 420012000 + tz.transition 1983, 10, :o1, 436338000 + tz.transition 1984, 4, :o2, 452066400 + tz.transition 1984, 10, :o1, 467787600 + tz.transition 1985, 4, :o2, 483516000 + tz.transition 1985, 10, :o1, 499237200 + tz.transition 1986, 4, :o2, 514965600 + tz.transition 1986, 10, :o1, 530686800 + tz.transition 1987, 4, :o2, 544600800 + tz.transition 1987, 10, :o1, 562136400 + tz.transition 1988, 4, :o2, 576050400 + tz.transition 1988, 10, :o1, 594190800 + tz.transition 1989, 4, :o2, 607500000 + tz.transition 1989, 10, :o1, 625640400 + tz.transition 1990, 4, :o2, 638949600 + tz.transition 1990, 10, :o1, 657090000 + tz.transition 1991, 4, :o2, 671004000 + tz.transition 1991, 10, :o1, 688539600 + tz.transition 1992, 4, :o2, 702453600 + tz.transition 1992, 10, :o1, 719989200 + tz.transition 1993, 4, :o2, 733903200 + tz.transition 1993, 10, :o1, 752043600 + tz.transition 1994, 4, :o2, 765352800 + tz.transition 1994, 10, :o1, 783493200 + tz.transition 1995, 4, :o2, 796802400 + tz.transition 1995, 10, :o1, 814942800 + tz.transition 1996, 4, :o2, 828856800 + tz.transition 1996, 10, :o1, 846392400 + tz.transition 1997, 4, :o2, 860306400 + tz.transition 1997, 10, :o1, 877842000 + tz.transition 1998, 4, :o2, 891756000 + tz.transition 1998, 10, :o1, 909291600 + tz.transition 1999, 4, :o2, 923205600 + tz.transition 1999, 10, :o1, 941346000 + tz.transition 2000, 4, :o2, 954655200 + tz.transition 2000, 10, :o1, 972795600 + tz.transition 2001, 4, :o2, 986104800 + tz.transition 2001, 10, :o1, 1004245200 + tz.transition 2002, 4, :o2, 1018159200 + tz.transition 2002, 10, :o1, 1035694800 + tz.transition 2003, 4, :o2, 1049608800 + tz.transition 2003, 10, :o1, 1067144400 + tz.transition 2004, 4, :o2, 1081058400 + tz.transition 2004, 10, :o1, 1099198800 + tz.transition 2005, 4, :o2, 1112508000 + tz.transition 2005, 10, :o1, 1130648400 + tz.transition 2006, 4, :o2, 1143957600 + tz.transition 2006, 10, :o1, 1162098000 + tz.transition 2007, 3, :o2, 1173592800 + tz.transition 2007, 11, :o1, 1194152400 + tz.transition 2008, 3, :o2, 1205042400 + tz.transition 2008, 11, :o1, 1225602000 + tz.transition 2009, 3, :o2, 1236492000 + tz.transition 2009, 11, :o1, 1257051600 + tz.transition 2010, 3, :o2, 1268546400 + tz.transition 2010, 11, :o1, 1289106000 + tz.transition 2011, 3, :o2, 1299996000 + tz.transition 2011, 11, :o1, 1320555600 + tz.transition 2012, 3, :o2, 1331445600 + tz.transition 2012, 11, :o1, 1352005200 + tz.transition 2013, 3, :o2, 1362895200 + tz.transition 2013, 11, :o1, 1383454800 + tz.transition 2014, 3, :o2, 1394344800 + tz.transition 2014, 11, :o1, 1414904400 + tz.transition 2015, 3, :o2, 1425794400 + tz.transition 2015, 11, :o1, 1446354000 + tz.transition 2016, 3, :o2, 1457848800 + tz.transition 2016, 11, :o1, 1478408400 + tz.transition 2017, 3, :o2, 1489298400 + tz.transition 2017, 11, :o1, 1509858000 + tz.transition 2018, 3, :o2, 1520748000 + tz.transition 2018, 11, :o1, 1541307600 + tz.transition 2019, 3, :o2, 1552197600 + tz.transition 2019, 11, :o1, 1572757200 + tz.transition 2020, 3, :o2, 1583647200 + tz.transition 2020, 11, :o1, 1604206800 + tz.transition 2021, 3, :o2, 1615701600 + tz.transition 2021, 11, :o1, 1636261200 + tz.transition 2022, 3, :o2, 1647151200 + tz.transition 2022, 11, :o1, 1667710800 + tz.transition 2023, 3, :o2, 1678600800 + tz.transition 2023, 11, :o1, 1699160400 + tz.transition 2024, 3, :o2, 1710050400 + tz.transition 2024, 11, :o1, 1730610000 + tz.transition 2025, 3, :o2, 1741500000 + tz.transition 2025, 11, :o1, 1762059600 + tz.transition 2026, 3, :o2, 1772949600 + tz.transition 2026, 11, :o1, 1793509200 + tz.transition 2027, 3, :o2, 1805004000 + tz.transition 2027, 11, :o1, 1825563600 + tz.transition 2028, 3, :o2, 1836453600 + tz.transition 2028, 11, :o1, 1857013200 + tz.transition 2029, 3, :o2, 1867903200 + tz.transition 2029, 11, :o1, 1888462800 + tz.transition 2030, 3, :o2, 1899352800 + tz.transition 2030, 11, :o1, 1919912400 + tz.transition 2031, 3, :o2, 1930802400 + tz.transition 2031, 11, :o1, 1951362000 + tz.transition 2032, 3, :o2, 1962856800 + tz.transition 2032, 11, :o1, 1983416400 + tz.transition 2033, 3, :o2, 1994306400 + tz.transition 2033, 11, :o1, 2014866000 + tz.transition 2034, 3, :o2, 2025756000 + tz.transition 2034, 11, :o1, 2046315600 + tz.transition 2035, 3, :o2, 2057205600 + tz.transition 2035, 11, :o1, 2077765200 + tz.transition 2036, 3, :o2, 2088655200 + tz.transition 2036, 11, :o1, 2109214800 + tz.transition 2037, 3, :o2, 2120104800 + tz.transition 2037, 11, :o1, 2140664400 + tz.transition 2038, 3, :o2, 9861987, 4 + tz.transition 2038, 11, :o1, 59177633, 24 + tz.transition 2039, 3, :o2, 9863443, 4 + tz.transition 2039, 11, :o1, 59186369, 24 + tz.transition 2040, 3, :o2, 9864899, 4 + tz.transition 2040, 11, :o1, 59195105, 24 + tz.transition 2041, 3, :o2, 9866355, 4 + tz.transition 2041, 11, :o1, 59203841, 24 + tz.transition 2042, 3, :o2, 9867811, 4 + tz.transition 2042, 11, :o1, 59212577, 24 + tz.transition 2043, 3, :o2, 9869267, 4 + tz.transition 2043, 11, :o1, 59221313, 24 + tz.transition 2044, 3, :o2, 9870751, 4 + tz.transition 2044, 11, :o1, 59230217, 24 + tz.transition 2045, 3, :o2, 9872207, 4 + tz.transition 2045, 11, :o1, 59238953, 24 + tz.transition 2046, 3, :o2, 9873663, 4 + tz.transition 2046, 11, :o1, 59247689, 24 + tz.transition 2047, 3, :o2, 9875119, 4 + tz.transition 2047, 11, :o1, 59256425, 24 + tz.transition 2048, 3, :o2, 9876575, 4 + tz.transition 2048, 11, :o1, 59265161, 24 + tz.transition 2049, 3, :o2, 9878059, 4 + tz.transition 2049, 11, :o1, 59274065, 24 + tz.transition 2050, 3, :o2, 9879515, 4 + tz.transition 2050, 11, :o1, 59282801, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Indiana/Indianapolis.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Indiana/Indianapolis.rb new file mode 100644 index 000000000..f1430f6c2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Indiana/Indianapolis.rb @@ -0,0 +1,149 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Indiana + module Indianapolis + include TimezoneDefinition + + timezone 'America/Indiana/Indianapolis' do |tz| + tz.offset :o0, -20678, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + tz.offset :o3, -21600, 3600, :CWT + tz.offset :o4, -21600, 3600, :CPT + tz.offset :o5, -18000, 0, :EST + tz.offset :o6, -18000, 3600, :EDT + + tz.transition 1883, 11, :o1, 9636533, 4 + tz.transition 1918, 3, :o2, 14530103, 6 + tz.transition 1918, 10, :o1, 58125451, 24 + tz.transition 1919, 3, :o2, 14532287, 6 + tz.transition 1919, 10, :o1, 58134187, 24 + tz.transition 1941, 6, :o2, 14581007, 6 + tz.transition 1941, 9, :o1, 58326379, 24 + tz.transition 1942, 2, :o3, 14582399, 6 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 58361491, 24 + tz.transition 1946, 4, :o2, 14591633, 6 + tz.transition 1946, 9, :o1, 58370227, 24 + tz.transition 1947, 4, :o2, 14593817, 6 + tz.transition 1947, 9, :o1, 58378963, 24 + tz.transition 1948, 4, :o2, 14596001, 6 + tz.transition 1948, 9, :o1, 58387699, 24 + tz.transition 1949, 4, :o2, 14598185, 6 + tz.transition 1949, 9, :o1, 58396435, 24 + tz.transition 1950, 4, :o2, 14600411, 6 + tz.transition 1950, 9, :o1, 58405171, 24 + tz.transition 1951, 4, :o2, 14602595, 6 + tz.transition 1951, 9, :o1, 58414075, 24 + tz.transition 1952, 4, :o2, 14604779, 6 + tz.transition 1952, 9, :o1, 58422811, 24 + tz.transition 1953, 4, :o2, 14606963, 6 + tz.transition 1953, 9, :o1, 58431547, 24 + tz.transition 1954, 4, :o2, 14609147, 6 + tz.transition 1954, 9, :o1, 58440283, 24 + tz.transition 1955, 4, :o5, 14611331, 6 + tz.transition 1957, 9, :o1, 58466659, 24 + tz.transition 1958, 4, :o5, 14617925, 6 + tz.transition 1969, 4, :o6, 58568131, 24 + tz.transition 1969, 10, :o5, 9762083, 4 + tz.transition 1970, 4, :o6, 9961200 + tz.transition 1970, 10, :o5, 25682400 + tz.transition 2006, 4, :o6, 1143961200 + tz.transition 2006, 10, :o5, 1162101600 + tz.transition 2007, 3, :o6, 1173596400 + tz.transition 2007, 11, :o5, 1194156000 + tz.transition 2008, 3, :o6, 1205046000 + tz.transition 2008, 11, :o5, 1225605600 + tz.transition 2009, 3, :o6, 1236495600 + tz.transition 2009, 11, :o5, 1257055200 + tz.transition 2010, 3, :o6, 1268550000 + tz.transition 2010, 11, :o5, 1289109600 + tz.transition 2011, 3, :o6, 1299999600 + tz.transition 2011, 11, :o5, 1320559200 + tz.transition 2012, 3, :o6, 1331449200 + tz.transition 2012, 11, :o5, 1352008800 + tz.transition 2013, 3, :o6, 1362898800 + tz.transition 2013, 11, :o5, 1383458400 + tz.transition 2014, 3, :o6, 1394348400 + tz.transition 2014, 11, :o5, 1414908000 + tz.transition 2015, 3, :o6, 1425798000 + tz.transition 2015, 11, :o5, 1446357600 + tz.transition 2016, 3, :o6, 1457852400 + tz.transition 2016, 11, :o5, 1478412000 + tz.transition 2017, 3, :o6, 1489302000 + tz.transition 2017, 11, :o5, 1509861600 + tz.transition 2018, 3, :o6, 1520751600 + tz.transition 2018, 11, :o5, 1541311200 + tz.transition 2019, 3, :o6, 1552201200 + tz.transition 2019, 11, :o5, 1572760800 + tz.transition 2020, 3, :o6, 1583650800 + tz.transition 2020, 11, :o5, 1604210400 + tz.transition 2021, 3, :o6, 1615705200 + tz.transition 2021, 11, :o5, 1636264800 + tz.transition 2022, 3, :o6, 1647154800 + tz.transition 2022, 11, :o5, 1667714400 + tz.transition 2023, 3, :o6, 1678604400 + tz.transition 2023, 11, :o5, 1699164000 + tz.transition 2024, 3, :o6, 1710054000 + tz.transition 2024, 11, :o5, 1730613600 + tz.transition 2025, 3, :o6, 1741503600 + tz.transition 2025, 11, :o5, 1762063200 + tz.transition 2026, 3, :o6, 1772953200 + tz.transition 2026, 11, :o5, 1793512800 + tz.transition 2027, 3, :o6, 1805007600 + tz.transition 2027, 11, :o5, 1825567200 + tz.transition 2028, 3, :o6, 1836457200 + tz.transition 2028, 11, :o5, 1857016800 + tz.transition 2029, 3, :o6, 1867906800 + tz.transition 2029, 11, :o5, 1888466400 + tz.transition 2030, 3, :o6, 1899356400 + tz.transition 2030, 11, :o5, 1919916000 + tz.transition 2031, 3, :o6, 1930806000 + tz.transition 2031, 11, :o5, 1951365600 + tz.transition 2032, 3, :o6, 1962860400 + tz.transition 2032, 11, :o5, 1983420000 + tz.transition 2033, 3, :o6, 1994310000 + tz.transition 2033, 11, :o5, 2014869600 + tz.transition 2034, 3, :o6, 2025759600 + tz.transition 2034, 11, :o5, 2046319200 + tz.transition 2035, 3, :o6, 2057209200 + tz.transition 2035, 11, :o5, 2077768800 + tz.transition 2036, 3, :o6, 2088658800 + tz.transition 2036, 11, :o5, 2109218400 + tz.transition 2037, 3, :o6, 2120108400 + tz.transition 2037, 11, :o5, 2140668000 + tz.transition 2038, 3, :o6, 59171923, 24 + tz.transition 2038, 11, :o5, 9862939, 4 + tz.transition 2039, 3, :o6, 59180659, 24 + tz.transition 2039, 11, :o5, 9864395, 4 + tz.transition 2040, 3, :o6, 59189395, 24 + tz.transition 2040, 11, :o5, 9865851, 4 + tz.transition 2041, 3, :o6, 59198131, 24 + tz.transition 2041, 11, :o5, 9867307, 4 + tz.transition 2042, 3, :o6, 59206867, 24 + tz.transition 2042, 11, :o5, 9868763, 4 + tz.transition 2043, 3, :o6, 59215603, 24 + tz.transition 2043, 11, :o5, 9870219, 4 + tz.transition 2044, 3, :o6, 59224507, 24 + tz.transition 2044, 11, :o5, 9871703, 4 + tz.transition 2045, 3, :o6, 59233243, 24 + tz.transition 2045, 11, :o5, 9873159, 4 + tz.transition 2046, 3, :o6, 59241979, 24 + tz.transition 2046, 11, :o5, 9874615, 4 + tz.transition 2047, 3, :o6, 59250715, 24 + tz.transition 2047, 11, :o5, 9876071, 4 + tz.transition 2048, 3, :o6, 59259451, 24 + tz.transition 2048, 11, :o5, 9877527, 4 + tz.transition 2049, 3, :o6, 59268355, 24 + tz.transition 2049, 11, :o5, 9879011, 4 + tz.transition 2050, 3, :o6, 59277091, 24 + tz.transition 2050, 11, :o5, 9880467, 4 + end + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Juneau.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Juneau.rb new file mode 100644 index 000000000..f646f3f54 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Juneau.rb @@ -0,0 +1,194 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Juneau + include TimezoneDefinition + + timezone 'America/Juneau' do |tz| + tz.offset :o0, 54139, 0, :LMT + tz.offset :o1, -32261, 0, :LMT + tz.offset :o2, -28800, 0, :PST + tz.offset :o3, -28800, 3600, :PWT + tz.offset :o4, -28800, 3600, :PPT + tz.offset :o5, -28800, 3600, :PDT + tz.offset :o6, -32400, 0, :YST + tz.offset :o7, -32400, 0, :AKST + tz.offset :o8, -32400, 3600, :AKDT + + tz.transition 1867, 10, :o1, 207641393861, 86400 + tz.transition 1900, 8, :o2, 208677805061, 86400 + tz.transition 1942, 2, :o3, 29164799, 12 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o2, 19453831, 8 + tz.transition 1969, 4, :o5, 29284067, 12 + tz.transition 1969, 10, :o2, 19524167, 8 + tz.transition 1970, 4, :o5, 9972000 + tz.transition 1970, 10, :o2, 25693200 + tz.transition 1971, 4, :o5, 41421600 + tz.transition 1971, 10, :o2, 57747600 + tz.transition 1972, 4, :o5, 73476000 + tz.transition 1972, 10, :o2, 89197200 + tz.transition 1973, 4, :o5, 104925600 + tz.transition 1973, 10, :o2, 120646800 + tz.transition 1974, 1, :o5, 126698400 + tz.transition 1974, 10, :o2, 152096400 + tz.transition 1975, 2, :o5, 162381600 + tz.transition 1975, 10, :o2, 183546000 + tz.transition 1976, 4, :o5, 199274400 + tz.transition 1976, 10, :o2, 215600400 + tz.transition 1977, 4, :o5, 230724000 + tz.transition 1977, 10, :o2, 247050000 + tz.transition 1978, 4, :o5, 262778400 + tz.transition 1978, 10, :o2, 278499600 + tz.transition 1979, 4, :o5, 294228000 + tz.transition 1979, 10, :o2, 309949200 + tz.transition 1980, 4, :o5, 325677600 + tz.transition 1980, 10, :o2, 341398800 + tz.transition 1981, 4, :o5, 357127200 + tz.transition 1981, 10, :o2, 372848400 + tz.transition 1982, 4, :o5, 388576800 + tz.transition 1982, 10, :o2, 404902800 + tz.transition 1983, 4, :o5, 420026400 + tz.transition 1983, 10, :o6, 436352400 + tz.transition 1983, 11, :o7, 439030800 + tz.transition 1984, 4, :o8, 452084400 + tz.transition 1984, 10, :o7, 467805600 + tz.transition 1985, 4, :o8, 483534000 + tz.transition 1985, 10, :o7, 499255200 + tz.transition 1986, 4, :o8, 514983600 + tz.transition 1986, 10, :o7, 530704800 + tz.transition 1987, 4, :o8, 544618800 + tz.transition 1987, 10, :o7, 562154400 + tz.transition 1988, 4, :o8, 576068400 + tz.transition 1988, 10, :o7, 594208800 + tz.transition 1989, 4, :o8, 607518000 + tz.transition 1989, 10, :o7, 625658400 + tz.transition 1990, 4, :o8, 638967600 + tz.transition 1990, 10, :o7, 657108000 + tz.transition 1991, 4, :o8, 671022000 + tz.transition 1991, 10, :o7, 688557600 + tz.transition 1992, 4, :o8, 702471600 + tz.transition 1992, 10, :o7, 720007200 + tz.transition 1993, 4, :o8, 733921200 + tz.transition 1993, 10, :o7, 752061600 + tz.transition 1994, 4, :o8, 765370800 + tz.transition 1994, 10, :o7, 783511200 + tz.transition 1995, 4, :o8, 796820400 + tz.transition 1995, 10, :o7, 814960800 + tz.transition 1996, 4, :o8, 828874800 + tz.transition 1996, 10, :o7, 846410400 + tz.transition 1997, 4, :o8, 860324400 + tz.transition 1997, 10, :o7, 877860000 + tz.transition 1998, 4, :o8, 891774000 + tz.transition 1998, 10, :o7, 909309600 + tz.transition 1999, 4, :o8, 923223600 + tz.transition 1999, 10, :o7, 941364000 + tz.transition 2000, 4, :o8, 954673200 + tz.transition 2000, 10, :o7, 972813600 + tz.transition 2001, 4, :o8, 986122800 + tz.transition 2001, 10, :o7, 1004263200 + tz.transition 2002, 4, :o8, 1018177200 + tz.transition 2002, 10, :o7, 1035712800 + tz.transition 2003, 4, :o8, 1049626800 + tz.transition 2003, 10, :o7, 1067162400 + tz.transition 2004, 4, :o8, 1081076400 + tz.transition 2004, 10, :o7, 1099216800 + tz.transition 2005, 4, :o8, 1112526000 + tz.transition 2005, 10, :o7, 1130666400 + tz.transition 2006, 4, :o8, 1143975600 + tz.transition 2006, 10, :o7, 1162116000 + tz.transition 2007, 3, :o8, 1173610800 + tz.transition 2007, 11, :o7, 1194170400 + tz.transition 2008, 3, :o8, 1205060400 + tz.transition 2008, 11, :o7, 1225620000 + tz.transition 2009, 3, :o8, 1236510000 + tz.transition 2009, 11, :o7, 1257069600 + tz.transition 2010, 3, :o8, 1268564400 + tz.transition 2010, 11, :o7, 1289124000 + tz.transition 2011, 3, :o8, 1300014000 + tz.transition 2011, 11, :o7, 1320573600 + tz.transition 2012, 3, :o8, 1331463600 + tz.transition 2012, 11, :o7, 1352023200 + tz.transition 2013, 3, :o8, 1362913200 + tz.transition 2013, 11, :o7, 1383472800 + tz.transition 2014, 3, :o8, 1394362800 + tz.transition 2014, 11, :o7, 1414922400 + tz.transition 2015, 3, :o8, 1425812400 + tz.transition 2015, 11, :o7, 1446372000 + tz.transition 2016, 3, :o8, 1457866800 + tz.transition 2016, 11, :o7, 1478426400 + tz.transition 2017, 3, :o8, 1489316400 + tz.transition 2017, 11, :o7, 1509876000 + tz.transition 2018, 3, :o8, 1520766000 + tz.transition 2018, 11, :o7, 1541325600 + tz.transition 2019, 3, :o8, 1552215600 + tz.transition 2019, 11, :o7, 1572775200 + tz.transition 2020, 3, :o8, 1583665200 + tz.transition 2020, 11, :o7, 1604224800 + tz.transition 2021, 3, :o8, 1615719600 + tz.transition 2021, 11, :o7, 1636279200 + tz.transition 2022, 3, :o8, 1647169200 + tz.transition 2022, 11, :o7, 1667728800 + tz.transition 2023, 3, :o8, 1678618800 + tz.transition 2023, 11, :o7, 1699178400 + tz.transition 2024, 3, :o8, 1710068400 + tz.transition 2024, 11, :o7, 1730628000 + tz.transition 2025, 3, :o8, 1741518000 + tz.transition 2025, 11, :o7, 1762077600 + tz.transition 2026, 3, :o8, 1772967600 + tz.transition 2026, 11, :o7, 1793527200 + tz.transition 2027, 3, :o8, 1805022000 + tz.transition 2027, 11, :o7, 1825581600 + tz.transition 2028, 3, :o8, 1836471600 + tz.transition 2028, 11, :o7, 1857031200 + tz.transition 2029, 3, :o8, 1867921200 + tz.transition 2029, 11, :o7, 1888480800 + tz.transition 2030, 3, :o8, 1899370800 + tz.transition 2030, 11, :o7, 1919930400 + tz.transition 2031, 3, :o8, 1930820400 + tz.transition 2031, 11, :o7, 1951380000 + tz.transition 2032, 3, :o8, 1962874800 + tz.transition 2032, 11, :o7, 1983434400 + tz.transition 2033, 3, :o8, 1994324400 + tz.transition 2033, 11, :o7, 2014884000 + tz.transition 2034, 3, :o8, 2025774000 + tz.transition 2034, 11, :o7, 2046333600 + tz.transition 2035, 3, :o8, 2057223600 + tz.transition 2035, 11, :o7, 2077783200 + tz.transition 2036, 3, :o8, 2088673200 + tz.transition 2036, 11, :o7, 2109232800 + tz.transition 2037, 3, :o8, 2120122800 + tz.transition 2037, 11, :o7, 2140682400 + tz.transition 2038, 3, :o8, 59171927, 24 + tz.transition 2038, 11, :o7, 29588819, 12 + tz.transition 2039, 3, :o8, 59180663, 24 + tz.transition 2039, 11, :o7, 29593187, 12 + tz.transition 2040, 3, :o8, 59189399, 24 + tz.transition 2040, 11, :o7, 29597555, 12 + tz.transition 2041, 3, :o8, 59198135, 24 + tz.transition 2041, 11, :o7, 29601923, 12 + tz.transition 2042, 3, :o8, 59206871, 24 + tz.transition 2042, 11, :o7, 29606291, 12 + tz.transition 2043, 3, :o8, 59215607, 24 + tz.transition 2043, 11, :o7, 29610659, 12 + tz.transition 2044, 3, :o8, 59224511, 24 + tz.transition 2044, 11, :o7, 29615111, 12 + tz.transition 2045, 3, :o8, 59233247, 24 + tz.transition 2045, 11, :o7, 29619479, 12 + tz.transition 2046, 3, :o8, 59241983, 24 + tz.transition 2046, 11, :o7, 29623847, 12 + tz.transition 2047, 3, :o8, 59250719, 24 + tz.transition 2047, 11, :o7, 29628215, 12 + tz.transition 2048, 3, :o8, 59259455, 24 + tz.transition 2048, 11, :o7, 29632583, 12 + tz.transition 2049, 3, :o8, 59268359, 24 + tz.transition 2049, 11, :o7, 29637035, 12 + tz.transition 2050, 3, :o8, 59277095, 24 + tz.transition 2050, 11, :o7, 29641403, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/La_Paz.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/La_Paz.rb new file mode 100644 index 000000000..45c907899 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/La_Paz.rb @@ -0,0 +1,22 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module La_Paz + include TimezoneDefinition + + timezone 'America/La_Paz' do |tz| + tz.offset :o0, -16356, 0, :LMT + tz.offset :o1, -16356, 0, :CMT + tz.offset :o2, -16356, 3600, :BOST + tz.offset :o3, -14400, 0, :BOT + + tz.transition 1890, 1, :o1, 17361854563, 7200 + tz.transition 1931, 10, :o2, 17471733763, 7200 + tz.transition 1932, 3, :o3, 17472871063, 7200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Lima.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Lima.rb new file mode 100644 index 000000000..af68ac29f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Lima.rb @@ -0,0 +1,35 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Lima + include TimezoneDefinition + + timezone 'America/Lima' do |tz| + tz.offset :o0, -18492, 0, :LMT + tz.offset :o1, -18516, 0, :LMT + tz.offset :o2, -18000, 0, :PET + tz.offset :o3, -18000, 3600, :PEST + + tz.transition 1890, 1, :o1, 17361854741, 7200 + tz.transition 1908, 7, :o2, 17410685143, 7200 + tz.transition 1938, 1, :o3, 58293593, 24 + tz.transition 1938, 4, :o2, 7286969, 3 + tz.transition 1938, 9, :o3, 58300001, 24 + tz.transition 1939, 3, :o2, 7288046, 3 + tz.transition 1939, 9, :o3, 58308737, 24 + tz.transition 1940, 3, :o2, 7289138, 3 + tz.transition 1986, 1, :o3, 504939600 + tz.transition 1986, 4, :o2, 512712000 + tz.transition 1987, 1, :o3, 536475600 + tz.transition 1987, 4, :o2, 544248000 + tz.transition 1990, 1, :o3, 631170000 + tz.transition 1990, 4, :o2, 638942400 + tz.transition 1994, 1, :o3, 757400400 + tz.transition 1994, 4, :o2, 765172800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Los_Angeles.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Los_Angeles.rb new file mode 100644 index 000000000..16007fd67 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Los_Angeles.rb @@ -0,0 +1,232 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Los_Angeles + include TimezoneDefinition + + timezone 'America/Los_Angeles' do |tz| + tz.offset :o0, -28378, 0, :LMT + tz.offset :o1, -28800, 0, :PST + tz.offset :o2, -28800, 3600, :PDT + tz.offset :o3, -28800, 3600, :PWT + tz.offset :o4, -28800, 3600, :PPT + + tz.transition 1883, 11, :o1, 7227400, 3 + tz.transition 1918, 3, :o2, 29060207, 12 + tz.transition 1918, 10, :o1, 19375151, 8 + tz.transition 1919, 3, :o2, 29064575, 12 + tz.transition 1919, 10, :o1, 19378063, 8 + tz.transition 1942, 2, :o3, 29164799, 12 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 19453831, 8 + tz.transition 1948, 3, :o2, 29191499, 12 + tz.transition 1949, 1, :o1, 19463343, 8 + tz.transition 1950, 4, :o2, 29200823, 12 + tz.transition 1950, 9, :o1, 19468391, 8 + tz.transition 1951, 4, :o2, 29205191, 12 + tz.transition 1951, 9, :o1, 19471359, 8 + tz.transition 1952, 4, :o2, 29209559, 12 + tz.transition 1952, 9, :o1, 19474271, 8 + tz.transition 1953, 4, :o2, 29213927, 12 + tz.transition 1953, 9, :o1, 19477183, 8 + tz.transition 1954, 4, :o2, 29218295, 12 + tz.transition 1954, 9, :o1, 19480095, 8 + tz.transition 1955, 4, :o2, 29222663, 12 + tz.transition 1955, 9, :o1, 19483007, 8 + tz.transition 1956, 4, :o2, 29227115, 12 + tz.transition 1956, 9, :o1, 19485975, 8 + tz.transition 1957, 4, :o2, 29231483, 12 + tz.transition 1957, 9, :o1, 19488887, 8 + tz.transition 1958, 4, :o2, 29235851, 12 + tz.transition 1958, 9, :o1, 19491799, 8 + tz.transition 1959, 4, :o2, 29240219, 12 + tz.transition 1959, 9, :o1, 19494711, 8 + tz.transition 1960, 4, :o2, 29244587, 12 + tz.transition 1960, 9, :o1, 19497623, 8 + tz.transition 1961, 4, :o2, 29249039, 12 + tz.transition 1961, 9, :o1, 19500535, 8 + tz.transition 1962, 4, :o2, 29253407, 12 + tz.transition 1962, 10, :o1, 19503727, 8 + tz.transition 1963, 4, :o2, 29257775, 12 + tz.transition 1963, 10, :o1, 19506639, 8 + tz.transition 1964, 4, :o2, 29262143, 12 + tz.transition 1964, 10, :o1, 19509551, 8 + tz.transition 1965, 4, :o2, 29266511, 12 + tz.transition 1965, 10, :o1, 19512519, 8 + tz.transition 1966, 4, :o2, 29270879, 12 + tz.transition 1966, 10, :o1, 19515431, 8 + tz.transition 1967, 4, :o2, 29275331, 12 + tz.transition 1967, 10, :o1, 19518343, 8 + tz.transition 1968, 4, :o2, 29279699, 12 + tz.transition 1968, 10, :o1, 19521255, 8 + tz.transition 1969, 4, :o2, 29284067, 12 + tz.transition 1969, 10, :o1, 19524167, 8 + tz.transition 1970, 4, :o2, 9972000 + tz.transition 1970, 10, :o1, 25693200 + tz.transition 1971, 4, :o2, 41421600 + tz.transition 1971, 10, :o1, 57747600 + tz.transition 1972, 4, :o2, 73476000 + tz.transition 1972, 10, :o1, 89197200 + tz.transition 1973, 4, :o2, 104925600 + tz.transition 1973, 10, :o1, 120646800 + tz.transition 1974, 1, :o2, 126698400 + tz.transition 1974, 10, :o1, 152096400 + tz.transition 1975, 2, :o2, 162381600 + tz.transition 1975, 10, :o1, 183546000 + tz.transition 1976, 4, :o2, 199274400 + tz.transition 1976, 10, :o1, 215600400 + tz.transition 1977, 4, :o2, 230724000 + tz.transition 1977, 10, :o1, 247050000 + tz.transition 1978, 4, :o2, 262778400 + tz.transition 1978, 10, :o1, 278499600 + tz.transition 1979, 4, :o2, 294228000 + tz.transition 1979, 10, :o1, 309949200 + tz.transition 1980, 4, :o2, 325677600 + tz.transition 1980, 10, :o1, 341398800 + tz.transition 1981, 4, :o2, 357127200 + tz.transition 1981, 10, :o1, 372848400 + tz.transition 1982, 4, :o2, 388576800 + tz.transition 1982, 10, :o1, 404902800 + tz.transition 1983, 4, :o2, 420026400 + tz.transition 1983, 10, :o1, 436352400 + tz.transition 1984, 4, :o2, 452080800 + tz.transition 1984, 10, :o1, 467802000 + tz.transition 1985, 4, :o2, 483530400 + tz.transition 1985, 10, :o1, 499251600 + tz.transition 1986, 4, :o2, 514980000 + tz.transition 1986, 10, :o1, 530701200 + tz.transition 1987, 4, :o2, 544615200 + tz.transition 1987, 10, :o1, 562150800 + tz.transition 1988, 4, :o2, 576064800 + tz.transition 1988, 10, :o1, 594205200 + tz.transition 1989, 4, :o2, 607514400 + tz.transition 1989, 10, :o1, 625654800 + tz.transition 1990, 4, :o2, 638964000 + tz.transition 1990, 10, :o1, 657104400 + tz.transition 1991, 4, :o2, 671018400 + tz.transition 1991, 10, :o1, 688554000 + tz.transition 1992, 4, :o2, 702468000 + tz.transition 1992, 10, :o1, 720003600 + tz.transition 1993, 4, :o2, 733917600 + tz.transition 1993, 10, :o1, 752058000 + tz.transition 1994, 4, :o2, 765367200 + tz.transition 1994, 10, :o1, 783507600 + tz.transition 1995, 4, :o2, 796816800 + tz.transition 1995, 10, :o1, 814957200 + tz.transition 1996, 4, :o2, 828871200 + tz.transition 1996, 10, :o1, 846406800 + tz.transition 1997, 4, :o2, 860320800 + tz.transition 1997, 10, :o1, 877856400 + tz.transition 1998, 4, :o2, 891770400 + tz.transition 1998, 10, :o1, 909306000 + tz.transition 1999, 4, :o2, 923220000 + tz.transition 1999, 10, :o1, 941360400 + tz.transition 2000, 4, :o2, 954669600 + tz.transition 2000, 10, :o1, 972810000 + tz.transition 2001, 4, :o2, 986119200 + tz.transition 2001, 10, :o1, 1004259600 + tz.transition 2002, 4, :o2, 1018173600 + tz.transition 2002, 10, :o1, 1035709200 + tz.transition 2003, 4, :o2, 1049623200 + tz.transition 2003, 10, :o1, 1067158800 + tz.transition 2004, 4, :o2, 1081072800 + tz.transition 2004, 10, :o1, 1099213200 + tz.transition 2005, 4, :o2, 1112522400 + tz.transition 2005, 10, :o1, 1130662800 + tz.transition 2006, 4, :o2, 1143972000 + tz.transition 2006, 10, :o1, 1162112400 + tz.transition 2007, 3, :o2, 1173607200 + tz.transition 2007, 11, :o1, 1194166800 + tz.transition 2008, 3, :o2, 1205056800 + tz.transition 2008, 11, :o1, 1225616400 + tz.transition 2009, 3, :o2, 1236506400 + tz.transition 2009, 11, :o1, 1257066000 + tz.transition 2010, 3, :o2, 1268560800 + tz.transition 2010, 11, :o1, 1289120400 + tz.transition 2011, 3, :o2, 1300010400 + tz.transition 2011, 11, :o1, 1320570000 + tz.transition 2012, 3, :o2, 1331460000 + tz.transition 2012, 11, :o1, 1352019600 + tz.transition 2013, 3, :o2, 1362909600 + tz.transition 2013, 11, :o1, 1383469200 + tz.transition 2014, 3, :o2, 1394359200 + tz.transition 2014, 11, :o1, 1414918800 + tz.transition 2015, 3, :o2, 1425808800 + tz.transition 2015, 11, :o1, 1446368400 + tz.transition 2016, 3, :o2, 1457863200 + tz.transition 2016, 11, :o1, 1478422800 + tz.transition 2017, 3, :o2, 1489312800 + tz.transition 2017, 11, :o1, 1509872400 + tz.transition 2018, 3, :o2, 1520762400 + tz.transition 2018, 11, :o1, 1541322000 + tz.transition 2019, 3, :o2, 1552212000 + tz.transition 2019, 11, :o1, 1572771600 + tz.transition 2020, 3, :o2, 1583661600 + tz.transition 2020, 11, :o1, 1604221200 + tz.transition 2021, 3, :o2, 1615716000 + tz.transition 2021, 11, :o1, 1636275600 + tz.transition 2022, 3, :o2, 1647165600 + tz.transition 2022, 11, :o1, 1667725200 + tz.transition 2023, 3, :o2, 1678615200 + tz.transition 2023, 11, :o1, 1699174800 + tz.transition 2024, 3, :o2, 1710064800 + tz.transition 2024, 11, :o1, 1730624400 + tz.transition 2025, 3, :o2, 1741514400 + tz.transition 2025, 11, :o1, 1762074000 + tz.transition 2026, 3, :o2, 1772964000 + tz.transition 2026, 11, :o1, 1793523600 + tz.transition 2027, 3, :o2, 1805018400 + tz.transition 2027, 11, :o1, 1825578000 + tz.transition 2028, 3, :o2, 1836468000 + tz.transition 2028, 11, :o1, 1857027600 + tz.transition 2029, 3, :o2, 1867917600 + tz.transition 2029, 11, :o1, 1888477200 + tz.transition 2030, 3, :o2, 1899367200 + tz.transition 2030, 11, :o1, 1919926800 + tz.transition 2031, 3, :o2, 1930816800 + tz.transition 2031, 11, :o1, 1951376400 + tz.transition 2032, 3, :o2, 1962871200 + tz.transition 2032, 11, :o1, 1983430800 + tz.transition 2033, 3, :o2, 1994320800 + tz.transition 2033, 11, :o1, 2014880400 + tz.transition 2034, 3, :o2, 2025770400 + tz.transition 2034, 11, :o1, 2046330000 + tz.transition 2035, 3, :o2, 2057220000 + tz.transition 2035, 11, :o1, 2077779600 + tz.transition 2036, 3, :o2, 2088669600 + tz.transition 2036, 11, :o1, 2109229200 + tz.transition 2037, 3, :o2, 2120119200 + tz.transition 2037, 11, :o1, 2140678800 + tz.transition 2038, 3, :o2, 29585963, 12 + tz.transition 2038, 11, :o1, 19725879, 8 + tz.transition 2039, 3, :o2, 29590331, 12 + tz.transition 2039, 11, :o1, 19728791, 8 + tz.transition 2040, 3, :o2, 29594699, 12 + tz.transition 2040, 11, :o1, 19731703, 8 + tz.transition 2041, 3, :o2, 29599067, 12 + tz.transition 2041, 11, :o1, 19734615, 8 + tz.transition 2042, 3, :o2, 29603435, 12 + tz.transition 2042, 11, :o1, 19737527, 8 + tz.transition 2043, 3, :o2, 29607803, 12 + tz.transition 2043, 11, :o1, 19740439, 8 + tz.transition 2044, 3, :o2, 29612255, 12 + tz.transition 2044, 11, :o1, 19743407, 8 + tz.transition 2045, 3, :o2, 29616623, 12 + tz.transition 2045, 11, :o1, 19746319, 8 + tz.transition 2046, 3, :o2, 29620991, 12 + tz.transition 2046, 11, :o1, 19749231, 8 + tz.transition 2047, 3, :o2, 29625359, 12 + tz.transition 2047, 11, :o1, 19752143, 8 + tz.transition 2048, 3, :o2, 29629727, 12 + tz.transition 2048, 11, :o1, 19755055, 8 + tz.transition 2049, 3, :o2, 29634179, 12 + tz.transition 2049, 11, :o1, 19758023, 8 + tz.transition 2050, 3, :o2, 29638547, 12 + tz.transition 2050, 11, :o1, 19760935, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mazatlan.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mazatlan.rb new file mode 100644 index 000000000..ba9e6efcf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mazatlan.rb @@ -0,0 +1,139 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Mazatlan + include TimezoneDefinition + + timezone 'America/Mazatlan' do |tz| + tz.offset :o0, -25540, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -21600, 0, :CST + tz.offset :o3, -28800, 0, :PST + tz.offset :o4, -25200, 3600, :MDT + + tz.transition 1922, 1, :o1, 58153339, 24 + tz.transition 1927, 6, :o2, 9700171, 4 + tz.transition 1930, 11, :o1, 9705183, 4 + tz.transition 1931, 5, :o2, 9705855, 4 + tz.transition 1931, 10, :o1, 9706463, 4 + tz.transition 1932, 4, :o2, 58243171, 24 + tz.transition 1942, 4, :o1, 9721895, 4 + tz.transition 1949, 1, :o3, 58390339, 24 + tz.transition 1970, 1, :o1, 28800 + tz.transition 1996, 4, :o4, 828867600 + tz.transition 1996, 10, :o1, 846403200 + tz.transition 1997, 4, :o4, 860317200 + tz.transition 1997, 10, :o1, 877852800 + tz.transition 1998, 4, :o4, 891766800 + tz.transition 1998, 10, :o1, 909302400 + tz.transition 1999, 4, :o4, 923216400 + tz.transition 1999, 10, :o1, 941356800 + tz.transition 2000, 4, :o4, 954666000 + tz.transition 2000, 10, :o1, 972806400 + tz.transition 2001, 5, :o4, 989139600 + tz.transition 2001, 9, :o1, 1001836800 + tz.transition 2002, 4, :o4, 1018170000 + tz.transition 2002, 10, :o1, 1035705600 + tz.transition 2003, 4, :o4, 1049619600 + tz.transition 2003, 10, :o1, 1067155200 + tz.transition 2004, 4, :o4, 1081069200 + tz.transition 2004, 10, :o1, 1099209600 + tz.transition 2005, 4, :o4, 1112518800 + tz.transition 2005, 10, :o1, 1130659200 + tz.transition 2006, 4, :o4, 1143968400 + tz.transition 2006, 10, :o1, 1162108800 + tz.transition 2007, 4, :o4, 1175418000 + tz.transition 2007, 10, :o1, 1193558400 + tz.transition 2008, 4, :o4, 1207472400 + tz.transition 2008, 10, :o1, 1225008000 + tz.transition 2009, 4, :o4, 1238922000 + tz.transition 2009, 10, :o1, 1256457600 + tz.transition 2010, 4, :o4, 1270371600 + tz.transition 2010, 10, :o1, 1288512000 + tz.transition 2011, 4, :o4, 1301821200 + tz.transition 2011, 10, :o1, 1319961600 + tz.transition 2012, 4, :o4, 1333270800 + tz.transition 2012, 10, :o1, 1351411200 + tz.transition 2013, 4, :o4, 1365325200 + tz.transition 2013, 10, :o1, 1382860800 + tz.transition 2014, 4, :o4, 1396774800 + tz.transition 2014, 10, :o1, 1414310400 + tz.transition 2015, 4, :o4, 1428224400 + tz.transition 2015, 10, :o1, 1445760000 + tz.transition 2016, 4, :o4, 1459674000 + tz.transition 2016, 10, :o1, 1477814400 + tz.transition 2017, 4, :o4, 1491123600 + tz.transition 2017, 10, :o1, 1509264000 + tz.transition 2018, 4, :o4, 1522573200 + tz.transition 2018, 10, :o1, 1540713600 + tz.transition 2019, 4, :o4, 1554627600 + tz.transition 2019, 10, :o1, 1572163200 + tz.transition 2020, 4, :o4, 1586077200 + tz.transition 2020, 10, :o1, 1603612800 + tz.transition 2021, 4, :o4, 1617526800 + tz.transition 2021, 10, :o1, 1635667200 + tz.transition 2022, 4, :o4, 1648976400 + tz.transition 2022, 10, :o1, 1667116800 + tz.transition 2023, 4, :o4, 1680426000 + tz.transition 2023, 10, :o1, 1698566400 + tz.transition 2024, 4, :o4, 1712480400 + tz.transition 2024, 10, :o1, 1730016000 + tz.transition 2025, 4, :o4, 1743930000 + tz.transition 2025, 10, :o1, 1761465600 + tz.transition 2026, 4, :o4, 1775379600 + tz.transition 2026, 10, :o1, 1792915200 + tz.transition 2027, 4, :o4, 1806829200 + tz.transition 2027, 10, :o1, 1824969600 + tz.transition 2028, 4, :o4, 1838278800 + tz.transition 2028, 10, :o1, 1856419200 + tz.transition 2029, 4, :o4, 1869728400 + tz.transition 2029, 10, :o1, 1887868800 + tz.transition 2030, 4, :o4, 1901782800 + tz.transition 2030, 10, :o1, 1919318400 + tz.transition 2031, 4, :o4, 1933232400 + tz.transition 2031, 10, :o1, 1950768000 + tz.transition 2032, 4, :o4, 1964682000 + tz.transition 2032, 10, :o1, 1982822400 + tz.transition 2033, 4, :o4, 1996131600 + tz.transition 2033, 10, :o1, 2014272000 + tz.transition 2034, 4, :o4, 2027581200 + tz.transition 2034, 10, :o1, 2045721600 + tz.transition 2035, 4, :o4, 2059030800 + tz.transition 2035, 10, :o1, 2077171200 + tz.transition 2036, 4, :o4, 2091085200 + tz.transition 2036, 10, :o1, 2108620800 + tz.transition 2037, 4, :o4, 2122534800 + tz.transition 2037, 10, :o1, 2140070400 + tz.transition 2038, 4, :o4, 19724143, 8 + tz.transition 2038, 10, :o1, 14794367, 6 + tz.transition 2039, 4, :o4, 19727055, 8 + tz.transition 2039, 10, :o1, 14796551, 6 + tz.transition 2040, 4, :o4, 19729967, 8 + tz.transition 2040, 10, :o1, 14798735, 6 + tz.transition 2041, 4, :o4, 19732935, 8 + tz.transition 2041, 10, :o1, 14800919, 6 + tz.transition 2042, 4, :o4, 19735847, 8 + tz.transition 2042, 10, :o1, 14803103, 6 + tz.transition 2043, 4, :o4, 19738759, 8 + tz.transition 2043, 10, :o1, 14805287, 6 + tz.transition 2044, 4, :o4, 19741671, 8 + tz.transition 2044, 10, :o1, 14807513, 6 + tz.transition 2045, 4, :o4, 19744583, 8 + tz.transition 2045, 10, :o1, 14809697, 6 + tz.transition 2046, 4, :o4, 19747495, 8 + tz.transition 2046, 10, :o1, 14811881, 6 + tz.transition 2047, 4, :o4, 19750463, 8 + tz.transition 2047, 10, :o1, 14814065, 6 + tz.transition 2048, 4, :o4, 19753375, 8 + tz.transition 2048, 10, :o1, 14816249, 6 + tz.transition 2049, 4, :o4, 19756287, 8 + tz.transition 2049, 10, :o1, 14818475, 6 + tz.transition 2050, 4, :o4, 19759199, 8 + tz.transition 2050, 10, :o1, 14820659, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mexico_City.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mexico_City.rb new file mode 100644 index 000000000..2347fce64 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Mexico_City.rb @@ -0,0 +1,144 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Mexico_City + include TimezoneDefinition + + timezone 'America/Mexico_City' do |tz| + tz.offset :o0, -23796, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -21600, 0, :CST + tz.offset :o3, -21600, 3600, :CDT + tz.offset :o4, -21600, 3600, :CWT + + tz.transition 1922, 1, :o1, 58153339, 24 + tz.transition 1927, 6, :o2, 9700171, 4 + tz.transition 1930, 11, :o1, 9705183, 4 + tz.transition 1931, 5, :o2, 9705855, 4 + tz.transition 1931, 10, :o1, 9706463, 4 + tz.transition 1932, 4, :o2, 58243171, 24 + tz.transition 1939, 2, :o3, 9717199, 4 + tz.transition 1939, 6, :o2, 58306553, 24 + tz.transition 1940, 12, :o3, 9719891, 4 + tz.transition 1941, 4, :o2, 58322057, 24 + tz.transition 1943, 12, :o4, 9724299, 4 + tz.transition 1944, 5, :o2, 58349081, 24 + tz.transition 1950, 2, :o3, 9733299, 4 + tz.transition 1950, 7, :o2, 58403825, 24 + tz.transition 1996, 4, :o3, 828864000 + tz.transition 1996, 10, :o2, 846399600 + tz.transition 1997, 4, :o3, 860313600 + tz.transition 1997, 10, :o2, 877849200 + tz.transition 1998, 4, :o3, 891763200 + tz.transition 1998, 10, :o2, 909298800 + tz.transition 1999, 4, :o3, 923212800 + tz.transition 1999, 10, :o2, 941353200 + tz.transition 2000, 4, :o3, 954662400 + tz.transition 2000, 10, :o2, 972802800 + tz.transition 2001, 5, :o3, 989136000 + tz.transition 2001, 9, :o2, 1001833200 + tz.transition 2002, 4, :o3, 1018166400 + tz.transition 2002, 10, :o2, 1035702000 + tz.transition 2003, 4, :o3, 1049616000 + tz.transition 2003, 10, :o2, 1067151600 + tz.transition 2004, 4, :o3, 1081065600 + tz.transition 2004, 10, :o2, 1099206000 + tz.transition 2005, 4, :o3, 1112515200 + tz.transition 2005, 10, :o2, 1130655600 + tz.transition 2006, 4, :o3, 1143964800 + tz.transition 2006, 10, :o2, 1162105200 + tz.transition 2007, 4, :o3, 1175414400 + tz.transition 2007, 10, :o2, 1193554800 + tz.transition 2008, 4, :o3, 1207468800 + tz.transition 2008, 10, :o2, 1225004400 + tz.transition 2009, 4, :o3, 1238918400 + tz.transition 2009, 10, :o2, 1256454000 + tz.transition 2010, 4, :o3, 1270368000 + tz.transition 2010, 10, :o2, 1288508400 + tz.transition 2011, 4, :o3, 1301817600 + tz.transition 2011, 10, :o2, 1319958000 + tz.transition 2012, 4, :o3, 1333267200 + tz.transition 2012, 10, :o2, 1351407600 + tz.transition 2013, 4, :o3, 1365321600 + tz.transition 2013, 10, :o2, 1382857200 + tz.transition 2014, 4, :o3, 1396771200 + tz.transition 2014, 10, :o2, 1414306800 + tz.transition 2015, 4, :o3, 1428220800 + tz.transition 2015, 10, :o2, 1445756400 + tz.transition 2016, 4, :o3, 1459670400 + tz.transition 2016, 10, :o2, 1477810800 + tz.transition 2017, 4, :o3, 1491120000 + tz.transition 2017, 10, :o2, 1509260400 + tz.transition 2018, 4, :o3, 1522569600 + tz.transition 2018, 10, :o2, 1540710000 + tz.transition 2019, 4, :o3, 1554624000 + tz.transition 2019, 10, :o2, 1572159600 + tz.transition 2020, 4, :o3, 1586073600 + tz.transition 2020, 10, :o2, 1603609200 + tz.transition 2021, 4, :o3, 1617523200 + tz.transition 2021, 10, :o2, 1635663600 + tz.transition 2022, 4, :o3, 1648972800 + tz.transition 2022, 10, :o2, 1667113200 + tz.transition 2023, 4, :o3, 1680422400 + tz.transition 2023, 10, :o2, 1698562800 + tz.transition 2024, 4, :o3, 1712476800 + tz.transition 2024, 10, :o2, 1730012400 + tz.transition 2025, 4, :o3, 1743926400 + tz.transition 2025, 10, :o2, 1761462000 + tz.transition 2026, 4, :o3, 1775376000 + tz.transition 2026, 10, :o2, 1792911600 + tz.transition 2027, 4, :o3, 1806825600 + tz.transition 2027, 10, :o2, 1824966000 + tz.transition 2028, 4, :o3, 1838275200 + tz.transition 2028, 10, :o2, 1856415600 + tz.transition 2029, 4, :o3, 1869724800 + tz.transition 2029, 10, :o2, 1887865200 + tz.transition 2030, 4, :o3, 1901779200 + tz.transition 2030, 10, :o2, 1919314800 + tz.transition 2031, 4, :o3, 1933228800 + tz.transition 2031, 10, :o2, 1950764400 + tz.transition 2032, 4, :o3, 1964678400 + tz.transition 2032, 10, :o2, 1982818800 + tz.transition 2033, 4, :o3, 1996128000 + tz.transition 2033, 10, :o2, 2014268400 + tz.transition 2034, 4, :o3, 2027577600 + tz.transition 2034, 10, :o2, 2045718000 + tz.transition 2035, 4, :o3, 2059027200 + tz.transition 2035, 10, :o2, 2077167600 + tz.transition 2036, 4, :o3, 2091081600 + tz.transition 2036, 10, :o2, 2108617200 + tz.transition 2037, 4, :o3, 2122531200 + tz.transition 2037, 10, :o2, 2140066800 + tz.transition 2038, 4, :o3, 14793107, 6 + tz.transition 2038, 10, :o2, 59177467, 24 + tz.transition 2039, 4, :o3, 14795291, 6 + tz.transition 2039, 10, :o2, 59186203, 24 + tz.transition 2040, 4, :o3, 14797475, 6 + tz.transition 2040, 10, :o2, 59194939, 24 + tz.transition 2041, 4, :o3, 14799701, 6 + tz.transition 2041, 10, :o2, 59203675, 24 + tz.transition 2042, 4, :o3, 14801885, 6 + tz.transition 2042, 10, :o2, 59212411, 24 + tz.transition 2043, 4, :o3, 14804069, 6 + tz.transition 2043, 10, :o2, 59221147, 24 + tz.transition 2044, 4, :o3, 14806253, 6 + tz.transition 2044, 10, :o2, 59230051, 24 + tz.transition 2045, 4, :o3, 14808437, 6 + tz.transition 2045, 10, :o2, 59238787, 24 + tz.transition 2046, 4, :o3, 14810621, 6 + tz.transition 2046, 10, :o2, 59247523, 24 + tz.transition 2047, 4, :o3, 14812847, 6 + tz.transition 2047, 10, :o2, 59256259, 24 + tz.transition 2048, 4, :o3, 14815031, 6 + tz.transition 2048, 10, :o2, 59264995, 24 + tz.transition 2049, 4, :o3, 14817215, 6 + tz.transition 2049, 10, :o2, 59273899, 24 + tz.transition 2050, 4, :o3, 14819399, 6 + tz.transition 2050, 10, :o2, 59282635, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Monterrey.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Monterrey.rb new file mode 100644 index 000000000..5816a9eab --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Monterrey.rb @@ -0,0 +1,131 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Monterrey + include TimezoneDefinition + + timezone 'America/Monterrey' do |tz| + tz.offset :o0, -24076, 0, :LMT + tz.offset :o1, -21600, 0, :CST + tz.offset :o2, -21600, 3600, :CDT + + tz.transition 1922, 1, :o1, 9692223, 4 + tz.transition 1988, 4, :o2, 576057600 + tz.transition 1988, 10, :o1, 594198000 + tz.transition 1996, 4, :o2, 828864000 + tz.transition 1996, 10, :o1, 846399600 + tz.transition 1997, 4, :o2, 860313600 + tz.transition 1997, 10, :o1, 877849200 + tz.transition 1998, 4, :o2, 891763200 + tz.transition 1998, 10, :o1, 909298800 + tz.transition 1999, 4, :o2, 923212800 + tz.transition 1999, 10, :o1, 941353200 + tz.transition 2000, 4, :o2, 954662400 + tz.transition 2000, 10, :o1, 972802800 + tz.transition 2001, 5, :o2, 989136000 + tz.transition 2001, 9, :o1, 1001833200 + tz.transition 2002, 4, :o2, 1018166400 + tz.transition 2002, 10, :o1, 1035702000 + tz.transition 2003, 4, :o2, 1049616000 + tz.transition 2003, 10, :o1, 1067151600 + tz.transition 2004, 4, :o2, 1081065600 + tz.transition 2004, 10, :o1, 1099206000 + tz.transition 2005, 4, :o2, 1112515200 + tz.transition 2005, 10, :o1, 1130655600 + tz.transition 2006, 4, :o2, 1143964800 + tz.transition 2006, 10, :o1, 1162105200 + tz.transition 2007, 4, :o2, 1175414400 + tz.transition 2007, 10, :o1, 1193554800 + tz.transition 2008, 4, :o2, 1207468800 + tz.transition 2008, 10, :o1, 1225004400 + tz.transition 2009, 4, :o2, 1238918400 + tz.transition 2009, 10, :o1, 1256454000 + tz.transition 2010, 4, :o2, 1270368000 + tz.transition 2010, 10, :o1, 1288508400 + tz.transition 2011, 4, :o2, 1301817600 + tz.transition 2011, 10, :o1, 1319958000 + tz.transition 2012, 4, :o2, 1333267200 + tz.transition 2012, 10, :o1, 1351407600 + tz.transition 2013, 4, :o2, 1365321600 + tz.transition 2013, 10, :o1, 1382857200 + tz.transition 2014, 4, :o2, 1396771200 + tz.transition 2014, 10, :o1, 1414306800 + tz.transition 2015, 4, :o2, 1428220800 + tz.transition 2015, 10, :o1, 1445756400 + tz.transition 2016, 4, :o2, 1459670400 + tz.transition 2016, 10, :o1, 1477810800 + tz.transition 2017, 4, :o2, 1491120000 + tz.transition 2017, 10, :o1, 1509260400 + tz.transition 2018, 4, :o2, 1522569600 + tz.transition 2018, 10, :o1, 1540710000 + tz.transition 2019, 4, :o2, 1554624000 + tz.transition 2019, 10, :o1, 1572159600 + tz.transition 2020, 4, :o2, 1586073600 + tz.transition 2020, 10, :o1, 1603609200 + tz.transition 2021, 4, :o2, 1617523200 + tz.transition 2021, 10, :o1, 1635663600 + tz.transition 2022, 4, :o2, 1648972800 + tz.transition 2022, 10, :o1, 1667113200 + tz.transition 2023, 4, :o2, 1680422400 + tz.transition 2023, 10, :o1, 1698562800 + tz.transition 2024, 4, :o2, 1712476800 + tz.transition 2024, 10, :o1, 1730012400 + tz.transition 2025, 4, :o2, 1743926400 + tz.transition 2025, 10, :o1, 1761462000 + tz.transition 2026, 4, :o2, 1775376000 + tz.transition 2026, 10, :o1, 1792911600 + tz.transition 2027, 4, :o2, 1806825600 + tz.transition 2027, 10, :o1, 1824966000 + tz.transition 2028, 4, :o2, 1838275200 + tz.transition 2028, 10, :o1, 1856415600 + tz.transition 2029, 4, :o2, 1869724800 + tz.transition 2029, 10, :o1, 1887865200 + tz.transition 2030, 4, :o2, 1901779200 + tz.transition 2030, 10, :o1, 1919314800 + tz.transition 2031, 4, :o2, 1933228800 + tz.transition 2031, 10, :o1, 1950764400 + tz.transition 2032, 4, :o2, 1964678400 + tz.transition 2032, 10, :o1, 1982818800 + tz.transition 2033, 4, :o2, 1996128000 + tz.transition 2033, 10, :o1, 2014268400 + tz.transition 2034, 4, :o2, 2027577600 + tz.transition 2034, 10, :o1, 2045718000 + tz.transition 2035, 4, :o2, 2059027200 + tz.transition 2035, 10, :o1, 2077167600 + tz.transition 2036, 4, :o2, 2091081600 + tz.transition 2036, 10, :o1, 2108617200 + tz.transition 2037, 4, :o2, 2122531200 + tz.transition 2037, 10, :o1, 2140066800 + tz.transition 2038, 4, :o2, 14793107, 6 + tz.transition 2038, 10, :o1, 59177467, 24 + tz.transition 2039, 4, :o2, 14795291, 6 + tz.transition 2039, 10, :o1, 59186203, 24 + tz.transition 2040, 4, :o2, 14797475, 6 + tz.transition 2040, 10, :o1, 59194939, 24 + tz.transition 2041, 4, :o2, 14799701, 6 + tz.transition 2041, 10, :o1, 59203675, 24 + tz.transition 2042, 4, :o2, 14801885, 6 + tz.transition 2042, 10, :o1, 59212411, 24 + tz.transition 2043, 4, :o2, 14804069, 6 + tz.transition 2043, 10, :o1, 59221147, 24 + tz.transition 2044, 4, :o2, 14806253, 6 + tz.transition 2044, 10, :o1, 59230051, 24 + tz.transition 2045, 4, :o2, 14808437, 6 + tz.transition 2045, 10, :o1, 59238787, 24 + tz.transition 2046, 4, :o2, 14810621, 6 + tz.transition 2046, 10, :o1, 59247523, 24 + tz.transition 2047, 4, :o2, 14812847, 6 + tz.transition 2047, 10, :o1, 59256259, 24 + tz.transition 2048, 4, :o2, 14815031, 6 + tz.transition 2048, 10, :o1, 59264995, 24 + tz.transition 2049, 4, :o2, 14817215, 6 + tz.transition 2049, 10, :o1, 59273899, 24 + tz.transition 2050, 4, :o2, 14819399, 6 + tz.transition 2050, 10, :o1, 59282635, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/New_York.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/New_York.rb new file mode 100644 index 000000000..7d802bd2d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/New_York.rb @@ -0,0 +1,282 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module New_York + include TimezoneDefinition + + timezone 'America/New_York' do |tz| + tz.offset :o0, -17762, 0, :LMT + tz.offset :o1, -18000, 0, :EST + tz.offset :o2, -18000, 3600, :EDT + tz.offset :o3, -18000, 3600, :EWT + tz.offset :o4, -18000, 3600, :EPT + + tz.transition 1883, 11, :o1, 57819197, 24 + tz.transition 1918, 3, :o2, 58120411, 24 + tz.transition 1918, 10, :o1, 9687575, 4 + tz.transition 1919, 3, :o2, 58129147, 24 + tz.transition 1919, 10, :o1, 9689031, 4 + tz.transition 1920, 3, :o2, 58137883, 24 + tz.transition 1920, 10, :o1, 9690515, 4 + tz.transition 1921, 4, :o2, 58147291, 24 + tz.transition 1921, 9, :o1, 9691831, 4 + tz.transition 1922, 4, :o2, 58156195, 24 + tz.transition 1922, 9, :o1, 9693287, 4 + tz.transition 1923, 4, :o2, 58164931, 24 + tz.transition 1923, 9, :o1, 9694771, 4 + tz.transition 1924, 4, :o2, 58173667, 24 + tz.transition 1924, 9, :o1, 9696227, 4 + tz.transition 1925, 4, :o2, 58182403, 24 + tz.transition 1925, 9, :o1, 9697683, 4 + tz.transition 1926, 4, :o2, 58191139, 24 + tz.transition 1926, 9, :o1, 9699139, 4 + tz.transition 1927, 4, :o2, 58199875, 24 + tz.transition 1927, 9, :o1, 9700595, 4 + tz.transition 1928, 4, :o2, 58208779, 24 + tz.transition 1928, 9, :o1, 9702079, 4 + tz.transition 1929, 4, :o2, 58217515, 24 + tz.transition 1929, 9, :o1, 9703535, 4 + tz.transition 1930, 4, :o2, 58226251, 24 + tz.transition 1930, 9, :o1, 9704991, 4 + tz.transition 1931, 4, :o2, 58234987, 24 + tz.transition 1931, 9, :o1, 9706447, 4 + tz.transition 1932, 4, :o2, 58243723, 24 + tz.transition 1932, 9, :o1, 9707903, 4 + tz.transition 1933, 4, :o2, 58252627, 24 + tz.transition 1933, 9, :o1, 9709359, 4 + tz.transition 1934, 4, :o2, 58261363, 24 + tz.transition 1934, 9, :o1, 9710843, 4 + tz.transition 1935, 4, :o2, 58270099, 24 + tz.transition 1935, 9, :o1, 9712299, 4 + tz.transition 1936, 4, :o2, 58278835, 24 + tz.transition 1936, 9, :o1, 9713755, 4 + tz.transition 1937, 4, :o2, 58287571, 24 + tz.transition 1937, 9, :o1, 9715211, 4 + tz.transition 1938, 4, :o2, 58296307, 24 + tz.transition 1938, 9, :o1, 9716667, 4 + tz.transition 1939, 4, :o2, 58305211, 24 + tz.transition 1939, 9, :o1, 9718123, 4 + tz.transition 1940, 4, :o2, 58313947, 24 + tz.transition 1940, 9, :o1, 9719607, 4 + tz.transition 1941, 4, :o2, 58322683, 24 + tz.transition 1941, 9, :o1, 9721063, 4 + tz.transition 1942, 2, :o3, 58329595, 24 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 9726915, 4 + tz.transition 1946, 4, :o2, 58366531, 24 + tz.transition 1946, 9, :o1, 9728371, 4 + tz.transition 1947, 4, :o2, 58375267, 24 + tz.transition 1947, 9, :o1, 9729827, 4 + tz.transition 1948, 4, :o2, 58384003, 24 + tz.transition 1948, 9, :o1, 9731283, 4 + tz.transition 1949, 4, :o2, 58392739, 24 + tz.transition 1949, 9, :o1, 9732739, 4 + tz.transition 1950, 4, :o2, 58401643, 24 + tz.transition 1950, 9, :o1, 9734195, 4 + tz.transition 1951, 4, :o2, 58410379, 24 + tz.transition 1951, 9, :o1, 9735679, 4 + tz.transition 1952, 4, :o2, 58419115, 24 + tz.transition 1952, 9, :o1, 9737135, 4 + tz.transition 1953, 4, :o2, 58427851, 24 + tz.transition 1953, 9, :o1, 9738591, 4 + tz.transition 1954, 4, :o2, 58436587, 24 + tz.transition 1954, 9, :o1, 9740047, 4 + tz.transition 1955, 4, :o2, 58445323, 24 + tz.transition 1955, 10, :o1, 9741643, 4 + tz.transition 1956, 4, :o2, 58454227, 24 + tz.transition 1956, 10, :o1, 9743099, 4 + tz.transition 1957, 4, :o2, 58462963, 24 + tz.transition 1957, 10, :o1, 9744555, 4 + tz.transition 1958, 4, :o2, 58471699, 24 + tz.transition 1958, 10, :o1, 9746011, 4 + tz.transition 1959, 4, :o2, 58480435, 24 + tz.transition 1959, 10, :o1, 9747467, 4 + tz.transition 1960, 4, :o2, 58489171, 24 + tz.transition 1960, 10, :o1, 9748951, 4 + tz.transition 1961, 4, :o2, 58498075, 24 + tz.transition 1961, 10, :o1, 9750407, 4 + tz.transition 1962, 4, :o2, 58506811, 24 + tz.transition 1962, 10, :o1, 9751863, 4 + tz.transition 1963, 4, :o2, 58515547, 24 + tz.transition 1963, 10, :o1, 9753319, 4 + tz.transition 1964, 4, :o2, 58524283, 24 + tz.transition 1964, 10, :o1, 9754775, 4 + tz.transition 1965, 4, :o2, 58533019, 24 + tz.transition 1965, 10, :o1, 9756259, 4 + tz.transition 1966, 4, :o2, 58541755, 24 + tz.transition 1966, 10, :o1, 9757715, 4 + tz.transition 1967, 4, :o2, 58550659, 24 + tz.transition 1967, 10, :o1, 9759171, 4 + tz.transition 1968, 4, :o2, 58559395, 24 + tz.transition 1968, 10, :o1, 9760627, 4 + tz.transition 1969, 4, :o2, 58568131, 24 + tz.transition 1969, 10, :o1, 9762083, 4 + tz.transition 1970, 4, :o2, 9961200 + tz.transition 1970, 10, :o1, 25682400 + tz.transition 1971, 4, :o2, 41410800 + tz.transition 1971, 10, :o1, 57736800 + tz.transition 1972, 4, :o2, 73465200 + tz.transition 1972, 10, :o1, 89186400 + tz.transition 1973, 4, :o2, 104914800 + tz.transition 1973, 10, :o1, 120636000 + tz.transition 1974, 1, :o2, 126687600 + tz.transition 1974, 10, :o1, 152085600 + tz.transition 1975, 2, :o2, 162370800 + tz.transition 1975, 10, :o1, 183535200 + tz.transition 1976, 4, :o2, 199263600 + tz.transition 1976, 10, :o1, 215589600 + tz.transition 1977, 4, :o2, 230713200 + tz.transition 1977, 10, :o1, 247039200 + tz.transition 1978, 4, :o2, 262767600 + tz.transition 1978, 10, :o1, 278488800 + tz.transition 1979, 4, :o2, 294217200 + tz.transition 1979, 10, :o1, 309938400 + tz.transition 1980, 4, :o2, 325666800 + tz.transition 1980, 10, :o1, 341388000 + tz.transition 1981, 4, :o2, 357116400 + tz.transition 1981, 10, :o1, 372837600 + tz.transition 1982, 4, :o2, 388566000 + tz.transition 1982, 10, :o1, 404892000 + tz.transition 1983, 4, :o2, 420015600 + tz.transition 1983, 10, :o1, 436341600 + tz.transition 1984, 4, :o2, 452070000 + tz.transition 1984, 10, :o1, 467791200 + tz.transition 1985, 4, :o2, 483519600 + tz.transition 1985, 10, :o1, 499240800 + tz.transition 1986, 4, :o2, 514969200 + tz.transition 1986, 10, :o1, 530690400 + tz.transition 1987, 4, :o2, 544604400 + tz.transition 1987, 10, :o1, 562140000 + tz.transition 1988, 4, :o2, 576054000 + tz.transition 1988, 10, :o1, 594194400 + tz.transition 1989, 4, :o2, 607503600 + tz.transition 1989, 10, :o1, 625644000 + tz.transition 1990, 4, :o2, 638953200 + tz.transition 1990, 10, :o1, 657093600 + tz.transition 1991, 4, :o2, 671007600 + tz.transition 1991, 10, :o1, 688543200 + tz.transition 1992, 4, :o2, 702457200 + tz.transition 1992, 10, :o1, 719992800 + tz.transition 1993, 4, :o2, 733906800 + tz.transition 1993, 10, :o1, 752047200 + tz.transition 1994, 4, :o2, 765356400 + tz.transition 1994, 10, :o1, 783496800 + tz.transition 1995, 4, :o2, 796806000 + tz.transition 1995, 10, :o1, 814946400 + tz.transition 1996, 4, :o2, 828860400 + tz.transition 1996, 10, :o1, 846396000 + tz.transition 1997, 4, :o2, 860310000 + tz.transition 1997, 10, :o1, 877845600 + tz.transition 1998, 4, :o2, 891759600 + tz.transition 1998, 10, :o1, 909295200 + tz.transition 1999, 4, :o2, 923209200 + tz.transition 1999, 10, :o1, 941349600 + tz.transition 2000, 4, :o2, 954658800 + tz.transition 2000, 10, :o1, 972799200 + tz.transition 2001, 4, :o2, 986108400 + tz.transition 2001, 10, :o1, 1004248800 + tz.transition 2002, 4, :o2, 1018162800 + tz.transition 2002, 10, :o1, 1035698400 + tz.transition 2003, 4, :o2, 1049612400 + tz.transition 2003, 10, :o1, 1067148000 + tz.transition 2004, 4, :o2, 1081062000 + tz.transition 2004, 10, :o1, 1099202400 + tz.transition 2005, 4, :o2, 1112511600 + tz.transition 2005, 10, :o1, 1130652000 + tz.transition 2006, 4, :o2, 1143961200 + tz.transition 2006, 10, :o1, 1162101600 + tz.transition 2007, 3, :o2, 1173596400 + tz.transition 2007, 11, :o1, 1194156000 + tz.transition 2008, 3, :o2, 1205046000 + tz.transition 2008, 11, :o1, 1225605600 + tz.transition 2009, 3, :o2, 1236495600 + tz.transition 2009, 11, :o1, 1257055200 + tz.transition 2010, 3, :o2, 1268550000 + tz.transition 2010, 11, :o1, 1289109600 + tz.transition 2011, 3, :o2, 1299999600 + tz.transition 2011, 11, :o1, 1320559200 + tz.transition 2012, 3, :o2, 1331449200 + tz.transition 2012, 11, :o1, 1352008800 + tz.transition 2013, 3, :o2, 1362898800 + tz.transition 2013, 11, :o1, 1383458400 + tz.transition 2014, 3, :o2, 1394348400 + tz.transition 2014, 11, :o1, 1414908000 + tz.transition 2015, 3, :o2, 1425798000 + tz.transition 2015, 11, :o1, 1446357600 + tz.transition 2016, 3, :o2, 1457852400 + tz.transition 2016, 11, :o1, 1478412000 + tz.transition 2017, 3, :o2, 1489302000 + tz.transition 2017, 11, :o1, 1509861600 + tz.transition 2018, 3, :o2, 1520751600 + tz.transition 2018, 11, :o1, 1541311200 + tz.transition 2019, 3, :o2, 1552201200 + tz.transition 2019, 11, :o1, 1572760800 + tz.transition 2020, 3, :o2, 1583650800 + tz.transition 2020, 11, :o1, 1604210400 + tz.transition 2021, 3, :o2, 1615705200 + tz.transition 2021, 11, :o1, 1636264800 + tz.transition 2022, 3, :o2, 1647154800 + tz.transition 2022, 11, :o1, 1667714400 + tz.transition 2023, 3, :o2, 1678604400 + tz.transition 2023, 11, :o1, 1699164000 + tz.transition 2024, 3, :o2, 1710054000 + tz.transition 2024, 11, :o1, 1730613600 + tz.transition 2025, 3, :o2, 1741503600 + tz.transition 2025, 11, :o1, 1762063200 + tz.transition 2026, 3, :o2, 1772953200 + tz.transition 2026, 11, :o1, 1793512800 + tz.transition 2027, 3, :o2, 1805007600 + tz.transition 2027, 11, :o1, 1825567200 + tz.transition 2028, 3, :o2, 1836457200 + tz.transition 2028, 11, :o1, 1857016800 + tz.transition 2029, 3, :o2, 1867906800 + tz.transition 2029, 11, :o1, 1888466400 + tz.transition 2030, 3, :o2, 1899356400 + tz.transition 2030, 11, :o1, 1919916000 + tz.transition 2031, 3, :o2, 1930806000 + tz.transition 2031, 11, :o1, 1951365600 + tz.transition 2032, 3, :o2, 1962860400 + tz.transition 2032, 11, :o1, 1983420000 + tz.transition 2033, 3, :o2, 1994310000 + tz.transition 2033, 11, :o1, 2014869600 + tz.transition 2034, 3, :o2, 2025759600 + tz.transition 2034, 11, :o1, 2046319200 + tz.transition 2035, 3, :o2, 2057209200 + tz.transition 2035, 11, :o1, 2077768800 + tz.transition 2036, 3, :o2, 2088658800 + tz.transition 2036, 11, :o1, 2109218400 + tz.transition 2037, 3, :o2, 2120108400 + tz.transition 2037, 11, :o1, 2140668000 + tz.transition 2038, 3, :o2, 59171923, 24 + tz.transition 2038, 11, :o1, 9862939, 4 + tz.transition 2039, 3, :o2, 59180659, 24 + tz.transition 2039, 11, :o1, 9864395, 4 + tz.transition 2040, 3, :o2, 59189395, 24 + tz.transition 2040, 11, :o1, 9865851, 4 + tz.transition 2041, 3, :o2, 59198131, 24 + tz.transition 2041, 11, :o1, 9867307, 4 + tz.transition 2042, 3, :o2, 59206867, 24 + tz.transition 2042, 11, :o1, 9868763, 4 + tz.transition 2043, 3, :o2, 59215603, 24 + tz.transition 2043, 11, :o1, 9870219, 4 + tz.transition 2044, 3, :o2, 59224507, 24 + tz.transition 2044, 11, :o1, 9871703, 4 + tz.transition 2045, 3, :o2, 59233243, 24 + tz.transition 2045, 11, :o1, 9873159, 4 + tz.transition 2046, 3, :o2, 59241979, 24 + tz.transition 2046, 11, :o1, 9874615, 4 + tz.transition 2047, 3, :o2, 59250715, 24 + tz.transition 2047, 11, :o1, 9876071, 4 + tz.transition 2048, 3, :o2, 59259451, 24 + tz.transition 2048, 11, :o1, 9877527, 4 + tz.transition 2049, 3, :o2, 59268355, 24 + tz.transition 2049, 11, :o1, 9879011, 4 + tz.transition 2050, 3, :o2, 59277091, 24 + tz.transition 2050, 11, :o1, 9880467, 4 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Phoenix.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Phoenix.rb new file mode 100644 index 000000000..b514e0c0f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Phoenix.rb @@ -0,0 +1,30 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Phoenix + include TimezoneDefinition + + timezone 'America/Phoenix' do |tz| + tz.offset :o0, -26898, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -25200, 3600, :MDT + tz.offset :o3, -25200, 3600, :MWT + + tz.transition 1883, 11, :o1, 57819199, 24 + tz.transition 1918, 3, :o2, 19373471, 8 + tz.transition 1918, 10, :o1, 14531363, 6 + tz.transition 1919, 3, :o2, 19376383, 8 + tz.transition 1919, 10, :o1, 14533547, 6 + tz.transition 1942, 2, :o3, 19443199, 8 + tz.transition 1944, 1, :o1, 3500770681, 1440 + tz.transition 1944, 4, :o3, 3500901781, 1440 + tz.transition 1944, 10, :o1, 3501165241, 1440 + tz.transition 1967, 4, :o2, 19516887, 8 + tz.transition 1967, 10, :o1, 14638757, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Regina.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Regina.rb new file mode 100644 index 000000000..ebdb68814 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Regina.rb @@ -0,0 +1,74 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Regina + include TimezoneDefinition + + timezone 'America/Regina' do |tz| + tz.offset :o0, -25116, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -25200, 3600, :MDT + tz.offset :o3, -25200, 3600, :MWT + tz.offset :o4, -25200, 3600, :MPT + tz.offset :o5, -21600, 0, :CST + + tz.transition 1905, 9, :o1, 17403046493, 7200 + tz.transition 1918, 4, :o2, 19373583, 8 + tz.transition 1918, 10, :o1, 14531387, 6 + tz.transition 1930, 5, :o2, 58226419, 24 + tz.transition 1930, 10, :o1, 9705019, 4 + tz.transition 1931, 5, :o2, 58235155, 24 + tz.transition 1931, 10, :o1, 9706475, 4 + tz.transition 1932, 5, :o2, 58243891, 24 + tz.transition 1932, 10, :o1, 9707931, 4 + tz.transition 1933, 5, :o2, 58252795, 24 + tz.transition 1933, 10, :o1, 9709387, 4 + tz.transition 1934, 5, :o2, 58261531, 24 + tz.transition 1934, 10, :o1, 9710871, 4 + tz.transition 1937, 4, :o2, 58287235, 24 + tz.transition 1937, 10, :o1, 9715267, 4 + tz.transition 1938, 4, :o2, 58295971, 24 + tz.transition 1938, 10, :o1, 9716695, 4 + tz.transition 1939, 4, :o2, 58304707, 24 + tz.transition 1939, 10, :o1, 9718179, 4 + tz.transition 1940, 4, :o2, 58313611, 24 + tz.transition 1940, 10, :o1, 9719663, 4 + tz.transition 1941, 4, :o2, 58322347, 24 + tz.transition 1941, 10, :o1, 9721119, 4 + tz.transition 1942, 2, :o3, 19443199, 8 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 14590373, 6 + tz.transition 1946, 4, :o2, 19455399, 8 + tz.transition 1946, 10, :o1, 14592641, 6 + tz.transition 1947, 4, :o2, 19458423, 8 + tz.transition 1947, 9, :o1, 14594741, 6 + tz.transition 1948, 4, :o2, 19461335, 8 + tz.transition 1948, 9, :o1, 14596925, 6 + tz.transition 1949, 4, :o2, 19464247, 8 + tz.transition 1949, 9, :o1, 14599109, 6 + tz.transition 1950, 4, :o2, 19467215, 8 + tz.transition 1950, 9, :o1, 14601293, 6 + tz.transition 1951, 4, :o2, 19470127, 8 + tz.transition 1951, 9, :o1, 14603519, 6 + tz.transition 1952, 4, :o2, 19473039, 8 + tz.transition 1952, 9, :o1, 14605703, 6 + tz.transition 1953, 4, :o2, 19475951, 8 + tz.transition 1953, 9, :o1, 14607887, 6 + tz.transition 1954, 4, :o2, 19478863, 8 + tz.transition 1954, 9, :o1, 14610071, 6 + tz.transition 1955, 4, :o2, 19481775, 8 + tz.transition 1955, 9, :o1, 14612255, 6 + tz.transition 1956, 4, :o2, 19484743, 8 + tz.transition 1956, 9, :o1, 14614481, 6 + tz.transition 1957, 4, :o2, 19487655, 8 + tz.transition 1957, 9, :o1, 14616665, 6 + tz.transition 1959, 4, :o2, 19493479, 8 + tz.transition 1959, 10, :o1, 14621201, 6 + tz.transition 1960, 4, :o5, 19496391, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Santiago.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Santiago.rb new file mode 100644 index 000000000..0287c9ebc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Santiago.rb @@ -0,0 +1,205 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Santiago + include TimezoneDefinition + + timezone 'America/Santiago' do |tz| + tz.offset :o0, -16966, 0, :LMT + tz.offset :o1, -16966, 0, :SMT + tz.offset :o2, -18000, 0, :CLT + tz.offset :o3, -14400, 0, :CLT + tz.offset :o4, -18000, 3600, :CLST + tz.offset :o5, -14400, 3600, :CLST + + tz.transition 1890, 1, :o1, 104171127683, 43200 + tz.transition 1910, 1, :o2, 104486660483, 43200 + tz.transition 1916, 7, :o1, 58105097, 24 + tz.transition 1918, 9, :o3, 104623388483, 43200 + tz.transition 1919, 7, :o1, 7266422, 3 + tz.transition 1927, 9, :o4, 104765386883, 43200 + tz.transition 1928, 4, :o2, 7276013, 3 + tz.transition 1928, 9, :o4, 58211777, 24 + tz.transition 1929, 4, :o2, 7277108, 3 + tz.transition 1929, 9, :o4, 58220537, 24 + tz.transition 1930, 4, :o2, 7278203, 3 + tz.transition 1930, 9, :o4, 58229297, 24 + tz.transition 1931, 4, :o2, 7279298, 3 + tz.transition 1931, 9, :o4, 58238057, 24 + tz.transition 1932, 4, :o2, 7280396, 3 + tz.transition 1932, 9, :o4, 58246841, 24 + tz.transition 1942, 6, :o2, 7291535, 3 + tz.transition 1942, 8, :o4, 58333745, 24 + tz.transition 1946, 9, :o2, 19456517, 8 + tz.transition 1947, 5, :o3, 58375865, 24 + tz.transition 1968, 11, :o5, 7320491, 3 + tz.transition 1969, 3, :o3, 19522485, 8 + tz.transition 1969, 11, :o5, 7321646, 3 + tz.transition 1970, 3, :o3, 7527600 + tz.transition 1970, 10, :o5, 24465600 + tz.transition 1971, 3, :o3, 37767600 + tz.transition 1971, 10, :o5, 55915200 + tz.transition 1972, 3, :o3, 69217200 + tz.transition 1972, 10, :o5, 87969600 + tz.transition 1973, 3, :o3, 100666800 + tz.transition 1973, 9, :o5, 118209600 + tz.transition 1974, 3, :o3, 132116400 + tz.transition 1974, 10, :o5, 150868800 + tz.transition 1975, 3, :o3, 163566000 + tz.transition 1975, 10, :o5, 182318400 + tz.transition 1976, 3, :o3, 195620400 + tz.transition 1976, 10, :o5, 213768000 + tz.transition 1977, 3, :o3, 227070000 + tz.transition 1977, 10, :o5, 245217600 + tz.transition 1978, 3, :o3, 258519600 + tz.transition 1978, 10, :o5, 277272000 + tz.transition 1979, 3, :o3, 289969200 + tz.transition 1979, 10, :o5, 308721600 + tz.transition 1980, 3, :o3, 321418800 + tz.transition 1980, 10, :o5, 340171200 + tz.transition 1981, 3, :o3, 353473200 + tz.transition 1981, 10, :o5, 371620800 + tz.transition 1982, 3, :o3, 384922800 + tz.transition 1982, 10, :o5, 403070400 + tz.transition 1983, 3, :o3, 416372400 + tz.transition 1983, 10, :o5, 434520000 + tz.transition 1984, 3, :o3, 447822000 + tz.transition 1984, 10, :o5, 466574400 + tz.transition 1985, 3, :o3, 479271600 + tz.transition 1985, 10, :o5, 498024000 + tz.transition 1986, 3, :o3, 510721200 + tz.transition 1986, 10, :o5, 529473600 + tz.transition 1987, 4, :o3, 545194800 + tz.transition 1987, 10, :o5, 560923200 + tz.transition 1988, 3, :o3, 574225200 + tz.transition 1988, 10, :o5, 591768000 + tz.transition 1989, 3, :o3, 605674800 + tz.transition 1989, 10, :o5, 624427200 + tz.transition 1990, 3, :o3, 637729200 + tz.transition 1990, 9, :o5, 653457600 + tz.transition 1991, 3, :o3, 668574000 + tz.transition 1991, 10, :o5, 687326400 + tz.transition 1992, 3, :o3, 700628400 + tz.transition 1992, 10, :o5, 718776000 + tz.transition 1993, 3, :o3, 732078000 + tz.transition 1993, 10, :o5, 750225600 + tz.transition 1994, 3, :o3, 763527600 + tz.transition 1994, 10, :o5, 781675200 + tz.transition 1995, 3, :o3, 794977200 + tz.transition 1995, 10, :o5, 813729600 + tz.transition 1996, 3, :o3, 826426800 + tz.transition 1996, 10, :o5, 845179200 + tz.transition 1997, 3, :o3, 859690800 + tz.transition 1997, 10, :o5, 876628800 + tz.transition 1998, 3, :o3, 889930800 + tz.transition 1998, 9, :o5, 906868800 + tz.transition 1999, 4, :o3, 923194800 + tz.transition 1999, 10, :o5, 939528000 + tz.transition 2000, 3, :o3, 952830000 + tz.transition 2000, 10, :o5, 971582400 + tz.transition 2001, 3, :o3, 984279600 + tz.transition 2001, 10, :o5, 1003032000 + tz.transition 2002, 3, :o3, 1015729200 + tz.transition 2002, 10, :o5, 1034481600 + tz.transition 2003, 3, :o3, 1047178800 + tz.transition 2003, 10, :o5, 1065931200 + tz.transition 2004, 3, :o3, 1079233200 + tz.transition 2004, 10, :o5, 1097380800 + tz.transition 2005, 3, :o3, 1110682800 + tz.transition 2005, 10, :o5, 1128830400 + tz.transition 2006, 3, :o3, 1142132400 + tz.transition 2006, 10, :o5, 1160884800 + tz.transition 2007, 3, :o3, 1173582000 + tz.transition 2007, 10, :o5, 1192334400 + tz.transition 2008, 3, :o3, 1206846000 + tz.transition 2008, 10, :o5, 1223784000 + tz.transition 2009, 3, :o3, 1237086000 + tz.transition 2009, 10, :o5, 1255233600 + tz.transition 2010, 3, :o3, 1268535600 + tz.transition 2010, 10, :o5, 1286683200 + tz.transition 2011, 3, :o3, 1299985200 + tz.transition 2011, 10, :o5, 1318132800 + tz.transition 2012, 3, :o3, 1331434800 + tz.transition 2012, 10, :o5, 1350187200 + tz.transition 2013, 3, :o3, 1362884400 + tz.transition 2013, 10, :o5, 1381636800 + tz.transition 2014, 3, :o3, 1394334000 + tz.transition 2014, 10, :o5, 1413086400 + tz.transition 2015, 3, :o3, 1426388400 + tz.transition 2015, 10, :o5, 1444536000 + tz.transition 2016, 3, :o3, 1457838000 + tz.transition 2016, 10, :o5, 1475985600 + tz.transition 2017, 3, :o3, 1489287600 + tz.transition 2017, 10, :o5, 1508040000 + tz.transition 2018, 3, :o3, 1520737200 + tz.transition 2018, 10, :o5, 1539489600 + tz.transition 2019, 3, :o3, 1552186800 + tz.transition 2019, 10, :o5, 1570939200 + tz.transition 2020, 3, :o3, 1584241200 + tz.transition 2020, 10, :o5, 1602388800 + tz.transition 2021, 3, :o3, 1615690800 + tz.transition 2021, 10, :o5, 1633838400 + tz.transition 2022, 3, :o3, 1647140400 + tz.transition 2022, 10, :o5, 1665288000 + tz.transition 2023, 3, :o3, 1678590000 + tz.transition 2023, 10, :o5, 1697342400 + tz.transition 2024, 3, :o3, 1710039600 + tz.transition 2024, 10, :o5, 1728792000 + tz.transition 2025, 3, :o3, 1741489200 + tz.transition 2025, 10, :o5, 1760241600 + tz.transition 2026, 3, :o3, 1773543600 + tz.transition 2026, 10, :o5, 1791691200 + tz.transition 2027, 3, :o3, 1804993200 + tz.transition 2027, 10, :o5, 1823140800 + tz.transition 2028, 3, :o3, 1836442800 + tz.transition 2028, 10, :o5, 1855195200 + tz.transition 2029, 3, :o3, 1867892400 + tz.transition 2029, 10, :o5, 1886644800 + tz.transition 2030, 3, :o3, 1899342000 + tz.transition 2030, 10, :o5, 1918094400 + tz.transition 2031, 3, :o3, 1930791600 + tz.transition 2031, 10, :o5, 1949544000 + tz.transition 2032, 3, :o3, 1962846000 + tz.transition 2032, 10, :o5, 1980993600 + tz.transition 2033, 3, :o3, 1994295600 + tz.transition 2033, 10, :o5, 2012443200 + tz.transition 2034, 3, :o3, 2025745200 + tz.transition 2034, 10, :o5, 2044497600 + tz.transition 2035, 3, :o3, 2057194800 + tz.transition 2035, 10, :o5, 2075947200 + tz.transition 2036, 3, :o3, 2088644400 + tz.transition 2036, 10, :o5, 2107396800 + tz.transition 2037, 3, :o3, 2120698800 + tz.transition 2037, 10, :o5, 2138846400 + tz.transition 2038, 3, :o3, 19723973, 8 + tz.transition 2038, 10, :o5, 7397120, 3 + tz.transition 2039, 3, :o3, 19726885, 8 + tz.transition 2039, 10, :o5, 7398212, 3 + tz.transition 2040, 3, :o3, 19729797, 8 + tz.transition 2040, 10, :o5, 7399325, 3 + tz.transition 2041, 3, :o3, 19732709, 8 + tz.transition 2041, 10, :o5, 7400417, 3 + tz.transition 2042, 3, :o3, 19735621, 8 + tz.transition 2042, 10, :o5, 7401509, 3 + tz.transition 2043, 3, :o3, 19738589, 8 + tz.transition 2043, 10, :o5, 7402601, 3 + tz.transition 2044, 3, :o3, 19741501, 8 + tz.transition 2044, 10, :o5, 7403693, 3 + tz.transition 2045, 3, :o3, 19744413, 8 + tz.transition 2045, 10, :o5, 7404806, 3 + tz.transition 2046, 3, :o3, 19747325, 8 + tz.transition 2046, 10, :o5, 7405898, 3 + tz.transition 2047, 3, :o3, 19750237, 8 + tz.transition 2047, 10, :o5, 7406990, 3 + tz.transition 2048, 3, :o3, 19753205, 8 + tz.transition 2048, 10, :o5, 7408082, 3 + tz.transition 2049, 3, :o3, 19756117, 8 + tz.transition 2049, 10, :o5, 7409174, 3 + tz.transition 2050, 3, :o3, 19759029, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/St_Johns.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/St_Johns.rb new file mode 100644 index 000000000..e4a3599d3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/St_Johns.rb @@ -0,0 +1,288 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module St_Johns + include TimezoneDefinition + + timezone 'America/St_Johns' do |tz| + tz.offset :o0, -12652, 0, :LMT + tz.offset :o1, -12652, 0, :NST + tz.offset :o2, -12652, 3600, :NDT + tz.offset :o3, -12600, 0, :NST + tz.offset :o4, -12600, 3600, :NDT + tz.offset :o5, -12600, 3600, :NWT + tz.offset :o6, -12600, 3600, :NPT + tz.offset :o7, -12600, 7200, :NDDT + + tz.transition 1884, 1, :o1, 52038215563, 21600 + tz.transition 1917, 4, :o2, 52300657363, 21600 + tz.transition 1917, 9, :o1, 52304155663, 21600 + tz.transition 1918, 4, :o2, 52308670963, 21600 + tz.transition 1918, 10, :o1, 52312990063, 21600 + tz.transition 1919, 5, :o2, 52317027463, 21600 + tz.transition 1919, 8, :o1, 52319164963, 21600 + tz.transition 1920, 5, :o2, 52324868263, 21600 + tz.transition 1920, 11, :o1, 52328798563, 21600 + tz.transition 1921, 5, :o2, 52332730663, 21600 + tz.transition 1921, 10, :o1, 52336660963, 21600 + tz.transition 1922, 5, :o2, 52340744263, 21600 + tz.transition 1922, 10, :o1, 52344523363, 21600 + tz.transition 1923, 5, :o2, 52348606663, 21600 + tz.transition 1923, 10, :o1, 52352385763, 21600 + tz.transition 1924, 5, :o2, 52356469063, 21600 + tz.transition 1924, 10, :o1, 52360248163, 21600 + tz.transition 1925, 5, :o2, 52364331463, 21600 + tz.transition 1925, 10, :o1, 52368110563, 21600 + tz.transition 1926, 5, :o2, 52372193863, 21600 + tz.transition 1926, 11, :o1, 52376124163, 21600 + tz.transition 1927, 5, :o2, 52380056263, 21600 + tz.transition 1927, 10, :o1, 52383986563, 21600 + tz.transition 1928, 5, :o2, 52388069863, 21600 + tz.transition 1928, 10, :o1, 52391848963, 21600 + tz.transition 1929, 5, :o2, 52395932263, 21600 + tz.transition 1929, 10, :o1, 52399711363, 21600 + tz.transition 1930, 5, :o2, 52403794663, 21600 + tz.transition 1930, 10, :o1, 52407573763, 21600 + tz.transition 1931, 5, :o2, 52411657063, 21600 + tz.transition 1931, 10, :o1, 52415436163, 21600 + tz.transition 1932, 5, :o2, 52419519463, 21600 + tz.transition 1932, 10, :o1, 52423449763, 21600 + tz.transition 1933, 5, :o2, 52427533063, 21600 + tz.transition 1933, 10, :o1, 52431312163, 21600 + tz.transition 1934, 5, :o2, 52435395463, 21600 + tz.transition 1934, 10, :o1, 52439174563, 21600 + tz.transition 1935, 3, :o3, 52442459563, 21600 + tz.transition 1935, 5, :o4, 116540573, 48 + tz.transition 1935, 10, :o3, 38849657, 16 + tz.transition 1936, 5, :o4, 116558383, 48 + tz.transition 1936, 10, :o3, 116565437, 48 + tz.transition 1937, 5, :o4, 116575855, 48 + tz.transition 1937, 10, :o3, 116582909, 48 + tz.transition 1938, 5, :o4, 116593327, 48 + tz.transition 1938, 10, :o3, 116600381, 48 + tz.transition 1939, 5, :o4, 116611135, 48 + tz.transition 1939, 10, :o3, 116617853, 48 + tz.transition 1940, 5, :o4, 116628607, 48 + tz.transition 1940, 10, :o3, 116635661, 48 + tz.transition 1941, 5, :o4, 116646079, 48 + tz.transition 1941, 10, :o3, 116653133, 48 + tz.transition 1942, 5, :o5, 116663551, 48 + tz.transition 1945, 8, :o6, 58360379, 24 + tz.transition 1945, 9, :o3, 38907659, 16 + tz.transition 1946, 5, :o4, 116733731, 48 + tz.transition 1946, 10, :o3, 38913595, 16 + tz.transition 1947, 5, :o4, 116751203, 48 + tz.transition 1947, 10, :o3, 38919419, 16 + tz.transition 1948, 5, :o4, 116768675, 48 + tz.transition 1948, 10, :o3, 38925243, 16 + tz.transition 1949, 5, :o4, 116786147, 48 + tz.transition 1949, 10, :o3, 38931067, 16 + tz.transition 1950, 5, :o4, 116803955, 48 + tz.transition 1950, 10, :o3, 38937003, 16 + tz.transition 1951, 4, :o4, 116820755, 48 + tz.transition 1951, 9, :o3, 38942715, 16 + tz.transition 1952, 4, :o4, 116838227, 48 + tz.transition 1952, 9, :o3, 38948539, 16 + tz.transition 1953, 4, :o4, 116855699, 48 + tz.transition 1953, 9, :o3, 38954363, 16 + tz.transition 1954, 4, :o4, 116873171, 48 + tz.transition 1954, 9, :o3, 38960187, 16 + tz.transition 1955, 4, :o4, 116890643, 48 + tz.transition 1955, 9, :o3, 38966011, 16 + tz.transition 1956, 4, :o4, 116908451, 48 + tz.transition 1956, 9, :o3, 38971947, 16 + tz.transition 1957, 4, :o4, 116925923, 48 + tz.transition 1957, 9, :o3, 38977771, 16 + tz.transition 1958, 4, :o4, 116943395, 48 + tz.transition 1958, 9, :o3, 38983595, 16 + tz.transition 1959, 4, :o4, 116960867, 48 + tz.transition 1959, 9, :o3, 38989419, 16 + tz.transition 1960, 4, :o4, 116978339, 48 + tz.transition 1960, 10, :o3, 38995803, 16 + tz.transition 1961, 4, :o4, 116996147, 48 + tz.transition 1961, 10, :o3, 39001627, 16 + tz.transition 1962, 4, :o4, 117013619, 48 + tz.transition 1962, 10, :o3, 39007451, 16 + tz.transition 1963, 4, :o4, 117031091, 48 + tz.transition 1963, 10, :o3, 39013275, 16 + tz.transition 1964, 4, :o4, 117048563, 48 + tz.transition 1964, 10, :o3, 39019099, 16 + tz.transition 1965, 4, :o4, 117066035, 48 + tz.transition 1965, 10, :o3, 39025035, 16 + tz.transition 1966, 4, :o4, 117083507, 48 + tz.transition 1966, 10, :o3, 39030859, 16 + tz.transition 1967, 4, :o4, 117101315, 48 + tz.transition 1967, 10, :o3, 39036683, 16 + tz.transition 1968, 4, :o4, 117118787, 48 + tz.transition 1968, 10, :o3, 39042507, 16 + tz.transition 1969, 4, :o4, 117136259, 48 + tz.transition 1969, 10, :o3, 39048331, 16 + tz.transition 1970, 4, :o4, 9955800 + tz.transition 1970, 10, :o3, 25677000 + tz.transition 1971, 4, :o4, 41405400 + tz.transition 1971, 10, :o3, 57731400 + tz.transition 1972, 4, :o4, 73459800 + tz.transition 1972, 10, :o3, 89181000 + tz.transition 1973, 4, :o4, 104909400 + tz.transition 1973, 10, :o3, 120630600 + tz.transition 1974, 4, :o4, 136359000 + tz.transition 1974, 10, :o3, 152080200 + tz.transition 1975, 4, :o4, 167808600 + tz.transition 1975, 10, :o3, 183529800 + tz.transition 1976, 4, :o4, 199258200 + tz.transition 1976, 10, :o3, 215584200 + tz.transition 1977, 4, :o4, 230707800 + tz.transition 1977, 10, :o3, 247033800 + tz.transition 1978, 4, :o4, 262762200 + tz.transition 1978, 10, :o3, 278483400 + tz.transition 1979, 4, :o4, 294211800 + tz.transition 1979, 10, :o3, 309933000 + tz.transition 1980, 4, :o4, 325661400 + tz.transition 1980, 10, :o3, 341382600 + tz.transition 1981, 4, :o4, 357111000 + tz.transition 1981, 10, :o3, 372832200 + tz.transition 1982, 4, :o4, 388560600 + tz.transition 1982, 10, :o3, 404886600 + tz.transition 1983, 4, :o4, 420010200 + tz.transition 1983, 10, :o3, 436336200 + tz.transition 1984, 4, :o4, 452064600 + tz.transition 1984, 10, :o3, 467785800 + tz.transition 1985, 4, :o4, 483514200 + tz.transition 1985, 10, :o3, 499235400 + tz.transition 1986, 4, :o4, 514963800 + tz.transition 1986, 10, :o3, 530685000 + tz.transition 1987, 4, :o4, 544591860 + tz.transition 1987, 10, :o3, 562127460 + tz.transition 1988, 4, :o7, 576041460 + tz.transition 1988, 10, :o3, 594178260 + tz.transition 1989, 4, :o4, 607491060 + tz.transition 1989, 10, :o3, 625631460 + tz.transition 1990, 4, :o4, 638940660 + tz.transition 1990, 10, :o3, 657081060 + tz.transition 1991, 4, :o4, 670995060 + tz.transition 1991, 10, :o3, 688530660 + tz.transition 1992, 4, :o4, 702444660 + tz.transition 1992, 10, :o3, 719980260 + tz.transition 1993, 4, :o4, 733894260 + tz.transition 1993, 10, :o3, 752034660 + tz.transition 1994, 4, :o4, 765343860 + tz.transition 1994, 10, :o3, 783484260 + tz.transition 1995, 4, :o4, 796793460 + tz.transition 1995, 10, :o3, 814933860 + tz.transition 1996, 4, :o4, 828847860 + tz.transition 1996, 10, :o3, 846383460 + tz.transition 1997, 4, :o4, 860297460 + tz.transition 1997, 10, :o3, 877833060 + tz.transition 1998, 4, :o4, 891747060 + tz.transition 1998, 10, :o3, 909282660 + tz.transition 1999, 4, :o4, 923196660 + tz.transition 1999, 10, :o3, 941337060 + tz.transition 2000, 4, :o4, 954646260 + tz.transition 2000, 10, :o3, 972786660 + tz.transition 2001, 4, :o4, 986095860 + tz.transition 2001, 10, :o3, 1004236260 + tz.transition 2002, 4, :o4, 1018150260 + tz.transition 2002, 10, :o3, 1035685860 + tz.transition 2003, 4, :o4, 1049599860 + tz.transition 2003, 10, :o3, 1067135460 + tz.transition 2004, 4, :o4, 1081049460 + tz.transition 2004, 10, :o3, 1099189860 + tz.transition 2005, 4, :o4, 1112499060 + tz.transition 2005, 10, :o3, 1130639460 + tz.transition 2006, 4, :o4, 1143948660 + tz.transition 2006, 10, :o3, 1162089060 + tz.transition 2007, 3, :o4, 1173583860 + tz.transition 2007, 11, :o3, 1194143460 + tz.transition 2008, 3, :o4, 1205033460 + tz.transition 2008, 11, :o3, 1225593060 + tz.transition 2009, 3, :o4, 1236483060 + tz.transition 2009, 11, :o3, 1257042660 + tz.transition 2010, 3, :o4, 1268537460 + tz.transition 2010, 11, :o3, 1289097060 + tz.transition 2011, 3, :o4, 1299987060 + tz.transition 2011, 11, :o3, 1320546660 + tz.transition 2012, 3, :o4, 1331436660 + tz.transition 2012, 11, :o3, 1351996260 + tz.transition 2013, 3, :o4, 1362886260 + tz.transition 2013, 11, :o3, 1383445860 + tz.transition 2014, 3, :o4, 1394335860 + tz.transition 2014, 11, :o3, 1414895460 + tz.transition 2015, 3, :o4, 1425785460 + tz.transition 2015, 11, :o3, 1446345060 + tz.transition 2016, 3, :o4, 1457839860 + tz.transition 2016, 11, :o3, 1478399460 + tz.transition 2017, 3, :o4, 1489289460 + tz.transition 2017, 11, :o3, 1509849060 + tz.transition 2018, 3, :o4, 1520739060 + tz.transition 2018, 11, :o3, 1541298660 + tz.transition 2019, 3, :o4, 1552188660 + tz.transition 2019, 11, :o3, 1572748260 + tz.transition 2020, 3, :o4, 1583638260 + tz.transition 2020, 11, :o3, 1604197860 + tz.transition 2021, 3, :o4, 1615692660 + tz.transition 2021, 11, :o3, 1636252260 + tz.transition 2022, 3, :o4, 1647142260 + tz.transition 2022, 11, :o3, 1667701860 + tz.transition 2023, 3, :o4, 1678591860 + tz.transition 2023, 11, :o3, 1699151460 + tz.transition 2024, 3, :o4, 1710041460 + tz.transition 2024, 11, :o3, 1730601060 + tz.transition 2025, 3, :o4, 1741491060 + tz.transition 2025, 11, :o3, 1762050660 + tz.transition 2026, 3, :o4, 1772940660 + tz.transition 2026, 11, :o3, 1793500260 + tz.transition 2027, 3, :o4, 1804995060 + tz.transition 2027, 11, :o3, 1825554660 + tz.transition 2028, 3, :o4, 1836444660 + tz.transition 2028, 11, :o3, 1857004260 + tz.transition 2029, 3, :o4, 1867894260 + tz.transition 2029, 11, :o3, 1888453860 + tz.transition 2030, 3, :o4, 1899343860 + tz.transition 2030, 11, :o3, 1919903460 + tz.transition 2031, 3, :o4, 1930793460 + tz.transition 2031, 11, :o3, 1951353060 + tz.transition 2032, 3, :o4, 1962847860 + tz.transition 2032, 11, :o3, 1983407460 + tz.transition 2033, 3, :o4, 1994297460 + tz.transition 2033, 11, :o3, 2014857060 + tz.transition 2034, 3, :o4, 2025747060 + tz.transition 2034, 11, :o3, 2046306660 + tz.transition 2035, 3, :o4, 2057196660 + tz.transition 2035, 11, :o3, 2077756260 + tz.transition 2036, 3, :o4, 2088646260 + tz.transition 2036, 11, :o3, 2109205860 + tz.transition 2037, 3, :o4, 2120095860 + tz.transition 2037, 11, :o3, 2140655460 + tz.transition 2038, 3, :o4, 3550315171, 1440 + tz.transition 2038, 11, :o3, 3550657831, 1440 + tz.transition 2039, 3, :o4, 3550839331, 1440 + tz.transition 2039, 11, :o3, 3551181991, 1440 + tz.transition 2040, 3, :o4, 3551363491, 1440 + tz.transition 2040, 11, :o3, 3551706151, 1440 + tz.transition 2041, 3, :o4, 3551887651, 1440 + tz.transition 2041, 11, :o3, 3552230311, 1440 + tz.transition 2042, 3, :o4, 3552411811, 1440 + tz.transition 2042, 11, :o3, 3552754471, 1440 + tz.transition 2043, 3, :o4, 3552935971, 1440 + tz.transition 2043, 11, :o3, 3553278631, 1440 + tz.transition 2044, 3, :o4, 3553470211, 1440 + tz.transition 2044, 11, :o3, 3553812871, 1440 + tz.transition 2045, 3, :o4, 3553994371, 1440 + tz.transition 2045, 11, :o3, 3554337031, 1440 + tz.transition 2046, 3, :o4, 3554518531, 1440 + tz.transition 2046, 11, :o3, 3554861191, 1440 + tz.transition 2047, 3, :o4, 3555042691, 1440 + tz.transition 2047, 11, :o3, 3555385351, 1440 + tz.transition 2048, 3, :o4, 3555566851, 1440 + tz.transition 2048, 11, :o3, 3555909511, 1440 + tz.transition 2049, 3, :o4, 3556101091, 1440 + tz.transition 2049, 11, :o3, 3556443751, 1440 + tz.transition 2050, 3, :o4, 3556625251, 1440 + tz.transition 2050, 11, :o3, 3556967911, 1440 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Tijuana.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Tijuana.rb new file mode 100644 index 000000000..423059da4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/America/Tijuana.rb @@ -0,0 +1,196 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module America + module Tijuana + include TimezoneDefinition + + timezone 'America/Tijuana' do |tz| + tz.offset :o0, -28084, 0, :LMT + tz.offset :o1, -25200, 0, :MST + tz.offset :o2, -28800, 0, :PST + tz.offset :o3, -28800, 3600, :PDT + tz.offset :o4, -28800, 3600, :PWT + tz.offset :o5, -28800, 3600, :PPT + + tz.transition 1922, 1, :o1, 14538335, 6 + tz.transition 1924, 1, :o2, 58170859, 24 + tz.transition 1927, 6, :o1, 58201027, 24 + tz.transition 1930, 11, :o2, 58231099, 24 + tz.transition 1931, 4, :o3, 14558597, 6 + tz.transition 1931, 9, :o2, 58238755, 24 + tz.transition 1942, 4, :o4, 14582843, 6 + tz.transition 1945, 8, :o5, 58360379, 24 + tz.transition 1945, 11, :o2, 58362523, 24 + tz.transition 1948, 4, :o3, 14595881, 6 + tz.transition 1949, 1, :o2, 58390339, 24 + tz.transition 1954, 4, :o3, 29218295, 12 + tz.transition 1954, 9, :o2, 19480095, 8 + tz.transition 1955, 4, :o3, 29222663, 12 + tz.transition 1955, 9, :o2, 19483007, 8 + tz.transition 1956, 4, :o3, 29227115, 12 + tz.transition 1956, 9, :o2, 19485975, 8 + tz.transition 1957, 4, :o3, 29231483, 12 + tz.transition 1957, 9, :o2, 19488887, 8 + tz.transition 1958, 4, :o3, 29235851, 12 + tz.transition 1958, 9, :o2, 19491799, 8 + tz.transition 1959, 4, :o3, 29240219, 12 + tz.transition 1959, 9, :o2, 19494711, 8 + tz.transition 1960, 4, :o3, 29244587, 12 + tz.transition 1960, 9, :o2, 19497623, 8 + tz.transition 1976, 4, :o3, 199274400 + tz.transition 1976, 10, :o2, 215600400 + tz.transition 1977, 4, :o3, 230724000 + tz.transition 1977, 10, :o2, 247050000 + tz.transition 1978, 4, :o3, 262778400 + tz.transition 1978, 10, :o2, 278499600 + tz.transition 1979, 4, :o3, 294228000 + tz.transition 1979, 10, :o2, 309949200 + tz.transition 1980, 4, :o3, 325677600 + tz.transition 1980, 10, :o2, 341398800 + tz.transition 1981, 4, :o3, 357127200 + tz.transition 1981, 10, :o2, 372848400 + tz.transition 1982, 4, :o3, 388576800 + tz.transition 1982, 10, :o2, 404902800 + tz.transition 1983, 4, :o3, 420026400 + tz.transition 1983, 10, :o2, 436352400 + tz.transition 1984, 4, :o3, 452080800 + tz.transition 1984, 10, :o2, 467802000 + tz.transition 1985, 4, :o3, 483530400 + tz.transition 1985, 10, :o2, 499251600 + tz.transition 1986, 4, :o3, 514980000 + tz.transition 1986, 10, :o2, 530701200 + tz.transition 1987, 4, :o3, 544615200 + tz.transition 1987, 10, :o2, 562150800 + tz.transition 1988, 4, :o3, 576064800 + tz.transition 1988, 10, :o2, 594205200 + tz.transition 1989, 4, :o3, 607514400 + tz.transition 1989, 10, :o2, 625654800 + tz.transition 1990, 4, :o3, 638964000 + tz.transition 1990, 10, :o2, 657104400 + tz.transition 1991, 4, :o3, 671018400 + tz.transition 1991, 10, :o2, 688554000 + tz.transition 1992, 4, :o3, 702468000 + tz.transition 1992, 10, :o2, 720003600 + tz.transition 1993, 4, :o3, 733917600 + tz.transition 1993, 10, :o2, 752058000 + tz.transition 1994, 4, :o3, 765367200 + tz.transition 1994, 10, :o2, 783507600 + tz.transition 1995, 4, :o3, 796816800 + tz.transition 1995, 10, :o2, 814957200 + tz.transition 1996, 4, :o3, 828871200 + tz.transition 1996, 10, :o2, 846406800 + tz.transition 1997, 4, :o3, 860320800 + tz.transition 1997, 10, :o2, 877856400 + tz.transition 1998, 4, :o3, 891770400 + tz.transition 1998, 10, :o2, 909306000 + tz.transition 1999, 4, :o3, 923220000 + tz.transition 1999, 10, :o2, 941360400 + tz.transition 2000, 4, :o3, 954669600 + tz.transition 2000, 10, :o2, 972810000 + tz.transition 2001, 4, :o3, 986119200 + tz.transition 2001, 10, :o2, 1004259600 + tz.transition 2002, 4, :o3, 1018173600 + tz.transition 2002, 10, :o2, 1035709200 + tz.transition 2003, 4, :o3, 1049623200 + tz.transition 2003, 10, :o2, 1067158800 + tz.transition 2004, 4, :o3, 1081072800 + tz.transition 2004, 10, :o2, 1099213200 + tz.transition 2005, 4, :o3, 1112522400 + tz.transition 2005, 10, :o2, 1130662800 + tz.transition 2006, 4, :o3, 1143972000 + tz.transition 2006, 10, :o2, 1162112400 + tz.transition 2007, 4, :o3, 1175421600 + tz.transition 2007, 10, :o2, 1193562000 + tz.transition 2008, 4, :o3, 1207476000 + tz.transition 2008, 10, :o2, 1225011600 + tz.transition 2009, 4, :o3, 1238925600 + tz.transition 2009, 10, :o2, 1256461200 + tz.transition 2010, 4, :o3, 1270375200 + tz.transition 2010, 10, :o2, 1288515600 + tz.transition 2011, 4, :o3, 1301824800 + tz.transition 2011, 10, :o2, 1319965200 + tz.transition 2012, 4, :o3, 1333274400 + tz.transition 2012, 10, :o2, 1351414800 + tz.transition 2013, 4, :o3, 1365328800 + tz.transition 2013, 10, :o2, 1382864400 + tz.transition 2014, 4, :o3, 1396778400 + tz.transition 2014, 10, :o2, 1414314000 + tz.transition 2015, 4, :o3, 1428228000 + tz.transition 2015, 10, :o2, 1445763600 + tz.transition 2016, 4, :o3, 1459677600 + tz.transition 2016, 10, :o2, 1477818000 + tz.transition 2017, 4, :o3, 1491127200 + tz.transition 2017, 10, :o2, 1509267600 + tz.transition 2018, 4, :o3, 1522576800 + tz.transition 2018, 10, :o2, 1540717200 + tz.transition 2019, 4, :o3, 1554631200 + tz.transition 2019, 10, :o2, 1572166800 + tz.transition 2020, 4, :o3, 1586080800 + tz.transition 2020, 10, :o2, 1603616400 + tz.transition 2021, 4, :o3, 1617530400 + tz.transition 2021, 10, :o2, 1635670800 + tz.transition 2022, 4, :o3, 1648980000 + tz.transition 2022, 10, :o2, 1667120400 + tz.transition 2023, 4, :o3, 1680429600 + tz.transition 2023, 10, :o2, 1698570000 + tz.transition 2024, 4, :o3, 1712484000 + tz.transition 2024, 10, :o2, 1730019600 + tz.transition 2025, 4, :o3, 1743933600 + tz.transition 2025, 10, :o2, 1761469200 + tz.transition 2026, 4, :o3, 1775383200 + tz.transition 2026, 10, :o2, 1792918800 + tz.transition 2027, 4, :o3, 1806832800 + tz.transition 2027, 10, :o2, 1824973200 + tz.transition 2028, 4, :o3, 1838282400 + tz.transition 2028, 10, :o2, 1856422800 + tz.transition 2029, 4, :o3, 1869732000 + tz.transition 2029, 10, :o2, 1887872400 + tz.transition 2030, 4, :o3, 1901786400 + tz.transition 2030, 10, :o2, 1919322000 + tz.transition 2031, 4, :o3, 1933236000 + tz.transition 2031, 10, :o2, 1950771600 + tz.transition 2032, 4, :o3, 1964685600 + tz.transition 2032, 10, :o2, 1982826000 + tz.transition 2033, 4, :o3, 1996135200 + tz.transition 2033, 10, :o2, 2014275600 + tz.transition 2034, 4, :o3, 2027584800 + tz.transition 2034, 10, :o2, 2045725200 + tz.transition 2035, 4, :o3, 2059034400 + tz.transition 2035, 10, :o2, 2077174800 + tz.transition 2036, 4, :o3, 2091088800 + tz.transition 2036, 10, :o2, 2108624400 + tz.transition 2037, 4, :o3, 2122538400 + tz.transition 2037, 10, :o2, 2140074000 + tz.transition 2038, 4, :o3, 29586215, 12 + tz.transition 2038, 10, :o2, 19725823, 8 + tz.transition 2039, 4, :o3, 29590583, 12 + tz.transition 2039, 10, :o2, 19728735, 8 + tz.transition 2040, 4, :o3, 29594951, 12 + tz.transition 2040, 10, :o2, 19731647, 8 + tz.transition 2041, 4, :o3, 29599403, 12 + tz.transition 2041, 10, :o2, 19734559, 8 + tz.transition 2042, 4, :o3, 29603771, 12 + tz.transition 2042, 10, :o2, 19737471, 8 + tz.transition 2043, 4, :o3, 29608139, 12 + tz.transition 2043, 10, :o2, 19740383, 8 + tz.transition 2044, 4, :o3, 29612507, 12 + tz.transition 2044, 10, :o2, 19743351, 8 + tz.transition 2045, 4, :o3, 29616875, 12 + tz.transition 2045, 10, :o2, 19746263, 8 + tz.transition 2046, 4, :o3, 29621243, 12 + tz.transition 2046, 10, :o2, 19749175, 8 + tz.transition 2047, 4, :o3, 29625695, 12 + tz.transition 2047, 10, :o2, 19752087, 8 + tz.transition 2048, 4, :o3, 29630063, 12 + tz.transition 2048, 10, :o2, 19754999, 8 + tz.transition 2049, 4, :o3, 29634431, 12 + tz.transition 2049, 10, :o2, 19757967, 8 + tz.transition 2050, 4, :o3, 29638799, 12 + tz.transition 2050, 10, :o2, 19760879, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Almaty.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Almaty.rb new file mode 100644 index 000000000..9ee18970f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Almaty.rb @@ -0,0 +1,67 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Almaty + include TimezoneDefinition + + timezone 'Asia/Almaty' do |tz| + tz.offset :o0, 18468, 0, :LMT + tz.offset :o1, 18000, 0, :ALMT + tz.offset :o2, 21600, 0, :ALMT + tz.offset :o3, 21600, 3600, :ALMST + + tz.transition 1924, 5, :o1, 1939125829, 800 + tz.transition 1930, 6, :o2, 58227559, 24 + tz.transition 1981, 3, :o3, 354909600 + tz.transition 1981, 9, :o2, 370717200 + tz.transition 1982, 3, :o3, 386445600 + tz.transition 1982, 9, :o2, 402253200 + tz.transition 1983, 3, :o3, 417981600 + tz.transition 1983, 9, :o2, 433789200 + tz.transition 1984, 3, :o3, 449604000 + tz.transition 1984, 9, :o2, 465336000 + tz.transition 1985, 3, :o3, 481060800 + tz.transition 1985, 9, :o2, 496785600 + tz.transition 1986, 3, :o3, 512510400 + tz.transition 1986, 9, :o2, 528235200 + tz.transition 1987, 3, :o3, 543960000 + tz.transition 1987, 9, :o2, 559684800 + tz.transition 1988, 3, :o3, 575409600 + tz.transition 1988, 9, :o2, 591134400 + tz.transition 1989, 3, :o3, 606859200 + tz.transition 1989, 9, :o2, 622584000 + tz.transition 1990, 3, :o3, 638308800 + tz.transition 1990, 9, :o2, 654638400 + tz.transition 1992, 3, :o3, 701802000 + tz.transition 1992, 9, :o2, 717523200 + tz.transition 1993, 3, :o3, 733262400 + tz.transition 1993, 9, :o2, 748987200 + tz.transition 1994, 3, :o3, 764712000 + tz.transition 1994, 9, :o2, 780436800 + tz.transition 1995, 3, :o3, 796161600 + tz.transition 1995, 9, :o2, 811886400 + tz.transition 1996, 3, :o3, 828216000 + tz.transition 1996, 10, :o2, 846360000 + tz.transition 1997, 3, :o3, 859665600 + tz.transition 1997, 10, :o2, 877809600 + tz.transition 1998, 3, :o3, 891115200 + tz.transition 1998, 10, :o2, 909259200 + tz.transition 1999, 3, :o3, 922564800 + tz.transition 1999, 10, :o2, 941313600 + tz.transition 2000, 3, :o3, 954014400 + tz.transition 2000, 10, :o2, 972763200 + tz.transition 2001, 3, :o3, 985464000 + tz.transition 2001, 10, :o2, 1004212800 + tz.transition 2002, 3, :o3, 1017518400 + tz.transition 2002, 10, :o2, 1035662400 + tz.transition 2003, 3, :o3, 1048968000 + tz.transition 2003, 10, :o2, 1067112000 + tz.transition 2004, 3, :o3, 1080417600 + tz.transition 2004, 10, :o2, 1099166400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baghdad.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baghdad.rb new file mode 100644 index 000000000..774dca158 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baghdad.rb @@ -0,0 +1,73 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Baghdad + include TimezoneDefinition + + timezone 'Asia/Baghdad' do |tz| + tz.offset :o0, 10660, 0, :LMT + tz.offset :o1, 10656, 0, :BMT + tz.offset :o2, 10800, 0, :AST + tz.offset :o3, 10800, 3600, :ADT + + tz.transition 1889, 12, :o1, 10417111387, 4320 + tz.transition 1917, 12, :o2, 726478313, 300 + tz.transition 1982, 4, :o3, 389048400 + tz.transition 1982, 9, :o2, 402264000 + tz.transition 1983, 3, :o3, 417906000 + tz.transition 1983, 9, :o2, 433800000 + tz.transition 1984, 3, :o3, 449614800 + tz.transition 1984, 9, :o2, 465422400 + tz.transition 1985, 3, :o3, 481150800 + tz.transition 1985, 9, :o2, 496792800 + tz.transition 1986, 3, :o3, 512517600 + tz.transition 1986, 9, :o2, 528242400 + tz.transition 1987, 3, :o3, 543967200 + tz.transition 1987, 9, :o2, 559692000 + tz.transition 1988, 3, :o3, 575416800 + tz.transition 1988, 9, :o2, 591141600 + tz.transition 1989, 3, :o3, 606866400 + tz.transition 1989, 9, :o2, 622591200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 9, :o2, 654645600 + tz.transition 1991, 4, :o3, 670464000 + tz.transition 1991, 10, :o2, 686275200 + tz.transition 1992, 4, :o3, 702086400 + tz.transition 1992, 10, :o2, 717897600 + tz.transition 1993, 4, :o3, 733622400 + tz.transition 1993, 10, :o2, 749433600 + tz.transition 1994, 4, :o3, 765158400 + tz.transition 1994, 10, :o2, 780969600 + tz.transition 1995, 4, :o3, 796694400 + tz.transition 1995, 10, :o2, 812505600 + tz.transition 1996, 4, :o3, 828316800 + tz.transition 1996, 10, :o2, 844128000 + tz.transition 1997, 4, :o3, 859852800 + tz.transition 1997, 10, :o2, 875664000 + tz.transition 1998, 4, :o3, 891388800 + tz.transition 1998, 10, :o2, 907200000 + tz.transition 1999, 4, :o3, 922924800 + tz.transition 1999, 10, :o2, 938736000 + tz.transition 2000, 4, :o3, 954547200 + tz.transition 2000, 10, :o2, 970358400 + tz.transition 2001, 4, :o3, 986083200 + tz.transition 2001, 10, :o2, 1001894400 + tz.transition 2002, 4, :o3, 1017619200 + tz.transition 2002, 10, :o2, 1033430400 + tz.transition 2003, 4, :o3, 1049155200 + tz.transition 2003, 10, :o2, 1064966400 + tz.transition 2004, 4, :o3, 1080777600 + tz.transition 2004, 10, :o2, 1096588800 + tz.transition 2005, 4, :o3, 1112313600 + tz.transition 2005, 10, :o2, 1128124800 + tz.transition 2006, 4, :o3, 1143849600 + tz.transition 2006, 10, :o2, 1159660800 + tz.transition 2007, 4, :o3, 1175385600 + tz.transition 2007, 10, :o2, 1191196800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baku.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baku.rb new file mode 100644 index 000000000..e86340ebf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Baku.rb @@ -0,0 +1,161 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Baku + include TimezoneDefinition + + timezone 'Asia/Baku' do |tz| + tz.offset :o0, 11964, 0, :LMT + tz.offset :o1, 10800, 0, :BAKT + tz.offset :o2, 14400, 0, :BAKT + tz.offset :o3, 14400, 3600, :BAKST + tz.offset :o4, 10800, 3600, :BAKST + tz.offset :o5, 10800, 3600, :AZST + tz.offset :o6, 10800, 0, :AZT + tz.offset :o7, 14400, 0, :AZT + tz.offset :o8, 14400, 3600, :AZST + + tz.transition 1924, 5, :o1, 17452133003, 7200 + tz.transition 1957, 2, :o2, 19487187, 8 + tz.transition 1981, 3, :o3, 354916800 + tz.transition 1981, 9, :o2, 370724400 + tz.transition 1982, 3, :o3, 386452800 + tz.transition 1982, 9, :o2, 402260400 + tz.transition 1983, 3, :o3, 417988800 + tz.transition 1983, 9, :o2, 433796400 + tz.transition 1984, 3, :o3, 449611200 + tz.transition 1984, 9, :o2, 465343200 + tz.transition 1985, 3, :o3, 481068000 + tz.transition 1985, 9, :o2, 496792800 + tz.transition 1986, 3, :o3, 512517600 + tz.transition 1986, 9, :o2, 528242400 + tz.transition 1987, 3, :o3, 543967200 + tz.transition 1987, 9, :o2, 559692000 + tz.transition 1988, 3, :o3, 575416800 + tz.transition 1988, 9, :o2, 591141600 + tz.transition 1989, 3, :o3, 606866400 + tz.transition 1989, 9, :o2, 622591200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 9, :o2, 654645600 + tz.transition 1991, 3, :o4, 670370400 + tz.transition 1991, 8, :o5, 683496000 + tz.transition 1991, 9, :o6, 686098800 + tz.transition 1992, 3, :o5, 701812800 + tz.transition 1992, 9, :o7, 717534000 + tz.transition 1996, 3, :o8, 828234000 + tz.transition 1996, 10, :o7, 846378000 + tz.transition 1997, 3, :o8, 859680000 + tz.transition 1997, 10, :o7, 877824000 + tz.transition 1998, 3, :o8, 891129600 + tz.transition 1998, 10, :o7, 909273600 + tz.transition 1999, 3, :o8, 922579200 + tz.transition 1999, 10, :o7, 941328000 + tz.transition 2000, 3, :o8, 954028800 + tz.transition 2000, 10, :o7, 972777600 + tz.transition 2001, 3, :o8, 985478400 + tz.transition 2001, 10, :o7, 1004227200 + tz.transition 2002, 3, :o8, 1017532800 + tz.transition 2002, 10, :o7, 1035676800 + tz.transition 2003, 3, :o8, 1048982400 + tz.transition 2003, 10, :o7, 1067126400 + tz.transition 2004, 3, :o8, 1080432000 + tz.transition 2004, 10, :o7, 1099180800 + tz.transition 2005, 3, :o8, 1111881600 + tz.transition 2005, 10, :o7, 1130630400 + tz.transition 2006, 3, :o8, 1143331200 + tz.transition 2006, 10, :o7, 1162080000 + tz.transition 2007, 3, :o8, 1174780800 + tz.transition 2007, 10, :o7, 1193529600 + tz.transition 2008, 3, :o8, 1206835200 + tz.transition 2008, 10, :o7, 1224979200 + tz.transition 2009, 3, :o8, 1238284800 + tz.transition 2009, 10, :o7, 1256428800 + tz.transition 2010, 3, :o8, 1269734400 + tz.transition 2010, 10, :o7, 1288483200 + tz.transition 2011, 3, :o8, 1301184000 + tz.transition 2011, 10, :o7, 1319932800 + tz.transition 2012, 3, :o8, 1332633600 + tz.transition 2012, 10, :o7, 1351382400 + tz.transition 2013, 3, :o8, 1364688000 + tz.transition 2013, 10, :o7, 1382832000 + tz.transition 2014, 3, :o8, 1396137600 + tz.transition 2014, 10, :o7, 1414281600 + tz.transition 2015, 3, :o8, 1427587200 + tz.transition 2015, 10, :o7, 1445731200 + tz.transition 2016, 3, :o8, 1459036800 + tz.transition 2016, 10, :o7, 1477785600 + tz.transition 2017, 3, :o8, 1490486400 + tz.transition 2017, 10, :o7, 1509235200 + tz.transition 2018, 3, :o8, 1521936000 + tz.transition 2018, 10, :o7, 1540684800 + tz.transition 2019, 3, :o8, 1553990400 + tz.transition 2019, 10, :o7, 1572134400 + tz.transition 2020, 3, :o8, 1585440000 + tz.transition 2020, 10, :o7, 1603584000 + tz.transition 2021, 3, :o8, 1616889600 + tz.transition 2021, 10, :o7, 1635638400 + tz.transition 2022, 3, :o8, 1648339200 + tz.transition 2022, 10, :o7, 1667088000 + tz.transition 2023, 3, :o8, 1679788800 + tz.transition 2023, 10, :o7, 1698537600 + tz.transition 2024, 3, :o8, 1711843200 + tz.transition 2024, 10, :o7, 1729987200 + tz.transition 2025, 3, :o8, 1743292800 + tz.transition 2025, 10, :o7, 1761436800 + tz.transition 2026, 3, :o8, 1774742400 + tz.transition 2026, 10, :o7, 1792886400 + tz.transition 2027, 3, :o8, 1806192000 + tz.transition 2027, 10, :o7, 1824940800 + tz.transition 2028, 3, :o8, 1837641600 + tz.transition 2028, 10, :o7, 1856390400 + tz.transition 2029, 3, :o8, 1869091200 + tz.transition 2029, 10, :o7, 1887840000 + tz.transition 2030, 3, :o8, 1901145600 + tz.transition 2030, 10, :o7, 1919289600 + tz.transition 2031, 3, :o8, 1932595200 + tz.transition 2031, 10, :o7, 1950739200 + tz.transition 2032, 3, :o8, 1964044800 + tz.transition 2032, 10, :o7, 1982793600 + tz.transition 2033, 3, :o8, 1995494400 + tz.transition 2033, 10, :o7, 2014243200 + tz.transition 2034, 3, :o8, 2026944000 + tz.transition 2034, 10, :o7, 2045692800 + tz.transition 2035, 3, :o8, 2058393600 + tz.transition 2035, 10, :o7, 2077142400 + tz.transition 2036, 3, :o8, 2090448000 + tz.transition 2036, 10, :o7, 2108592000 + tz.transition 2037, 3, :o8, 2121897600 + tz.transition 2037, 10, :o7, 2140041600 + tz.transition 2038, 3, :o8, 4931021, 2 + tz.transition 2038, 10, :o7, 4931455, 2 + tz.transition 2039, 3, :o8, 4931749, 2 + tz.transition 2039, 10, :o7, 4932183, 2 + tz.transition 2040, 3, :o8, 4932477, 2 + tz.transition 2040, 10, :o7, 4932911, 2 + tz.transition 2041, 3, :o8, 4933219, 2 + tz.transition 2041, 10, :o7, 4933639, 2 + tz.transition 2042, 3, :o8, 4933947, 2 + tz.transition 2042, 10, :o7, 4934367, 2 + tz.transition 2043, 3, :o8, 4934675, 2 + tz.transition 2043, 10, :o7, 4935095, 2 + tz.transition 2044, 3, :o8, 4935403, 2 + tz.transition 2044, 10, :o7, 4935837, 2 + tz.transition 2045, 3, :o8, 4936131, 2 + tz.transition 2045, 10, :o7, 4936565, 2 + tz.transition 2046, 3, :o8, 4936859, 2 + tz.transition 2046, 10, :o7, 4937293, 2 + tz.transition 2047, 3, :o8, 4937601, 2 + tz.transition 2047, 10, :o7, 4938021, 2 + tz.transition 2048, 3, :o8, 4938329, 2 + tz.transition 2048, 10, :o7, 4938749, 2 + tz.transition 2049, 3, :o8, 4939057, 2 + tz.transition 2049, 10, :o7, 4939491, 2 + tz.transition 2050, 3, :o8, 4939785, 2 + tz.transition 2050, 10, :o7, 4940219, 2 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Bangkok.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Bangkok.rb new file mode 100644 index 000000000..139194e5e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Bangkok.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Bangkok + include TimezoneDefinition + + timezone 'Asia/Bangkok' do |tz| + tz.offset :o0, 24124, 0, :LMT + tz.offset :o1, 24124, 0, :BMT + tz.offset :o2, 25200, 0, :ICT + + tz.transition 1879, 12, :o1, 52006648769, 21600 + tz.transition 1920, 3, :o2, 52324168769, 21600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Chongqing.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Chongqing.rb new file mode 100644 index 000000000..8c94b4ba8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Chongqing.rb @@ -0,0 +1,33 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Chongqing + include TimezoneDefinition + + timezone 'Asia/Chongqing' do |tz| + tz.offset :o0, 25580, 0, :LMT + tz.offset :o1, 25200, 0, :LONT + tz.offset :o2, 28800, 0, :CST + tz.offset :o3, 28800, 3600, :CDT + + tz.transition 1927, 12, :o1, 10477063601, 4320 + tz.transition 1980, 4, :o2, 325962000 + tz.transition 1986, 5, :o3, 515520000 + tz.transition 1986, 9, :o2, 527007600 + tz.transition 1987, 4, :o3, 545155200 + tz.transition 1987, 9, :o2, 558457200 + tz.transition 1988, 4, :o3, 576604800 + tz.transition 1988, 9, :o2, 589906800 + tz.transition 1989, 4, :o3, 608659200 + tz.transition 1989, 9, :o2, 621961200 + tz.transition 1990, 4, :o3, 640108800 + tz.transition 1990, 9, :o2, 653410800 + tz.transition 1991, 4, :o3, 671558400 + tz.transition 1991, 9, :o2, 684860400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Dhaka.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Dhaka.rb new file mode 100644 index 000000000..ccd026550 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Dhaka.rb @@ -0,0 +1,27 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Dhaka + include TimezoneDefinition + + timezone 'Asia/Dhaka' do |tz| + tz.offset :o0, 21700, 0, :LMT + tz.offset :o1, 21200, 0, :HMT + tz.offset :o2, 23400, 0, :BURT + tz.offset :o3, 19800, 0, :IST + tz.offset :o4, 21600, 0, :DACT + tz.offset :o5, 21600, 0, :BDT + + tz.transition 1889, 12, :o1, 2083422167, 864 + tz.transition 1941, 9, :o2, 524937943, 216 + tz.transition 1942, 5, :o3, 116663723, 48 + tz.transition 1942, 8, :o2, 116668957, 48 + tz.transition 1951, 9, :o4, 116828123, 48 + tz.transition 1971, 3, :o5, 38772000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Hong_Kong.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Hong_Kong.rb new file mode 100644 index 000000000..f1edd75ac --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Hong_Kong.rb @@ -0,0 +1,87 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Hong_Kong + include TimezoneDefinition + + timezone 'Asia/Hong_Kong' do |tz| + tz.offset :o0, 27396, 0, :LMT + tz.offset :o1, 28800, 0, :HKT + tz.offset :o2, 28800, 3600, :HKST + + tz.transition 1904, 10, :o1, 5800279639, 2400 + tz.transition 1946, 4, :o2, 38910885, 16 + tz.transition 1946, 11, :o1, 116743453, 48 + tz.transition 1947, 4, :o2, 38916613, 16 + tz.transition 1947, 12, :o1, 116762365, 48 + tz.transition 1948, 5, :o2, 38922773, 16 + tz.transition 1948, 10, :o1, 116777053, 48 + tz.transition 1949, 4, :o2, 38928149, 16 + tz.transition 1949, 10, :o1, 116794525, 48 + tz.transition 1950, 4, :o2, 38933973, 16 + tz.transition 1950, 10, :o1, 116811997, 48 + tz.transition 1951, 3, :o2, 38939797, 16 + tz.transition 1951, 10, :o1, 116829469, 48 + tz.transition 1952, 4, :o2, 38945733, 16 + tz.transition 1952, 10, :o1, 116846941, 48 + tz.transition 1953, 4, :o2, 38951557, 16 + tz.transition 1953, 10, :o1, 116864749, 48 + tz.transition 1954, 3, :o2, 38957157, 16 + tz.transition 1954, 10, :o1, 116882221, 48 + tz.transition 1955, 3, :o2, 38962981, 16 + tz.transition 1955, 11, :o1, 116900029, 48 + tz.transition 1956, 3, :o2, 38968805, 16 + tz.transition 1956, 11, :o1, 116917501, 48 + tz.transition 1957, 3, :o2, 38974741, 16 + tz.transition 1957, 11, :o1, 116934973, 48 + tz.transition 1958, 3, :o2, 38980565, 16 + tz.transition 1958, 11, :o1, 116952445, 48 + tz.transition 1959, 3, :o2, 38986389, 16 + tz.transition 1959, 10, :o1, 116969917, 48 + tz.transition 1960, 3, :o2, 38992213, 16 + tz.transition 1960, 11, :o1, 116987725, 48 + tz.transition 1961, 3, :o2, 38998037, 16 + tz.transition 1961, 11, :o1, 117005197, 48 + tz.transition 1962, 3, :o2, 39003861, 16 + tz.transition 1962, 11, :o1, 117022669, 48 + tz.transition 1963, 3, :o2, 39009797, 16 + tz.transition 1963, 11, :o1, 117040141, 48 + tz.transition 1964, 3, :o2, 39015621, 16 + tz.transition 1964, 10, :o1, 117057613, 48 + tz.transition 1965, 4, :o2, 39021893, 16 + tz.transition 1965, 10, :o1, 117074413, 48 + tz.transition 1966, 4, :o2, 39027717, 16 + tz.transition 1966, 10, :o1, 117091885, 48 + tz.transition 1967, 4, :o2, 39033541, 16 + tz.transition 1967, 10, :o1, 117109693, 48 + tz.transition 1968, 4, :o2, 39039477, 16 + tz.transition 1968, 10, :o1, 117127165, 48 + tz.transition 1969, 4, :o2, 39045301, 16 + tz.transition 1969, 10, :o1, 117144637, 48 + tz.transition 1970, 4, :o2, 9315000 + tz.transition 1970, 10, :o1, 25036200 + tz.transition 1971, 4, :o2, 40764600 + tz.transition 1971, 10, :o1, 56485800 + tz.transition 1972, 4, :o2, 72214200 + tz.transition 1972, 10, :o1, 88540200 + tz.transition 1973, 4, :o2, 104268600 + tz.transition 1973, 10, :o1, 119989800 + tz.transition 1974, 4, :o2, 135718200 + tz.transition 1974, 10, :o1, 151439400 + tz.transition 1975, 4, :o2, 167167800 + tz.transition 1975, 10, :o1, 182889000 + tz.transition 1976, 4, :o2, 198617400 + tz.transition 1976, 10, :o1, 214338600 + tz.transition 1977, 4, :o2, 230067000 + tz.transition 1977, 10, :o1, 245788200 + tz.transition 1979, 5, :o2, 295385400 + tz.transition 1979, 10, :o1, 309292200 + tz.transition 1980, 5, :o2, 326835000 + tz.transition 1980, 10, :o1, 340741800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Irkutsk.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Irkutsk.rb new file mode 100644 index 000000000..2d47d9580 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Irkutsk.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Irkutsk + include TimezoneDefinition + + timezone 'Asia/Irkutsk' do |tz| + tz.offset :o0, 25040, 0, :LMT + tz.offset :o1, 25040, 0, :IMT + tz.offset :o2, 25200, 0, :IRKT + tz.offset :o3, 28800, 0, :IRKT + tz.offset :o4, 28800, 3600, :IRKST + tz.offset :o5, 25200, 3600, :IRKST + + tz.transition 1879, 12, :o1, 2600332427, 1080 + tz.transition 1920, 1, :o2, 2616136067, 1080 + tz.transition 1930, 6, :o3, 58227557, 24 + tz.transition 1981, 3, :o4, 354902400 + tz.transition 1981, 9, :o3, 370710000 + tz.transition 1982, 3, :o4, 386438400 + tz.transition 1982, 9, :o3, 402246000 + tz.transition 1983, 3, :o4, 417974400 + tz.transition 1983, 9, :o3, 433782000 + tz.transition 1984, 3, :o4, 449596800 + tz.transition 1984, 9, :o3, 465328800 + tz.transition 1985, 3, :o4, 481053600 + tz.transition 1985, 9, :o3, 496778400 + tz.transition 1986, 3, :o4, 512503200 + tz.transition 1986, 9, :o3, 528228000 + tz.transition 1987, 3, :o4, 543952800 + tz.transition 1987, 9, :o3, 559677600 + tz.transition 1988, 3, :o4, 575402400 + tz.transition 1988, 9, :o3, 591127200 + tz.transition 1989, 3, :o4, 606852000 + tz.transition 1989, 9, :o3, 622576800 + tz.transition 1990, 3, :o4, 638301600 + tz.transition 1990, 9, :o3, 654631200 + tz.transition 1991, 3, :o5, 670356000 + tz.transition 1991, 9, :o2, 686084400 + tz.transition 1992, 1, :o3, 695761200 + tz.transition 1992, 3, :o4, 701794800 + tz.transition 1992, 9, :o3, 717516000 + tz.transition 1993, 3, :o4, 733255200 + tz.transition 1993, 9, :o3, 748980000 + tz.transition 1994, 3, :o4, 764704800 + tz.transition 1994, 9, :o3, 780429600 + tz.transition 1995, 3, :o4, 796154400 + tz.transition 1995, 9, :o3, 811879200 + tz.transition 1996, 3, :o4, 828208800 + tz.transition 1996, 10, :o3, 846352800 + tz.transition 1997, 3, :o4, 859658400 + tz.transition 1997, 10, :o3, 877802400 + tz.transition 1998, 3, :o4, 891108000 + tz.transition 1998, 10, :o3, 909252000 + tz.transition 1999, 3, :o4, 922557600 + tz.transition 1999, 10, :o3, 941306400 + tz.transition 2000, 3, :o4, 954007200 + tz.transition 2000, 10, :o3, 972756000 + tz.transition 2001, 3, :o4, 985456800 + tz.transition 2001, 10, :o3, 1004205600 + tz.transition 2002, 3, :o4, 1017511200 + tz.transition 2002, 10, :o3, 1035655200 + tz.transition 2003, 3, :o4, 1048960800 + tz.transition 2003, 10, :o3, 1067104800 + tz.transition 2004, 3, :o4, 1080410400 + tz.transition 2004, 10, :o3, 1099159200 + tz.transition 2005, 3, :o4, 1111860000 + tz.transition 2005, 10, :o3, 1130608800 + tz.transition 2006, 3, :o4, 1143309600 + tz.transition 2006, 10, :o3, 1162058400 + tz.transition 2007, 3, :o4, 1174759200 + tz.transition 2007, 10, :o3, 1193508000 + tz.transition 2008, 3, :o4, 1206813600 + tz.transition 2008, 10, :o3, 1224957600 + tz.transition 2009, 3, :o4, 1238263200 + tz.transition 2009, 10, :o3, 1256407200 + tz.transition 2010, 3, :o4, 1269712800 + tz.transition 2010, 10, :o3, 1288461600 + tz.transition 2011, 3, :o4, 1301162400 + tz.transition 2011, 10, :o3, 1319911200 + tz.transition 2012, 3, :o4, 1332612000 + tz.transition 2012, 10, :o3, 1351360800 + tz.transition 2013, 3, :o4, 1364666400 + tz.transition 2013, 10, :o3, 1382810400 + tz.transition 2014, 3, :o4, 1396116000 + tz.transition 2014, 10, :o3, 1414260000 + tz.transition 2015, 3, :o4, 1427565600 + tz.transition 2015, 10, :o3, 1445709600 + tz.transition 2016, 3, :o4, 1459015200 + tz.transition 2016, 10, :o3, 1477764000 + tz.transition 2017, 3, :o4, 1490464800 + tz.transition 2017, 10, :o3, 1509213600 + tz.transition 2018, 3, :o4, 1521914400 + tz.transition 2018, 10, :o3, 1540663200 + tz.transition 2019, 3, :o4, 1553968800 + tz.transition 2019, 10, :o3, 1572112800 + tz.transition 2020, 3, :o4, 1585418400 + tz.transition 2020, 10, :o3, 1603562400 + tz.transition 2021, 3, :o4, 1616868000 + tz.transition 2021, 10, :o3, 1635616800 + tz.transition 2022, 3, :o4, 1648317600 + tz.transition 2022, 10, :o3, 1667066400 + tz.transition 2023, 3, :o4, 1679767200 + tz.transition 2023, 10, :o3, 1698516000 + tz.transition 2024, 3, :o4, 1711821600 + tz.transition 2024, 10, :o3, 1729965600 + tz.transition 2025, 3, :o4, 1743271200 + tz.transition 2025, 10, :o3, 1761415200 + tz.transition 2026, 3, :o4, 1774720800 + tz.transition 2026, 10, :o3, 1792864800 + tz.transition 2027, 3, :o4, 1806170400 + tz.transition 2027, 10, :o3, 1824919200 + tz.transition 2028, 3, :o4, 1837620000 + tz.transition 2028, 10, :o3, 1856368800 + tz.transition 2029, 3, :o4, 1869069600 + tz.transition 2029, 10, :o3, 1887818400 + tz.transition 2030, 3, :o4, 1901124000 + tz.transition 2030, 10, :o3, 1919268000 + tz.transition 2031, 3, :o4, 1932573600 + tz.transition 2031, 10, :o3, 1950717600 + tz.transition 2032, 3, :o4, 1964023200 + tz.transition 2032, 10, :o3, 1982772000 + tz.transition 2033, 3, :o4, 1995472800 + tz.transition 2033, 10, :o3, 2014221600 + tz.transition 2034, 3, :o4, 2026922400 + tz.transition 2034, 10, :o3, 2045671200 + tz.transition 2035, 3, :o4, 2058372000 + tz.transition 2035, 10, :o3, 2077120800 + tz.transition 2036, 3, :o4, 2090426400 + tz.transition 2036, 10, :o3, 2108570400 + tz.transition 2037, 3, :o4, 2121876000 + tz.transition 2037, 10, :o3, 2140020000 + tz.transition 2038, 3, :o4, 9862041, 4 + tz.transition 2038, 10, :o3, 9862909, 4 + tz.transition 2039, 3, :o4, 9863497, 4 + tz.transition 2039, 10, :o3, 9864365, 4 + tz.transition 2040, 3, :o4, 9864953, 4 + tz.transition 2040, 10, :o3, 9865821, 4 + tz.transition 2041, 3, :o4, 9866437, 4 + tz.transition 2041, 10, :o3, 9867277, 4 + tz.transition 2042, 3, :o4, 9867893, 4 + tz.transition 2042, 10, :o3, 9868733, 4 + tz.transition 2043, 3, :o4, 9869349, 4 + tz.transition 2043, 10, :o3, 9870189, 4 + tz.transition 2044, 3, :o4, 9870805, 4 + tz.transition 2044, 10, :o3, 9871673, 4 + tz.transition 2045, 3, :o4, 9872261, 4 + tz.transition 2045, 10, :o3, 9873129, 4 + tz.transition 2046, 3, :o4, 9873717, 4 + tz.transition 2046, 10, :o3, 9874585, 4 + tz.transition 2047, 3, :o4, 9875201, 4 + tz.transition 2047, 10, :o3, 9876041, 4 + tz.transition 2048, 3, :o4, 9876657, 4 + tz.transition 2048, 10, :o3, 9877497, 4 + tz.transition 2049, 3, :o4, 9878113, 4 + tz.transition 2049, 10, :o3, 9878981, 4 + tz.transition 2050, 3, :o4, 9879569, 4 + tz.transition 2050, 10, :o3, 9880437, 4 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jakarta.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jakarta.rb new file mode 100644 index 000000000..cc58fa173 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jakarta.rb @@ -0,0 +1,30 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Jakarta + include TimezoneDefinition + + timezone 'Asia/Jakarta' do |tz| + tz.offset :o0, 25632, 0, :LMT + tz.offset :o1, 25632, 0, :JMT + tz.offset :o2, 26400, 0, :JAVT + tz.offset :o3, 27000, 0, :WIT + tz.offset :o4, 32400, 0, :JST + tz.offset :o5, 28800, 0, :WIT + tz.offset :o6, 25200, 0, :WIT + + tz.transition 1867, 8, :o1, 720956461, 300 + tz.transition 1923, 12, :o2, 87256267, 36 + tz.transition 1932, 10, :o3, 87372439, 36 + tz.transition 1942, 3, :o4, 38887059, 16 + tz.transition 1945, 9, :o3, 19453769, 8 + tz.transition 1948, 4, :o5, 38922755, 16 + tz.transition 1950, 4, :o3, 14600413, 6 + tz.transition 1963, 12, :o6, 39014323, 16 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jerusalem.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jerusalem.rb new file mode 100644 index 000000000..9b737b899 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Jerusalem.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Jerusalem + include TimezoneDefinition + + timezone 'Asia/Jerusalem' do |tz| + tz.offset :o0, 8456, 0, :LMT + tz.offset :o1, 8440, 0, :JMT + tz.offset :o2, 7200, 0, :IST + tz.offset :o3, 7200, 3600, :IDT + tz.offset :o4, 7200, 7200, :IDDT + + tz.transition 1879, 12, :o1, 26003326343, 10800 + tz.transition 1917, 12, :o2, 5230643909, 2160 + tz.transition 1940, 5, :o3, 29157377, 12 + tz.transition 1942, 10, :o2, 19445315, 8 + tz.transition 1943, 4, :o3, 4861631, 2 + tz.transition 1943, 10, :o2, 19448235, 8 + tz.transition 1944, 3, :o3, 29174177, 12 + tz.transition 1944, 10, :o2, 19451163, 8 + tz.transition 1945, 4, :o3, 29178737, 12 + tz.transition 1945, 10, :o2, 58362251, 24 + tz.transition 1946, 4, :o3, 4863853, 2 + tz.transition 1946, 10, :o2, 19457003, 8 + tz.transition 1948, 5, :o4, 29192333, 12 + tz.transition 1948, 8, :o3, 7298386, 3 + tz.transition 1948, 10, :o2, 58388555, 24 + tz.transition 1949, 4, :o3, 29196449, 12 + tz.transition 1949, 10, :o2, 58397315, 24 + tz.transition 1950, 4, :o3, 29200649, 12 + tz.transition 1950, 9, :o2, 4867079, 2 + tz.transition 1951, 3, :o3, 29204849, 12 + tz.transition 1951, 11, :o2, 4867923, 2 + tz.transition 1952, 4, :o3, 4868245, 2 + tz.transition 1952, 10, :o2, 4868609, 2 + tz.transition 1953, 4, :o3, 4868959, 2 + tz.transition 1953, 9, :o2, 4869267, 2 + tz.transition 1954, 6, :o3, 29218877, 12 + tz.transition 1954, 9, :o2, 19479979, 8 + tz.transition 1955, 6, :o3, 4870539, 2 + tz.transition 1955, 9, :o2, 19482891, 8 + tz.transition 1956, 6, :o3, 29227529, 12 + tz.transition 1956, 9, :o2, 4871493, 2 + tz.transition 1957, 4, :o3, 4871915, 2 + tz.transition 1957, 9, :o2, 19488827, 8 + tz.transition 1974, 7, :o3, 142380000 + tz.transition 1974, 10, :o2, 150843600 + tz.transition 1975, 4, :o3, 167176800 + tz.transition 1975, 8, :o2, 178664400 + tz.transition 1985, 4, :o3, 482277600 + tz.transition 1985, 9, :o2, 495579600 + tz.transition 1986, 5, :o3, 516751200 + tz.transition 1986, 9, :o2, 526424400 + tz.transition 1987, 4, :o3, 545436000 + tz.transition 1987, 9, :o2, 558478800 + tz.transition 1988, 4, :o3, 576540000 + tz.transition 1988, 9, :o2, 589237200 + tz.transition 1989, 4, :o3, 609890400 + tz.transition 1989, 9, :o2, 620773200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 8, :o2, 651618000 + tz.transition 1991, 3, :o3, 669765600 + tz.transition 1991, 8, :o2, 683672400 + tz.transition 1992, 3, :o3, 701820000 + tz.transition 1992, 9, :o2, 715726800 + tz.transition 1993, 4, :o3, 733701600 + tz.transition 1993, 9, :o2, 747176400 + tz.transition 1994, 3, :o3, 765151200 + tz.transition 1994, 8, :o2, 778021200 + tz.transition 1995, 3, :o3, 796600800 + tz.transition 1995, 9, :o2, 810075600 + tz.transition 1996, 3, :o3, 826840800 + tz.transition 1996, 9, :o2, 842821200 + tz.transition 1997, 3, :o3, 858895200 + tz.transition 1997, 9, :o2, 874184400 + tz.transition 1998, 3, :o3, 890344800 + tz.transition 1998, 9, :o2, 905029200 + tz.transition 1999, 4, :o3, 923011200 + tz.transition 1999, 9, :o2, 936313200 + tz.transition 2000, 4, :o3, 955670400 + tz.transition 2000, 10, :o2, 970783200 + tz.transition 2001, 4, :o3, 986770800 + tz.transition 2001, 9, :o2, 1001282400 + tz.transition 2002, 3, :o3, 1017356400 + tz.transition 2002, 10, :o2, 1033941600 + tz.transition 2003, 3, :o3, 1048806000 + tz.transition 2003, 10, :o2, 1065132000 + tz.transition 2004, 4, :o3, 1081292400 + tz.transition 2004, 9, :o2, 1095804000 + tz.transition 2005, 4, :o3, 1112313600 + tz.transition 2005, 10, :o2, 1128812400 + tz.transition 2006, 3, :o3, 1143763200 + tz.transition 2006, 9, :o2, 1159657200 + tz.transition 2007, 3, :o3, 1175212800 + tz.transition 2007, 9, :o2, 1189897200 + tz.transition 2008, 3, :o3, 1206662400 + tz.transition 2008, 10, :o2, 1223161200 + tz.transition 2009, 3, :o3, 1238112000 + tz.transition 2009, 9, :o2, 1254006000 + tz.transition 2010, 3, :o3, 1269561600 + tz.transition 2010, 9, :o2, 1284246000 + tz.transition 2011, 4, :o3, 1301616000 + tz.transition 2011, 10, :o2, 1317510000 + tz.transition 2012, 3, :o3, 1333065600 + tz.transition 2012, 9, :o2, 1348354800 + tz.transition 2013, 3, :o3, 1364515200 + tz.transition 2013, 9, :o2, 1378594800 + tz.transition 2014, 3, :o3, 1395964800 + tz.transition 2014, 9, :o2, 1411858800 + tz.transition 2015, 3, :o3, 1427414400 + tz.transition 2015, 9, :o2, 1442703600 + tz.transition 2016, 4, :o3, 1459468800 + tz.transition 2016, 10, :o2, 1475967600 + tz.transition 2017, 3, :o3, 1490918400 + tz.transition 2017, 9, :o2, 1506207600 + tz.transition 2018, 3, :o3, 1522368000 + tz.transition 2018, 9, :o2, 1537052400 + tz.transition 2019, 3, :o3, 1553817600 + tz.transition 2019, 10, :o2, 1570316400 + tz.transition 2020, 3, :o3, 1585267200 + tz.transition 2020, 9, :o2, 1601161200 + tz.transition 2021, 3, :o3, 1616716800 + tz.transition 2021, 9, :o2, 1631401200 + tz.transition 2022, 4, :o3, 1648771200 + tz.transition 2022, 10, :o2, 1664665200 + tz.transition 2023, 3, :o3, 1680220800 + tz.transition 2023, 9, :o2, 1695510000 + tz.transition 2024, 3, :o3, 1711670400 + tz.transition 2024, 10, :o2, 1728169200 + tz.transition 2025, 3, :o3, 1743120000 + tz.transition 2025, 9, :o2, 1759014000 + tz.transition 2026, 3, :o3, 1774569600 + tz.transition 2026, 9, :o2, 1789858800 + tz.transition 2027, 3, :o3, 1806019200 + tz.transition 2027, 10, :o2, 1823122800 + tz.transition 2028, 3, :o3, 1838073600 + tz.transition 2028, 9, :o2, 1853362800 + tz.transition 2029, 3, :o3, 1869523200 + tz.transition 2029, 9, :o2, 1884207600 + tz.transition 2030, 3, :o3, 1900972800 + tz.transition 2030, 10, :o2, 1917471600 + tz.transition 2031, 3, :o3, 1932422400 + tz.transition 2031, 9, :o2, 1947711600 + tz.transition 2032, 3, :o3, 1963872000 + tz.transition 2032, 9, :o2, 1978556400 + tz.transition 2033, 4, :o3, 1995926400 + tz.transition 2033, 10, :o2, 2011820400 + tz.transition 2034, 3, :o3, 2027376000 + tz.transition 2034, 9, :o2, 2042060400 + tz.transition 2035, 3, :o3, 2058825600 + tz.transition 2035, 10, :o2, 2075324400 + tz.transition 2036, 3, :o3, 2090275200 + tz.transition 2036, 9, :o2, 2106169200 + tz.transition 2037, 3, :o3, 2121724800 + tz.transition 2037, 9, :o2, 2136409200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kabul.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kabul.rb new file mode 100644 index 000000000..669c09790 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kabul.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kabul + include TimezoneDefinition + + timezone 'Asia/Kabul' do |tz| + tz.offset :o0, 16608, 0, :LMT + tz.offset :o1, 14400, 0, :AFT + tz.offset :o2, 16200, 0, :AFT + + tz.transition 1889, 12, :o1, 2170231477, 900 + tz.transition 1944, 12, :o2, 7294369, 3 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kamchatka.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kamchatka.rb new file mode 100644 index 000000000..2f1690b3a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kamchatka.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kamchatka + include TimezoneDefinition + + timezone 'Asia/Kamchatka' do |tz| + tz.offset :o0, 38076, 0, :LMT + tz.offset :o1, 39600, 0, :PETT + tz.offset :o2, 43200, 0, :PETT + tz.offset :o3, 43200, 3600, :PETST + tz.offset :o4, 39600, 3600, :PETST + + tz.transition 1922, 11, :o1, 17448250027, 7200 + tz.transition 1930, 6, :o2, 58227553, 24 + tz.transition 1981, 3, :o3, 354888000 + tz.transition 1981, 9, :o2, 370695600 + tz.transition 1982, 3, :o3, 386424000 + tz.transition 1982, 9, :o2, 402231600 + tz.transition 1983, 3, :o3, 417960000 + tz.transition 1983, 9, :o2, 433767600 + tz.transition 1984, 3, :o3, 449582400 + tz.transition 1984, 9, :o2, 465314400 + tz.transition 1985, 3, :o3, 481039200 + tz.transition 1985, 9, :o2, 496764000 + tz.transition 1986, 3, :o3, 512488800 + tz.transition 1986, 9, :o2, 528213600 + tz.transition 1987, 3, :o3, 543938400 + tz.transition 1987, 9, :o2, 559663200 + tz.transition 1988, 3, :o3, 575388000 + tz.transition 1988, 9, :o2, 591112800 + tz.transition 1989, 3, :o3, 606837600 + tz.transition 1989, 9, :o2, 622562400 + tz.transition 1990, 3, :o3, 638287200 + tz.transition 1990, 9, :o2, 654616800 + tz.transition 1991, 3, :o4, 670341600 + tz.transition 1991, 9, :o1, 686070000 + tz.transition 1992, 1, :o2, 695746800 + tz.transition 1992, 3, :o3, 701780400 + tz.transition 1992, 9, :o2, 717501600 + tz.transition 1993, 3, :o3, 733240800 + tz.transition 1993, 9, :o2, 748965600 + tz.transition 1994, 3, :o3, 764690400 + tz.transition 1994, 9, :o2, 780415200 + tz.transition 1995, 3, :o3, 796140000 + tz.transition 1995, 9, :o2, 811864800 + tz.transition 1996, 3, :o3, 828194400 + tz.transition 1996, 10, :o2, 846338400 + tz.transition 1997, 3, :o3, 859644000 + tz.transition 1997, 10, :o2, 877788000 + tz.transition 1998, 3, :o3, 891093600 + tz.transition 1998, 10, :o2, 909237600 + tz.transition 1999, 3, :o3, 922543200 + tz.transition 1999, 10, :o2, 941292000 + tz.transition 2000, 3, :o3, 953992800 + tz.transition 2000, 10, :o2, 972741600 + tz.transition 2001, 3, :o3, 985442400 + tz.transition 2001, 10, :o2, 1004191200 + tz.transition 2002, 3, :o3, 1017496800 + tz.transition 2002, 10, :o2, 1035640800 + tz.transition 2003, 3, :o3, 1048946400 + tz.transition 2003, 10, :o2, 1067090400 + tz.transition 2004, 3, :o3, 1080396000 + tz.transition 2004, 10, :o2, 1099144800 + tz.transition 2005, 3, :o3, 1111845600 + tz.transition 2005, 10, :o2, 1130594400 + tz.transition 2006, 3, :o3, 1143295200 + tz.transition 2006, 10, :o2, 1162044000 + tz.transition 2007, 3, :o3, 1174744800 + tz.transition 2007, 10, :o2, 1193493600 + tz.transition 2008, 3, :o3, 1206799200 + tz.transition 2008, 10, :o2, 1224943200 + tz.transition 2009, 3, :o3, 1238248800 + tz.transition 2009, 10, :o2, 1256392800 + tz.transition 2010, 3, :o3, 1269698400 + tz.transition 2010, 10, :o2, 1288447200 + tz.transition 2011, 3, :o3, 1301148000 + tz.transition 2011, 10, :o2, 1319896800 + tz.transition 2012, 3, :o3, 1332597600 + tz.transition 2012, 10, :o2, 1351346400 + tz.transition 2013, 3, :o3, 1364652000 + tz.transition 2013, 10, :o2, 1382796000 + tz.transition 2014, 3, :o3, 1396101600 + tz.transition 2014, 10, :o2, 1414245600 + tz.transition 2015, 3, :o3, 1427551200 + tz.transition 2015, 10, :o2, 1445695200 + tz.transition 2016, 3, :o3, 1459000800 + tz.transition 2016, 10, :o2, 1477749600 + tz.transition 2017, 3, :o3, 1490450400 + tz.transition 2017, 10, :o2, 1509199200 + tz.transition 2018, 3, :o3, 1521900000 + tz.transition 2018, 10, :o2, 1540648800 + tz.transition 2019, 3, :o3, 1553954400 + tz.transition 2019, 10, :o2, 1572098400 + tz.transition 2020, 3, :o3, 1585404000 + tz.transition 2020, 10, :o2, 1603548000 + tz.transition 2021, 3, :o3, 1616853600 + tz.transition 2021, 10, :o2, 1635602400 + tz.transition 2022, 3, :o3, 1648303200 + tz.transition 2022, 10, :o2, 1667052000 + tz.transition 2023, 3, :o3, 1679752800 + tz.transition 2023, 10, :o2, 1698501600 + tz.transition 2024, 3, :o3, 1711807200 + tz.transition 2024, 10, :o2, 1729951200 + tz.transition 2025, 3, :o3, 1743256800 + tz.transition 2025, 10, :o2, 1761400800 + tz.transition 2026, 3, :o3, 1774706400 + tz.transition 2026, 10, :o2, 1792850400 + tz.transition 2027, 3, :o3, 1806156000 + tz.transition 2027, 10, :o2, 1824904800 + tz.transition 2028, 3, :o3, 1837605600 + tz.transition 2028, 10, :o2, 1856354400 + tz.transition 2029, 3, :o3, 1869055200 + tz.transition 2029, 10, :o2, 1887804000 + tz.transition 2030, 3, :o3, 1901109600 + tz.transition 2030, 10, :o2, 1919253600 + tz.transition 2031, 3, :o3, 1932559200 + tz.transition 2031, 10, :o2, 1950703200 + tz.transition 2032, 3, :o3, 1964008800 + tz.transition 2032, 10, :o2, 1982757600 + tz.transition 2033, 3, :o3, 1995458400 + tz.transition 2033, 10, :o2, 2014207200 + tz.transition 2034, 3, :o3, 2026908000 + tz.transition 2034, 10, :o2, 2045656800 + tz.transition 2035, 3, :o3, 2058357600 + tz.transition 2035, 10, :o2, 2077106400 + tz.transition 2036, 3, :o3, 2090412000 + tz.transition 2036, 10, :o2, 2108556000 + tz.transition 2037, 3, :o3, 2121861600 + tz.transition 2037, 10, :o2, 2140005600 + tz.transition 2038, 3, :o3, 29586121, 12 + tz.transition 2038, 10, :o2, 29588725, 12 + tz.transition 2039, 3, :o3, 29590489, 12 + tz.transition 2039, 10, :o2, 29593093, 12 + tz.transition 2040, 3, :o3, 29594857, 12 + tz.transition 2040, 10, :o2, 29597461, 12 + tz.transition 2041, 3, :o3, 29599309, 12 + tz.transition 2041, 10, :o2, 29601829, 12 + tz.transition 2042, 3, :o3, 29603677, 12 + tz.transition 2042, 10, :o2, 29606197, 12 + tz.transition 2043, 3, :o3, 29608045, 12 + tz.transition 2043, 10, :o2, 29610565, 12 + tz.transition 2044, 3, :o3, 29612413, 12 + tz.transition 2044, 10, :o2, 29615017, 12 + tz.transition 2045, 3, :o3, 29616781, 12 + tz.transition 2045, 10, :o2, 29619385, 12 + tz.transition 2046, 3, :o3, 29621149, 12 + tz.transition 2046, 10, :o2, 29623753, 12 + tz.transition 2047, 3, :o3, 29625601, 12 + tz.transition 2047, 10, :o2, 29628121, 12 + tz.transition 2048, 3, :o3, 29629969, 12 + tz.transition 2048, 10, :o2, 29632489, 12 + tz.transition 2049, 3, :o3, 29634337, 12 + tz.transition 2049, 10, :o2, 29636941, 12 + tz.transition 2050, 3, :o3, 29638705, 12 + tz.transition 2050, 10, :o2, 29641309, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Karachi.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Karachi.rb new file mode 100644 index 000000000..baa0d41d7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Karachi.rb @@ -0,0 +1,28 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Karachi + include TimezoneDefinition + + timezone 'Asia/Karachi' do |tz| + tz.offset :o0, 16092, 0, :LMT + tz.offset :o1, 19800, 0, :IST + tz.offset :o2, 19800, 3600, :IST + tz.offset :o3, 18000, 0, :KART + tz.offset :o4, 18000, 0, :PKT + tz.offset :o5, 18000, 3600, :PKST + + tz.transition 1906, 12, :o1, 1934061051, 800 + tz.transition 1942, 8, :o2, 116668957, 48 + tz.transition 1945, 10, :o1, 116723675, 48 + tz.transition 1951, 9, :o3, 116828125, 48 + tz.transition 1971, 3, :o4, 38775600 + tz.transition 2002, 4, :o5, 1018119660 + tz.transition 2002, 10, :o4, 1033840860 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Katmandu.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Katmandu.rb new file mode 100644 index 000000000..37dbea1f4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Katmandu.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Katmandu + include TimezoneDefinition + + timezone 'Asia/Katmandu' do |tz| + tz.offset :o0, 20476, 0, :LMT + tz.offset :o1, 19800, 0, :IST + tz.offset :o2, 20700, 0, :NPT + + tz.transition 1919, 12, :o1, 52322204081, 21600 + tz.transition 1985, 12, :o2, 504901800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kolkata.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kolkata.rb new file mode 100644 index 000000000..1b6ffbd59 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kolkata.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kolkata + include TimezoneDefinition + + timezone 'Asia/Kolkata' do |tz| + tz.offset :o0, 21208, 0, :LMT + tz.offset :o1, 21200, 0, :HMT + tz.offset :o2, 23400, 0, :BURT + tz.offset :o3, 19800, 0, :IST + tz.offset :o4, 19800, 3600, :IST + + tz.transition 1879, 12, :o1, 26003324749, 10800 + tz.transition 1941, 9, :o2, 524937943, 216 + tz.transition 1942, 5, :o3, 116663723, 48 + tz.transition 1942, 8, :o4, 116668957, 48 + tz.transition 1945, 10, :o3, 116723675, 48 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Krasnoyarsk.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Krasnoyarsk.rb new file mode 100644 index 000000000..d6c503c15 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Krasnoyarsk.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Krasnoyarsk + include TimezoneDefinition + + timezone 'Asia/Krasnoyarsk' do |tz| + tz.offset :o0, 22280, 0, :LMT + tz.offset :o1, 21600, 0, :KRAT + tz.offset :o2, 25200, 0, :KRAT + tz.offset :o3, 25200, 3600, :KRAST + tz.offset :o4, 21600, 3600, :KRAST + + tz.transition 1920, 1, :o1, 5232231163, 2160 + tz.transition 1930, 6, :o2, 9704593, 4 + tz.transition 1981, 3, :o3, 354906000 + tz.transition 1981, 9, :o2, 370713600 + tz.transition 1982, 3, :o3, 386442000 + tz.transition 1982, 9, :o2, 402249600 + tz.transition 1983, 3, :o3, 417978000 + tz.transition 1983, 9, :o2, 433785600 + tz.transition 1984, 3, :o3, 449600400 + tz.transition 1984, 9, :o2, 465332400 + tz.transition 1985, 3, :o3, 481057200 + tz.transition 1985, 9, :o2, 496782000 + tz.transition 1986, 3, :o3, 512506800 + tz.transition 1986, 9, :o2, 528231600 + tz.transition 1987, 3, :o3, 543956400 + tz.transition 1987, 9, :o2, 559681200 + tz.transition 1988, 3, :o3, 575406000 + tz.transition 1988, 9, :o2, 591130800 + tz.transition 1989, 3, :o3, 606855600 + tz.transition 1989, 9, :o2, 622580400 + tz.transition 1990, 3, :o3, 638305200 + tz.transition 1990, 9, :o2, 654634800 + tz.transition 1991, 3, :o4, 670359600 + tz.transition 1991, 9, :o1, 686088000 + tz.transition 1992, 1, :o2, 695764800 + tz.transition 1992, 3, :o3, 701798400 + tz.transition 1992, 9, :o2, 717519600 + tz.transition 1993, 3, :o3, 733258800 + tz.transition 1993, 9, :o2, 748983600 + tz.transition 1994, 3, :o3, 764708400 + tz.transition 1994, 9, :o2, 780433200 + tz.transition 1995, 3, :o3, 796158000 + tz.transition 1995, 9, :o2, 811882800 + tz.transition 1996, 3, :o3, 828212400 + tz.transition 1996, 10, :o2, 846356400 + tz.transition 1997, 3, :o3, 859662000 + tz.transition 1997, 10, :o2, 877806000 + tz.transition 1998, 3, :o3, 891111600 + tz.transition 1998, 10, :o2, 909255600 + tz.transition 1999, 3, :o3, 922561200 + tz.transition 1999, 10, :o2, 941310000 + tz.transition 2000, 3, :o3, 954010800 + tz.transition 2000, 10, :o2, 972759600 + tz.transition 2001, 3, :o3, 985460400 + tz.transition 2001, 10, :o2, 1004209200 + tz.transition 2002, 3, :o3, 1017514800 + tz.transition 2002, 10, :o2, 1035658800 + tz.transition 2003, 3, :o3, 1048964400 + tz.transition 2003, 10, :o2, 1067108400 + tz.transition 2004, 3, :o3, 1080414000 + tz.transition 2004, 10, :o2, 1099162800 + tz.transition 2005, 3, :o3, 1111863600 + tz.transition 2005, 10, :o2, 1130612400 + tz.transition 2006, 3, :o3, 1143313200 + tz.transition 2006, 10, :o2, 1162062000 + tz.transition 2007, 3, :o3, 1174762800 + tz.transition 2007, 10, :o2, 1193511600 + tz.transition 2008, 3, :o3, 1206817200 + tz.transition 2008, 10, :o2, 1224961200 + tz.transition 2009, 3, :o3, 1238266800 + tz.transition 2009, 10, :o2, 1256410800 + tz.transition 2010, 3, :o3, 1269716400 + tz.transition 2010, 10, :o2, 1288465200 + tz.transition 2011, 3, :o3, 1301166000 + tz.transition 2011, 10, :o2, 1319914800 + tz.transition 2012, 3, :o3, 1332615600 + tz.transition 2012, 10, :o2, 1351364400 + tz.transition 2013, 3, :o3, 1364670000 + tz.transition 2013, 10, :o2, 1382814000 + tz.transition 2014, 3, :o3, 1396119600 + tz.transition 2014, 10, :o2, 1414263600 + tz.transition 2015, 3, :o3, 1427569200 + tz.transition 2015, 10, :o2, 1445713200 + tz.transition 2016, 3, :o3, 1459018800 + tz.transition 2016, 10, :o2, 1477767600 + tz.transition 2017, 3, :o3, 1490468400 + tz.transition 2017, 10, :o2, 1509217200 + tz.transition 2018, 3, :o3, 1521918000 + tz.transition 2018, 10, :o2, 1540666800 + tz.transition 2019, 3, :o3, 1553972400 + tz.transition 2019, 10, :o2, 1572116400 + tz.transition 2020, 3, :o3, 1585422000 + tz.transition 2020, 10, :o2, 1603566000 + tz.transition 2021, 3, :o3, 1616871600 + tz.transition 2021, 10, :o2, 1635620400 + tz.transition 2022, 3, :o3, 1648321200 + tz.transition 2022, 10, :o2, 1667070000 + tz.transition 2023, 3, :o3, 1679770800 + tz.transition 2023, 10, :o2, 1698519600 + tz.transition 2024, 3, :o3, 1711825200 + tz.transition 2024, 10, :o2, 1729969200 + tz.transition 2025, 3, :o3, 1743274800 + tz.transition 2025, 10, :o2, 1761418800 + tz.transition 2026, 3, :o3, 1774724400 + tz.transition 2026, 10, :o2, 1792868400 + tz.transition 2027, 3, :o3, 1806174000 + tz.transition 2027, 10, :o2, 1824922800 + tz.transition 2028, 3, :o3, 1837623600 + tz.transition 2028, 10, :o2, 1856372400 + tz.transition 2029, 3, :o3, 1869073200 + tz.transition 2029, 10, :o2, 1887822000 + tz.transition 2030, 3, :o3, 1901127600 + tz.transition 2030, 10, :o2, 1919271600 + tz.transition 2031, 3, :o3, 1932577200 + tz.transition 2031, 10, :o2, 1950721200 + tz.transition 2032, 3, :o3, 1964026800 + tz.transition 2032, 10, :o2, 1982775600 + tz.transition 2033, 3, :o3, 1995476400 + tz.transition 2033, 10, :o2, 2014225200 + tz.transition 2034, 3, :o3, 2026926000 + tz.transition 2034, 10, :o2, 2045674800 + tz.transition 2035, 3, :o3, 2058375600 + tz.transition 2035, 10, :o2, 2077124400 + tz.transition 2036, 3, :o3, 2090430000 + tz.transition 2036, 10, :o2, 2108574000 + tz.transition 2037, 3, :o3, 2121879600 + tz.transition 2037, 10, :o2, 2140023600 + tz.transition 2038, 3, :o3, 59172247, 24 + tz.transition 2038, 10, :o2, 59177455, 24 + tz.transition 2039, 3, :o3, 59180983, 24 + tz.transition 2039, 10, :o2, 59186191, 24 + tz.transition 2040, 3, :o3, 59189719, 24 + tz.transition 2040, 10, :o2, 59194927, 24 + tz.transition 2041, 3, :o3, 59198623, 24 + tz.transition 2041, 10, :o2, 59203663, 24 + tz.transition 2042, 3, :o3, 59207359, 24 + tz.transition 2042, 10, :o2, 59212399, 24 + tz.transition 2043, 3, :o3, 59216095, 24 + tz.transition 2043, 10, :o2, 59221135, 24 + tz.transition 2044, 3, :o3, 59224831, 24 + tz.transition 2044, 10, :o2, 59230039, 24 + tz.transition 2045, 3, :o3, 59233567, 24 + tz.transition 2045, 10, :o2, 59238775, 24 + tz.transition 2046, 3, :o3, 59242303, 24 + tz.transition 2046, 10, :o2, 59247511, 24 + tz.transition 2047, 3, :o3, 59251207, 24 + tz.transition 2047, 10, :o2, 59256247, 24 + tz.transition 2048, 3, :o3, 59259943, 24 + tz.transition 2048, 10, :o2, 59264983, 24 + tz.transition 2049, 3, :o3, 59268679, 24 + tz.transition 2049, 10, :o2, 59273887, 24 + tz.transition 2050, 3, :o3, 59277415, 24 + tz.transition 2050, 10, :o2, 59282623, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuala_Lumpur.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuala_Lumpur.rb new file mode 100644 index 000000000..77a0c206f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuala_Lumpur.rb @@ -0,0 +1,31 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kuala_Lumpur + include TimezoneDefinition + + timezone 'Asia/Kuala_Lumpur' do |tz| + tz.offset :o0, 24406, 0, :LMT + tz.offset :o1, 24925, 0, :SMT + tz.offset :o2, 25200, 0, :MALT + tz.offset :o3, 25200, 1200, :MALST + tz.offset :o4, 26400, 0, :MALT + tz.offset :o5, 27000, 0, :MALT + tz.offset :o6, 32400, 0, :JST + tz.offset :o7, 28800, 0, :MYT + + tz.transition 1900, 12, :o1, 104344641397, 43200 + tz.transition 1905, 5, :o2, 8353142363, 3456 + tz.transition 1932, 12, :o3, 58249757, 24 + tz.transition 1935, 12, :o4, 87414055, 36 + tz.transition 1941, 8, :o5, 87488575, 36 + tz.transition 1942, 2, :o6, 38886499, 16 + tz.transition 1945, 9, :o5, 19453681, 8 + tz.transition 1981, 12, :o7, 378664200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuwait.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuwait.rb new file mode 100644 index 000000000..5bd528319 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Kuwait.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Kuwait + include TimezoneDefinition + + timezone 'Asia/Kuwait' do |tz| + tz.offset :o0, 11516, 0, :LMT + tz.offset :o1, 10800, 0, :AST + + tz.transition 1949, 12, :o1, 52558899121, 21600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Magadan.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Magadan.rb new file mode 100644 index 000000000..302093693 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Magadan.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Magadan + include TimezoneDefinition + + timezone 'Asia/Magadan' do |tz| + tz.offset :o0, 36192, 0, :LMT + tz.offset :o1, 36000, 0, :MAGT + tz.offset :o2, 39600, 0, :MAGT + tz.offset :o3, 39600, 3600, :MAGST + tz.offset :o4, 36000, 3600, :MAGST + + tz.transition 1924, 5, :o1, 2181516373, 900 + tz.transition 1930, 6, :o2, 29113777, 12 + tz.transition 1981, 3, :o3, 354891600 + tz.transition 1981, 9, :o2, 370699200 + tz.transition 1982, 3, :o3, 386427600 + tz.transition 1982, 9, :o2, 402235200 + tz.transition 1983, 3, :o3, 417963600 + tz.transition 1983, 9, :o2, 433771200 + tz.transition 1984, 3, :o3, 449586000 + tz.transition 1984, 9, :o2, 465318000 + tz.transition 1985, 3, :o3, 481042800 + tz.transition 1985, 9, :o2, 496767600 + tz.transition 1986, 3, :o3, 512492400 + tz.transition 1986, 9, :o2, 528217200 + tz.transition 1987, 3, :o3, 543942000 + tz.transition 1987, 9, :o2, 559666800 + tz.transition 1988, 3, :o3, 575391600 + tz.transition 1988, 9, :o2, 591116400 + tz.transition 1989, 3, :o3, 606841200 + tz.transition 1989, 9, :o2, 622566000 + tz.transition 1990, 3, :o3, 638290800 + tz.transition 1990, 9, :o2, 654620400 + tz.transition 1991, 3, :o4, 670345200 + tz.transition 1991, 9, :o1, 686073600 + tz.transition 1992, 1, :o2, 695750400 + tz.transition 1992, 3, :o3, 701784000 + tz.transition 1992, 9, :o2, 717505200 + tz.transition 1993, 3, :o3, 733244400 + tz.transition 1993, 9, :o2, 748969200 + tz.transition 1994, 3, :o3, 764694000 + tz.transition 1994, 9, :o2, 780418800 + tz.transition 1995, 3, :o3, 796143600 + tz.transition 1995, 9, :o2, 811868400 + tz.transition 1996, 3, :o3, 828198000 + tz.transition 1996, 10, :o2, 846342000 + tz.transition 1997, 3, :o3, 859647600 + tz.transition 1997, 10, :o2, 877791600 + tz.transition 1998, 3, :o3, 891097200 + tz.transition 1998, 10, :o2, 909241200 + tz.transition 1999, 3, :o3, 922546800 + tz.transition 1999, 10, :o2, 941295600 + tz.transition 2000, 3, :o3, 953996400 + tz.transition 2000, 10, :o2, 972745200 + tz.transition 2001, 3, :o3, 985446000 + tz.transition 2001, 10, :o2, 1004194800 + tz.transition 2002, 3, :o3, 1017500400 + tz.transition 2002, 10, :o2, 1035644400 + tz.transition 2003, 3, :o3, 1048950000 + tz.transition 2003, 10, :o2, 1067094000 + tz.transition 2004, 3, :o3, 1080399600 + tz.transition 2004, 10, :o2, 1099148400 + tz.transition 2005, 3, :o3, 1111849200 + tz.transition 2005, 10, :o2, 1130598000 + tz.transition 2006, 3, :o3, 1143298800 + tz.transition 2006, 10, :o2, 1162047600 + tz.transition 2007, 3, :o3, 1174748400 + tz.transition 2007, 10, :o2, 1193497200 + tz.transition 2008, 3, :o3, 1206802800 + tz.transition 2008, 10, :o2, 1224946800 + tz.transition 2009, 3, :o3, 1238252400 + tz.transition 2009, 10, :o2, 1256396400 + tz.transition 2010, 3, :o3, 1269702000 + tz.transition 2010, 10, :o2, 1288450800 + tz.transition 2011, 3, :o3, 1301151600 + tz.transition 2011, 10, :o2, 1319900400 + tz.transition 2012, 3, :o3, 1332601200 + tz.transition 2012, 10, :o2, 1351350000 + tz.transition 2013, 3, :o3, 1364655600 + tz.transition 2013, 10, :o2, 1382799600 + tz.transition 2014, 3, :o3, 1396105200 + tz.transition 2014, 10, :o2, 1414249200 + tz.transition 2015, 3, :o3, 1427554800 + tz.transition 2015, 10, :o2, 1445698800 + tz.transition 2016, 3, :o3, 1459004400 + tz.transition 2016, 10, :o2, 1477753200 + tz.transition 2017, 3, :o3, 1490454000 + tz.transition 2017, 10, :o2, 1509202800 + tz.transition 2018, 3, :o3, 1521903600 + tz.transition 2018, 10, :o2, 1540652400 + tz.transition 2019, 3, :o3, 1553958000 + tz.transition 2019, 10, :o2, 1572102000 + tz.transition 2020, 3, :o3, 1585407600 + tz.transition 2020, 10, :o2, 1603551600 + tz.transition 2021, 3, :o3, 1616857200 + tz.transition 2021, 10, :o2, 1635606000 + tz.transition 2022, 3, :o3, 1648306800 + tz.transition 2022, 10, :o2, 1667055600 + tz.transition 2023, 3, :o3, 1679756400 + tz.transition 2023, 10, :o2, 1698505200 + tz.transition 2024, 3, :o3, 1711810800 + tz.transition 2024, 10, :o2, 1729954800 + tz.transition 2025, 3, :o3, 1743260400 + tz.transition 2025, 10, :o2, 1761404400 + tz.transition 2026, 3, :o3, 1774710000 + tz.transition 2026, 10, :o2, 1792854000 + tz.transition 2027, 3, :o3, 1806159600 + tz.transition 2027, 10, :o2, 1824908400 + tz.transition 2028, 3, :o3, 1837609200 + tz.transition 2028, 10, :o2, 1856358000 + tz.transition 2029, 3, :o3, 1869058800 + tz.transition 2029, 10, :o2, 1887807600 + tz.transition 2030, 3, :o3, 1901113200 + tz.transition 2030, 10, :o2, 1919257200 + tz.transition 2031, 3, :o3, 1932562800 + tz.transition 2031, 10, :o2, 1950706800 + tz.transition 2032, 3, :o3, 1964012400 + tz.transition 2032, 10, :o2, 1982761200 + tz.transition 2033, 3, :o3, 1995462000 + tz.transition 2033, 10, :o2, 2014210800 + tz.transition 2034, 3, :o3, 2026911600 + tz.transition 2034, 10, :o2, 2045660400 + tz.transition 2035, 3, :o3, 2058361200 + tz.transition 2035, 10, :o2, 2077110000 + tz.transition 2036, 3, :o3, 2090415600 + tz.transition 2036, 10, :o2, 2108559600 + tz.transition 2037, 3, :o3, 2121865200 + tz.transition 2037, 10, :o2, 2140009200 + tz.transition 2038, 3, :o3, 19724081, 8 + tz.transition 2038, 10, :o2, 19725817, 8 + tz.transition 2039, 3, :o3, 19726993, 8 + tz.transition 2039, 10, :o2, 19728729, 8 + tz.transition 2040, 3, :o3, 19729905, 8 + tz.transition 2040, 10, :o2, 19731641, 8 + tz.transition 2041, 3, :o3, 19732873, 8 + tz.transition 2041, 10, :o2, 19734553, 8 + tz.transition 2042, 3, :o3, 19735785, 8 + tz.transition 2042, 10, :o2, 19737465, 8 + tz.transition 2043, 3, :o3, 19738697, 8 + tz.transition 2043, 10, :o2, 19740377, 8 + tz.transition 2044, 3, :o3, 19741609, 8 + tz.transition 2044, 10, :o2, 19743345, 8 + tz.transition 2045, 3, :o3, 19744521, 8 + tz.transition 2045, 10, :o2, 19746257, 8 + tz.transition 2046, 3, :o3, 19747433, 8 + tz.transition 2046, 10, :o2, 19749169, 8 + tz.transition 2047, 3, :o3, 19750401, 8 + tz.transition 2047, 10, :o2, 19752081, 8 + tz.transition 2048, 3, :o3, 19753313, 8 + tz.transition 2048, 10, :o2, 19754993, 8 + tz.transition 2049, 3, :o3, 19756225, 8 + tz.transition 2049, 10, :o2, 19757961, 8 + tz.transition 2050, 3, :o3, 19759137, 8 + tz.transition 2050, 10, :o2, 19760873, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Muscat.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Muscat.rb new file mode 100644 index 000000000..604f651df --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Muscat.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Muscat + include TimezoneDefinition + + timezone 'Asia/Muscat' do |tz| + tz.offset :o0, 14060, 0, :LMT + tz.offset :o1, 14400, 0, :GST + + tz.transition 1919, 12, :o1, 10464441137, 4320 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Novosibirsk.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Novosibirsk.rb new file mode 100644 index 000000000..a4e7796e7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Novosibirsk.rb @@ -0,0 +1,164 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Novosibirsk + include TimezoneDefinition + + timezone 'Asia/Novosibirsk' do |tz| + tz.offset :o0, 19900, 0, :LMT + tz.offset :o1, 21600, 0, :NOVT + tz.offset :o2, 25200, 0, :NOVT + tz.offset :o3, 25200, 3600, :NOVST + tz.offset :o4, 21600, 3600, :NOVST + + tz.transition 1919, 12, :o1, 2092872833, 864 + tz.transition 1930, 6, :o2, 9704593, 4 + tz.transition 1981, 3, :o3, 354906000 + tz.transition 1981, 9, :o2, 370713600 + tz.transition 1982, 3, :o3, 386442000 + tz.transition 1982, 9, :o2, 402249600 + tz.transition 1983, 3, :o3, 417978000 + tz.transition 1983, 9, :o2, 433785600 + tz.transition 1984, 3, :o3, 449600400 + tz.transition 1984, 9, :o2, 465332400 + tz.transition 1985, 3, :o3, 481057200 + tz.transition 1985, 9, :o2, 496782000 + tz.transition 1986, 3, :o3, 512506800 + tz.transition 1986, 9, :o2, 528231600 + tz.transition 1987, 3, :o3, 543956400 + tz.transition 1987, 9, :o2, 559681200 + tz.transition 1988, 3, :o3, 575406000 + tz.transition 1988, 9, :o2, 591130800 + tz.transition 1989, 3, :o3, 606855600 + tz.transition 1989, 9, :o2, 622580400 + tz.transition 1990, 3, :o3, 638305200 + tz.transition 1990, 9, :o2, 654634800 + tz.transition 1991, 3, :o4, 670359600 + tz.transition 1991, 9, :o1, 686088000 + tz.transition 1992, 1, :o2, 695764800 + tz.transition 1992, 3, :o3, 701798400 + tz.transition 1992, 9, :o2, 717519600 + tz.transition 1993, 3, :o3, 733258800 + tz.transition 1993, 5, :o4, 738086400 + tz.transition 1993, 9, :o1, 748987200 + tz.transition 1994, 3, :o4, 764712000 + tz.transition 1994, 9, :o1, 780436800 + tz.transition 1995, 3, :o4, 796161600 + tz.transition 1995, 9, :o1, 811886400 + tz.transition 1996, 3, :o4, 828216000 + tz.transition 1996, 10, :o1, 846360000 + tz.transition 1997, 3, :o4, 859665600 + tz.transition 1997, 10, :o1, 877809600 + tz.transition 1998, 3, :o4, 891115200 + tz.transition 1998, 10, :o1, 909259200 + tz.transition 1999, 3, :o4, 922564800 + tz.transition 1999, 10, :o1, 941313600 + tz.transition 2000, 3, :o4, 954014400 + tz.transition 2000, 10, :o1, 972763200 + tz.transition 2001, 3, :o4, 985464000 + tz.transition 2001, 10, :o1, 1004212800 + tz.transition 2002, 3, :o4, 1017518400 + tz.transition 2002, 10, :o1, 1035662400 + tz.transition 2003, 3, :o4, 1048968000 + tz.transition 2003, 10, :o1, 1067112000 + tz.transition 2004, 3, :o4, 1080417600 + tz.transition 2004, 10, :o1, 1099166400 + tz.transition 2005, 3, :o4, 1111867200 + tz.transition 2005, 10, :o1, 1130616000 + tz.transition 2006, 3, :o4, 1143316800 + tz.transition 2006, 10, :o1, 1162065600 + tz.transition 2007, 3, :o4, 1174766400 + tz.transition 2007, 10, :o1, 1193515200 + tz.transition 2008, 3, :o4, 1206820800 + tz.transition 2008, 10, :o1, 1224964800 + tz.transition 2009, 3, :o4, 1238270400 + tz.transition 2009, 10, :o1, 1256414400 + tz.transition 2010, 3, :o4, 1269720000 + tz.transition 2010, 10, :o1, 1288468800 + tz.transition 2011, 3, :o4, 1301169600 + tz.transition 2011, 10, :o1, 1319918400 + tz.transition 2012, 3, :o4, 1332619200 + tz.transition 2012, 10, :o1, 1351368000 + tz.transition 2013, 3, :o4, 1364673600 + tz.transition 2013, 10, :o1, 1382817600 + tz.transition 2014, 3, :o4, 1396123200 + tz.transition 2014, 10, :o1, 1414267200 + tz.transition 2015, 3, :o4, 1427572800 + tz.transition 2015, 10, :o1, 1445716800 + tz.transition 2016, 3, :o4, 1459022400 + tz.transition 2016, 10, :o1, 1477771200 + tz.transition 2017, 3, :o4, 1490472000 + tz.transition 2017, 10, :o1, 1509220800 + tz.transition 2018, 3, :o4, 1521921600 + tz.transition 2018, 10, :o1, 1540670400 + tz.transition 2019, 3, :o4, 1553976000 + tz.transition 2019, 10, :o1, 1572120000 + tz.transition 2020, 3, :o4, 1585425600 + tz.transition 2020, 10, :o1, 1603569600 + tz.transition 2021, 3, :o4, 1616875200 + tz.transition 2021, 10, :o1, 1635624000 + tz.transition 2022, 3, :o4, 1648324800 + tz.transition 2022, 10, :o1, 1667073600 + tz.transition 2023, 3, :o4, 1679774400 + tz.transition 2023, 10, :o1, 1698523200 + tz.transition 2024, 3, :o4, 1711828800 + tz.transition 2024, 10, :o1, 1729972800 + tz.transition 2025, 3, :o4, 1743278400 + tz.transition 2025, 10, :o1, 1761422400 + tz.transition 2026, 3, :o4, 1774728000 + tz.transition 2026, 10, :o1, 1792872000 + tz.transition 2027, 3, :o4, 1806177600 + tz.transition 2027, 10, :o1, 1824926400 + tz.transition 2028, 3, :o4, 1837627200 + tz.transition 2028, 10, :o1, 1856376000 + tz.transition 2029, 3, :o4, 1869076800 + tz.transition 2029, 10, :o1, 1887825600 + tz.transition 2030, 3, :o4, 1901131200 + tz.transition 2030, 10, :o1, 1919275200 + tz.transition 2031, 3, :o4, 1932580800 + tz.transition 2031, 10, :o1, 1950724800 + tz.transition 2032, 3, :o4, 1964030400 + tz.transition 2032, 10, :o1, 1982779200 + tz.transition 2033, 3, :o4, 1995480000 + tz.transition 2033, 10, :o1, 2014228800 + tz.transition 2034, 3, :o4, 2026929600 + tz.transition 2034, 10, :o1, 2045678400 + tz.transition 2035, 3, :o4, 2058379200 + tz.transition 2035, 10, :o1, 2077128000 + tz.transition 2036, 3, :o4, 2090433600 + tz.transition 2036, 10, :o1, 2108577600 + tz.transition 2037, 3, :o4, 2121883200 + tz.transition 2037, 10, :o1, 2140027200 + tz.transition 2038, 3, :o4, 7396531, 3 + tz.transition 2038, 10, :o1, 7397182, 3 + tz.transition 2039, 3, :o4, 7397623, 3 + tz.transition 2039, 10, :o1, 7398274, 3 + tz.transition 2040, 3, :o4, 7398715, 3 + tz.transition 2040, 10, :o1, 7399366, 3 + tz.transition 2041, 3, :o4, 7399828, 3 + tz.transition 2041, 10, :o1, 7400458, 3 + tz.transition 2042, 3, :o4, 7400920, 3 + tz.transition 2042, 10, :o1, 7401550, 3 + tz.transition 2043, 3, :o4, 7402012, 3 + tz.transition 2043, 10, :o1, 7402642, 3 + tz.transition 2044, 3, :o4, 7403104, 3 + tz.transition 2044, 10, :o1, 7403755, 3 + tz.transition 2045, 3, :o4, 7404196, 3 + tz.transition 2045, 10, :o1, 7404847, 3 + tz.transition 2046, 3, :o4, 7405288, 3 + tz.transition 2046, 10, :o1, 7405939, 3 + tz.transition 2047, 3, :o4, 7406401, 3 + tz.transition 2047, 10, :o1, 7407031, 3 + tz.transition 2048, 3, :o4, 7407493, 3 + tz.transition 2048, 10, :o1, 7408123, 3 + tz.transition 2049, 3, :o4, 7408585, 3 + tz.transition 2049, 10, :o1, 7409236, 3 + tz.transition 2050, 3, :o4, 7409677, 3 + tz.transition 2050, 10, :o1, 7410328, 3 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Rangoon.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Rangoon.rb new file mode 100644 index 000000000..759b82d77 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Rangoon.rb @@ -0,0 +1,24 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Rangoon + include TimezoneDefinition + + timezone 'Asia/Rangoon' do |tz| + tz.offset :o0, 23080, 0, :LMT + tz.offset :o1, 23076, 0, :RMT + tz.offset :o2, 23400, 0, :BURT + tz.offset :o3, 32400, 0, :JST + tz.offset :o4, 23400, 0, :MMT + + tz.transition 1879, 12, :o1, 5200664903, 2160 + tz.transition 1919, 12, :o2, 5813578159, 2400 + tz.transition 1942, 4, :o3, 116663051, 48 + tz.transition 1945, 5, :o4, 19452625, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Riyadh.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Riyadh.rb new file mode 100644 index 000000000..7add41062 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Riyadh.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Riyadh + include TimezoneDefinition + + timezone 'Asia/Riyadh' do |tz| + tz.offset :o0, 11212, 0, :LMT + tz.offset :o1, 10800, 0, :AST + + tz.transition 1949, 12, :o1, 52558899197, 21600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Seoul.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Seoul.rb new file mode 100644 index 000000000..795d2a75d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Seoul.rb @@ -0,0 +1,34 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Seoul + include TimezoneDefinition + + timezone 'Asia/Seoul' do |tz| + tz.offset :o0, 30472, 0, :LMT + tz.offset :o1, 30600, 0, :KST + tz.offset :o2, 32400, 0, :KST + tz.offset :o3, 28800, 0, :KST + tz.offset :o4, 28800, 3600, :KDT + tz.offset :o5, 32400, 3600, :KDT + + tz.transition 1889, 12, :o1, 26042775991, 10800 + tz.transition 1904, 11, :o2, 116007127, 48 + tz.transition 1927, 12, :o1, 19401969, 8 + tz.transition 1931, 12, :o2, 116481943, 48 + tz.transition 1954, 3, :o3, 19478577, 8 + tz.transition 1960, 5, :o4, 14622415, 6 + tz.transition 1960, 9, :o3, 19497521, 8 + tz.transition 1961, 8, :o1, 14625127, 6 + tz.transition 1968, 9, :o2, 117126247, 48 + tz.transition 1987, 5, :o5, 547570800 + tz.transition 1987, 10, :o2, 560872800 + tz.transition 1988, 5, :o5, 579020400 + tz.transition 1988, 10, :o2, 592322400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Shanghai.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Shanghai.rb new file mode 100644 index 000000000..34b13d59a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Shanghai.rb @@ -0,0 +1,35 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Shanghai + include TimezoneDefinition + + timezone 'Asia/Shanghai' do |tz| + tz.offset :o0, 29152, 0, :LMT + tz.offset :o1, 28800, 0, :CST + tz.offset :o2, 28800, 3600, :CDT + + tz.transition 1927, 12, :o1, 6548164639, 2700 + tz.transition 1940, 6, :o2, 14578699, 6 + tz.transition 1940, 9, :o1, 19439225, 8 + tz.transition 1941, 3, :o2, 14580415, 6 + tz.transition 1941, 9, :o1, 19442145, 8 + tz.transition 1986, 5, :o2, 515520000 + tz.transition 1986, 9, :o1, 527007600 + tz.transition 1987, 4, :o2, 545155200 + tz.transition 1987, 9, :o1, 558457200 + tz.transition 1988, 4, :o2, 576604800 + tz.transition 1988, 9, :o1, 589906800 + tz.transition 1989, 4, :o2, 608659200 + tz.transition 1989, 9, :o1, 621961200 + tz.transition 1990, 4, :o2, 640108800 + tz.transition 1990, 9, :o1, 653410800 + tz.transition 1991, 4, :o2, 671558400 + tz.transition 1991, 9, :o1, 684860400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Singapore.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Singapore.rb new file mode 100644 index 000000000..b323a78f7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Singapore.rb @@ -0,0 +1,33 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Singapore + include TimezoneDefinition + + timezone 'Asia/Singapore' do |tz| + tz.offset :o0, 24925, 0, :LMT + tz.offset :o1, 24925, 0, :SMT + tz.offset :o2, 25200, 0, :MALT + tz.offset :o3, 25200, 1200, :MALST + tz.offset :o4, 26400, 0, :MALT + tz.offset :o5, 27000, 0, :MALT + tz.offset :o6, 32400, 0, :JST + tz.offset :o7, 27000, 0, :SGT + tz.offset :o8, 28800, 0, :SGT + + tz.transition 1900, 12, :o1, 8347571291, 3456 + tz.transition 1905, 5, :o2, 8353142363, 3456 + tz.transition 1932, 12, :o3, 58249757, 24 + tz.transition 1935, 12, :o4, 87414055, 36 + tz.transition 1941, 8, :o5, 87488575, 36 + tz.transition 1942, 2, :o6, 38886499, 16 + tz.transition 1945, 9, :o5, 19453681, 8 + tz.transition 1965, 8, :o7, 39023699, 16 + tz.transition 1981, 12, :o8, 378664200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Taipei.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Taipei.rb new file mode 100644 index 000000000..3ba12108f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Taipei.rb @@ -0,0 +1,59 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Taipei + include TimezoneDefinition + + timezone 'Asia/Taipei' do |tz| + tz.offset :o0, 29160, 0, :LMT + tz.offset :o1, 28800, 0, :CST + tz.offset :o2, 28800, 3600, :CDT + + tz.transition 1895, 12, :o1, 193084733, 80 + tz.transition 1945, 4, :o2, 14589457, 6 + tz.transition 1945, 9, :o1, 19453833, 8 + tz.transition 1946, 4, :o2, 14591647, 6 + tz.transition 1946, 9, :o1, 19456753, 8 + tz.transition 1947, 4, :o2, 14593837, 6 + tz.transition 1947, 9, :o1, 19459673, 8 + tz.transition 1948, 4, :o2, 14596033, 6 + tz.transition 1948, 9, :o1, 19462601, 8 + tz.transition 1949, 4, :o2, 14598223, 6 + tz.transition 1949, 9, :o1, 19465521, 8 + tz.transition 1950, 4, :o2, 14600413, 6 + tz.transition 1950, 9, :o1, 19468441, 8 + tz.transition 1951, 4, :o2, 14602603, 6 + tz.transition 1951, 9, :o1, 19471361, 8 + tz.transition 1952, 2, :o2, 14604433, 6 + tz.transition 1952, 10, :o1, 19474537, 8 + tz.transition 1953, 3, :o2, 14606809, 6 + tz.transition 1953, 10, :o1, 19477457, 8 + tz.transition 1954, 3, :o2, 14608999, 6 + tz.transition 1954, 10, :o1, 19480377, 8 + tz.transition 1955, 3, :o2, 14611189, 6 + tz.transition 1955, 9, :o1, 19483049, 8 + tz.transition 1956, 3, :o2, 14613385, 6 + tz.transition 1956, 9, :o1, 19485977, 8 + tz.transition 1957, 3, :o2, 14615575, 6 + tz.transition 1957, 9, :o1, 19488897, 8 + tz.transition 1958, 3, :o2, 14617765, 6 + tz.transition 1958, 9, :o1, 19491817, 8 + tz.transition 1959, 3, :o2, 14619955, 6 + tz.transition 1959, 9, :o1, 19494737, 8 + tz.transition 1960, 5, :o2, 14622517, 6 + tz.transition 1960, 9, :o1, 19497665, 8 + tz.transition 1961, 5, :o2, 14624707, 6 + tz.transition 1961, 9, :o1, 19500585, 8 + tz.transition 1974, 3, :o2, 133977600 + tz.transition 1974, 9, :o1, 149785200 + tz.transition 1975, 3, :o2, 165513600 + tz.transition 1975, 9, :o1, 181321200 + tz.transition 1980, 6, :o2, 331142400 + tz.transition 1980, 9, :o1, 339087600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tashkent.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tashkent.rb new file mode 100644 index 000000000..c205c7934 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tashkent.rb @@ -0,0 +1,47 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tashkent + include TimezoneDefinition + + timezone 'Asia/Tashkent' do |tz| + tz.offset :o0, 16632, 0, :LMT + tz.offset :o1, 18000, 0, :TAST + tz.offset :o2, 21600, 0, :TAST + tz.offset :o3, 21600, 3600, :TASST + tz.offset :o4, 18000, 3600, :TASST + tz.offset :o5, 18000, 3600, :UZST + tz.offset :o6, 18000, 0, :UZT + + tz.transition 1924, 5, :o1, 969562923, 400 + tz.transition 1930, 6, :o2, 58227559, 24 + tz.transition 1981, 3, :o3, 354909600 + tz.transition 1981, 9, :o2, 370717200 + tz.transition 1982, 3, :o3, 386445600 + tz.transition 1982, 9, :o2, 402253200 + tz.transition 1983, 3, :o3, 417981600 + tz.transition 1983, 9, :o2, 433789200 + tz.transition 1984, 3, :o3, 449604000 + tz.transition 1984, 9, :o2, 465336000 + tz.transition 1985, 3, :o3, 481060800 + tz.transition 1985, 9, :o2, 496785600 + tz.transition 1986, 3, :o3, 512510400 + tz.transition 1986, 9, :o2, 528235200 + tz.transition 1987, 3, :o3, 543960000 + tz.transition 1987, 9, :o2, 559684800 + tz.transition 1988, 3, :o3, 575409600 + tz.transition 1988, 9, :o2, 591134400 + tz.transition 1989, 3, :o3, 606859200 + tz.transition 1989, 9, :o2, 622584000 + tz.transition 1990, 3, :o3, 638308800 + tz.transition 1990, 9, :o2, 654638400 + tz.transition 1991, 3, :o4, 670363200 + tz.transition 1991, 8, :o5, 683661600 + tz.transition 1991, 9, :o6, 686091600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tbilisi.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tbilisi.rb new file mode 100644 index 000000000..15792a565 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tbilisi.rb @@ -0,0 +1,78 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tbilisi + include TimezoneDefinition + + timezone 'Asia/Tbilisi' do |tz| + tz.offset :o0, 10756, 0, :LMT + tz.offset :o1, 10756, 0, :TBMT + tz.offset :o2, 10800, 0, :TBIT + tz.offset :o3, 14400, 0, :TBIT + tz.offset :o4, 14400, 3600, :TBIST + tz.offset :o5, 10800, 3600, :TBIST + tz.offset :o6, 10800, 3600, :GEST + tz.offset :o7, 10800, 0, :GET + tz.offset :o8, 14400, 0, :GET + tz.offset :o9, 14400, 3600, :GEST + + tz.transition 1879, 12, :o1, 52006652111, 21600 + tz.transition 1924, 5, :o2, 52356399311, 21600 + tz.transition 1957, 2, :o3, 19487187, 8 + tz.transition 1981, 3, :o4, 354916800 + tz.transition 1981, 9, :o3, 370724400 + tz.transition 1982, 3, :o4, 386452800 + tz.transition 1982, 9, :o3, 402260400 + tz.transition 1983, 3, :o4, 417988800 + tz.transition 1983, 9, :o3, 433796400 + tz.transition 1984, 3, :o4, 449611200 + tz.transition 1984, 9, :o3, 465343200 + tz.transition 1985, 3, :o4, 481068000 + tz.transition 1985, 9, :o3, 496792800 + tz.transition 1986, 3, :o4, 512517600 + tz.transition 1986, 9, :o3, 528242400 + tz.transition 1987, 3, :o4, 543967200 + tz.transition 1987, 9, :o3, 559692000 + tz.transition 1988, 3, :o4, 575416800 + tz.transition 1988, 9, :o3, 591141600 + tz.transition 1989, 3, :o4, 606866400 + tz.transition 1989, 9, :o3, 622591200 + tz.transition 1990, 3, :o4, 638316000 + tz.transition 1990, 9, :o3, 654645600 + tz.transition 1991, 3, :o5, 670370400 + tz.transition 1991, 4, :o6, 671140800 + tz.transition 1991, 9, :o7, 686098800 + tz.transition 1992, 3, :o6, 701816400 + tz.transition 1992, 9, :o7, 717537600 + tz.transition 1993, 3, :o6, 733266000 + tz.transition 1993, 9, :o7, 748987200 + tz.transition 1994, 3, :o6, 764715600 + tz.transition 1994, 9, :o8, 780436800 + tz.transition 1995, 3, :o9, 796161600 + tz.transition 1995, 9, :o8, 811882800 + tz.transition 1996, 3, :o9, 828216000 + tz.transition 1997, 3, :o9, 859662000 + tz.transition 1997, 10, :o8, 877806000 + tz.transition 1998, 3, :o9, 891115200 + tz.transition 1998, 10, :o8, 909255600 + tz.transition 1999, 3, :o9, 922564800 + tz.transition 1999, 10, :o8, 941310000 + tz.transition 2000, 3, :o9, 954014400 + tz.transition 2000, 10, :o8, 972759600 + tz.transition 2001, 3, :o9, 985464000 + tz.transition 2001, 10, :o8, 1004209200 + tz.transition 2002, 3, :o9, 1017518400 + tz.transition 2002, 10, :o8, 1035658800 + tz.transition 2003, 3, :o9, 1048968000 + tz.transition 2003, 10, :o8, 1067108400 + tz.transition 2004, 3, :o9, 1080417600 + tz.transition 2004, 6, :o6, 1088276400 + tz.transition 2004, 10, :o7, 1099177200 + tz.transition 2005, 3, :o8, 1111878000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tehran.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tehran.rb new file mode 100644 index 000000000..d8df964a4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tehran.rb @@ -0,0 +1,121 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tehran + include TimezoneDefinition + + timezone 'Asia/Tehran' do |tz| + tz.offset :o0, 12344, 0, :LMT + tz.offset :o1, 12344, 0, :TMT + tz.offset :o2, 12600, 0, :IRST + tz.offset :o3, 14400, 0, :IRST + tz.offset :o4, 14400, 3600, :IRDT + tz.offset :o5, 12600, 3600, :IRDT + + tz.transition 1915, 12, :o1, 26145324257, 10800 + tz.transition 1945, 12, :o2, 26263670657, 10800 + tz.transition 1977, 10, :o3, 247177800 + tz.transition 1978, 3, :o4, 259272000 + tz.transition 1978, 10, :o3, 277758000 + tz.transition 1978, 12, :o2, 283982400 + tz.transition 1979, 3, :o5, 290809800 + tz.transition 1979, 9, :o2, 306531000 + tz.transition 1980, 3, :o5, 322432200 + tz.transition 1980, 9, :o2, 338499000 + tz.transition 1991, 5, :o5, 673216200 + tz.transition 1991, 9, :o2, 685481400 + tz.transition 1992, 3, :o5, 701209800 + tz.transition 1992, 9, :o2, 717103800 + tz.transition 1993, 3, :o5, 732745800 + tz.transition 1993, 9, :o2, 748639800 + tz.transition 1994, 3, :o5, 764281800 + tz.transition 1994, 9, :o2, 780175800 + tz.transition 1995, 3, :o5, 795817800 + tz.transition 1995, 9, :o2, 811711800 + tz.transition 1996, 3, :o5, 827353800 + tz.transition 1996, 9, :o2, 843247800 + tz.transition 1997, 3, :o5, 858976200 + tz.transition 1997, 9, :o2, 874870200 + tz.transition 1998, 3, :o5, 890512200 + tz.transition 1998, 9, :o2, 906406200 + tz.transition 1999, 3, :o5, 922048200 + tz.transition 1999, 9, :o2, 937942200 + tz.transition 2000, 3, :o5, 953584200 + tz.transition 2000, 9, :o2, 969478200 + tz.transition 2001, 3, :o5, 985206600 + tz.transition 2001, 9, :o2, 1001100600 + tz.transition 2002, 3, :o5, 1016742600 + tz.transition 2002, 9, :o2, 1032636600 + tz.transition 2003, 3, :o5, 1048278600 + tz.transition 2003, 9, :o2, 1064172600 + tz.transition 2004, 3, :o5, 1079814600 + tz.transition 2004, 9, :o2, 1095708600 + tz.transition 2005, 3, :o5, 1111437000 + tz.transition 2005, 9, :o2, 1127331000 + tz.transition 2008, 3, :o5, 1206045000 + tz.transition 2008, 9, :o2, 1221939000 + tz.transition 2009, 3, :o5, 1237667400 + tz.transition 2009, 9, :o2, 1253561400 + tz.transition 2010, 3, :o5, 1269203400 + tz.transition 2010, 9, :o2, 1285097400 + tz.transition 2011, 3, :o5, 1300739400 + tz.transition 2011, 9, :o2, 1316633400 + tz.transition 2012, 3, :o5, 1332275400 + tz.transition 2012, 9, :o2, 1348169400 + tz.transition 2013, 3, :o5, 1363897800 + tz.transition 2013, 9, :o2, 1379791800 + tz.transition 2014, 3, :o5, 1395433800 + tz.transition 2014, 9, :o2, 1411327800 + tz.transition 2015, 3, :o5, 1426969800 + tz.transition 2015, 9, :o2, 1442863800 + tz.transition 2016, 3, :o5, 1458505800 + tz.transition 2016, 9, :o2, 1474399800 + tz.transition 2017, 3, :o5, 1490128200 + tz.transition 2017, 9, :o2, 1506022200 + tz.transition 2018, 3, :o5, 1521664200 + tz.transition 2018, 9, :o2, 1537558200 + tz.transition 2019, 3, :o5, 1553200200 + tz.transition 2019, 9, :o2, 1569094200 + tz.transition 2020, 3, :o5, 1584736200 + tz.transition 2020, 9, :o2, 1600630200 + tz.transition 2021, 3, :o5, 1616358600 + tz.transition 2021, 9, :o2, 1632252600 + tz.transition 2022, 3, :o5, 1647894600 + tz.transition 2022, 9, :o2, 1663788600 + tz.transition 2023, 3, :o5, 1679430600 + tz.transition 2023, 9, :o2, 1695324600 + tz.transition 2024, 3, :o5, 1710966600 + tz.transition 2024, 9, :o2, 1726860600 + tz.transition 2025, 3, :o5, 1742589000 + tz.transition 2025, 9, :o2, 1758483000 + tz.transition 2026, 3, :o5, 1774125000 + tz.transition 2026, 9, :o2, 1790019000 + tz.transition 2027, 3, :o5, 1805661000 + tz.transition 2027, 9, :o2, 1821555000 + tz.transition 2028, 3, :o5, 1837197000 + tz.transition 2028, 9, :o2, 1853091000 + tz.transition 2029, 3, :o5, 1868733000 + tz.transition 2029, 9, :o2, 1884627000 + tz.transition 2030, 3, :o5, 1900355400 + tz.transition 2030, 9, :o2, 1916249400 + tz.transition 2031, 3, :o5, 1931891400 + tz.transition 2031, 9, :o2, 1947785400 + tz.transition 2032, 3, :o5, 1963427400 + tz.transition 2032, 9, :o2, 1979321400 + tz.transition 2033, 3, :o5, 1994963400 + tz.transition 2033, 9, :o2, 2010857400 + tz.transition 2034, 3, :o5, 2026585800 + tz.transition 2034, 9, :o2, 2042479800 + tz.transition 2035, 3, :o5, 2058121800 + tz.transition 2035, 9, :o2, 2074015800 + tz.transition 2036, 3, :o5, 2089657800 + tz.transition 2036, 9, :o2, 2105551800 + tz.transition 2037, 3, :o5, 2121193800 + tz.transition 2037, 9, :o2, 2137087800 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tokyo.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tokyo.rb new file mode 100644 index 000000000..51c9e1642 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Tokyo.rb @@ -0,0 +1,30 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Tokyo + include TimezoneDefinition + + timezone 'Asia/Tokyo' do |tz| + tz.offset :o0, 33539, 0, :LMT + tz.offset :o1, 32400, 0, :JST + tz.offset :o2, 32400, 0, :CJT + tz.offset :o3, 32400, 3600, :JDT + + tz.transition 1887, 12, :o1, 19285097, 8 + tz.transition 1895, 12, :o2, 19308473, 8 + tz.transition 1937, 12, :o1, 19431193, 8 + tz.transition 1948, 5, :o3, 58384157, 24 + tz.transition 1948, 9, :o1, 14596831, 6 + tz.transition 1949, 4, :o3, 58392221, 24 + tz.transition 1949, 9, :o1, 14599015, 6 + tz.transition 1950, 5, :o3, 58401797, 24 + tz.transition 1950, 9, :o1, 14601199, 6 + tz.transition 1951, 5, :o3, 58410533, 24 + tz.transition 1951, 9, :o1, 14603383, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Ulaanbaatar.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Ulaanbaatar.rb new file mode 100644 index 000000000..2854f5c5f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Ulaanbaatar.rb @@ -0,0 +1,65 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Ulaanbaatar + include TimezoneDefinition + + timezone 'Asia/Ulaanbaatar' do |tz| + tz.offset :o0, 25652, 0, :LMT + tz.offset :o1, 25200, 0, :ULAT + tz.offset :o2, 28800, 0, :ULAT + tz.offset :o3, 28800, 3600, :ULAST + + tz.transition 1905, 7, :o1, 52208457187, 21600 + tz.transition 1977, 12, :o2, 252435600 + tz.transition 1983, 3, :o3, 417974400 + tz.transition 1983, 9, :o2, 433782000 + tz.transition 1984, 3, :o3, 449596800 + tz.transition 1984, 9, :o2, 465318000 + tz.transition 1985, 3, :o3, 481046400 + tz.transition 1985, 9, :o2, 496767600 + tz.transition 1986, 3, :o3, 512496000 + tz.transition 1986, 9, :o2, 528217200 + tz.transition 1987, 3, :o3, 543945600 + tz.transition 1987, 9, :o2, 559666800 + tz.transition 1988, 3, :o3, 575395200 + tz.transition 1988, 9, :o2, 591116400 + tz.transition 1989, 3, :o3, 606844800 + tz.transition 1989, 9, :o2, 622566000 + tz.transition 1990, 3, :o3, 638294400 + tz.transition 1990, 9, :o2, 654620400 + tz.transition 1991, 3, :o3, 670348800 + tz.transition 1991, 9, :o2, 686070000 + tz.transition 1992, 3, :o3, 701798400 + tz.transition 1992, 9, :o2, 717519600 + tz.transition 1993, 3, :o3, 733248000 + tz.transition 1993, 9, :o2, 748969200 + tz.transition 1994, 3, :o3, 764697600 + tz.transition 1994, 9, :o2, 780418800 + tz.transition 1995, 3, :o3, 796147200 + tz.transition 1995, 9, :o2, 811868400 + tz.transition 1996, 3, :o3, 828201600 + tz.transition 1996, 9, :o2, 843922800 + tz.transition 1997, 3, :o3, 859651200 + tz.transition 1997, 9, :o2, 875372400 + tz.transition 1998, 3, :o3, 891100800 + tz.transition 1998, 9, :o2, 906822000 + tz.transition 2001, 4, :o3, 988394400 + tz.transition 2001, 9, :o2, 1001696400 + tz.transition 2002, 3, :o3, 1017424800 + tz.transition 2002, 9, :o2, 1033146000 + tz.transition 2003, 3, :o3, 1048874400 + tz.transition 2003, 9, :o2, 1064595600 + tz.transition 2004, 3, :o3, 1080324000 + tz.transition 2004, 9, :o2, 1096045200 + tz.transition 2005, 3, :o3, 1111773600 + tz.transition 2005, 9, :o2, 1127494800 + tz.transition 2006, 3, :o3, 1143223200 + tz.transition 2006, 9, :o2, 1159549200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Urumqi.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Urumqi.rb new file mode 100644 index 000000000..d793ff134 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Urumqi.rb @@ -0,0 +1,33 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Urumqi + include TimezoneDefinition + + timezone 'Asia/Urumqi' do |tz| + tz.offset :o0, 21020, 0, :LMT + tz.offset :o1, 21600, 0, :URUT + tz.offset :o2, 28800, 0, :CST + tz.offset :o3, 28800, 3600, :CDT + + tz.transition 1927, 12, :o1, 10477063829, 4320 + tz.transition 1980, 4, :o2, 325965600 + tz.transition 1986, 5, :o3, 515520000 + tz.transition 1986, 9, :o2, 527007600 + tz.transition 1987, 4, :o3, 545155200 + tz.transition 1987, 9, :o2, 558457200 + tz.transition 1988, 4, :o3, 576604800 + tz.transition 1988, 9, :o2, 589906800 + tz.transition 1989, 4, :o3, 608659200 + tz.transition 1989, 9, :o2, 621961200 + tz.transition 1990, 4, :o3, 640108800 + tz.transition 1990, 9, :o2, 653410800 + tz.transition 1991, 4, :o3, 671558400 + tz.transition 1991, 9, :o2, 684860400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Vladivostok.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Vladivostok.rb new file mode 100644 index 000000000..bd9e3d60e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Vladivostok.rb @@ -0,0 +1,164 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Vladivostok + include TimezoneDefinition + + timezone 'Asia/Vladivostok' do |tz| + tz.offset :o0, 31664, 0, :LMT + tz.offset :o1, 32400, 0, :VLAT + tz.offset :o2, 36000, 0, :VLAT + tz.offset :o3, 36000, 3600, :VLAST + tz.offset :o4, 32400, 3600, :VLASST + tz.offset :o5, 32400, 0, :VLAST + + tz.transition 1922, 11, :o1, 13086214921, 5400 + tz.transition 1930, 6, :o2, 19409185, 8 + tz.transition 1981, 3, :o3, 354895200 + tz.transition 1981, 9, :o2, 370702800 + tz.transition 1982, 3, :o3, 386431200 + tz.transition 1982, 9, :o2, 402238800 + tz.transition 1983, 3, :o3, 417967200 + tz.transition 1983, 9, :o2, 433774800 + tz.transition 1984, 3, :o3, 449589600 + tz.transition 1984, 9, :o2, 465321600 + tz.transition 1985, 3, :o3, 481046400 + tz.transition 1985, 9, :o2, 496771200 + tz.transition 1986, 3, :o3, 512496000 + tz.transition 1986, 9, :o2, 528220800 + tz.transition 1987, 3, :o3, 543945600 + tz.transition 1987, 9, :o2, 559670400 + tz.transition 1988, 3, :o3, 575395200 + tz.transition 1988, 9, :o2, 591120000 + tz.transition 1989, 3, :o3, 606844800 + tz.transition 1989, 9, :o2, 622569600 + tz.transition 1990, 3, :o3, 638294400 + tz.transition 1990, 9, :o2, 654624000 + tz.transition 1991, 3, :o4, 670348800 + tz.transition 1991, 9, :o5, 686077200 + tz.transition 1992, 1, :o2, 695754000 + tz.transition 1992, 3, :o3, 701787600 + tz.transition 1992, 9, :o2, 717508800 + tz.transition 1993, 3, :o3, 733248000 + tz.transition 1993, 9, :o2, 748972800 + tz.transition 1994, 3, :o3, 764697600 + tz.transition 1994, 9, :o2, 780422400 + tz.transition 1995, 3, :o3, 796147200 + tz.transition 1995, 9, :o2, 811872000 + tz.transition 1996, 3, :o3, 828201600 + tz.transition 1996, 10, :o2, 846345600 + tz.transition 1997, 3, :o3, 859651200 + tz.transition 1997, 10, :o2, 877795200 + tz.transition 1998, 3, :o3, 891100800 + tz.transition 1998, 10, :o2, 909244800 + tz.transition 1999, 3, :o3, 922550400 + tz.transition 1999, 10, :o2, 941299200 + tz.transition 2000, 3, :o3, 954000000 + tz.transition 2000, 10, :o2, 972748800 + tz.transition 2001, 3, :o3, 985449600 + tz.transition 2001, 10, :o2, 1004198400 + tz.transition 2002, 3, :o3, 1017504000 + tz.transition 2002, 10, :o2, 1035648000 + tz.transition 2003, 3, :o3, 1048953600 + tz.transition 2003, 10, :o2, 1067097600 + tz.transition 2004, 3, :o3, 1080403200 + tz.transition 2004, 10, :o2, 1099152000 + tz.transition 2005, 3, :o3, 1111852800 + tz.transition 2005, 10, :o2, 1130601600 + tz.transition 2006, 3, :o3, 1143302400 + tz.transition 2006, 10, :o2, 1162051200 + tz.transition 2007, 3, :o3, 1174752000 + tz.transition 2007, 10, :o2, 1193500800 + tz.transition 2008, 3, :o3, 1206806400 + tz.transition 2008, 10, :o2, 1224950400 + tz.transition 2009, 3, :o3, 1238256000 + tz.transition 2009, 10, :o2, 1256400000 + tz.transition 2010, 3, :o3, 1269705600 + tz.transition 2010, 10, :o2, 1288454400 + tz.transition 2011, 3, :o3, 1301155200 + tz.transition 2011, 10, :o2, 1319904000 + tz.transition 2012, 3, :o3, 1332604800 + tz.transition 2012, 10, :o2, 1351353600 + tz.transition 2013, 3, :o3, 1364659200 + tz.transition 2013, 10, :o2, 1382803200 + tz.transition 2014, 3, :o3, 1396108800 + tz.transition 2014, 10, :o2, 1414252800 + tz.transition 2015, 3, :o3, 1427558400 + tz.transition 2015, 10, :o2, 1445702400 + tz.transition 2016, 3, :o3, 1459008000 + tz.transition 2016, 10, :o2, 1477756800 + tz.transition 2017, 3, :o3, 1490457600 + tz.transition 2017, 10, :o2, 1509206400 + tz.transition 2018, 3, :o3, 1521907200 + tz.transition 2018, 10, :o2, 1540656000 + tz.transition 2019, 3, :o3, 1553961600 + tz.transition 2019, 10, :o2, 1572105600 + tz.transition 2020, 3, :o3, 1585411200 + tz.transition 2020, 10, :o2, 1603555200 + tz.transition 2021, 3, :o3, 1616860800 + tz.transition 2021, 10, :o2, 1635609600 + tz.transition 2022, 3, :o3, 1648310400 + tz.transition 2022, 10, :o2, 1667059200 + tz.transition 2023, 3, :o3, 1679760000 + tz.transition 2023, 10, :o2, 1698508800 + tz.transition 2024, 3, :o3, 1711814400 + tz.transition 2024, 10, :o2, 1729958400 + tz.transition 2025, 3, :o3, 1743264000 + tz.transition 2025, 10, :o2, 1761408000 + tz.transition 2026, 3, :o3, 1774713600 + tz.transition 2026, 10, :o2, 1792857600 + tz.transition 2027, 3, :o3, 1806163200 + tz.transition 2027, 10, :o2, 1824912000 + tz.transition 2028, 3, :o3, 1837612800 + tz.transition 2028, 10, :o2, 1856361600 + tz.transition 2029, 3, :o3, 1869062400 + tz.transition 2029, 10, :o2, 1887811200 + tz.transition 2030, 3, :o3, 1901116800 + tz.transition 2030, 10, :o2, 1919260800 + tz.transition 2031, 3, :o3, 1932566400 + tz.transition 2031, 10, :o2, 1950710400 + tz.transition 2032, 3, :o3, 1964016000 + tz.transition 2032, 10, :o2, 1982764800 + tz.transition 2033, 3, :o3, 1995465600 + tz.transition 2033, 10, :o2, 2014214400 + tz.transition 2034, 3, :o3, 2026915200 + tz.transition 2034, 10, :o2, 2045664000 + tz.transition 2035, 3, :o3, 2058364800 + tz.transition 2035, 10, :o2, 2077113600 + tz.transition 2036, 3, :o3, 2090419200 + tz.transition 2036, 10, :o2, 2108563200 + tz.transition 2037, 3, :o3, 2121868800 + tz.transition 2037, 10, :o2, 2140012800 + tz.transition 2038, 3, :o3, 14793061, 6 + tz.transition 2038, 10, :o2, 14794363, 6 + tz.transition 2039, 3, :o3, 14795245, 6 + tz.transition 2039, 10, :o2, 14796547, 6 + tz.transition 2040, 3, :o3, 14797429, 6 + tz.transition 2040, 10, :o2, 14798731, 6 + tz.transition 2041, 3, :o3, 14799655, 6 + tz.transition 2041, 10, :o2, 14800915, 6 + tz.transition 2042, 3, :o3, 14801839, 6 + tz.transition 2042, 10, :o2, 14803099, 6 + tz.transition 2043, 3, :o3, 14804023, 6 + tz.transition 2043, 10, :o2, 14805283, 6 + tz.transition 2044, 3, :o3, 14806207, 6 + tz.transition 2044, 10, :o2, 14807509, 6 + tz.transition 2045, 3, :o3, 14808391, 6 + tz.transition 2045, 10, :o2, 14809693, 6 + tz.transition 2046, 3, :o3, 14810575, 6 + tz.transition 2046, 10, :o2, 14811877, 6 + tz.transition 2047, 3, :o3, 14812801, 6 + tz.transition 2047, 10, :o2, 14814061, 6 + tz.transition 2048, 3, :o3, 14814985, 6 + tz.transition 2048, 10, :o2, 14816245, 6 + tz.transition 2049, 3, :o3, 14817169, 6 + tz.transition 2049, 10, :o2, 14818471, 6 + tz.transition 2050, 3, :o3, 14819353, 6 + tz.transition 2050, 10, :o2, 14820655, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yakutsk.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yakutsk.rb new file mode 100644 index 000000000..56435a788 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yakutsk.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Yakutsk + include TimezoneDefinition + + timezone 'Asia/Yakutsk' do |tz| + tz.offset :o0, 31120, 0, :LMT + tz.offset :o1, 28800, 0, :YAKT + tz.offset :o2, 32400, 0, :YAKT + tz.offset :o3, 32400, 3600, :YAKST + tz.offset :o4, 28800, 3600, :YAKST + + tz.transition 1919, 12, :o1, 2616091711, 1080 + tz.transition 1930, 6, :o2, 14556889, 6 + tz.transition 1981, 3, :o3, 354898800 + tz.transition 1981, 9, :o2, 370706400 + tz.transition 1982, 3, :o3, 386434800 + tz.transition 1982, 9, :o2, 402242400 + tz.transition 1983, 3, :o3, 417970800 + tz.transition 1983, 9, :o2, 433778400 + tz.transition 1984, 3, :o3, 449593200 + tz.transition 1984, 9, :o2, 465325200 + tz.transition 1985, 3, :o3, 481050000 + tz.transition 1985, 9, :o2, 496774800 + tz.transition 1986, 3, :o3, 512499600 + tz.transition 1986, 9, :o2, 528224400 + tz.transition 1987, 3, :o3, 543949200 + tz.transition 1987, 9, :o2, 559674000 + tz.transition 1988, 3, :o3, 575398800 + tz.transition 1988, 9, :o2, 591123600 + tz.transition 1989, 3, :o3, 606848400 + tz.transition 1989, 9, :o2, 622573200 + tz.transition 1990, 3, :o3, 638298000 + tz.transition 1990, 9, :o2, 654627600 + tz.transition 1991, 3, :o4, 670352400 + tz.transition 1991, 9, :o1, 686080800 + tz.transition 1992, 1, :o2, 695757600 + tz.transition 1992, 3, :o3, 701791200 + tz.transition 1992, 9, :o2, 717512400 + tz.transition 1993, 3, :o3, 733251600 + tz.transition 1993, 9, :o2, 748976400 + tz.transition 1994, 3, :o3, 764701200 + tz.transition 1994, 9, :o2, 780426000 + tz.transition 1995, 3, :o3, 796150800 + tz.transition 1995, 9, :o2, 811875600 + tz.transition 1996, 3, :o3, 828205200 + tz.transition 1996, 10, :o2, 846349200 + tz.transition 1997, 3, :o3, 859654800 + tz.transition 1997, 10, :o2, 877798800 + tz.transition 1998, 3, :o3, 891104400 + tz.transition 1998, 10, :o2, 909248400 + tz.transition 1999, 3, :o3, 922554000 + tz.transition 1999, 10, :o2, 941302800 + tz.transition 2000, 3, :o3, 954003600 + tz.transition 2000, 10, :o2, 972752400 + tz.transition 2001, 3, :o3, 985453200 + tz.transition 2001, 10, :o2, 1004202000 + tz.transition 2002, 3, :o3, 1017507600 + tz.transition 2002, 10, :o2, 1035651600 + tz.transition 2003, 3, :o3, 1048957200 + tz.transition 2003, 10, :o2, 1067101200 + tz.transition 2004, 3, :o3, 1080406800 + tz.transition 2004, 10, :o2, 1099155600 + tz.transition 2005, 3, :o3, 1111856400 + tz.transition 2005, 10, :o2, 1130605200 + tz.transition 2006, 3, :o3, 1143306000 + tz.transition 2006, 10, :o2, 1162054800 + tz.transition 2007, 3, :o3, 1174755600 + tz.transition 2007, 10, :o2, 1193504400 + tz.transition 2008, 3, :o3, 1206810000 + tz.transition 2008, 10, :o2, 1224954000 + tz.transition 2009, 3, :o3, 1238259600 + tz.transition 2009, 10, :o2, 1256403600 + tz.transition 2010, 3, :o3, 1269709200 + tz.transition 2010, 10, :o2, 1288458000 + tz.transition 2011, 3, :o3, 1301158800 + tz.transition 2011, 10, :o2, 1319907600 + tz.transition 2012, 3, :o3, 1332608400 + tz.transition 2012, 10, :o2, 1351357200 + tz.transition 2013, 3, :o3, 1364662800 + tz.transition 2013, 10, :o2, 1382806800 + tz.transition 2014, 3, :o3, 1396112400 + tz.transition 2014, 10, :o2, 1414256400 + tz.transition 2015, 3, :o3, 1427562000 + tz.transition 2015, 10, :o2, 1445706000 + tz.transition 2016, 3, :o3, 1459011600 + tz.transition 2016, 10, :o2, 1477760400 + tz.transition 2017, 3, :o3, 1490461200 + tz.transition 2017, 10, :o2, 1509210000 + tz.transition 2018, 3, :o3, 1521910800 + tz.transition 2018, 10, :o2, 1540659600 + tz.transition 2019, 3, :o3, 1553965200 + tz.transition 2019, 10, :o2, 1572109200 + tz.transition 2020, 3, :o3, 1585414800 + tz.transition 2020, 10, :o2, 1603558800 + tz.transition 2021, 3, :o3, 1616864400 + tz.transition 2021, 10, :o2, 1635613200 + tz.transition 2022, 3, :o3, 1648314000 + tz.transition 2022, 10, :o2, 1667062800 + tz.transition 2023, 3, :o3, 1679763600 + tz.transition 2023, 10, :o2, 1698512400 + tz.transition 2024, 3, :o3, 1711818000 + tz.transition 2024, 10, :o2, 1729962000 + tz.transition 2025, 3, :o3, 1743267600 + tz.transition 2025, 10, :o2, 1761411600 + tz.transition 2026, 3, :o3, 1774717200 + tz.transition 2026, 10, :o2, 1792861200 + tz.transition 2027, 3, :o3, 1806166800 + tz.transition 2027, 10, :o2, 1824915600 + tz.transition 2028, 3, :o3, 1837616400 + tz.transition 2028, 10, :o2, 1856365200 + tz.transition 2029, 3, :o3, 1869066000 + tz.transition 2029, 10, :o2, 1887814800 + tz.transition 2030, 3, :o3, 1901120400 + tz.transition 2030, 10, :o2, 1919264400 + tz.transition 2031, 3, :o3, 1932570000 + tz.transition 2031, 10, :o2, 1950714000 + tz.transition 2032, 3, :o3, 1964019600 + tz.transition 2032, 10, :o2, 1982768400 + tz.transition 2033, 3, :o3, 1995469200 + tz.transition 2033, 10, :o2, 2014218000 + tz.transition 2034, 3, :o3, 2026918800 + tz.transition 2034, 10, :o2, 2045667600 + tz.transition 2035, 3, :o3, 2058368400 + tz.transition 2035, 10, :o2, 2077117200 + tz.transition 2036, 3, :o3, 2090422800 + tz.transition 2036, 10, :o2, 2108566800 + tz.transition 2037, 3, :o3, 2121872400 + tz.transition 2037, 10, :o2, 2140016400 + tz.transition 2038, 3, :o3, 59172245, 24 + tz.transition 2038, 10, :o2, 59177453, 24 + tz.transition 2039, 3, :o3, 59180981, 24 + tz.transition 2039, 10, :o2, 59186189, 24 + tz.transition 2040, 3, :o3, 59189717, 24 + tz.transition 2040, 10, :o2, 59194925, 24 + tz.transition 2041, 3, :o3, 59198621, 24 + tz.transition 2041, 10, :o2, 59203661, 24 + tz.transition 2042, 3, :o3, 59207357, 24 + tz.transition 2042, 10, :o2, 59212397, 24 + tz.transition 2043, 3, :o3, 59216093, 24 + tz.transition 2043, 10, :o2, 59221133, 24 + tz.transition 2044, 3, :o3, 59224829, 24 + tz.transition 2044, 10, :o2, 59230037, 24 + tz.transition 2045, 3, :o3, 59233565, 24 + tz.transition 2045, 10, :o2, 59238773, 24 + tz.transition 2046, 3, :o3, 59242301, 24 + tz.transition 2046, 10, :o2, 59247509, 24 + tz.transition 2047, 3, :o3, 59251205, 24 + tz.transition 2047, 10, :o2, 59256245, 24 + tz.transition 2048, 3, :o3, 59259941, 24 + tz.transition 2048, 10, :o2, 59264981, 24 + tz.transition 2049, 3, :o3, 59268677, 24 + tz.transition 2049, 10, :o2, 59273885, 24 + tz.transition 2050, 3, :o3, 59277413, 24 + tz.transition 2050, 10, :o2, 59282621, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yekaterinburg.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yekaterinburg.rb new file mode 100644 index 000000000..8ef8df4a4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yekaterinburg.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Yekaterinburg + include TimezoneDefinition + + timezone 'Asia/Yekaterinburg' do |tz| + tz.offset :o0, 14544, 0, :LMT + tz.offset :o1, 14400, 0, :SVET + tz.offset :o2, 18000, 0, :SVET + tz.offset :o3, 18000, 3600, :SVEST + tz.offset :o4, 14400, 3600, :SVEST + tz.offset :o5, 18000, 0, :YEKT + tz.offset :o6, 18000, 3600, :YEKST + + tz.transition 1919, 7, :o1, 1453292699, 600 + tz.transition 1930, 6, :o2, 7278445, 3 + tz.transition 1981, 3, :o3, 354913200 + tz.transition 1981, 9, :o2, 370720800 + tz.transition 1982, 3, :o3, 386449200 + tz.transition 1982, 9, :o2, 402256800 + tz.transition 1983, 3, :o3, 417985200 + tz.transition 1983, 9, :o2, 433792800 + tz.transition 1984, 3, :o3, 449607600 + tz.transition 1984, 9, :o2, 465339600 + tz.transition 1985, 3, :o3, 481064400 + tz.transition 1985, 9, :o2, 496789200 + tz.transition 1986, 3, :o3, 512514000 + tz.transition 1986, 9, :o2, 528238800 + tz.transition 1987, 3, :o3, 543963600 + tz.transition 1987, 9, :o2, 559688400 + tz.transition 1988, 3, :o3, 575413200 + tz.transition 1988, 9, :o2, 591138000 + tz.transition 1989, 3, :o3, 606862800 + tz.transition 1989, 9, :o2, 622587600 + tz.transition 1990, 3, :o3, 638312400 + tz.transition 1990, 9, :o2, 654642000 + tz.transition 1991, 3, :o4, 670366800 + tz.transition 1991, 9, :o1, 686095200 + tz.transition 1992, 1, :o5, 695772000 + tz.transition 1992, 3, :o6, 701805600 + tz.transition 1992, 9, :o5, 717526800 + tz.transition 1993, 3, :o6, 733266000 + tz.transition 1993, 9, :o5, 748990800 + tz.transition 1994, 3, :o6, 764715600 + tz.transition 1994, 9, :o5, 780440400 + tz.transition 1995, 3, :o6, 796165200 + tz.transition 1995, 9, :o5, 811890000 + tz.transition 1996, 3, :o6, 828219600 + tz.transition 1996, 10, :o5, 846363600 + tz.transition 1997, 3, :o6, 859669200 + tz.transition 1997, 10, :o5, 877813200 + tz.transition 1998, 3, :o6, 891118800 + tz.transition 1998, 10, :o5, 909262800 + tz.transition 1999, 3, :o6, 922568400 + tz.transition 1999, 10, :o5, 941317200 + tz.transition 2000, 3, :o6, 954018000 + tz.transition 2000, 10, :o5, 972766800 + tz.transition 2001, 3, :o6, 985467600 + tz.transition 2001, 10, :o5, 1004216400 + tz.transition 2002, 3, :o6, 1017522000 + tz.transition 2002, 10, :o5, 1035666000 + tz.transition 2003, 3, :o6, 1048971600 + tz.transition 2003, 10, :o5, 1067115600 + tz.transition 2004, 3, :o6, 1080421200 + tz.transition 2004, 10, :o5, 1099170000 + tz.transition 2005, 3, :o6, 1111870800 + tz.transition 2005, 10, :o5, 1130619600 + tz.transition 2006, 3, :o6, 1143320400 + tz.transition 2006, 10, :o5, 1162069200 + tz.transition 2007, 3, :o6, 1174770000 + tz.transition 2007, 10, :o5, 1193518800 + tz.transition 2008, 3, :o6, 1206824400 + tz.transition 2008, 10, :o5, 1224968400 + tz.transition 2009, 3, :o6, 1238274000 + tz.transition 2009, 10, :o5, 1256418000 + tz.transition 2010, 3, :o6, 1269723600 + tz.transition 2010, 10, :o5, 1288472400 + tz.transition 2011, 3, :o6, 1301173200 + tz.transition 2011, 10, :o5, 1319922000 + tz.transition 2012, 3, :o6, 1332622800 + tz.transition 2012, 10, :o5, 1351371600 + tz.transition 2013, 3, :o6, 1364677200 + tz.transition 2013, 10, :o5, 1382821200 + tz.transition 2014, 3, :o6, 1396126800 + tz.transition 2014, 10, :o5, 1414270800 + tz.transition 2015, 3, :o6, 1427576400 + tz.transition 2015, 10, :o5, 1445720400 + tz.transition 2016, 3, :o6, 1459026000 + tz.transition 2016, 10, :o5, 1477774800 + tz.transition 2017, 3, :o6, 1490475600 + tz.transition 2017, 10, :o5, 1509224400 + tz.transition 2018, 3, :o6, 1521925200 + tz.transition 2018, 10, :o5, 1540674000 + tz.transition 2019, 3, :o6, 1553979600 + tz.transition 2019, 10, :o5, 1572123600 + tz.transition 2020, 3, :o6, 1585429200 + tz.transition 2020, 10, :o5, 1603573200 + tz.transition 2021, 3, :o6, 1616878800 + tz.transition 2021, 10, :o5, 1635627600 + tz.transition 2022, 3, :o6, 1648328400 + tz.transition 2022, 10, :o5, 1667077200 + tz.transition 2023, 3, :o6, 1679778000 + tz.transition 2023, 10, :o5, 1698526800 + tz.transition 2024, 3, :o6, 1711832400 + tz.transition 2024, 10, :o5, 1729976400 + tz.transition 2025, 3, :o6, 1743282000 + tz.transition 2025, 10, :o5, 1761426000 + tz.transition 2026, 3, :o6, 1774731600 + tz.transition 2026, 10, :o5, 1792875600 + tz.transition 2027, 3, :o6, 1806181200 + tz.transition 2027, 10, :o5, 1824930000 + tz.transition 2028, 3, :o6, 1837630800 + tz.transition 2028, 10, :o5, 1856379600 + tz.transition 2029, 3, :o6, 1869080400 + tz.transition 2029, 10, :o5, 1887829200 + tz.transition 2030, 3, :o6, 1901134800 + tz.transition 2030, 10, :o5, 1919278800 + tz.transition 2031, 3, :o6, 1932584400 + tz.transition 2031, 10, :o5, 1950728400 + tz.transition 2032, 3, :o6, 1964034000 + tz.transition 2032, 10, :o5, 1982782800 + tz.transition 2033, 3, :o6, 1995483600 + tz.transition 2033, 10, :o5, 2014232400 + tz.transition 2034, 3, :o6, 2026933200 + tz.transition 2034, 10, :o5, 2045682000 + tz.transition 2035, 3, :o6, 2058382800 + tz.transition 2035, 10, :o5, 2077131600 + tz.transition 2036, 3, :o6, 2090437200 + tz.transition 2036, 10, :o5, 2108581200 + tz.transition 2037, 3, :o6, 2121886800 + tz.transition 2037, 10, :o5, 2140030800 + tz.transition 2038, 3, :o6, 19724083, 8 + tz.transition 2038, 10, :o5, 19725819, 8 + tz.transition 2039, 3, :o6, 19726995, 8 + tz.transition 2039, 10, :o5, 19728731, 8 + tz.transition 2040, 3, :o6, 19729907, 8 + tz.transition 2040, 10, :o5, 19731643, 8 + tz.transition 2041, 3, :o6, 19732875, 8 + tz.transition 2041, 10, :o5, 19734555, 8 + tz.transition 2042, 3, :o6, 19735787, 8 + tz.transition 2042, 10, :o5, 19737467, 8 + tz.transition 2043, 3, :o6, 19738699, 8 + tz.transition 2043, 10, :o5, 19740379, 8 + tz.transition 2044, 3, :o6, 19741611, 8 + tz.transition 2044, 10, :o5, 19743347, 8 + tz.transition 2045, 3, :o6, 19744523, 8 + tz.transition 2045, 10, :o5, 19746259, 8 + tz.transition 2046, 3, :o6, 19747435, 8 + tz.transition 2046, 10, :o5, 19749171, 8 + tz.transition 2047, 3, :o6, 19750403, 8 + tz.transition 2047, 10, :o5, 19752083, 8 + tz.transition 2048, 3, :o6, 19753315, 8 + tz.transition 2048, 10, :o5, 19754995, 8 + tz.transition 2049, 3, :o6, 19756227, 8 + tz.transition 2049, 10, :o5, 19757963, 8 + tz.transition 2050, 3, :o6, 19759139, 8 + tz.transition 2050, 10, :o5, 19760875, 8 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yerevan.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yerevan.rb new file mode 100644 index 000000000..e7f160861 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Asia/Yerevan.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Asia + module Yerevan + include TimezoneDefinition + + timezone 'Asia/Yerevan' do |tz| + tz.offset :o0, 10680, 0, :LMT + tz.offset :o1, 10800, 0, :YERT + tz.offset :o2, 14400, 0, :YERT + tz.offset :o3, 14400, 3600, :YERST + tz.offset :o4, 10800, 3600, :YERST + tz.offset :o5, 10800, 3600, :AMST + tz.offset :o6, 10800, 0, :AMT + tz.offset :o7, 14400, 0, :AMT + tz.offset :o8, 14400, 3600, :AMST + + tz.transition 1924, 5, :o1, 1745213311, 720 + tz.transition 1957, 2, :o2, 19487187, 8 + tz.transition 1981, 3, :o3, 354916800 + tz.transition 1981, 9, :o2, 370724400 + tz.transition 1982, 3, :o3, 386452800 + tz.transition 1982, 9, :o2, 402260400 + tz.transition 1983, 3, :o3, 417988800 + tz.transition 1983, 9, :o2, 433796400 + tz.transition 1984, 3, :o3, 449611200 + tz.transition 1984, 9, :o2, 465343200 + tz.transition 1985, 3, :o3, 481068000 + tz.transition 1985, 9, :o2, 496792800 + tz.transition 1986, 3, :o3, 512517600 + tz.transition 1986, 9, :o2, 528242400 + tz.transition 1987, 3, :o3, 543967200 + tz.transition 1987, 9, :o2, 559692000 + tz.transition 1988, 3, :o3, 575416800 + tz.transition 1988, 9, :o2, 591141600 + tz.transition 1989, 3, :o3, 606866400 + tz.transition 1989, 9, :o2, 622591200 + tz.transition 1990, 3, :o3, 638316000 + tz.transition 1990, 9, :o2, 654645600 + tz.transition 1991, 3, :o4, 670370400 + tz.transition 1991, 9, :o5, 685569600 + tz.transition 1991, 9, :o6, 686098800 + tz.transition 1992, 3, :o5, 701812800 + tz.transition 1992, 9, :o6, 717534000 + tz.transition 1993, 3, :o5, 733273200 + tz.transition 1993, 9, :o6, 748998000 + tz.transition 1994, 3, :o5, 764722800 + tz.transition 1994, 9, :o6, 780447600 + tz.transition 1995, 3, :o5, 796172400 + tz.transition 1995, 9, :o7, 811897200 + tz.transition 1997, 3, :o8, 859672800 + tz.transition 1997, 10, :o7, 877816800 + tz.transition 1998, 3, :o8, 891122400 + tz.transition 1998, 10, :o7, 909266400 + tz.transition 1999, 3, :o8, 922572000 + tz.transition 1999, 10, :o7, 941320800 + tz.transition 2000, 3, :o8, 954021600 + tz.transition 2000, 10, :o7, 972770400 + tz.transition 2001, 3, :o8, 985471200 + tz.transition 2001, 10, :o7, 1004220000 + tz.transition 2002, 3, :o8, 1017525600 + tz.transition 2002, 10, :o7, 1035669600 + tz.transition 2003, 3, :o8, 1048975200 + tz.transition 2003, 10, :o7, 1067119200 + tz.transition 2004, 3, :o8, 1080424800 + tz.transition 2004, 10, :o7, 1099173600 + tz.transition 2005, 3, :o8, 1111874400 + tz.transition 2005, 10, :o7, 1130623200 + tz.transition 2006, 3, :o8, 1143324000 + tz.transition 2006, 10, :o7, 1162072800 + tz.transition 2007, 3, :o8, 1174773600 + tz.transition 2007, 10, :o7, 1193522400 + tz.transition 2008, 3, :o8, 1206828000 + tz.transition 2008, 10, :o7, 1224972000 + tz.transition 2009, 3, :o8, 1238277600 + tz.transition 2009, 10, :o7, 1256421600 + tz.transition 2010, 3, :o8, 1269727200 + tz.transition 2010, 10, :o7, 1288476000 + tz.transition 2011, 3, :o8, 1301176800 + tz.transition 2011, 10, :o7, 1319925600 + tz.transition 2012, 3, :o8, 1332626400 + tz.transition 2012, 10, :o7, 1351375200 + tz.transition 2013, 3, :o8, 1364680800 + tz.transition 2013, 10, :o7, 1382824800 + tz.transition 2014, 3, :o8, 1396130400 + tz.transition 2014, 10, :o7, 1414274400 + tz.transition 2015, 3, :o8, 1427580000 + tz.transition 2015, 10, :o7, 1445724000 + tz.transition 2016, 3, :o8, 1459029600 + tz.transition 2016, 10, :o7, 1477778400 + tz.transition 2017, 3, :o8, 1490479200 + tz.transition 2017, 10, :o7, 1509228000 + tz.transition 2018, 3, :o8, 1521928800 + tz.transition 2018, 10, :o7, 1540677600 + tz.transition 2019, 3, :o8, 1553983200 + tz.transition 2019, 10, :o7, 1572127200 + tz.transition 2020, 3, :o8, 1585432800 + tz.transition 2020, 10, :o7, 1603576800 + tz.transition 2021, 3, :o8, 1616882400 + tz.transition 2021, 10, :o7, 1635631200 + tz.transition 2022, 3, :o8, 1648332000 + tz.transition 2022, 10, :o7, 1667080800 + tz.transition 2023, 3, :o8, 1679781600 + tz.transition 2023, 10, :o7, 1698530400 + tz.transition 2024, 3, :o8, 1711836000 + tz.transition 2024, 10, :o7, 1729980000 + tz.transition 2025, 3, :o8, 1743285600 + tz.transition 2025, 10, :o7, 1761429600 + tz.transition 2026, 3, :o8, 1774735200 + tz.transition 2026, 10, :o7, 1792879200 + tz.transition 2027, 3, :o8, 1806184800 + tz.transition 2027, 10, :o7, 1824933600 + tz.transition 2028, 3, :o8, 1837634400 + tz.transition 2028, 10, :o7, 1856383200 + tz.transition 2029, 3, :o8, 1869084000 + tz.transition 2029, 10, :o7, 1887832800 + tz.transition 2030, 3, :o8, 1901138400 + tz.transition 2030, 10, :o7, 1919282400 + tz.transition 2031, 3, :o8, 1932588000 + tz.transition 2031, 10, :o7, 1950732000 + tz.transition 2032, 3, :o8, 1964037600 + tz.transition 2032, 10, :o7, 1982786400 + tz.transition 2033, 3, :o8, 1995487200 + tz.transition 2033, 10, :o7, 2014236000 + tz.transition 2034, 3, :o8, 2026936800 + tz.transition 2034, 10, :o7, 2045685600 + tz.transition 2035, 3, :o8, 2058386400 + tz.transition 2035, 10, :o7, 2077135200 + tz.transition 2036, 3, :o8, 2090440800 + tz.transition 2036, 10, :o7, 2108584800 + tz.transition 2037, 3, :o8, 2121890400 + tz.transition 2037, 10, :o7, 2140034400 + tz.transition 2038, 3, :o8, 29586125, 12 + tz.transition 2038, 10, :o7, 29588729, 12 + tz.transition 2039, 3, :o8, 29590493, 12 + tz.transition 2039, 10, :o7, 29593097, 12 + tz.transition 2040, 3, :o8, 29594861, 12 + tz.transition 2040, 10, :o7, 29597465, 12 + tz.transition 2041, 3, :o8, 29599313, 12 + tz.transition 2041, 10, :o7, 29601833, 12 + tz.transition 2042, 3, :o8, 29603681, 12 + tz.transition 2042, 10, :o7, 29606201, 12 + tz.transition 2043, 3, :o8, 29608049, 12 + tz.transition 2043, 10, :o7, 29610569, 12 + tz.transition 2044, 3, :o8, 29612417, 12 + tz.transition 2044, 10, :o7, 29615021, 12 + tz.transition 2045, 3, :o8, 29616785, 12 + tz.transition 2045, 10, :o7, 29619389, 12 + tz.transition 2046, 3, :o8, 29621153, 12 + tz.transition 2046, 10, :o7, 29623757, 12 + tz.transition 2047, 3, :o8, 29625605, 12 + tz.transition 2047, 10, :o7, 29628125, 12 + tz.transition 2048, 3, :o8, 29629973, 12 + tz.transition 2048, 10, :o7, 29632493, 12 + tz.transition 2049, 3, :o8, 29634341, 12 + tz.transition 2049, 10, :o7, 29636945, 12 + tz.transition 2050, 3, :o8, 29638709, 12 + tz.transition 2050, 10, :o7, 29641313, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Azores.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Azores.rb new file mode 100644 index 000000000..1bd16a75a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Azores.rb @@ -0,0 +1,270 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Atlantic + module Azores + include TimezoneDefinition + + timezone 'Atlantic/Azores' do |tz| + tz.offset :o0, -6160, 0, :LMT + tz.offset :o1, -6872, 0, :HMT + tz.offset :o2, -7200, 0, :AZOT + tz.offset :o3, -7200, 3600, :AZOST + tz.offset :o4, -7200, 7200, :AZOMT + tz.offset :o5, -3600, 0, :AZOT + tz.offset :o6, -3600, 3600, :AZOST + tz.offset :o7, 0, 0, :WET + + tz.transition 1884, 1, :o1, 2601910697, 1080 + tz.transition 1911, 5, :o2, 26127150259, 10800 + tz.transition 1916, 6, :o3, 58104781, 24 + tz.transition 1916, 11, :o2, 29054023, 12 + tz.transition 1917, 3, :o3, 58110925, 24 + tz.transition 1917, 10, :o2, 58116397, 24 + tz.transition 1918, 3, :o3, 58119709, 24 + tz.transition 1918, 10, :o2, 58125157, 24 + tz.transition 1919, 3, :o3, 58128445, 24 + tz.transition 1919, 10, :o2, 58133917, 24 + tz.transition 1920, 3, :o3, 58137229, 24 + tz.transition 1920, 10, :o2, 58142701, 24 + tz.transition 1921, 3, :o3, 58145989, 24 + tz.transition 1921, 10, :o2, 58151461, 24 + tz.transition 1924, 4, :o3, 58173421, 24 + tz.transition 1924, 10, :o2, 58177765, 24 + tz.transition 1926, 4, :o3, 58190965, 24 + tz.transition 1926, 10, :o2, 58194997, 24 + tz.transition 1927, 4, :o3, 58199533, 24 + tz.transition 1927, 10, :o2, 58203733, 24 + tz.transition 1928, 4, :o3, 58208437, 24 + tz.transition 1928, 10, :o2, 58212637, 24 + tz.transition 1929, 4, :o3, 58217341, 24 + tz.transition 1929, 10, :o2, 58221373, 24 + tz.transition 1931, 4, :o3, 58234813, 24 + tz.transition 1931, 10, :o2, 58238845, 24 + tz.transition 1932, 4, :o3, 58243213, 24 + tz.transition 1932, 10, :o2, 58247581, 24 + tz.transition 1934, 4, :o3, 58260853, 24 + tz.transition 1934, 10, :o2, 58265221, 24 + tz.transition 1935, 3, :o3, 58269421, 24 + tz.transition 1935, 10, :o2, 58273957, 24 + tz.transition 1936, 4, :o3, 58278661, 24 + tz.transition 1936, 10, :o2, 58282693, 24 + tz.transition 1937, 4, :o3, 58287061, 24 + tz.transition 1937, 10, :o2, 58291429, 24 + tz.transition 1938, 3, :o3, 58295629, 24 + tz.transition 1938, 10, :o2, 58300165, 24 + tz.transition 1939, 4, :o3, 58304869, 24 + tz.transition 1939, 11, :o2, 58310077, 24 + tz.transition 1940, 2, :o3, 58312429, 24 + tz.transition 1940, 10, :o2, 58317805, 24 + tz.transition 1941, 4, :o3, 58322173, 24 + tz.transition 1941, 10, :o2, 58326565, 24 + tz.transition 1942, 3, :o3, 58330405, 24 + tz.transition 1942, 4, :o4, 4860951, 2 + tz.transition 1942, 8, :o3, 4861175, 2 + tz.transition 1942, 10, :o2, 58335781, 24 + tz.transition 1943, 3, :o3, 58339141, 24 + tz.transition 1943, 4, :o4, 4861665, 2 + tz.transition 1943, 8, :o3, 4861931, 2 + tz.transition 1943, 10, :o2, 58344685, 24 + tz.transition 1944, 3, :o3, 58347877, 24 + tz.transition 1944, 4, :o4, 4862407, 2 + tz.transition 1944, 8, :o3, 4862659, 2 + tz.transition 1944, 10, :o2, 58353421, 24 + tz.transition 1945, 3, :o3, 58356613, 24 + tz.transition 1945, 4, :o4, 4863135, 2 + tz.transition 1945, 8, :o3, 4863387, 2 + tz.transition 1945, 10, :o2, 58362157, 24 + tz.transition 1946, 4, :o3, 58366021, 24 + tz.transition 1946, 10, :o2, 58370389, 24 + tz.transition 1947, 4, :o3, 7296845, 3 + tz.transition 1947, 10, :o2, 7297391, 3 + tz.transition 1948, 4, :o3, 7297937, 3 + tz.transition 1948, 10, :o2, 7298483, 3 + tz.transition 1949, 4, :o3, 7299029, 3 + tz.transition 1949, 10, :o2, 7299575, 3 + tz.transition 1951, 4, :o3, 7301213, 3 + tz.transition 1951, 10, :o2, 7301780, 3 + tz.transition 1952, 4, :o3, 7302326, 3 + tz.transition 1952, 10, :o2, 7302872, 3 + tz.transition 1953, 4, :o3, 7303418, 3 + tz.transition 1953, 10, :o2, 7303964, 3 + tz.transition 1954, 4, :o3, 7304510, 3 + tz.transition 1954, 10, :o2, 7305056, 3 + tz.transition 1955, 4, :o3, 7305602, 3 + tz.transition 1955, 10, :o2, 7306148, 3 + tz.transition 1956, 4, :o3, 7306694, 3 + tz.transition 1956, 10, :o2, 7307261, 3 + tz.transition 1957, 4, :o3, 7307807, 3 + tz.transition 1957, 10, :o2, 7308353, 3 + tz.transition 1958, 4, :o3, 7308899, 3 + tz.transition 1958, 10, :o2, 7309445, 3 + tz.transition 1959, 4, :o3, 7309991, 3 + tz.transition 1959, 10, :o2, 7310537, 3 + tz.transition 1960, 4, :o3, 7311083, 3 + tz.transition 1960, 10, :o2, 7311629, 3 + tz.transition 1961, 4, :o3, 7312175, 3 + tz.transition 1961, 10, :o2, 7312721, 3 + tz.transition 1962, 4, :o3, 7313267, 3 + tz.transition 1962, 10, :o2, 7313834, 3 + tz.transition 1963, 4, :o3, 7314380, 3 + tz.transition 1963, 10, :o2, 7314926, 3 + tz.transition 1964, 4, :o3, 7315472, 3 + tz.transition 1964, 10, :o2, 7316018, 3 + tz.transition 1965, 4, :o3, 7316564, 3 + tz.transition 1965, 10, :o2, 7317110, 3 + tz.transition 1966, 4, :o5, 7317656, 3 + tz.transition 1977, 3, :o6, 228272400 + tz.transition 1977, 9, :o5, 243997200 + tz.transition 1978, 4, :o6, 260326800 + tz.transition 1978, 10, :o5, 276051600 + tz.transition 1979, 4, :o6, 291776400 + tz.transition 1979, 9, :o5, 307504800 + tz.transition 1980, 3, :o6, 323226000 + tz.transition 1980, 9, :o5, 338954400 + tz.transition 1981, 3, :o6, 354679200 + tz.transition 1981, 9, :o5, 370404000 + tz.transition 1982, 3, :o6, 386128800 + tz.transition 1982, 9, :o5, 401853600 + tz.transition 1983, 3, :o6, 417582000 + tz.transition 1983, 9, :o5, 433303200 + tz.transition 1984, 3, :o6, 449028000 + tz.transition 1984, 9, :o5, 465357600 + tz.transition 1985, 3, :o6, 481082400 + tz.transition 1985, 9, :o5, 496807200 + tz.transition 1986, 3, :o6, 512532000 + tz.transition 1986, 9, :o5, 528256800 + tz.transition 1987, 3, :o6, 543981600 + tz.transition 1987, 9, :o5, 559706400 + tz.transition 1988, 3, :o6, 575431200 + tz.transition 1988, 9, :o5, 591156000 + tz.transition 1989, 3, :o6, 606880800 + tz.transition 1989, 9, :o5, 622605600 + tz.transition 1990, 3, :o6, 638330400 + tz.transition 1990, 9, :o5, 654660000 + tz.transition 1991, 3, :o6, 670384800 + tz.transition 1991, 9, :o5, 686109600 + tz.transition 1992, 3, :o6, 701834400 + tz.transition 1992, 9, :o7, 717559200 + tz.transition 1993, 3, :o6, 733280400 + tz.transition 1993, 9, :o5, 749005200 + tz.transition 1994, 3, :o6, 764730000 + tz.transition 1994, 9, :o5, 780454800 + tz.transition 1995, 3, :o6, 796179600 + tz.transition 1995, 9, :o5, 811904400 + tz.transition 1996, 3, :o6, 828234000 + tz.transition 1996, 10, :o5, 846378000 + tz.transition 1997, 3, :o6, 859683600 + tz.transition 1997, 10, :o5, 877827600 + tz.transition 1998, 3, :o6, 891133200 + tz.transition 1998, 10, :o5, 909277200 + tz.transition 1999, 3, :o6, 922582800 + tz.transition 1999, 10, :o5, 941331600 + tz.transition 2000, 3, :o6, 954032400 + tz.transition 2000, 10, :o5, 972781200 + tz.transition 2001, 3, :o6, 985482000 + tz.transition 2001, 10, :o5, 1004230800 + tz.transition 2002, 3, :o6, 1017536400 + tz.transition 2002, 10, :o5, 1035680400 + tz.transition 2003, 3, :o6, 1048986000 + tz.transition 2003, 10, :o5, 1067130000 + tz.transition 2004, 3, :o6, 1080435600 + tz.transition 2004, 10, :o5, 1099184400 + tz.transition 2005, 3, :o6, 1111885200 + tz.transition 2005, 10, :o5, 1130634000 + tz.transition 2006, 3, :o6, 1143334800 + tz.transition 2006, 10, :o5, 1162083600 + tz.transition 2007, 3, :o6, 1174784400 + tz.transition 2007, 10, :o5, 1193533200 + tz.transition 2008, 3, :o6, 1206838800 + tz.transition 2008, 10, :o5, 1224982800 + tz.transition 2009, 3, :o6, 1238288400 + tz.transition 2009, 10, :o5, 1256432400 + tz.transition 2010, 3, :o6, 1269738000 + tz.transition 2010, 10, :o5, 1288486800 + tz.transition 2011, 3, :o6, 1301187600 + tz.transition 2011, 10, :o5, 1319936400 + tz.transition 2012, 3, :o6, 1332637200 + tz.transition 2012, 10, :o5, 1351386000 + tz.transition 2013, 3, :o6, 1364691600 + tz.transition 2013, 10, :o5, 1382835600 + tz.transition 2014, 3, :o6, 1396141200 + tz.transition 2014, 10, :o5, 1414285200 + tz.transition 2015, 3, :o6, 1427590800 + tz.transition 2015, 10, :o5, 1445734800 + tz.transition 2016, 3, :o6, 1459040400 + tz.transition 2016, 10, :o5, 1477789200 + tz.transition 2017, 3, :o6, 1490490000 + tz.transition 2017, 10, :o5, 1509238800 + tz.transition 2018, 3, :o6, 1521939600 + tz.transition 2018, 10, :o5, 1540688400 + tz.transition 2019, 3, :o6, 1553994000 + tz.transition 2019, 10, :o5, 1572138000 + tz.transition 2020, 3, :o6, 1585443600 + tz.transition 2020, 10, :o5, 1603587600 + tz.transition 2021, 3, :o6, 1616893200 + tz.transition 2021, 10, :o5, 1635642000 + tz.transition 2022, 3, :o6, 1648342800 + tz.transition 2022, 10, :o5, 1667091600 + tz.transition 2023, 3, :o6, 1679792400 + tz.transition 2023, 10, :o5, 1698541200 + tz.transition 2024, 3, :o6, 1711846800 + tz.transition 2024, 10, :o5, 1729990800 + tz.transition 2025, 3, :o6, 1743296400 + tz.transition 2025, 10, :o5, 1761440400 + tz.transition 2026, 3, :o6, 1774746000 + tz.transition 2026, 10, :o5, 1792890000 + tz.transition 2027, 3, :o6, 1806195600 + tz.transition 2027, 10, :o5, 1824944400 + tz.transition 2028, 3, :o6, 1837645200 + tz.transition 2028, 10, :o5, 1856394000 + tz.transition 2029, 3, :o6, 1869094800 + tz.transition 2029, 10, :o5, 1887843600 + tz.transition 2030, 3, :o6, 1901149200 + tz.transition 2030, 10, :o5, 1919293200 + tz.transition 2031, 3, :o6, 1932598800 + tz.transition 2031, 10, :o5, 1950742800 + tz.transition 2032, 3, :o6, 1964048400 + tz.transition 2032, 10, :o5, 1982797200 + tz.transition 2033, 3, :o6, 1995498000 + tz.transition 2033, 10, :o5, 2014246800 + tz.transition 2034, 3, :o6, 2026947600 + tz.transition 2034, 10, :o5, 2045696400 + tz.transition 2035, 3, :o6, 2058397200 + tz.transition 2035, 10, :o5, 2077146000 + tz.transition 2036, 3, :o6, 2090451600 + tz.transition 2036, 10, :o5, 2108595600 + tz.transition 2037, 3, :o6, 2121901200 + tz.transition 2037, 10, :o5, 2140045200 + tz.transition 2038, 3, :o6, 59172253, 24 + tz.transition 2038, 10, :o5, 59177461, 24 + tz.transition 2039, 3, :o6, 59180989, 24 + tz.transition 2039, 10, :o5, 59186197, 24 + tz.transition 2040, 3, :o6, 59189725, 24 + tz.transition 2040, 10, :o5, 59194933, 24 + tz.transition 2041, 3, :o6, 59198629, 24 + tz.transition 2041, 10, :o5, 59203669, 24 + tz.transition 2042, 3, :o6, 59207365, 24 + tz.transition 2042, 10, :o5, 59212405, 24 + tz.transition 2043, 3, :o6, 59216101, 24 + tz.transition 2043, 10, :o5, 59221141, 24 + tz.transition 2044, 3, :o6, 59224837, 24 + tz.transition 2044, 10, :o5, 59230045, 24 + tz.transition 2045, 3, :o6, 59233573, 24 + tz.transition 2045, 10, :o5, 59238781, 24 + tz.transition 2046, 3, :o6, 59242309, 24 + tz.transition 2046, 10, :o5, 59247517, 24 + tz.transition 2047, 3, :o6, 59251213, 24 + tz.transition 2047, 10, :o5, 59256253, 24 + tz.transition 2048, 3, :o6, 59259949, 24 + tz.transition 2048, 10, :o5, 59264989, 24 + tz.transition 2049, 3, :o6, 59268685, 24 + tz.transition 2049, 10, :o5, 59273893, 24 + tz.transition 2050, 3, :o6, 59277421, 24 + tz.transition 2050, 10, :o5, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Cape_Verde.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Cape_Verde.rb new file mode 100644 index 000000000..61c8c1504 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/Cape_Verde.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Atlantic + module Cape_Verde + include TimezoneDefinition + + timezone 'Atlantic/Cape_Verde' do |tz| + tz.offset :o0, -5644, 0, :LMT + tz.offset :o1, -7200, 0, :CVT + tz.offset :o2, -7200, 3600, :CVST + tz.offset :o3, -3600, 0, :CVT + + tz.transition 1907, 1, :o1, 52219653811, 21600 + tz.transition 1942, 9, :o2, 29167243, 12 + tz.transition 1945, 10, :o1, 58361845, 24 + tz.transition 1975, 11, :o3, 186120000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/South_Georgia.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/South_Georgia.rb new file mode 100644 index 000000000..6a4cbafb9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Atlantic/South_Georgia.rb @@ -0,0 +1,18 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Atlantic + module South_Georgia + include TimezoneDefinition + + timezone 'Atlantic/South_Georgia' do |tz| + tz.offset :o0, -8768, 0, :LMT + tz.offset :o1, -7200, 0, :GST + + tz.transition 1890, 1, :o1, 1627673806, 675 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Adelaide.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Adelaide.rb new file mode 100644 index 000000000..c5d561cc1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Adelaide.rb @@ -0,0 +1,187 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Adelaide + include TimezoneDefinition + + timezone 'Australia/Adelaide' do |tz| + tz.offset :o0, 33260, 0, :LMT + tz.offset :o1, 32400, 0, :CST + tz.offset :o2, 34200, 0, :CST + tz.offset :o3, 34200, 3600, :CST + + tz.transition 1895, 1, :o1, 10425132497, 4320 + tz.transition 1899, 4, :o2, 19318201, 8 + tz.transition 1916, 12, :o3, 3486569911, 1440 + tz.transition 1917, 3, :o2, 116222983, 48 + tz.transition 1941, 12, :o3, 38885763, 16 + tz.transition 1942, 3, :o2, 116661463, 48 + tz.transition 1942, 9, :o3, 38890067, 16 + tz.transition 1943, 3, :o2, 116678935, 48 + tz.transition 1943, 10, :o3, 38896003, 16 + tz.transition 1944, 3, :o2, 116696407, 48 + tz.transition 1971, 10, :o3, 57688200 + tz.transition 1972, 2, :o2, 67969800 + tz.transition 1972, 10, :o3, 89137800 + tz.transition 1973, 3, :o2, 100024200 + tz.transition 1973, 10, :o3, 120587400 + tz.transition 1974, 3, :o2, 131473800 + tz.transition 1974, 10, :o3, 152037000 + tz.transition 1975, 3, :o2, 162923400 + tz.transition 1975, 10, :o3, 183486600 + tz.transition 1976, 3, :o2, 194977800 + tz.transition 1976, 10, :o3, 215541000 + tz.transition 1977, 3, :o2, 226427400 + tz.transition 1977, 10, :o3, 246990600 + tz.transition 1978, 3, :o2, 257877000 + tz.transition 1978, 10, :o3, 278440200 + tz.transition 1979, 3, :o2, 289326600 + tz.transition 1979, 10, :o3, 309889800 + tz.transition 1980, 3, :o2, 320776200 + tz.transition 1980, 10, :o3, 341339400 + tz.transition 1981, 2, :o2, 352225800 + tz.transition 1981, 10, :o3, 372789000 + tz.transition 1982, 3, :o2, 384280200 + tz.transition 1982, 10, :o3, 404843400 + tz.transition 1983, 3, :o2, 415729800 + tz.transition 1983, 10, :o3, 436293000 + tz.transition 1984, 3, :o2, 447179400 + tz.transition 1984, 10, :o3, 467742600 + tz.transition 1985, 3, :o2, 478629000 + tz.transition 1985, 10, :o3, 499192200 + tz.transition 1986, 3, :o2, 511288200 + tz.transition 1986, 10, :o3, 530037000 + tz.transition 1987, 3, :o2, 542737800 + tz.transition 1987, 10, :o3, 562091400 + tz.transition 1988, 3, :o2, 574792200 + tz.transition 1988, 10, :o3, 594145800 + tz.transition 1989, 3, :o2, 606241800 + tz.transition 1989, 10, :o3, 625595400 + tz.transition 1990, 3, :o2, 637691400 + tz.transition 1990, 10, :o3, 657045000 + tz.transition 1991, 3, :o2, 667931400 + tz.transition 1991, 10, :o3, 688494600 + tz.transition 1992, 3, :o2, 701195400 + tz.transition 1992, 10, :o3, 719944200 + tz.transition 1993, 3, :o2, 731435400 + tz.transition 1993, 10, :o3, 751998600 + tz.transition 1994, 3, :o2, 764094600 + tz.transition 1994, 10, :o3, 783448200 + tz.transition 1995, 3, :o2, 796149000 + tz.transition 1995, 10, :o3, 814897800 + tz.transition 1996, 3, :o2, 828203400 + tz.transition 1996, 10, :o3, 846347400 + tz.transition 1997, 3, :o2, 859653000 + tz.transition 1997, 10, :o3, 877797000 + tz.transition 1998, 3, :o2, 891102600 + tz.transition 1998, 10, :o3, 909246600 + tz.transition 1999, 3, :o2, 922552200 + tz.transition 1999, 10, :o3, 941301000 + tz.transition 2000, 3, :o2, 954001800 + tz.transition 2000, 10, :o3, 972750600 + tz.transition 2001, 3, :o2, 985451400 + tz.transition 2001, 10, :o3, 1004200200 + tz.transition 2002, 3, :o2, 1017505800 + tz.transition 2002, 10, :o3, 1035649800 + tz.transition 2003, 3, :o2, 1048955400 + tz.transition 2003, 10, :o3, 1067099400 + tz.transition 2004, 3, :o2, 1080405000 + tz.transition 2004, 10, :o3, 1099153800 + tz.transition 2005, 3, :o2, 1111854600 + tz.transition 2005, 10, :o3, 1130603400 + tz.transition 2006, 4, :o2, 1143909000 + tz.transition 2006, 10, :o3, 1162053000 + tz.transition 2007, 3, :o2, 1174753800 + tz.transition 2007, 10, :o3, 1193502600 + tz.transition 2008, 4, :o2, 1207413000 + tz.transition 2008, 10, :o3, 1223137800 + tz.transition 2009, 4, :o2, 1238862600 + tz.transition 2009, 10, :o3, 1254587400 + tz.transition 2010, 4, :o2, 1270312200 + tz.transition 2010, 10, :o3, 1286037000 + tz.transition 2011, 4, :o2, 1301761800 + tz.transition 2011, 10, :o3, 1317486600 + tz.transition 2012, 3, :o2, 1333211400 + tz.transition 2012, 10, :o3, 1349541000 + tz.transition 2013, 4, :o2, 1365265800 + tz.transition 2013, 10, :o3, 1380990600 + tz.transition 2014, 4, :o2, 1396715400 + tz.transition 2014, 10, :o3, 1412440200 + tz.transition 2015, 4, :o2, 1428165000 + tz.transition 2015, 10, :o3, 1443889800 + tz.transition 2016, 4, :o2, 1459614600 + tz.transition 2016, 10, :o3, 1475339400 + tz.transition 2017, 4, :o2, 1491064200 + tz.transition 2017, 9, :o3, 1506789000 + tz.transition 2018, 3, :o2, 1522513800 + tz.transition 2018, 10, :o3, 1538843400 + tz.transition 2019, 4, :o2, 1554568200 + tz.transition 2019, 10, :o3, 1570293000 + tz.transition 2020, 4, :o2, 1586017800 + tz.transition 2020, 10, :o3, 1601742600 + tz.transition 2021, 4, :o2, 1617467400 + tz.transition 2021, 10, :o3, 1633192200 + tz.transition 2022, 4, :o2, 1648917000 + tz.transition 2022, 10, :o3, 1664641800 + tz.transition 2023, 4, :o2, 1680366600 + tz.transition 2023, 9, :o3, 1696091400 + tz.transition 2024, 4, :o2, 1712421000 + tz.transition 2024, 10, :o3, 1728145800 + tz.transition 2025, 4, :o2, 1743870600 + tz.transition 2025, 10, :o3, 1759595400 + tz.transition 2026, 4, :o2, 1775320200 + tz.transition 2026, 10, :o3, 1791045000 + tz.transition 2027, 4, :o2, 1806769800 + tz.transition 2027, 10, :o3, 1822494600 + tz.transition 2028, 4, :o2, 1838219400 + tz.transition 2028, 9, :o3, 1853944200 + tz.transition 2029, 3, :o2, 1869669000 + tz.transition 2029, 10, :o3, 1885998600 + tz.transition 2030, 4, :o2, 1901723400 + tz.transition 2030, 10, :o3, 1917448200 + tz.transition 2031, 4, :o2, 1933173000 + tz.transition 2031, 10, :o3, 1948897800 + tz.transition 2032, 4, :o2, 1964622600 + tz.transition 2032, 10, :o3, 1980347400 + tz.transition 2033, 4, :o2, 1996072200 + tz.transition 2033, 10, :o3, 2011797000 + tz.transition 2034, 4, :o2, 2027521800 + tz.transition 2034, 9, :o3, 2043246600 + tz.transition 2035, 3, :o2, 2058971400 + tz.transition 2035, 10, :o3, 2075301000 + tz.transition 2036, 4, :o2, 2091025800 + tz.transition 2036, 10, :o3, 2106750600 + tz.transition 2037, 4, :o2, 2122475400 + tz.transition 2037, 10, :o3, 2138200200 + tz.transition 2038, 4, :o2, 39448275, 16 + tz.transition 2038, 10, :o3, 39451187, 16 + tz.transition 2039, 4, :o2, 39454099, 16 + tz.transition 2039, 10, :o3, 39457011, 16 + tz.transition 2040, 3, :o2, 39459923, 16 + tz.transition 2040, 10, :o3, 39462947, 16 + tz.transition 2041, 4, :o2, 39465859, 16 + tz.transition 2041, 10, :o3, 39468771, 16 + tz.transition 2042, 4, :o2, 39471683, 16 + tz.transition 2042, 10, :o3, 39474595, 16 + tz.transition 2043, 4, :o2, 39477507, 16 + tz.transition 2043, 10, :o3, 39480419, 16 + tz.transition 2044, 4, :o2, 39483331, 16 + tz.transition 2044, 10, :o3, 39486243, 16 + tz.transition 2045, 4, :o2, 39489155, 16 + tz.transition 2045, 9, :o3, 39492067, 16 + tz.transition 2046, 3, :o2, 39494979, 16 + tz.transition 2046, 10, :o3, 39498003, 16 + tz.transition 2047, 4, :o2, 39500915, 16 + tz.transition 2047, 10, :o3, 39503827, 16 + tz.transition 2048, 4, :o2, 39506739, 16 + tz.transition 2048, 10, :o3, 39509651, 16 + tz.transition 2049, 4, :o2, 39512563, 16 + tz.transition 2049, 10, :o3, 39515475, 16 + tz.transition 2050, 4, :o2, 39518387, 16 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Brisbane.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Brisbane.rb new file mode 100644 index 000000000..dd85ddae9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Brisbane.rb @@ -0,0 +1,35 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Brisbane + include TimezoneDefinition + + timezone 'Australia/Brisbane' do |tz| + tz.offset :o0, 36728, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1894, 12, :o1, 26062496009, 10800 + tz.transition 1916, 12, :o2, 3486569881, 1440 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 636480000 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 667929600 + tz.transition 1991, 10, :o2, 688492800 + tz.transition 1992, 2, :o1, 699379200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Darwin.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Darwin.rb new file mode 100644 index 000000000..17de88124 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Darwin.rb @@ -0,0 +1,29 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Darwin + include TimezoneDefinition + + timezone 'Australia/Darwin' do |tz| + tz.offset :o0, 31400, 0, :LMT + tz.offset :o1, 32400, 0, :CST + tz.offset :o2, 34200, 0, :CST + tz.offset :o3, 34200, 3600, :CST + + tz.transition 1895, 1, :o1, 1042513259, 432 + tz.transition 1899, 4, :o2, 19318201, 8 + tz.transition 1916, 12, :o3, 3486569911, 1440 + tz.transition 1917, 3, :o2, 116222983, 48 + tz.transition 1941, 12, :o3, 38885763, 16 + tz.transition 1942, 3, :o2, 116661463, 48 + tz.transition 1942, 9, :o3, 38890067, 16 + tz.transition 1943, 3, :o2, 116678935, 48 + tz.transition 1943, 10, :o3, 38896003, 16 + tz.transition 1944, 3, :o2, 116696407, 48 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Hobart.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Hobart.rb new file mode 100644 index 000000000..11384b984 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Hobart.rb @@ -0,0 +1,193 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Hobart + include TimezoneDefinition + + timezone 'Australia/Hobart' do |tz| + tz.offset :o0, 35356, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1895, 8, :o1, 52130241161, 21600 + tz.transition 1916, 9, :o2, 14526823, 6 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1967, 9, :o2, 14638585, 6 + tz.transition 1968, 3, :o1, 14639677, 6 + tz.transition 1968, 10, :o2, 14640937, 6 + tz.transition 1969, 3, :o1, 14641735, 6 + tz.transition 1969, 10, :o2, 14643121, 6 + tz.transition 1970, 3, :o1, 5673600 + tz.transition 1970, 10, :o2, 25632000 + tz.transition 1971, 3, :o1, 37728000 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1972, 10, :o2, 89136000 + tz.transition 1973, 3, :o1, 100022400 + tz.transition 1973, 10, :o2, 120585600 + tz.transition 1974, 3, :o1, 131472000 + tz.transition 1974, 10, :o2, 152035200 + tz.transition 1975, 3, :o1, 162921600 + tz.transition 1975, 10, :o2, 183484800 + tz.transition 1976, 3, :o1, 194976000 + tz.transition 1976, 10, :o2, 215539200 + tz.transition 1977, 3, :o1, 226425600 + tz.transition 1977, 10, :o2, 246988800 + tz.transition 1978, 3, :o1, 257875200 + tz.transition 1978, 10, :o2, 278438400 + tz.transition 1979, 3, :o1, 289324800 + tz.transition 1979, 10, :o2, 309888000 + tz.transition 1980, 3, :o1, 320774400 + tz.transition 1980, 10, :o2, 341337600 + tz.transition 1981, 2, :o1, 352224000 + tz.transition 1981, 10, :o2, 372787200 + tz.transition 1982, 3, :o1, 386092800 + tz.transition 1982, 10, :o2, 404841600 + tz.transition 1983, 3, :o1, 417542400 + tz.transition 1983, 10, :o2, 436291200 + tz.transition 1984, 3, :o1, 447177600 + tz.transition 1984, 10, :o2, 467740800 + tz.transition 1985, 3, :o1, 478627200 + tz.transition 1985, 10, :o2, 499190400 + tz.transition 1986, 3, :o1, 510076800 + tz.transition 1986, 10, :o2, 530035200 + tz.transition 1987, 3, :o1, 542736000 + tz.transition 1987, 10, :o2, 562089600 + tz.transition 1988, 3, :o1, 574790400 + tz.transition 1988, 10, :o2, 594144000 + tz.transition 1989, 3, :o1, 606240000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 637689600 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 670348800 + tz.transition 1991, 10, :o2, 686678400 + tz.transition 1992, 3, :o1, 701798400 + tz.transition 1992, 10, :o2, 718128000 + tz.transition 1993, 3, :o1, 733248000 + tz.transition 1993, 10, :o2, 749577600 + tz.transition 1994, 3, :o1, 764697600 + tz.transition 1994, 10, :o2, 781027200 + tz.transition 1995, 3, :o1, 796147200 + tz.transition 1995, 9, :o2, 812476800 + tz.transition 1996, 3, :o1, 828201600 + tz.transition 1996, 10, :o2, 844531200 + tz.transition 1997, 3, :o1, 859651200 + tz.transition 1997, 10, :o2, 875980800 + tz.transition 1998, 3, :o1, 891100800 + tz.transition 1998, 10, :o2, 907430400 + tz.transition 1999, 3, :o1, 922550400 + tz.transition 1999, 10, :o2, 938880000 + tz.transition 2000, 3, :o1, 954000000 + tz.transition 2000, 8, :o2, 967305600 + tz.transition 2001, 3, :o1, 985449600 + tz.transition 2001, 10, :o2, 1002384000 + tz.transition 2002, 3, :o1, 1017504000 + tz.transition 2002, 10, :o2, 1033833600 + tz.transition 2003, 3, :o1, 1048953600 + tz.transition 2003, 10, :o2, 1065283200 + tz.transition 2004, 3, :o1, 1080403200 + tz.transition 2004, 10, :o2, 1096732800 + tz.transition 2005, 3, :o1, 1111852800 + tz.transition 2005, 10, :o2, 1128182400 + tz.transition 2006, 4, :o1, 1143907200 + tz.transition 2006, 9, :o2, 1159632000 + tz.transition 2007, 3, :o1, 1174752000 + tz.transition 2007, 10, :o2, 1191686400 + tz.transition 2008, 4, :o1, 1207411200 + tz.transition 2008, 10, :o2, 1223136000 + tz.transition 2009, 4, :o1, 1238860800 + tz.transition 2009, 10, :o2, 1254585600 + tz.transition 2010, 4, :o1, 1270310400 + tz.transition 2010, 10, :o2, 1286035200 + tz.transition 2011, 4, :o1, 1301760000 + tz.transition 2011, 10, :o2, 1317484800 + tz.transition 2012, 3, :o1, 1333209600 + tz.transition 2012, 10, :o2, 1349539200 + tz.transition 2013, 4, :o1, 1365264000 + tz.transition 2013, 10, :o2, 1380988800 + tz.transition 2014, 4, :o1, 1396713600 + tz.transition 2014, 10, :o2, 1412438400 + tz.transition 2015, 4, :o1, 1428163200 + tz.transition 2015, 10, :o2, 1443888000 + tz.transition 2016, 4, :o1, 1459612800 + tz.transition 2016, 10, :o2, 1475337600 + tz.transition 2017, 4, :o1, 1491062400 + tz.transition 2017, 9, :o2, 1506787200 + tz.transition 2018, 3, :o1, 1522512000 + tz.transition 2018, 10, :o2, 1538841600 + tz.transition 2019, 4, :o1, 1554566400 + tz.transition 2019, 10, :o2, 1570291200 + tz.transition 2020, 4, :o1, 1586016000 + tz.transition 2020, 10, :o2, 1601740800 + tz.transition 2021, 4, :o1, 1617465600 + tz.transition 2021, 10, :o2, 1633190400 + tz.transition 2022, 4, :o1, 1648915200 + tz.transition 2022, 10, :o2, 1664640000 + tz.transition 2023, 4, :o1, 1680364800 + tz.transition 2023, 9, :o2, 1696089600 + tz.transition 2024, 4, :o1, 1712419200 + tz.transition 2024, 10, :o2, 1728144000 + tz.transition 2025, 4, :o1, 1743868800 + tz.transition 2025, 10, :o2, 1759593600 + tz.transition 2026, 4, :o1, 1775318400 + tz.transition 2026, 10, :o2, 1791043200 + tz.transition 2027, 4, :o1, 1806768000 + tz.transition 2027, 10, :o2, 1822492800 + tz.transition 2028, 4, :o1, 1838217600 + tz.transition 2028, 9, :o2, 1853942400 + tz.transition 2029, 3, :o1, 1869667200 + tz.transition 2029, 10, :o2, 1885996800 + tz.transition 2030, 4, :o1, 1901721600 + tz.transition 2030, 10, :o2, 1917446400 + tz.transition 2031, 4, :o1, 1933171200 + tz.transition 2031, 10, :o2, 1948896000 + tz.transition 2032, 4, :o1, 1964620800 + tz.transition 2032, 10, :o2, 1980345600 + tz.transition 2033, 4, :o1, 1996070400 + tz.transition 2033, 10, :o2, 2011795200 + tz.transition 2034, 4, :o1, 2027520000 + tz.transition 2034, 9, :o2, 2043244800 + tz.transition 2035, 3, :o1, 2058969600 + tz.transition 2035, 10, :o2, 2075299200 + tz.transition 2036, 4, :o1, 2091024000 + tz.transition 2036, 10, :o2, 2106748800 + tz.transition 2037, 4, :o1, 2122473600 + tz.transition 2037, 10, :o2, 2138198400 + tz.transition 2038, 4, :o1, 14793103, 6 + tz.transition 2038, 10, :o2, 14794195, 6 + tz.transition 2039, 4, :o1, 14795287, 6 + tz.transition 2039, 10, :o2, 14796379, 6 + tz.transition 2040, 3, :o1, 14797471, 6 + tz.transition 2040, 10, :o2, 14798605, 6 + tz.transition 2041, 4, :o1, 14799697, 6 + tz.transition 2041, 10, :o2, 14800789, 6 + tz.transition 2042, 4, :o1, 14801881, 6 + tz.transition 2042, 10, :o2, 14802973, 6 + tz.transition 2043, 4, :o1, 14804065, 6 + tz.transition 2043, 10, :o2, 14805157, 6 + tz.transition 2044, 4, :o1, 14806249, 6 + tz.transition 2044, 10, :o2, 14807341, 6 + tz.transition 2045, 4, :o1, 14808433, 6 + tz.transition 2045, 9, :o2, 14809525, 6 + tz.transition 2046, 3, :o1, 14810617, 6 + tz.transition 2046, 10, :o2, 14811751, 6 + tz.transition 2047, 4, :o1, 14812843, 6 + tz.transition 2047, 10, :o2, 14813935, 6 + tz.transition 2048, 4, :o1, 14815027, 6 + tz.transition 2048, 10, :o2, 14816119, 6 + tz.transition 2049, 4, :o1, 14817211, 6 + tz.transition 2049, 10, :o2, 14818303, 6 + tz.transition 2050, 4, :o1, 14819395, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Melbourne.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Melbourne.rb new file mode 100644 index 000000000..c1304488e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Melbourne.rb @@ -0,0 +1,185 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Melbourne + include TimezoneDefinition + + timezone 'Australia/Melbourne' do |tz| + tz.offset :o0, 34792, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1895, 1, :o1, 26062831051, 10800 + tz.transition 1916, 12, :o2, 3486569881, 1440 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1972, 10, :o2, 89136000 + tz.transition 1973, 3, :o1, 100022400 + tz.transition 1973, 10, :o2, 120585600 + tz.transition 1974, 3, :o1, 131472000 + tz.transition 1974, 10, :o2, 152035200 + tz.transition 1975, 3, :o1, 162921600 + tz.transition 1975, 10, :o2, 183484800 + tz.transition 1976, 3, :o1, 194976000 + tz.transition 1976, 10, :o2, 215539200 + tz.transition 1977, 3, :o1, 226425600 + tz.transition 1977, 10, :o2, 246988800 + tz.transition 1978, 3, :o1, 257875200 + tz.transition 1978, 10, :o2, 278438400 + tz.transition 1979, 3, :o1, 289324800 + tz.transition 1979, 10, :o2, 309888000 + tz.transition 1980, 3, :o1, 320774400 + tz.transition 1980, 10, :o2, 341337600 + tz.transition 1981, 2, :o1, 352224000 + tz.transition 1981, 10, :o2, 372787200 + tz.transition 1982, 3, :o1, 384278400 + tz.transition 1982, 10, :o2, 404841600 + tz.transition 1983, 3, :o1, 415728000 + tz.transition 1983, 10, :o2, 436291200 + tz.transition 1984, 3, :o1, 447177600 + tz.transition 1984, 10, :o2, 467740800 + tz.transition 1985, 3, :o1, 478627200 + tz.transition 1985, 10, :o2, 499190400 + tz.transition 1986, 3, :o1, 511286400 + tz.transition 1986, 10, :o2, 530035200 + tz.transition 1987, 3, :o1, 542736000 + tz.transition 1987, 10, :o2, 561484800 + tz.transition 1988, 3, :o1, 574790400 + tz.transition 1988, 10, :o2, 594144000 + tz.transition 1989, 3, :o1, 606240000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 637689600 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 667929600 + tz.transition 1991, 10, :o2, 688492800 + tz.transition 1992, 2, :o1, 699379200 + tz.transition 1992, 10, :o2, 719942400 + tz.transition 1993, 3, :o1, 731433600 + tz.transition 1993, 10, :o2, 751996800 + tz.transition 1994, 3, :o1, 762883200 + tz.transition 1994, 10, :o2, 783446400 + tz.transition 1995, 3, :o1, 796147200 + tz.transition 1995, 10, :o2, 814896000 + tz.transition 1996, 3, :o1, 828201600 + tz.transition 1996, 10, :o2, 846345600 + tz.transition 1997, 3, :o1, 859651200 + tz.transition 1997, 10, :o2, 877795200 + tz.transition 1998, 3, :o1, 891100800 + tz.transition 1998, 10, :o2, 909244800 + tz.transition 1999, 3, :o1, 922550400 + tz.transition 1999, 10, :o2, 941299200 + tz.transition 2000, 3, :o1, 954000000 + tz.transition 2000, 8, :o2, 967305600 + tz.transition 2001, 3, :o1, 985449600 + tz.transition 2001, 10, :o2, 1004198400 + tz.transition 2002, 3, :o1, 1017504000 + tz.transition 2002, 10, :o2, 1035648000 + tz.transition 2003, 3, :o1, 1048953600 + tz.transition 2003, 10, :o2, 1067097600 + tz.transition 2004, 3, :o1, 1080403200 + tz.transition 2004, 10, :o2, 1099152000 + tz.transition 2005, 3, :o1, 1111852800 + tz.transition 2005, 10, :o2, 1130601600 + tz.transition 2006, 4, :o1, 1143907200 + tz.transition 2006, 10, :o2, 1162051200 + tz.transition 2007, 3, :o1, 1174752000 + tz.transition 2007, 10, :o2, 1193500800 + tz.transition 2008, 4, :o1, 1207411200 + tz.transition 2008, 10, :o2, 1223136000 + tz.transition 2009, 4, :o1, 1238860800 + tz.transition 2009, 10, :o2, 1254585600 + tz.transition 2010, 4, :o1, 1270310400 + tz.transition 2010, 10, :o2, 1286035200 + tz.transition 2011, 4, :o1, 1301760000 + tz.transition 2011, 10, :o2, 1317484800 + tz.transition 2012, 3, :o1, 1333209600 + tz.transition 2012, 10, :o2, 1349539200 + tz.transition 2013, 4, :o1, 1365264000 + tz.transition 2013, 10, :o2, 1380988800 + tz.transition 2014, 4, :o1, 1396713600 + tz.transition 2014, 10, :o2, 1412438400 + tz.transition 2015, 4, :o1, 1428163200 + tz.transition 2015, 10, :o2, 1443888000 + tz.transition 2016, 4, :o1, 1459612800 + tz.transition 2016, 10, :o2, 1475337600 + tz.transition 2017, 4, :o1, 1491062400 + tz.transition 2017, 9, :o2, 1506787200 + tz.transition 2018, 3, :o1, 1522512000 + tz.transition 2018, 10, :o2, 1538841600 + tz.transition 2019, 4, :o1, 1554566400 + tz.transition 2019, 10, :o2, 1570291200 + tz.transition 2020, 4, :o1, 1586016000 + tz.transition 2020, 10, :o2, 1601740800 + tz.transition 2021, 4, :o1, 1617465600 + tz.transition 2021, 10, :o2, 1633190400 + tz.transition 2022, 4, :o1, 1648915200 + tz.transition 2022, 10, :o2, 1664640000 + tz.transition 2023, 4, :o1, 1680364800 + tz.transition 2023, 9, :o2, 1696089600 + tz.transition 2024, 4, :o1, 1712419200 + tz.transition 2024, 10, :o2, 1728144000 + tz.transition 2025, 4, :o1, 1743868800 + tz.transition 2025, 10, :o2, 1759593600 + tz.transition 2026, 4, :o1, 1775318400 + tz.transition 2026, 10, :o2, 1791043200 + tz.transition 2027, 4, :o1, 1806768000 + tz.transition 2027, 10, :o2, 1822492800 + tz.transition 2028, 4, :o1, 1838217600 + tz.transition 2028, 9, :o2, 1853942400 + tz.transition 2029, 3, :o1, 1869667200 + tz.transition 2029, 10, :o2, 1885996800 + tz.transition 2030, 4, :o1, 1901721600 + tz.transition 2030, 10, :o2, 1917446400 + tz.transition 2031, 4, :o1, 1933171200 + tz.transition 2031, 10, :o2, 1948896000 + tz.transition 2032, 4, :o1, 1964620800 + tz.transition 2032, 10, :o2, 1980345600 + tz.transition 2033, 4, :o1, 1996070400 + tz.transition 2033, 10, :o2, 2011795200 + tz.transition 2034, 4, :o1, 2027520000 + tz.transition 2034, 9, :o2, 2043244800 + tz.transition 2035, 3, :o1, 2058969600 + tz.transition 2035, 10, :o2, 2075299200 + tz.transition 2036, 4, :o1, 2091024000 + tz.transition 2036, 10, :o2, 2106748800 + tz.transition 2037, 4, :o1, 2122473600 + tz.transition 2037, 10, :o2, 2138198400 + tz.transition 2038, 4, :o1, 14793103, 6 + tz.transition 2038, 10, :o2, 14794195, 6 + tz.transition 2039, 4, :o1, 14795287, 6 + tz.transition 2039, 10, :o2, 14796379, 6 + tz.transition 2040, 3, :o1, 14797471, 6 + tz.transition 2040, 10, :o2, 14798605, 6 + tz.transition 2041, 4, :o1, 14799697, 6 + tz.transition 2041, 10, :o2, 14800789, 6 + tz.transition 2042, 4, :o1, 14801881, 6 + tz.transition 2042, 10, :o2, 14802973, 6 + tz.transition 2043, 4, :o1, 14804065, 6 + tz.transition 2043, 10, :o2, 14805157, 6 + tz.transition 2044, 4, :o1, 14806249, 6 + tz.transition 2044, 10, :o2, 14807341, 6 + tz.transition 2045, 4, :o1, 14808433, 6 + tz.transition 2045, 9, :o2, 14809525, 6 + tz.transition 2046, 3, :o1, 14810617, 6 + tz.transition 2046, 10, :o2, 14811751, 6 + tz.transition 2047, 4, :o1, 14812843, 6 + tz.transition 2047, 10, :o2, 14813935, 6 + tz.transition 2048, 4, :o1, 14815027, 6 + tz.transition 2048, 10, :o2, 14816119, 6 + tz.transition 2049, 4, :o1, 14817211, 6 + tz.transition 2049, 10, :o2, 14818303, 6 + tz.transition 2050, 4, :o1, 14819395, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Perth.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Perth.rb new file mode 100644 index 000000000..d9e66f14a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Perth.rb @@ -0,0 +1,37 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Perth + include TimezoneDefinition + + timezone 'Australia/Perth' do |tz| + tz.offset :o0, 27804, 0, :LMT + tz.offset :o1, 28800, 0, :WST + tz.offset :o2, 28800, 3600, :WST + + tz.transition 1895, 11, :o1, 17377402883, 7200 + tz.transition 1916, 12, :o2, 3486570001, 1440 + tz.transition 1917, 3, :o1, 58111493, 24 + tz.transition 1941, 12, :o2, 9721441, 4 + tz.transition 1942, 3, :o1, 58330733, 24 + tz.transition 1942, 9, :o2, 9722517, 4 + tz.transition 1943, 3, :o1, 58339469, 24 + tz.transition 1974, 10, :o2, 152042400 + tz.transition 1975, 3, :o1, 162928800 + tz.transition 1983, 10, :o2, 436298400 + tz.transition 1984, 3, :o1, 447184800 + tz.transition 1991, 11, :o2, 690314400 + tz.transition 1992, 2, :o1, 699386400 + tz.transition 2006, 12, :o2, 1165082400 + tz.transition 2007, 3, :o1, 1174759200 + tz.transition 2007, 10, :o2, 1193508000 + tz.transition 2008, 3, :o1, 1206813600 + tz.transition 2008, 10, :o2, 1224957600 + tz.transition 2009, 3, :o1, 1238263200 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Sydney.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Sydney.rb new file mode 100644 index 000000000..9062bd7c3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Australia/Sydney.rb @@ -0,0 +1,185 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Australia + module Sydney + include TimezoneDefinition + + timezone 'Australia/Sydney' do |tz| + tz.offset :o0, 36292, 0, :LMT + tz.offset :o1, 36000, 0, :EST + tz.offset :o2, 36000, 3600, :EST + + tz.transition 1895, 1, :o1, 52125661727, 21600 + tz.transition 1916, 12, :o2, 3486569881, 1440 + tz.transition 1917, 3, :o1, 19370497, 8 + tz.transition 1941, 12, :o2, 14582161, 6 + tz.transition 1942, 3, :o1, 19443577, 8 + tz.transition 1942, 9, :o2, 14583775, 6 + tz.transition 1943, 3, :o1, 19446489, 8 + tz.transition 1943, 10, :o2, 14586001, 6 + tz.transition 1944, 3, :o1, 19449401, 8 + tz.transition 1971, 10, :o2, 57686400 + tz.transition 1972, 2, :o1, 67968000 + tz.transition 1972, 10, :o2, 89136000 + tz.transition 1973, 3, :o1, 100022400 + tz.transition 1973, 10, :o2, 120585600 + tz.transition 1974, 3, :o1, 131472000 + tz.transition 1974, 10, :o2, 152035200 + tz.transition 1975, 3, :o1, 162921600 + tz.transition 1975, 10, :o2, 183484800 + tz.transition 1976, 3, :o1, 194976000 + tz.transition 1976, 10, :o2, 215539200 + tz.transition 1977, 3, :o1, 226425600 + tz.transition 1977, 10, :o2, 246988800 + tz.transition 1978, 3, :o1, 257875200 + tz.transition 1978, 10, :o2, 278438400 + tz.transition 1979, 3, :o1, 289324800 + tz.transition 1979, 10, :o2, 309888000 + tz.transition 1980, 3, :o1, 320774400 + tz.transition 1980, 10, :o2, 341337600 + tz.transition 1981, 2, :o1, 352224000 + tz.transition 1981, 10, :o2, 372787200 + tz.transition 1982, 4, :o1, 386697600 + tz.transition 1982, 10, :o2, 404841600 + tz.transition 1983, 3, :o1, 415728000 + tz.transition 1983, 10, :o2, 436291200 + tz.transition 1984, 3, :o1, 447177600 + tz.transition 1984, 10, :o2, 467740800 + tz.transition 1985, 3, :o1, 478627200 + tz.transition 1985, 10, :o2, 499190400 + tz.transition 1986, 3, :o1, 511286400 + tz.transition 1986, 10, :o2, 530035200 + tz.transition 1987, 3, :o1, 542736000 + tz.transition 1987, 10, :o2, 562089600 + tz.transition 1988, 3, :o1, 574790400 + tz.transition 1988, 10, :o2, 594144000 + tz.transition 1989, 3, :o1, 606240000 + tz.transition 1989, 10, :o2, 625593600 + tz.transition 1990, 3, :o1, 636480000 + tz.transition 1990, 10, :o2, 657043200 + tz.transition 1991, 3, :o1, 667929600 + tz.transition 1991, 10, :o2, 688492800 + tz.transition 1992, 2, :o1, 699379200 + tz.transition 1992, 10, :o2, 719942400 + tz.transition 1993, 3, :o1, 731433600 + tz.transition 1993, 10, :o2, 751996800 + tz.transition 1994, 3, :o1, 762883200 + tz.transition 1994, 10, :o2, 783446400 + tz.transition 1995, 3, :o1, 794332800 + tz.transition 1995, 10, :o2, 814896000 + tz.transition 1996, 3, :o1, 828201600 + tz.transition 1996, 10, :o2, 846345600 + tz.transition 1997, 3, :o1, 859651200 + tz.transition 1997, 10, :o2, 877795200 + tz.transition 1998, 3, :o1, 891100800 + tz.transition 1998, 10, :o2, 909244800 + tz.transition 1999, 3, :o1, 922550400 + tz.transition 1999, 10, :o2, 941299200 + tz.transition 2000, 3, :o1, 954000000 + tz.transition 2000, 8, :o2, 967305600 + tz.transition 2001, 3, :o1, 985449600 + tz.transition 2001, 10, :o2, 1004198400 + tz.transition 2002, 3, :o1, 1017504000 + tz.transition 2002, 10, :o2, 1035648000 + tz.transition 2003, 3, :o1, 1048953600 + tz.transition 2003, 10, :o2, 1067097600 + tz.transition 2004, 3, :o1, 1080403200 + tz.transition 2004, 10, :o2, 1099152000 + tz.transition 2005, 3, :o1, 1111852800 + tz.transition 2005, 10, :o2, 1130601600 + tz.transition 2006, 4, :o1, 1143907200 + tz.transition 2006, 10, :o2, 1162051200 + tz.transition 2007, 3, :o1, 1174752000 + tz.transition 2007, 10, :o2, 1193500800 + tz.transition 2008, 4, :o1, 1207411200 + tz.transition 2008, 10, :o2, 1223136000 + tz.transition 2009, 4, :o1, 1238860800 + tz.transition 2009, 10, :o2, 1254585600 + tz.transition 2010, 4, :o1, 1270310400 + tz.transition 2010, 10, :o2, 1286035200 + tz.transition 2011, 4, :o1, 1301760000 + tz.transition 2011, 10, :o2, 1317484800 + tz.transition 2012, 3, :o1, 1333209600 + tz.transition 2012, 10, :o2, 1349539200 + tz.transition 2013, 4, :o1, 1365264000 + tz.transition 2013, 10, :o2, 1380988800 + tz.transition 2014, 4, :o1, 1396713600 + tz.transition 2014, 10, :o2, 1412438400 + tz.transition 2015, 4, :o1, 1428163200 + tz.transition 2015, 10, :o2, 1443888000 + tz.transition 2016, 4, :o1, 1459612800 + tz.transition 2016, 10, :o2, 1475337600 + tz.transition 2017, 4, :o1, 1491062400 + tz.transition 2017, 9, :o2, 1506787200 + tz.transition 2018, 3, :o1, 1522512000 + tz.transition 2018, 10, :o2, 1538841600 + tz.transition 2019, 4, :o1, 1554566400 + tz.transition 2019, 10, :o2, 1570291200 + tz.transition 2020, 4, :o1, 1586016000 + tz.transition 2020, 10, :o2, 1601740800 + tz.transition 2021, 4, :o1, 1617465600 + tz.transition 2021, 10, :o2, 1633190400 + tz.transition 2022, 4, :o1, 1648915200 + tz.transition 2022, 10, :o2, 1664640000 + tz.transition 2023, 4, :o1, 1680364800 + tz.transition 2023, 9, :o2, 1696089600 + tz.transition 2024, 4, :o1, 1712419200 + tz.transition 2024, 10, :o2, 1728144000 + tz.transition 2025, 4, :o1, 1743868800 + tz.transition 2025, 10, :o2, 1759593600 + tz.transition 2026, 4, :o1, 1775318400 + tz.transition 2026, 10, :o2, 1791043200 + tz.transition 2027, 4, :o1, 1806768000 + tz.transition 2027, 10, :o2, 1822492800 + tz.transition 2028, 4, :o1, 1838217600 + tz.transition 2028, 9, :o2, 1853942400 + tz.transition 2029, 3, :o1, 1869667200 + tz.transition 2029, 10, :o2, 1885996800 + tz.transition 2030, 4, :o1, 1901721600 + tz.transition 2030, 10, :o2, 1917446400 + tz.transition 2031, 4, :o1, 1933171200 + tz.transition 2031, 10, :o2, 1948896000 + tz.transition 2032, 4, :o1, 1964620800 + tz.transition 2032, 10, :o2, 1980345600 + tz.transition 2033, 4, :o1, 1996070400 + tz.transition 2033, 10, :o2, 2011795200 + tz.transition 2034, 4, :o1, 2027520000 + tz.transition 2034, 9, :o2, 2043244800 + tz.transition 2035, 3, :o1, 2058969600 + tz.transition 2035, 10, :o2, 2075299200 + tz.transition 2036, 4, :o1, 2091024000 + tz.transition 2036, 10, :o2, 2106748800 + tz.transition 2037, 4, :o1, 2122473600 + tz.transition 2037, 10, :o2, 2138198400 + tz.transition 2038, 4, :o1, 14793103, 6 + tz.transition 2038, 10, :o2, 14794195, 6 + tz.transition 2039, 4, :o1, 14795287, 6 + tz.transition 2039, 10, :o2, 14796379, 6 + tz.transition 2040, 3, :o1, 14797471, 6 + tz.transition 2040, 10, :o2, 14798605, 6 + tz.transition 2041, 4, :o1, 14799697, 6 + tz.transition 2041, 10, :o2, 14800789, 6 + tz.transition 2042, 4, :o1, 14801881, 6 + tz.transition 2042, 10, :o2, 14802973, 6 + tz.transition 2043, 4, :o1, 14804065, 6 + tz.transition 2043, 10, :o2, 14805157, 6 + tz.transition 2044, 4, :o1, 14806249, 6 + tz.transition 2044, 10, :o2, 14807341, 6 + tz.transition 2045, 4, :o1, 14808433, 6 + tz.transition 2045, 9, :o2, 14809525, 6 + tz.transition 2046, 3, :o1, 14810617, 6 + tz.transition 2046, 10, :o2, 14811751, 6 + tz.transition 2047, 4, :o1, 14812843, 6 + tz.transition 2047, 10, :o2, 14813935, 6 + tz.transition 2048, 4, :o1, 14815027, 6 + tz.transition 2048, 10, :o2, 14816119, 6 + tz.transition 2049, 4, :o1, 14817211, 6 + tz.transition 2049, 10, :o2, 14818303, 6 + tz.transition 2050, 4, :o1, 14819395, 6 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Etc/UTC.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Etc/UTC.rb new file mode 100644 index 000000000..28b2c6a04 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Etc/UTC.rb @@ -0,0 +1,16 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Etc + module UTC + include TimezoneDefinition + + timezone 'Etc/UTC' do |tz| + tz.offset :o0, 0, 0, :UTC + + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Amsterdam.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Amsterdam.rb new file mode 100644 index 000000000..2d0c95c4b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Amsterdam.rb @@ -0,0 +1,228 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Amsterdam + include TimezoneDefinition + + timezone 'Europe/Amsterdam' do |tz| + tz.offset :o0, 1172, 0, :LMT + tz.offset :o1, 1172, 0, :AMT + tz.offset :o2, 1172, 3600, :NST + tz.offset :o3, 1200, 3600, :NEST + tz.offset :o4, 1200, 0, :NET + tz.offset :o5, 3600, 3600, :CEST + tz.offset :o6, 3600, 0, :CET + + tz.transition 1834, 12, :o1, 51651636907, 21600 + tz.transition 1916, 4, :o2, 52293264907, 21600 + tz.transition 1916, 9, :o1, 52296568807, 21600 + tz.transition 1917, 4, :o2, 52300826707, 21600 + tz.transition 1917, 9, :o1, 52304153107, 21600 + tz.transition 1918, 4, :o2, 52308386707, 21600 + tz.transition 1918, 9, :o1, 52312317907, 21600 + tz.transition 1919, 4, :o2, 52316400307, 21600 + tz.transition 1919, 9, :o1, 52320180307, 21600 + tz.transition 1920, 4, :o2, 52324262707, 21600 + tz.transition 1920, 9, :o1, 52328042707, 21600 + tz.transition 1921, 4, :o2, 52332125107, 21600 + tz.transition 1921, 9, :o1, 52335905107, 21600 + tz.transition 1922, 3, :o2, 52339814707, 21600 + tz.transition 1922, 10, :o1, 52344048307, 21600 + tz.transition 1923, 6, :o2, 52349145907, 21600 + tz.transition 1923, 10, :o1, 52351910707, 21600 + tz.transition 1924, 3, :o2, 52355690707, 21600 + tz.transition 1924, 10, :o1, 52359773107, 21600 + tz.transition 1925, 6, :o2, 52365021907, 21600 + tz.transition 1925, 10, :o1, 52367635507, 21600 + tz.transition 1926, 5, :o2, 52372452307, 21600 + tz.transition 1926, 10, :o1, 52375497907, 21600 + tz.transition 1927, 5, :o2, 52380336307, 21600 + tz.transition 1927, 10, :o1, 52383360307, 21600 + tz.transition 1928, 5, :o2, 52388241907, 21600 + tz.transition 1928, 10, :o1, 52391373907, 21600 + tz.transition 1929, 5, :o2, 52396125907, 21600 + tz.transition 1929, 10, :o1, 52399236307, 21600 + tz.transition 1930, 5, :o2, 52404009907, 21600 + tz.transition 1930, 10, :o1, 52407098707, 21600 + tz.transition 1931, 5, :o2, 52411893907, 21600 + tz.transition 1931, 10, :o1, 52414961107, 21600 + tz.transition 1932, 5, :o2, 52419950707, 21600 + tz.transition 1932, 10, :o1, 52422823507, 21600 + tz.transition 1933, 5, :o2, 52427683507, 21600 + tz.transition 1933, 10, :o1, 52430837107, 21600 + tz.transition 1934, 5, :o2, 52435567507, 21600 + tz.transition 1934, 10, :o1, 52438699507, 21600 + tz.transition 1935, 5, :o2, 52443451507, 21600 + tz.transition 1935, 10, :o1, 52446561907, 21600 + tz.transition 1936, 5, :o2, 52451357107, 21600 + tz.transition 1936, 10, :o1, 52454424307, 21600 + tz.transition 1937, 5, :o2, 52459392307, 21600 + tz.transition 1937, 6, :o3, 52460253607, 21600 + tz.transition 1937, 10, :o4, 174874289, 72 + tz.transition 1938, 5, :o3, 174890417, 72 + tz.transition 1938, 10, :o4, 174900497, 72 + tz.transition 1939, 5, :o3, 174916697, 72 + tz.transition 1939, 10, :o4, 174927209, 72 + tz.transition 1940, 5, :o5, 174943115, 72 + tz.transition 1942, 11, :o6, 58335973, 24 + tz.transition 1943, 3, :o5, 58339501, 24 + tz.transition 1943, 10, :o6, 58344037, 24 + tz.transition 1944, 4, :o5, 58348405, 24 + tz.transition 1944, 10, :o6, 58352773, 24 + tz.transition 1945, 4, :o5, 58357141, 24 + tz.transition 1945, 9, :o6, 58361149, 24 + tz.transition 1977, 4, :o5, 228877200 + tz.transition 1977, 9, :o6, 243997200 + tz.transition 1978, 4, :o5, 260326800 + tz.transition 1978, 10, :o6, 276051600 + tz.transition 1979, 4, :o5, 291776400 + tz.transition 1979, 9, :o6, 307501200 + tz.transition 1980, 4, :o5, 323830800 + tz.transition 1980, 9, :o6, 338950800 + tz.transition 1981, 3, :o5, 354675600 + tz.transition 1981, 9, :o6, 370400400 + tz.transition 1982, 3, :o5, 386125200 + tz.transition 1982, 9, :o6, 401850000 + tz.transition 1983, 3, :o5, 417574800 + tz.transition 1983, 9, :o6, 433299600 + tz.transition 1984, 3, :o5, 449024400 + tz.transition 1984, 9, :o6, 465354000 + tz.transition 1985, 3, :o5, 481078800 + tz.transition 1985, 9, :o6, 496803600 + tz.transition 1986, 3, :o5, 512528400 + tz.transition 1986, 9, :o6, 528253200 + tz.transition 1987, 3, :o5, 543978000 + tz.transition 1987, 9, :o6, 559702800 + tz.transition 1988, 3, :o5, 575427600 + tz.transition 1988, 9, :o6, 591152400 + tz.transition 1989, 3, :o5, 606877200 + tz.transition 1989, 9, :o6, 622602000 + tz.transition 1990, 3, :o5, 638326800 + tz.transition 1990, 9, :o6, 654656400 + tz.transition 1991, 3, :o5, 670381200 + tz.transition 1991, 9, :o6, 686106000 + tz.transition 1992, 3, :o5, 701830800 + tz.transition 1992, 9, :o6, 717555600 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 9, :o6, 749005200 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 9, :o6, 780454800 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 9, :o6, 811904400 + tz.transition 1996, 3, :o5, 828234000 + tz.transition 1996, 10, :o6, 846378000 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o6, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o6, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o6, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o6, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o6, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o6, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o6, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o6, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o6, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o6, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o6, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o6, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o6, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o6, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o6, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o6, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o6, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o6, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o6, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o6, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o6, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o6, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o6, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o6, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o6, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o6, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o6, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o6, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o6, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o6, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o6, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o6, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o6, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o6, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o6, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o6, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o6, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o6, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o6, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o6, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o6, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o6, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o6, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o6, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o6, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o6, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o6, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o6, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o6, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o6, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o6, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o6, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o6, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o6, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Athens.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Athens.rb new file mode 100644 index 000000000..4e21e535c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Athens.rb @@ -0,0 +1,185 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Athens + include TimezoneDefinition + + timezone 'Europe/Athens' do |tz| + tz.offset :o0, 5692, 0, :LMT + tz.offset :o1, 5692, 0, :AMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + + tz.transition 1895, 9, :o1, 52130529377, 21600 + tz.transition 1916, 7, :o2, 3268447787, 1350 + tz.transition 1932, 7, :o3, 29122745, 12 + tz.transition 1932, 8, :o2, 19415611, 8 + tz.transition 1941, 4, :o3, 29161097, 12 + tz.transition 1941, 4, :o4, 19440915, 8 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339523, 24 + tz.transition 1943, 10, :o5, 29172017, 12 + tz.transition 1944, 4, :o2, 58348427, 24 + tz.transition 1952, 6, :o3, 29210333, 12 + tz.transition 1952, 11, :o2, 19474547, 8 + tz.transition 1975, 4, :o3, 166485600 + tz.transition 1975, 11, :o2, 186184800 + tz.transition 1976, 4, :o3, 198028800 + tz.transition 1976, 10, :o2, 213753600 + tz.transition 1977, 4, :o3, 228873600 + tz.transition 1977, 9, :o2, 244080000 + tz.transition 1978, 4, :o3, 260323200 + tz.transition 1978, 9, :o2, 275446800 + tz.transition 1979, 4, :o3, 291798000 + tz.transition 1979, 9, :o2, 307407600 + tz.transition 1980, 3, :o3, 323388000 + tz.transition 1980, 9, :o2, 338936400 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Belgrade.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Belgrade.rb new file mode 100644 index 000000000..4dbd893d7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Belgrade.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Belgrade + include TimezoneDefinition + + timezone 'Europe/Belgrade' do |tz| + tz.offset :o0, 4920, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + + tz.transition 1883, 12, :o1, 1734607039, 720 + tz.transition 1941, 4, :o2, 29161241, 12 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 5, :o2, 58358005, 24 + tz.transition 1945, 9, :o1, 58361149, 24 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Berlin.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Berlin.rb new file mode 100644 index 000000000..de2e4d951 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Berlin.rb @@ -0,0 +1,188 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Berlin + include TimezoneDefinition + + timezone 'Europe/Berlin' do |tz| + tz.offset :o0, 3208, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + tz.offset :o3, 3600, 7200, :CEMT + + tz.transition 1893, 3, :o1, 26055588199, 10800 + tz.transition 1916, 4, :o2, 29051813, 12 + tz.transition 1916, 9, :o1, 58107299, 24 + tz.transition 1917, 4, :o2, 58112029, 24 + tz.transition 1917, 9, :o1, 58115725, 24 + tz.transition 1918, 4, :o2, 58120765, 24 + tz.transition 1918, 9, :o1, 58124461, 24 + tz.transition 1940, 4, :o2, 58313293, 24 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 4, :o2, 58357141, 24 + tz.transition 1945, 5, :o3, 4863199, 2 + tz.transition 1945, 9, :o2, 4863445, 2 + tz.transition 1945, 11, :o1, 58362661, 24 + tz.transition 1946, 4, :o2, 58366189, 24 + tz.transition 1946, 10, :o1, 58370413, 24 + tz.transition 1947, 4, :o2, 58374757, 24 + tz.transition 1947, 5, :o3, 58375597, 24 + tz.transition 1947, 6, :o2, 4864731, 2 + tz.transition 1947, 10, :o1, 58379125, 24 + tz.transition 1948, 4, :o2, 58383829, 24 + tz.transition 1948, 10, :o1, 58387861, 24 + tz.transition 1949, 4, :o2, 58392397, 24 + tz.transition 1949, 10, :o1, 58396597, 24 + tz.transition 1980, 4, :o2, 323830800 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bratislava.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bratislava.rb new file mode 100644 index 000000000..7a731a0b6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bratislava.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Bratislava + include TimezoneDefinition + + linked_timezone 'Europe/Bratislava', 'Europe/Prague' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Brussels.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Brussels.rb new file mode 100644 index 000000000..6b0a24294 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Brussels.rb @@ -0,0 +1,232 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Brussels + include TimezoneDefinition + + timezone 'Europe/Brussels' do |tz| + tz.offset :o0, 1050, 0, :LMT + tz.offset :o1, 1050, 0, :BMT + tz.offset :o2, 0, 0, :WET + tz.offset :o3, 3600, 0, :CET + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 0, 3600, :WEST + + tz.transition 1879, 12, :o1, 1386844121, 576 + tz.transition 1892, 5, :o2, 1389438713, 576 + tz.transition 1914, 11, :o3, 4840889, 2 + tz.transition 1916, 4, :o4, 58103627, 24 + tz.transition 1916, 9, :o3, 58107299, 24 + tz.transition 1917, 4, :o4, 58112029, 24 + tz.transition 1917, 9, :o3, 58115725, 24 + tz.transition 1918, 4, :o4, 58120765, 24 + tz.transition 1918, 9, :o3, 58124461, 24 + tz.transition 1918, 11, :o2, 58125815, 24 + tz.transition 1919, 3, :o5, 58128467, 24 + tz.transition 1919, 10, :o2, 58133675, 24 + tz.transition 1920, 2, :o5, 58136867, 24 + tz.transition 1920, 10, :o2, 58142915, 24 + tz.transition 1921, 3, :o5, 58146323, 24 + tz.transition 1921, 10, :o2, 58151723, 24 + tz.transition 1922, 3, :o5, 58155347, 24 + tz.transition 1922, 10, :o2, 58160051, 24 + tz.transition 1923, 4, :o5, 58164755, 24 + tz.transition 1923, 10, :o2, 58168787, 24 + tz.transition 1924, 3, :o5, 58172987, 24 + tz.transition 1924, 10, :o2, 58177523, 24 + tz.transition 1925, 4, :o5, 58181891, 24 + tz.transition 1925, 10, :o2, 58186259, 24 + tz.transition 1926, 4, :o5, 58190963, 24 + tz.transition 1926, 10, :o2, 58194995, 24 + tz.transition 1927, 4, :o5, 58199531, 24 + tz.transition 1927, 10, :o2, 58203731, 24 + tz.transition 1928, 4, :o5, 58208435, 24 + tz.transition 1928, 10, :o2, 29106319, 12 + tz.transition 1929, 4, :o5, 29108671, 12 + tz.transition 1929, 10, :o2, 29110687, 12 + tz.transition 1930, 4, :o5, 29112955, 12 + tz.transition 1930, 10, :o2, 29115055, 12 + tz.transition 1931, 4, :o5, 29117407, 12 + tz.transition 1931, 10, :o2, 29119423, 12 + tz.transition 1932, 4, :o5, 29121607, 12 + tz.transition 1932, 10, :o2, 29123791, 12 + tz.transition 1933, 3, :o5, 29125891, 12 + tz.transition 1933, 10, :o2, 29128243, 12 + tz.transition 1934, 4, :o5, 29130427, 12 + tz.transition 1934, 10, :o2, 29132611, 12 + tz.transition 1935, 3, :o5, 29134711, 12 + tz.transition 1935, 10, :o2, 29136979, 12 + tz.transition 1936, 4, :o5, 29139331, 12 + tz.transition 1936, 10, :o2, 29141347, 12 + tz.transition 1937, 4, :o5, 29143531, 12 + tz.transition 1937, 10, :o2, 29145715, 12 + tz.transition 1938, 3, :o5, 29147815, 12 + tz.transition 1938, 10, :o2, 29150083, 12 + tz.transition 1939, 4, :o5, 29152435, 12 + tz.transition 1939, 11, :o2, 29155039, 12 + tz.transition 1940, 2, :o5, 29156215, 12 + tz.transition 1940, 5, :o4, 29157235, 12 + tz.transition 1942, 11, :o3, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o3, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 9, :o3, 58352413, 24 + tz.transition 1945, 4, :o4, 58357141, 24 + tz.transition 1945, 9, :o3, 58361149, 24 + tz.transition 1946, 5, :o4, 58367029, 24 + tz.transition 1946, 10, :o3, 58370413, 24 + tz.transition 1977, 4, :o4, 228877200 + tz.transition 1977, 9, :o3, 243997200 + tz.transition 1978, 4, :o4, 260326800 + tz.transition 1978, 10, :o3, 276051600 + tz.transition 1979, 4, :o4, 291776400 + tz.transition 1979, 9, :o3, 307501200 + tz.transition 1980, 4, :o4, 323830800 + tz.transition 1980, 9, :o3, 338950800 + tz.transition 1981, 3, :o4, 354675600 + tz.transition 1981, 9, :o3, 370400400 + tz.transition 1982, 3, :o4, 386125200 + tz.transition 1982, 9, :o3, 401850000 + tz.transition 1983, 3, :o4, 417574800 + tz.transition 1983, 9, :o3, 433299600 + tz.transition 1984, 3, :o4, 449024400 + tz.transition 1984, 9, :o3, 465354000 + tz.transition 1985, 3, :o4, 481078800 + tz.transition 1985, 9, :o3, 496803600 + tz.transition 1986, 3, :o4, 512528400 + tz.transition 1986, 9, :o3, 528253200 + tz.transition 1987, 3, :o4, 543978000 + tz.transition 1987, 9, :o3, 559702800 + tz.transition 1988, 3, :o4, 575427600 + tz.transition 1988, 9, :o3, 591152400 + tz.transition 1989, 3, :o4, 606877200 + tz.transition 1989, 9, :o3, 622602000 + tz.transition 1990, 3, :o4, 638326800 + tz.transition 1990, 9, :o3, 654656400 + tz.transition 1991, 3, :o4, 670381200 + tz.transition 1991, 9, :o3, 686106000 + tz.transition 1992, 3, :o4, 701830800 + tz.transition 1992, 9, :o3, 717555600 + tz.transition 1993, 3, :o4, 733280400 + tz.transition 1993, 9, :o3, 749005200 + tz.transition 1994, 3, :o4, 764730000 + tz.transition 1994, 9, :o3, 780454800 + tz.transition 1995, 3, :o4, 796179600 + tz.transition 1995, 9, :o3, 811904400 + tz.transition 1996, 3, :o4, 828234000 + tz.transition 1996, 10, :o3, 846378000 + tz.transition 1997, 3, :o4, 859683600 + tz.transition 1997, 10, :o3, 877827600 + tz.transition 1998, 3, :o4, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o4, 922582800 + tz.transition 1999, 10, :o3, 941331600 + tz.transition 2000, 3, :o4, 954032400 + tz.transition 2000, 10, :o3, 972781200 + tz.transition 2001, 3, :o4, 985482000 + tz.transition 2001, 10, :o3, 1004230800 + tz.transition 2002, 3, :o4, 1017536400 + tz.transition 2002, 10, :o3, 1035680400 + tz.transition 2003, 3, :o4, 1048986000 + tz.transition 2003, 10, :o3, 1067130000 + tz.transition 2004, 3, :o4, 1080435600 + tz.transition 2004, 10, :o3, 1099184400 + tz.transition 2005, 3, :o4, 1111885200 + tz.transition 2005, 10, :o3, 1130634000 + tz.transition 2006, 3, :o4, 1143334800 + tz.transition 2006, 10, :o3, 1162083600 + tz.transition 2007, 3, :o4, 1174784400 + tz.transition 2007, 10, :o3, 1193533200 + tz.transition 2008, 3, :o4, 1206838800 + tz.transition 2008, 10, :o3, 1224982800 + tz.transition 2009, 3, :o4, 1238288400 + tz.transition 2009, 10, :o3, 1256432400 + tz.transition 2010, 3, :o4, 1269738000 + tz.transition 2010, 10, :o3, 1288486800 + tz.transition 2011, 3, :o4, 1301187600 + tz.transition 2011, 10, :o3, 1319936400 + tz.transition 2012, 3, :o4, 1332637200 + tz.transition 2012, 10, :o3, 1351386000 + tz.transition 2013, 3, :o4, 1364691600 + tz.transition 2013, 10, :o3, 1382835600 + tz.transition 2014, 3, :o4, 1396141200 + tz.transition 2014, 10, :o3, 1414285200 + tz.transition 2015, 3, :o4, 1427590800 + tz.transition 2015, 10, :o3, 1445734800 + tz.transition 2016, 3, :o4, 1459040400 + tz.transition 2016, 10, :o3, 1477789200 + tz.transition 2017, 3, :o4, 1490490000 + tz.transition 2017, 10, :o3, 1509238800 + tz.transition 2018, 3, :o4, 1521939600 + tz.transition 2018, 10, :o3, 1540688400 + tz.transition 2019, 3, :o4, 1553994000 + tz.transition 2019, 10, :o3, 1572138000 + tz.transition 2020, 3, :o4, 1585443600 + tz.transition 2020, 10, :o3, 1603587600 + tz.transition 2021, 3, :o4, 1616893200 + tz.transition 2021, 10, :o3, 1635642000 + tz.transition 2022, 3, :o4, 1648342800 + tz.transition 2022, 10, :o3, 1667091600 + tz.transition 2023, 3, :o4, 1679792400 + tz.transition 2023, 10, :o3, 1698541200 + tz.transition 2024, 3, :o4, 1711846800 + tz.transition 2024, 10, :o3, 1729990800 + tz.transition 2025, 3, :o4, 1743296400 + tz.transition 2025, 10, :o3, 1761440400 + tz.transition 2026, 3, :o4, 1774746000 + tz.transition 2026, 10, :o3, 1792890000 + tz.transition 2027, 3, :o4, 1806195600 + tz.transition 2027, 10, :o3, 1824944400 + tz.transition 2028, 3, :o4, 1837645200 + tz.transition 2028, 10, :o3, 1856394000 + tz.transition 2029, 3, :o4, 1869094800 + tz.transition 2029, 10, :o3, 1887843600 + tz.transition 2030, 3, :o4, 1901149200 + tz.transition 2030, 10, :o3, 1919293200 + tz.transition 2031, 3, :o4, 1932598800 + tz.transition 2031, 10, :o3, 1950742800 + tz.transition 2032, 3, :o4, 1964048400 + tz.transition 2032, 10, :o3, 1982797200 + tz.transition 2033, 3, :o4, 1995498000 + tz.transition 2033, 10, :o3, 2014246800 + tz.transition 2034, 3, :o4, 2026947600 + tz.transition 2034, 10, :o3, 2045696400 + tz.transition 2035, 3, :o4, 2058397200 + tz.transition 2035, 10, :o3, 2077146000 + tz.transition 2036, 3, :o4, 2090451600 + tz.transition 2036, 10, :o3, 2108595600 + tz.transition 2037, 3, :o4, 2121901200 + tz.transition 2037, 10, :o3, 2140045200 + tz.transition 2038, 3, :o4, 59172253, 24 + tz.transition 2038, 10, :o3, 59177461, 24 + tz.transition 2039, 3, :o4, 59180989, 24 + tz.transition 2039, 10, :o3, 59186197, 24 + tz.transition 2040, 3, :o4, 59189725, 24 + tz.transition 2040, 10, :o3, 59194933, 24 + tz.transition 2041, 3, :o4, 59198629, 24 + tz.transition 2041, 10, :o3, 59203669, 24 + tz.transition 2042, 3, :o4, 59207365, 24 + tz.transition 2042, 10, :o3, 59212405, 24 + tz.transition 2043, 3, :o4, 59216101, 24 + tz.transition 2043, 10, :o3, 59221141, 24 + tz.transition 2044, 3, :o4, 59224837, 24 + tz.transition 2044, 10, :o3, 59230045, 24 + tz.transition 2045, 3, :o4, 59233573, 24 + tz.transition 2045, 10, :o3, 59238781, 24 + tz.transition 2046, 3, :o4, 59242309, 24 + tz.transition 2046, 10, :o3, 59247517, 24 + tz.transition 2047, 3, :o4, 59251213, 24 + tz.transition 2047, 10, :o3, 59256253, 24 + tz.transition 2048, 3, :o4, 59259949, 24 + tz.transition 2048, 10, :o3, 59264989, 24 + tz.transition 2049, 3, :o4, 59268685, 24 + tz.transition 2049, 10, :o3, 59273893, 24 + tz.transition 2050, 3, :o4, 59277421, 24 + tz.transition 2050, 10, :o3, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bucharest.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bucharest.rb new file mode 100644 index 000000000..521c3c932 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Bucharest.rb @@ -0,0 +1,181 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Bucharest + include TimezoneDefinition + + timezone 'Europe/Bucharest' do |tz| + tz.offset :o0, 6264, 0, :LMT + tz.offset :o1, 6264, 0, :BMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + + tz.transition 1891, 9, :o1, 964802571, 400 + tz.transition 1931, 7, :o2, 970618571, 400 + tz.transition 1932, 5, :o3, 29122181, 12 + tz.transition 1932, 10, :o2, 29123789, 12 + tz.transition 1933, 4, :o3, 29125973, 12 + tz.transition 1933, 9, :o2, 29128157, 12 + tz.transition 1934, 4, :o3, 29130425, 12 + tz.transition 1934, 10, :o2, 29132609, 12 + tz.transition 1935, 4, :o3, 29134793, 12 + tz.transition 1935, 10, :o2, 29136977, 12 + tz.transition 1936, 4, :o3, 29139161, 12 + tz.transition 1936, 10, :o2, 29141345, 12 + tz.transition 1937, 4, :o3, 29143529, 12 + tz.transition 1937, 10, :o2, 29145713, 12 + tz.transition 1938, 4, :o3, 29147897, 12 + tz.transition 1938, 10, :o2, 29150081, 12 + tz.transition 1939, 4, :o3, 29152265, 12 + tz.transition 1939, 9, :o2, 29154449, 12 + tz.transition 1979, 5, :o3, 296604000 + tz.transition 1979, 9, :o2, 307486800 + tz.transition 1980, 4, :o3, 323816400 + tz.transition 1980, 9, :o2, 338940000 + tz.transition 1981, 3, :o3, 354672000 + tz.transition 1981, 9, :o2, 370396800 + tz.transition 1982, 3, :o3, 386121600 + tz.transition 1982, 9, :o2, 401846400 + tz.transition 1983, 3, :o3, 417571200 + tz.transition 1983, 9, :o2, 433296000 + tz.transition 1984, 3, :o3, 449020800 + tz.transition 1984, 9, :o2, 465350400 + tz.transition 1985, 3, :o3, 481075200 + tz.transition 1985, 9, :o2, 496800000 + tz.transition 1986, 3, :o3, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o3, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o3, 575424000 + tz.transition 1988, 9, :o2, 591148800 + tz.transition 1989, 3, :o3, 606873600 + tz.transition 1989, 9, :o2, 622598400 + tz.transition 1990, 3, :o3, 638323200 + tz.transition 1990, 9, :o2, 654652800 + tz.transition 1991, 3, :o3, 670370400 + tz.transition 1991, 9, :o2, 686095200 + tz.transition 1992, 3, :o3, 701820000 + tz.transition 1992, 9, :o2, 717544800 + tz.transition 1993, 3, :o3, 733269600 + tz.transition 1993, 9, :o2, 748994400 + tz.transition 1994, 3, :o3, 764719200 + tz.transition 1994, 9, :o2, 780440400 + tz.transition 1995, 3, :o3, 796168800 + tz.transition 1995, 9, :o2, 811890000 + tz.transition 1996, 3, :o3, 828223200 + tz.transition 1996, 10, :o2, 846363600 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Budapest.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Budapest.rb new file mode 100644 index 000000000..1f3a9738b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Budapest.rb @@ -0,0 +1,197 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Budapest + include TimezoneDefinition + + timezone 'Europe/Budapest' do |tz| + tz.offset :o0, 4580, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + + tz.transition 1890, 9, :o1, 10418291051, 4320 + tz.transition 1916, 4, :o2, 29051813, 12 + tz.transition 1916, 9, :o1, 58107299, 24 + tz.transition 1917, 4, :o2, 58112029, 24 + tz.transition 1917, 9, :o1, 58115725, 24 + tz.transition 1918, 4, :o2, 29060215, 12 + tz.transition 1918, 9, :o1, 58124773, 24 + tz.transition 1919, 4, :o2, 29064763, 12 + tz.transition 1919, 9, :o1, 58133197, 24 + tz.transition 1920, 4, :o2, 29069035, 12 + tz.transition 1920, 9, :o1, 58142341, 24 + tz.transition 1941, 4, :o2, 58322173, 24 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 5, :o2, 29178929, 12 + tz.transition 1945, 11, :o1, 29181149, 12 + tz.transition 1946, 3, :o2, 58365853, 24 + tz.transition 1946, 10, :o1, 58370389, 24 + tz.transition 1947, 4, :o2, 58374757, 24 + tz.transition 1947, 10, :o1, 58379125, 24 + tz.transition 1948, 4, :o2, 58383493, 24 + tz.transition 1948, 10, :o1, 58387861, 24 + tz.transition 1949, 4, :o2, 58392397, 24 + tz.transition 1949, 10, :o1, 58396597, 24 + tz.transition 1950, 4, :o2, 58401325, 24 + tz.transition 1950, 10, :o1, 58405861, 24 + tz.transition 1954, 5, :o2, 58437251, 24 + tz.transition 1954, 10, :o1, 29220221, 12 + tz.transition 1955, 5, :o2, 58446011, 24 + tz.transition 1955, 10, :o1, 29224601, 12 + tz.transition 1956, 6, :o2, 58455059, 24 + tz.transition 1956, 9, :o1, 29228957, 12 + tz.transition 1957, 6, :o2, 4871983, 2 + tz.transition 1957, 9, :o1, 58466653, 24 + tz.transition 1980, 4, :o2, 323827200 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Copenhagen.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Copenhagen.rb new file mode 100644 index 000000000..47cbaf14a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Copenhagen.rb @@ -0,0 +1,179 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Copenhagen + include TimezoneDefinition + + timezone 'Europe/Copenhagen' do |tz| + tz.offset :o0, 3020, 0, :LMT + tz.offset :o1, 3020, 0, :CMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1889, 12, :o1, 10417111769, 4320 + tz.transition 1893, 12, :o2, 10423423289, 4320 + tz.transition 1916, 5, :o3, 29051981, 12 + tz.transition 1916, 9, :o2, 19369099, 8 + tz.transition 1940, 5, :o3, 58314347, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 10, :o2, 58352773, 24 + tz.transition 1945, 4, :o3, 58357141, 24 + tz.transition 1945, 8, :o2, 58360381, 24 + tz.transition 1946, 5, :o3, 58366597, 24 + tz.transition 1946, 9, :o2, 58369549, 24 + tz.transition 1947, 5, :o3, 58375429, 24 + tz.transition 1947, 8, :o2, 58377781, 24 + tz.transition 1948, 5, :o3, 58384333, 24 + tz.transition 1948, 8, :o2, 58386517, 24 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Dublin.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Dublin.rb new file mode 100644 index 000000000..0560bb543 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Dublin.rb @@ -0,0 +1,276 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Dublin + include TimezoneDefinition + + timezone 'Europe/Dublin' do |tz| + tz.offset :o0, -1500, 0, :LMT + tz.offset :o1, -1521, 0, :DMT + tz.offset :o2, -1521, 3600, :IST + tz.offset :o3, 0, 0, :GMT + tz.offset :o4, 0, 3600, :BST + tz.offset :o5, 0, 3600, :IST + tz.offset :o6, 3600, 0, :IST + + tz.transition 1880, 8, :o1, 693483701, 288 + tz.transition 1916, 5, :o2, 7747214723, 3200 + tz.transition 1916, 10, :o3, 7747640323, 3200 + tz.transition 1917, 4, :o4, 29055919, 12 + tz.transition 1917, 9, :o3, 29057863, 12 + tz.transition 1918, 3, :o4, 29060119, 12 + tz.transition 1918, 9, :o3, 29062399, 12 + tz.transition 1919, 3, :o4, 29064571, 12 + tz.transition 1919, 9, :o3, 29066767, 12 + tz.transition 1920, 3, :o4, 29068939, 12 + tz.transition 1920, 10, :o3, 29071471, 12 + tz.transition 1921, 4, :o4, 29073391, 12 + tz.transition 1921, 10, :o3, 29075587, 12 + tz.transition 1922, 3, :o5, 29077675, 12 + tz.transition 1922, 10, :o3, 29080027, 12 + tz.transition 1923, 4, :o5, 29082379, 12 + tz.transition 1923, 9, :o3, 29084143, 12 + tz.transition 1924, 4, :o5, 29086663, 12 + tz.transition 1924, 9, :o3, 29088595, 12 + tz.transition 1925, 4, :o5, 29091115, 12 + tz.transition 1925, 10, :o3, 29093131, 12 + tz.transition 1926, 4, :o5, 29095483, 12 + tz.transition 1926, 10, :o3, 29097499, 12 + tz.transition 1927, 4, :o5, 29099767, 12 + tz.transition 1927, 10, :o3, 29101867, 12 + tz.transition 1928, 4, :o5, 29104303, 12 + tz.transition 1928, 10, :o3, 29106319, 12 + tz.transition 1929, 4, :o5, 29108671, 12 + tz.transition 1929, 10, :o3, 29110687, 12 + tz.transition 1930, 4, :o5, 29112955, 12 + tz.transition 1930, 10, :o3, 29115055, 12 + tz.transition 1931, 4, :o5, 29117407, 12 + tz.transition 1931, 10, :o3, 29119423, 12 + tz.transition 1932, 4, :o5, 29121775, 12 + tz.transition 1932, 10, :o3, 29123791, 12 + tz.transition 1933, 4, :o5, 29126059, 12 + tz.transition 1933, 10, :o3, 29128243, 12 + tz.transition 1934, 4, :o5, 29130595, 12 + tz.transition 1934, 10, :o3, 29132611, 12 + tz.transition 1935, 4, :o5, 29134879, 12 + tz.transition 1935, 10, :o3, 29136979, 12 + tz.transition 1936, 4, :o5, 29139331, 12 + tz.transition 1936, 10, :o3, 29141347, 12 + tz.transition 1937, 4, :o5, 29143699, 12 + tz.transition 1937, 10, :o3, 29145715, 12 + tz.transition 1938, 4, :o5, 29147983, 12 + tz.transition 1938, 10, :o3, 29150083, 12 + tz.transition 1939, 4, :o5, 29152435, 12 + tz.transition 1939, 11, :o3, 29155039, 12 + tz.transition 1940, 2, :o5, 29156215, 12 + tz.transition 1946, 10, :o3, 58370389, 24 + tz.transition 1947, 3, :o5, 29187127, 12 + tz.transition 1947, 11, :o3, 58379797, 24 + tz.transition 1948, 4, :o5, 29191915, 12 + tz.transition 1948, 10, :o3, 29194267, 12 + tz.transition 1949, 4, :o5, 29196115, 12 + tz.transition 1949, 10, :o3, 29198635, 12 + tz.transition 1950, 4, :o5, 29200651, 12 + tz.transition 1950, 10, :o3, 29202919, 12 + tz.transition 1951, 4, :o5, 29205019, 12 + tz.transition 1951, 10, :o3, 29207287, 12 + tz.transition 1952, 4, :o5, 29209471, 12 + tz.transition 1952, 10, :o3, 29211739, 12 + tz.transition 1953, 4, :o5, 29213839, 12 + tz.transition 1953, 10, :o3, 29215855, 12 + tz.transition 1954, 4, :o5, 29218123, 12 + tz.transition 1954, 10, :o3, 29220223, 12 + tz.transition 1955, 4, :o5, 29222575, 12 + tz.transition 1955, 10, :o3, 29224591, 12 + tz.transition 1956, 4, :o5, 29227027, 12 + tz.transition 1956, 10, :o3, 29229043, 12 + tz.transition 1957, 4, :o5, 29231311, 12 + tz.transition 1957, 10, :o3, 29233411, 12 + tz.transition 1958, 4, :o5, 29235763, 12 + tz.transition 1958, 10, :o3, 29237779, 12 + tz.transition 1959, 4, :o5, 29240131, 12 + tz.transition 1959, 10, :o3, 29242147, 12 + tz.transition 1960, 4, :o5, 29244415, 12 + tz.transition 1960, 10, :o3, 29246515, 12 + tz.transition 1961, 3, :o5, 29248615, 12 + tz.transition 1961, 10, :o3, 29251219, 12 + tz.transition 1962, 3, :o5, 29252983, 12 + tz.transition 1962, 10, :o3, 29255587, 12 + tz.transition 1963, 3, :o5, 29257435, 12 + tz.transition 1963, 10, :o3, 29259955, 12 + tz.transition 1964, 3, :o5, 29261719, 12 + tz.transition 1964, 10, :o3, 29264323, 12 + tz.transition 1965, 3, :o5, 29266087, 12 + tz.transition 1965, 10, :o3, 29268691, 12 + tz.transition 1966, 3, :o5, 29270455, 12 + tz.transition 1966, 10, :o3, 29273059, 12 + tz.transition 1967, 3, :o5, 29274823, 12 + tz.transition 1967, 10, :o3, 29277511, 12 + tz.transition 1968, 2, :o5, 29278855, 12 + tz.transition 1968, 10, :o6, 58563755, 24 + tz.transition 1971, 10, :o3, 57722400 + tz.transition 1972, 3, :o5, 69818400 + tz.transition 1972, 10, :o3, 89172000 + tz.transition 1973, 3, :o5, 101268000 + tz.transition 1973, 10, :o3, 120621600 + tz.transition 1974, 3, :o5, 132717600 + tz.transition 1974, 10, :o3, 152071200 + tz.transition 1975, 3, :o5, 164167200 + tz.transition 1975, 10, :o3, 183520800 + tz.transition 1976, 3, :o5, 196221600 + tz.transition 1976, 10, :o3, 214970400 + tz.transition 1977, 3, :o5, 227671200 + tz.transition 1977, 10, :o3, 246420000 + tz.transition 1978, 3, :o5, 259120800 + tz.transition 1978, 10, :o3, 278474400 + tz.transition 1979, 3, :o5, 290570400 + tz.transition 1979, 10, :o3, 309924000 + tz.transition 1980, 3, :o5, 322020000 + tz.transition 1980, 10, :o3, 341373600 + tz.transition 1981, 3, :o5, 354675600 + tz.transition 1981, 10, :o3, 372819600 + tz.transition 1982, 3, :o5, 386125200 + tz.transition 1982, 10, :o3, 404269200 + tz.transition 1983, 3, :o5, 417574800 + tz.transition 1983, 10, :o3, 435718800 + tz.transition 1984, 3, :o5, 449024400 + tz.transition 1984, 10, :o3, 467773200 + tz.transition 1985, 3, :o5, 481078800 + tz.transition 1985, 10, :o3, 499222800 + tz.transition 1986, 3, :o5, 512528400 + tz.transition 1986, 10, :o3, 530672400 + tz.transition 1987, 3, :o5, 543978000 + tz.transition 1987, 10, :o3, 562122000 + tz.transition 1988, 3, :o5, 575427600 + tz.transition 1988, 10, :o3, 593571600 + tz.transition 1989, 3, :o5, 606877200 + tz.transition 1989, 10, :o3, 625626000 + tz.transition 1990, 3, :o5, 638326800 + tz.transition 1990, 10, :o3, 657075600 + tz.transition 1991, 3, :o5, 670381200 + tz.transition 1991, 10, :o3, 688525200 + tz.transition 1992, 3, :o5, 701830800 + tz.transition 1992, 10, :o3, 719974800 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 10, :o3, 751424400 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 10, :o3, 782874000 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 10, :o3, 814323600 + tz.transition 1996, 3, :o5, 828234000 + tz.transition 1996, 10, :o3, 846378000 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o3, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o3, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o3, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o3, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o3, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o3, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o3, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o3, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o3, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o3, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o3, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o3, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o3, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o3, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o3, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o3, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o3, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o3, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o3, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o3, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o3, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o3, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o3, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o3, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o3, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o3, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o3, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o3, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o3, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o3, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o3, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o3, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o3, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o3, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o3, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o3, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o3, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o3, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o3, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o3, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o3, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o3, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o3, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o3, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o3, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o3, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o3, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o3, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o3, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o3, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o3, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o3, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o3, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Helsinki.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Helsinki.rb new file mode 100644 index 000000000..13a806bcc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Helsinki.rb @@ -0,0 +1,163 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Helsinki + include TimezoneDefinition + + timezone 'Europe/Helsinki' do |tz| + tz.offset :o0, 5992, 0, :LMT + tz.offset :o1, 5992, 0, :HMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + + tz.transition 1878, 5, :o1, 25997062651, 10800 + tz.transition 1921, 4, :o2, 26166352651, 10800 + tz.transition 1942, 4, :o3, 29165429, 12 + tz.transition 1942, 10, :o2, 19445083, 8 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Istanbul.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Istanbul.rb new file mode 100644 index 000000000..8306c4753 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Istanbul.rb @@ -0,0 +1,218 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Istanbul + include TimezoneDefinition + + timezone 'Europe/Istanbul' do |tz| + tz.offset :o0, 6952, 0, :LMT + tz.offset :o1, 7016, 0, :IMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 7200, 3600, :EEST + tz.offset :o4, 10800, 3600, :TRST + tz.offset :o5, 10800, 0, :TRT + + tz.transition 1879, 12, :o1, 26003326531, 10800 + tz.transition 1910, 9, :o2, 26124610523, 10800 + tz.transition 1916, 4, :o3, 29051813, 12 + tz.transition 1916, 9, :o2, 19369099, 8 + tz.transition 1920, 3, :o3, 29068937, 12 + tz.transition 1920, 10, :o2, 19380979, 8 + tz.transition 1921, 4, :o3, 29073389, 12 + tz.transition 1921, 10, :o2, 19383723, 8 + tz.transition 1922, 3, :o3, 29077673, 12 + tz.transition 1922, 10, :o2, 19386683, 8 + tz.transition 1924, 5, :o3, 29087021, 12 + tz.transition 1924, 9, :o2, 19392475, 8 + tz.transition 1925, 4, :o3, 29091257, 12 + tz.transition 1925, 9, :o2, 19395395, 8 + tz.transition 1940, 6, :o3, 29157725, 12 + tz.transition 1940, 10, :o2, 19439259, 8 + tz.transition 1940, 11, :o3, 29159573, 12 + tz.transition 1941, 9, :o2, 19442067, 8 + tz.transition 1942, 3, :o3, 29165405, 12 + tz.transition 1942, 10, :o2, 19445315, 8 + tz.transition 1945, 4, :o3, 29178569, 12 + tz.transition 1945, 10, :o2, 19453891, 8 + tz.transition 1946, 5, :o3, 29183669, 12 + tz.transition 1946, 9, :o2, 19456755, 8 + tz.transition 1947, 4, :o3, 29187545, 12 + tz.transition 1947, 10, :o2, 19459707, 8 + tz.transition 1948, 4, :o3, 29191913, 12 + tz.transition 1948, 10, :o2, 19462619, 8 + tz.transition 1949, 4, :o3, 29196197, 12 + tz.transition 1949, 10, :o2, 19465531, 8 + tz.transition 1950, 4, :o3, 29200685, 12 + tz.transition 1950, 10, :o2, 19468499, 8 + tz.transition 1951, 4, :o3, 29205101, 12 + tz.transition 1951, 10, :o2, 19471419, 8 + tz.transition 1962, 7, :o3, 29254325, 12 + tz.transition 1962, 10, :o2, 19503563, 8 + tz.transition 1964, 5, :o3, 29262365, 12 + tz.transition 1964, 9, :o2, 19509355, 8 + tz.transition 1970, 5, :o3, 10533600 + tz.transition 1970, 10, :o2, 23835600 + tz.transition 1971, 5, :o3, 41983200 + tz.transition 1971, 10, :o2, 55285200 + tz.transition 1972, 5, :o3, 74037600 + tz.transition 1972, 10, :o2, 87339600 + tz.transition 1973, 6, :o3, 107910000 + tz.transition 1973, 11, :o2, 121219200 + tz.transition 1974, 3, :o3, 133920000 + tz.transition 1974, 11, :o2, 152676000 + tz.transition 1975, 3, :o3, 165362400 + tz.transition 1975, 10, :o2, 183502800 + tz.transition 1976, 5, :o3, 202428000 + tz.transition 1976, 10, :o2, 215557200 + tz.transition 1977, 4, :o3, 228866400 + tz.transition 1977, 10, :o2, 245797200 + tz.transition 1978, 4, :o3, 260316000 + tz.transition 1978, 10, :o4, 277246800 + tz.transition 1979, 10, :o5, 308779200 + tz.transition 1980, 4, :o4, 323827200 + tz.transition 1980, 10, :o5, 340228800 + tz.transition 1981, 3, :o4, 354672000 + tz.transition 1981, 10, :o5, 371678400 + tz.transition 1982, 3, :o4, 386121600 + tz.transition 1982, 10, :o5, 403128000 + tz.transition 1983, 7, :o4, 428446800 + tz.transition 1983, 10, :o5, 433886400 + tz.transition 1985, 4, :o3, 482792400 + tz.transition 1985, 9, :o2, 496702800 + tz.transition 1986, 3, :o3, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o3, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o3, 575424000 + tz.transition 1988, 9, :o2, 591148800 + tz.transition 1989, 3, :o3, 606873600 + tz.transition 1989, 9, :o2, 622598400 + tz.transition 1990, 3, :o3, 638323200 + tz.transition 1990, 9, :o2, 654652800 + tz.transition 1991, 3, :o3, 670374000 + tz.transition 1991, 9, :o2, 686098800 + tz.transition 1992, 3, :o3, 701823600 + tz.transition 1992, 9, :o2, 717548400 + tz.transition 1993, 3, :o3, 733273200 + tz.transition 1993, 9, :o2, 748998000 + tz.transition 1994, 3, :o3, 764722800 + tz.transition 1994, 9, :o2, 780447600 + tz.transition 1995, 3, :o3, 796172400 + tz.transition 1995, 9, :o2, 811897200 + tz.transition 1996, 3, :o3, 828226800 + tz.transition 1996, 10, :o2, 846370800 + tz.transition 1997, 3, :o3, 859676400 + tz.transition 1997, 10, :o2, 877820400 + tz.transition 1998, 3, :o3, 891126000 + tz.transition 1998, 10, :o2, 909270000 + tz.transition 1999, 3, :o3, 922575600 + tz.transition 1999, 10, :o2, 941324400 + tz.transition 2000, 3, :o3, 954025200 + tz.transition 2000, 10, :o2, 972774000 + tz.transition 2001, 3, :o3, 985474800 + tz.transition 2001, 10, :o2, 1004223600 + tz.transition 2002, 3, :o3, 1017529200 + tz.transition 2002, 10, :o2, 1035673200 + tz.transition 2003, 3, :o3, 1048978800 + tz.transition 2003, 10, :o2, 1067122800 + tz.transition 2004, 3, :o3, 1080428400 + tz.transition 2004, 10, :o2, 1099177200 + tz.transition 2005, 3, :o3, 1111878000 + tz.transition 2005, 10, :o2, 1130626800 + tz.transition 2006, 3, :o3, 1143327600 + tz.transition 2006, 10, :o2, 1162076400 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Kiev.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Kiev.rb new file mode 100644 index 000000000..513d3308b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Kiev.rb @@ -0,0 +1,168 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Kiev + include TimezoneDefinition + + timezone 'Europe/Kiev' do |tz| + tz.offset :o0, 7324, 0, :LMT + tz.offset :o1, 7324, 0, :KMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 10800, 0, :MSK + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + tz.offset :o6, 10800, 3600, :MSD + tz.offset :o7, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 52006652969, 21600 + tz.transition 1924, 5, :o2, 52356400169, 21600 + tz.transition 1930, 6, :o3, 29113781, 12 + tz.transition 1941, 9, :o4, 19442059, 8 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o5, 58344037, 24 + tz.transition 1943, 11, :o3, 58344827, 24 + tz.transition 1981, 3, :o6, 354920400 + tz.transition 1981, 9, :o3, 370728000 + tz.transition 1982, 3, :o6, 386456400 + tz.transition 1982, 9, :o3, 402264000 + tz.transition 1983, 3, :o6, 417992400 + tz.transition 1983, 9, :o3, 433800000 + tz.transition 1984, 3, :o6, 449614800 + tz.transition 1984, 9, :o3, 465346800 + tz.transition 1985, 3, :o6, 481071600 + tz.transition 1985, 9, :o3, 496796400 + tz.transition 1986, 3, :o6, 512521200 + tz.transition 1986, 9, :o3, 528246000 + tz.transition 1987, 3, :o6, 543970800 + tz.transition 1987, 9, :o3, 559695600 + tz.transition 1988, 3, :o6, 575420400 + tz.transition 1988, 9, :o3, 591145200 + tz.transition 1989, 3, :o6, 606870000 + tz.transition 1989, 9, :o3, 622594800 + tz.transition 1990, 6, :o2, 646786800 + tz.transition 1992, 3, :o7, 701820000 + tz.transition 1992, 9, :o2, 717541200 + tz.transition 1993, 3, :o7, 733269600 + tz.transition 1993, 9, :o2, 748990800 + tz.transition 1994, 3, :o7, 764719200 + tz.transition 1994, 9, :o2, 780440400 + tz.transition 1995, 3, :o7, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o7, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o7, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o7, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o7, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o7, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o7, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o7, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o7, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o7, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o7, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o7, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o7, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o7, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o7, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o7, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o7, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o7, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o7, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o7, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o7, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o7, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o7, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o7, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o7, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o7, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o7, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o7, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o7, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o7, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o7, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o7, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o7, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o7, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o7, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o7, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o7, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o7, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o7, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o7, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o7, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o7, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o7, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o7, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o7, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o7, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o7, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o7, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o7, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o7, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o7, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o7, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o7, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o7, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o7, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o7, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Lisbon.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Lisbon.rb new file mode 100644 index 000000000..1c6d2a3d3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Lisbon.rb @@ -0,0 +1,268 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Lisbon + include TimezoneDefinition + + timezone 'Europe/Lisbon' do |tz| + tz.offset :o0, -2192, 0, :LMT + tz.offset :o1, 0, 0, :WET + tz.offset :o2, 0, 3600, :WEST + tz.offset :o3, 0, 7200, :WEMT + tz.offset :o4, 3600, 0, :CET + tz.offset :o5, 3600, 3600, :CEST + + tz.transition 1912, 1, :o1, 13064773637, 5400 + tz.transition 1916, 6, :o2, 58104779, 24 + tz.transition 1916, 11, :o1, 4842337, 2 + tz.transition 1917, 2, :o2, 58110923, 24 + tz.transition 1917, 10, :o1, 58116395, 24 + tz.transition 1918, 3, :o2, 58119707, 24 + tz.transition 1918, 10, :o1, 58125155, 24 + tz.transition 1919, 2, :o2, 58128443, 24 + tz.transition 1919, 10, :o1, 58133915, 24 + tz.transition 1920, 2, :o2, 58137227, 24 + tz.transition 1920, 10, :o1, 58142699, 24 + tz.transition 1921, 2, :o2, 58145987, 24 + tz.transition 1921, 10, :o1, 58151459, 24 + tz.transition 1924, 4, :o2, 58173419, 24 + tz.transition 1924, 10, :o1, 58177763, 24 + tz.transition 1926, 4, :o2, 58190963, 24 + tz.transition 1926, 10, :o1, 58194995, 24 + tz.transition 1927, 4, :o2, 58199531, 24 + tz.transition 1927, 10, :o1, 58203731, 24 + tz.transition 1928, 4, :o2, 58208435, 24 + tz.transition 1928, 10, :o1, 58212635, 24 + tz.transition 1929, 4, :o2, 58217339, 24 + tz.transition 1929, 10, :o1, 58221371, 24 + tz.transition 1931, 4, :o2, 58234811, 24 + tz.transition 1931, 10, :o1, 58238843, 24 + tz.transition 1932, 4, :o2, 58243211, 24 + tz.transition 1932, 10, :o1, 58247579, 24 + tz.transition 1934, 4, :o2, 58260851, 24 + tz.transition 1934, 10, :o1, 58265219, 24 + tz.transition 1935, 3, :o2, 58269419, 24 + tz.transition 1935, 10, :o1, 58273955, 24 + tz.transition 1936, 4, :o2, 58278659, 24 + tz.transition 1936, 10, :o1, 58282691, 24 + tz.transition 1937, 4, :o2, 58287059, 24 + tz.transition 1937, 10, :o1, 58291427, 24 + tz.transition 1938, 3, :o2, 58295627, 24 + tz.transition 1938, 10, :o1, 58300163, 24 + tz.transition 1939, 4, :o2, 58304867, 24 + tz.transition 1939, 11, :o1, 58310075, 24 + tz.transition 1940, 2, :o2, 58312427, 24 + tz.transition 1940, 10, :o1, 58317803, 24 + tz.transition 1941, 4, :o2, 58322171, 24 + tz.transition 1941, 10, :o1, 58326563, 24 + tz.transition 1942, 3, :o2, 58330403, 24 + tz.transition 1942, 4, :o3, 29165705, 12 + tz.transition 1942, 8, :o2, 29167049, 12 + tz.transition 1942, 10, :o1, 58335779, 24 + tz.transition 1943, 3, :o2, 58339139, 24 + tz.transition 1943, 4, :o3, 29169989, 12 + tz.transition 1943, 8, :o2, 29171585, 12 + tz.transition 1943, 10, :o1, 58344683, 24 + tz.transition 1944, 3, :o2, 58347875, 24 + tz.transition 1944, 4, :o3, 29174441, 12 + tz.transition 1944, 8, :o2, 29175953, 12 + tz.transition 1944, 10, :o1, 58353419, 24 + tz.transition 1945, 3, :o2, 58356611, 24 + tz.transition 1945, 4, :o3, 29178809, 12 + tz.transition 1945, 8, :o2, 29180321, 12 + tz.transition 1945, 10, :o1, 58362155, 24 + tz.transition 1946, 4, :o2, 58366019, 24 + tz.transition 1946, 10, :o1, 58370387, 24 + tz.transition 1947, 4, :o2, 29187379, 12 + tz.transition 1947, 10, :o1, 29189563, 12 + tz.transition 1948, 4, :o2, 29191747, 12 + tz.transition 1948, 10, :o1, 29193931, 12 + tz.transition 1949, 4, :o2, 29196115, 12 + tz.transition 1949, 10, :o1, 29198299, 12 + tz.transition 1951, 4, :o2, 29204851, 12 + tz.transition 1951, 10, :o1, 29207119, 12 + tz.transition 1952, 4, :o2, 29209303, 12 + tz.transition 1952, 10, :o1, 29211487, 12 + tz.transition 1953, 4, :o2, 29213671, 12 + tz.transition 1953, 10, :o1, 29215855, 12 + tz.transition 1954, 4, :o2, 29218039, 12 + tz.transition 1954, 10, :o1, 29220223, 12 + tz.transition 1955, 4, :o2, 29222407, 12 + tz.transition 1955, 10, :o1, 29224591, 12 + tz.transition 1956, 4, :o2, 29226775, 12 + tz.transition 1956, 10, :o1, 29229043, 12 + tz.transition 1957, 4, :o2, 29231227, 12 + tz.transition 1957, 10, :o1, 29233411, 12 + tz.transition 1958, 4, :o2, 29235595, 12 + tz.transition 1958, 10, :o1, 29237779, 12 + tz.transition 1959, 4, :o2, 29239963, 12 + tz.transition 1959, 10, :o1, 29242147, 12 + tz.transition 1960, 4, :o2, 29244331, 12 + tz.transition 1960, 10, :o1, 29246515, 12 + tz.transition 1961, 4, :o2, 29248699, 12 + tz.transition 1961, 10, :o1, 29250883, 12 + tz.transition 1962, 4, :o2, 29253067, 12 + tz.transition 1962, 10, :o1, 29255335, 12 + tz.transition 1963, 4, :o2, 29257519, 12 + tz.transition 1963, 10, :o1, 29259703, 12 + tz.transition 1964, 4, :o2, 29261887, 12 + tz.transition 1964, 10, :o1, 29264071, 12 + tz.transition 1965, 4, :o2, 29266255, 12 + tz.transition 1965, 10, :o1, 29268439, 12 + tz.transition 1966, 4, :o4, 29270623, 12 + tz.transition 1976, 9, :o1, 212544000 + tz.transition 1977, 3, :o2, 228268800 + tz.transition 1977, 9, :o1, 243993600 + tz.transition 1978, 4, :o2, 260323200 + tz.transition 1978, 10, :o1, 276048000 + tz.transition 1979, 4, :o2, 291772800 + tz.transition 1979, 9, :o1, 307501200 + tz.transition 1980, 3, :o2, 323222400 + tz.transition 1980, 9, :o1, 338950800 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417578400 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o4, 717555600 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 9, :o4, 749005200 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 9, :o4, 780454800 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 9, :o4, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Ljubljana.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Ljubljana.rb new file mode 100644 index 000000000..a9828e6ef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Ljubljana.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Ljubljana + include TimezoneDefinition + + linked_timezone 'Europe/Ljubljana', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/London.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/London.rb new file mode 100644 index 000000000..64ce41e90 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/London.rb @@ -0,0 +1,288 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module London + include TimezoneDefinition + + timezone 'Europe/London' do |tz| + tz.offset :o0, -75, 0, :LMT + tz.offset :o1, 0, 0, :GMT + tz.offset :o2, 0, 3600, :BST + tz.offset :o3, 0, 7200, :BDST + tz.offset :o4, 3600, 0, :BST + + tz.transition 1847, 12, :o1, 2760187969, 1152 + tz.transition 1916, 5, :o2, 29052055, 12 + tz.transition 1916, 10, :o1, 29053651, 12 + tz.transition 1917, 4, :o2, 29055919, 12 + tz.transition 1917, 9, :o1, 29057863, 12 + tz.transition 1918, 3, :o2, 29060119, 12 + tz.transition 1918, 9, :o1, 29062399, 12 + tz.transition 1919, 3, :o2, 29064571, 12 + tz.transition 1919, 9, :o1, 29066767, 12 + tz.transition 1920, 3, :o2, 29068939, 12 + tz.transition 1920, 10, :o1, 29071471, 12 + tz.transition 1921, 4, :o2, 29073391, 12 + tz.transition 1921, 10, :o1, 29075587, 12 + tz.transition 1922, 3, :o2, 29077675, 12 + tz.transition 1922, 10, :o1, 29080027, 12 + tz.transition 1923, 4, :o2, 29082379, 12 + tz.transition 1923, 9, :o1, 29084143, 12 + tz.transition 1924, 4, :o2, 29086663, 12 + tz.transition 1924, 9, :o1, 29088595, 12 + tz.transition 1925, 4, :o2, 29091115, 12 + tz.transition 1925, 10, :o1, 29093131, 12 + tz.transition 1926, 4, :o2, 29095483, 12 + tz.transition 1926, 10, :o1, 29097499, 12 + tz.transition 1927, 4, :o2, 29099767, 12 + tz.transition 1927, 10, :o1, 29101867, 12 + tz.transition 1928, 4, :o2, 29104303, 12 + tz.transition 1928, 10, :o1, 29106319, 12 + tz.transition 1929, 4, :o2, 29108671, 12 + tz.transition 1929, 10, :o1, 29110687, 12 + tz.transition 1930, 4, :o2, 29112955, 12 + tz.transition 1930, 10, :o1, 29115055, 12 + tz.transition 1931, 4, :o2, 29117407, 12 + tz.transition 1931, 10, :o1, 29119423, 12 + tz.transition 1932, 4, :o2, 29121775, 12 + tz.transition 1932, 10, :o1, 29123791, 12 + tz.transition 1933, 4, :o2, 29126059, 12 + tz.transition 1933, 10, :o1, 29128243, 12 + tz.transition 1934, 4, :o2, 29130595, 12 + tz.transition 1934, 10, :o1, 29132611, 12 + tz.transition 1935, 4, :o2, 29134879, 12 + tz.transition 1935, 10, :o1, 29136979, 12 + tz.transition 1936, 4, :o2, 29139331, 12 + tz.transition 1936, 10, :o1, 29141347, 12 + tz.transition 1937, 4, :o2, 29143699, 12 + tz.transition 1937, 10, :o1, 29145715, 12 + tz.transition 1938, 4, :o2, 29147983, 12 + tz.transition 1938, 10, :o1, 29150083, 12 + tz.transition 1939, 4, :o2, 29152435, 12 + tz.transition 1939, 11, :o1, 29155039, 12 + tz.transition 1940, 2, :o2, 29156215, 12 + tz.transition 1941, 5, :o3, 58322845, 24 + tz.transition 1941, 8, :o2, 58325197, 24 + tz.transition 1942, 4, :o3, 58330909, 24 + tz.transition 1942, 8, :o2, 58333933, 24 + tz.transition 1943, 4, :o3, 58339645, 24 + tz.transition 1943, 8, :o2, 58342837, 24 + tz.transition 1944, 4, :o3, 58348381, 24 + tz.transition 1944, 9, :o2, 58352413, 24 + tz.transition 1945, 4, :o3, 58357141, 24 + tz.transition 1945, 7, :o2, 58359637, 24 + tz.transition 1945, 10, :o1, 29180827, 12 + tz.transition 1946, 4, :o2, 29183095, 12 + tz.transition 1946, 10, :o1, 29185195, 12 + tz.transition 1947, 3, :o2, 29187127, 12 + tz.transition 1947, 4, :o3, 58374925, 24 + tz.transition 1947, 8, :o2, 58377781, 24 + tz.transition 1947, 11, :o1, 29189899, 12 + tz.transition 1948, 3, :o2, 29191495, 12 + tz.transition 1948, 10, :o1, 29194267, 12 + tz.transition 1949, 4, :o2, 29196115, 12 + tz.transition 1949, 10, :o1, 29198635, 12 + tz.transition 1950, 4, :o2, 29200651, 12 + tz.transition 1950, 10, :o1, 29202919, 12 + tz.transition 1951, 4, :o2, 29205019, 12 + tz.transition 1951, 10, :o1, 29207287, 12 + tz.transition 1952, 4, :o2, 29209471, 12 + tz.transition 1952, 10, :o1, 29211739, 12 + tz.transition 1953, 4, :o2, 29213839, 12 + tz.transition 1953, 10, :o1, 29215855, 12 + tz.transition 1954, 4, :o2, 29218123, 12 + tz.transition 1954, 10, :o1, 29220223, 12 + tz.transition 1955, 4, :o2, 29222575, 12 + tz.transition 1955, 10, :o1, 29224591, 12 + tz.transition 1956, 4, :o2, 29227027, 12 + tz.transition 1956, 10, :o1, 29229043, 12 + tz.transition 1957, 4, :o2, 29231311, 12 + tz.transition 1957, 10, :o1, 29233411, 12 + tz.transition 1958, 4, :o2, 29235763, 12 + tz.transition 1958, 10, :o1, 29237779, 12 + tz.transition 1959, 4, :o2, 29240131, 12 + tz.transition 1959, 10, :o1, 29242147, 12 + tz.transition 1960, 4, :o2, 29244415, 12 + tz.transition 1960, 10, :o1, 29246515, 12 + tz.transition 1961, 3, :o2, 29248615, 12 + tz.transition 1961, 10, :o1, 29251219, 12 + tz.transition 1962, 3, :o2, 29252983, 12 + tz.transition 1962, 10, :o1, 29255587, 12 + tz.transition 1963, 3, :o2, 29257435, 12 + tz.transition 1963, 10, :o1, 29259955, 12 + tz.transition 1964, 3, :o2, 29261719, 12 + tz.transition 1964, 10, :o1, 29264323, 12 + tz.transition 1965, 3, :o2, 29266087, 12 + tz.transition 1965, 10, :o1, 29268691, 12 + tz.transition 1966, 3, :o2, 29270455, 12 + tz.transition 1966, 10, :o1, 29273059, 12 + tz.transition 1967, 3, :o2, 29274823, 12 + tz.transition 1967, 10, :o1, 29277511, 12 + tz.transition 1968, 2, :o2, 29278855, 12 + tz.transition 1968, 10, :o4, 58563755, 24 + tz.transition 1971, 10, :o1, 57722400 + tz.transition 1972, 3, :o2, 69818400 + tz.transition 1972, 10, :o1, 89172000 + tz.transition 1973, 3, :o2, 101268000 + tz.transition 1973, 10, :o1, 120621600 + tz.transition 1974, 3, :o2, 132717600 + tz.transition 1974, 10, :o1, 152071200 + tz.transition 1975, 3, :o2, 164167200 + tz.transition 1975, 10, :o1, 183520800 + tz.transition 1976, 3, :o2, 196221600 + tz.transition 1976, 10, :o1, 214970400 + tz.transition 1977, 3, :o2, 227671200 + tz.transition 1977, 10, :o1, 246420000 + tz.transition 1978, 3, :o2, 259120800 + tz.transition 1978, 10, :o1, 278474400 + tz.transition 1979, 3, :o2, 290570400 + tz.transition 1979, 10, :o1, 309924000 + tz.transition 1980, 3, :o2, 322020000 + tz.transition 1980, 10, :o1, 341373600 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 10, :o1, 372819600 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 10, :o1, 404269200 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 10, :o1, 435718800 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 10, :o1, 467773200 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 10, :o1, 499222800 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 10, :o1, 530672400 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 10, :o1, 562122000 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 10, :o1, 593571600 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 10, :o1, 625626000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 10, :o1, 657075600 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 10, :o1, 688525200 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 10, :o1, 719974800 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 10, :o1, 751424400 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 10, :o1, 782874000 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 10, :o1, 814323600 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Madrid.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Madrid.rb new file mode 100644 index 000000000..1fb568239 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Madrid.rb @@ -0,0 +1,211 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Madrid + include TimezoneDefinition + + timezone 'Europe/Madrid' do |tz| + tz.offset :o0, -884, 0, :LMT + tz.offset :o1, 0, 0, :WET + tz.offset :o2, 0, 3600, :WEST + tz.offset :o3, 0, 7200, :WEMT + tz.offset :o4, 3600, 0, :CET + tz.offset :o5, 3600, 3600, :CEST + + tz.transition 1901, 1, :o1, 52172327021, 21600 + tz.transition 1917, 5, :o2, 58112507, 24 + tz.transition 1917, 10, :o1, 58116203, 24 + tz.transition 1918, 4, :o2, 58120787, 24 + tz.transition 1918, 10, :o1, 58124963, 24 + tz.transition 1919, 4, :o2, 58129307, 24 + tz.transition 1919, 10, :o1, 58133723, 24 + tz.transition 1924, 4, :o2, 58173419, 24 + tz.transition 1924, 10, :o1, 58177523, 24 + tz.transition 1926, 4, :o2, 58190963, 24 + tz.transition 1926, 10, :o1, 58194995, 24 + tz.transition 1927, 4, :o2, 58199531, 24 + tz.transition 1927, 10, :o1, 58203731, 24 + tz.transition 1928, 4, :o2, 58208435, 24 + tz.transition 1928, 10, :o1, 58212635, 24 + tz.transition 1929, 4, :o2, 58217339, 24 + tz.transition 1929, 10, :o1, 58221371, 24 + tz.transition 1937, 5, :o2, 58288235, 24 + tz.transition 1937, 10, :o1, 58291427, 24 + tz.transition 1938, 3, :o2, 58295531, 24 + tz.transition 1938, 10, :o1, 58300163, 24 + tz.transition 1939, 4, :o2, 58304867, 24 + tz.transition 1939, 10, :o1, 58309067, 24 + tz.transition 1940, 3, :o2, 58312931, 24 + tz.transition 1942, 5, :o3, 29165789, 12 + tz.transition 1942, 9, :o2, 29167253, 12 + tz.transition 1943, 4, :o3, 29169989, 12 + tz.transition 1943, 10, :o2, 29172017, 12 + tz.transition 1944, 4, :o3, 29174357, 12 + tz.transition 1944, 10, :o2, 29176493, 12 + tz.transition 1945, 4, :o3, 29178725, 12 + tz.transition 1945, 9, :o2, 58361483, 24 + tz.transition 1946, 4, :o3, 29183093, 12 + tz.transition 1946, 9, :o4, 29185121, 12 + tz.transition 1949, 4, :o5, 29196449, 12 + tz.transition 1949, 9, :o4, 58396547, 24 + tz.transition 1974, 4, :o5, 135122400 + tz.transition 1974, 10, :o4, 150246000 + tz.transition 1975, 4, :o5, 167176800 + tz.transition 1975, 10, :o4, 181695600 + tz.transition 1976, 3, :o5, 196812000 + tz.transition 1976, 9, :o4, 212540400 + tz.transition 1977, 4, :o5, 228866400 + tz.transition 1977, 9, :o4, 243990000 + tz.transition 1978, 4, :o5, 260402400 + tz.transition 1978, 9, :o4, 276044400 + tz.transition 1979, 4, :o5, 291776400 + tz.transition 1979, 9, :o4, 307501200 + tz.transition 1980, 4, :o5, 323830800 + tz.transition 1980, 9, :o4, 338950800 + tz.transition 1981, 3, :o5, 354675600 + tz.transition 1981, 9, :o4, 370400400 + tz.transition 1982, 3, :o5, 386125200 + tz.transition 1982, 9, :o4, 401850000 + tz.transition 1983, 3, :o5, 417574800 + tz.transition 1983, 9, :o4, 433299600 + tz.transition 1984, 3, :o5, 449024400 + tz.transition 1984, 9, :o4, 465354000 + tz.transition 1985, 3, :o5, 481078800 + tz.transition 1985, 9, :o4, 496803600 + tz.transition 1986, 3, :o5, 512528400 + tz.transition 1986, 9, :o4, 528253200 + tz.transition 1987, 3, :o5, 543978000 + tz.transition 1987, 9, :o4, 559702800 + tz.transition 1988, 3, :o5, 575427600 + tz.transition 1988, 9, :o4, 591152400 + tz.transition 1989, 3, :o5, 606877200 + tz.transition 1989, 9, :o4, 622602000 + tz.transition 1990, 3, :o5, 638326800 + tz.transition 1990, 9, :o4, 654656400 + tz.transition 1991, 3, :o5, 670381200 + tz.transition 1991, 9, :o4, 686106000 + tz.transition 1992, 3, :o5, 701830800 + tz.transition 1992, 9, :o4, 717555600 + tz.transition 1993, 3, :o5, 733280400 + tz.transition 1993, 9, :o4, 749005200 + tz.transition 1994, 3, :o5, 764730000 + tz.transition 1994, 9, :o4, 780454800 + tz.transition 1995, 3, :o5, 796179600 + tz.transition 1995, 9, :o4, 811904400 + tz.transition 1996, 3, :o5, 828234000 + tz.transition 1996, 10, :o4, 846378000 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o4, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o4, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o4, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o4, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o4, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o4, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o4, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o4, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o4, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o4, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o4, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o4, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o4, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o4, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o4, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o4, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o4, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o4, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o4, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o4, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o4, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o4, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o4, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o4, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o4, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o4, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o4, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o4, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o4, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o4, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o4, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o4, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o4, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o4, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o4, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o4, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o4, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o4, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o4, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o4, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o4, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o4, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o4, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o4, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o4, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o4, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o4, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o4, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o4, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o4, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o4, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o4, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o4, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o4, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Minsk.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Minsk.rb new file mode 100644 index 000000000..fa15816cc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Minsk.rb @@ -0,0 +1,170 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Minsk + include TimezoneDefinition + + timezone 'Europe/Minsk' do |tz| + tz.offset :o0, 6616, 0, :LMT + tz.offset :o1, 6600, 0, :MMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 10800, 0, :MSK + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + tz.offset :o6, 10800, 3600, :MSD + tz.offset :o7, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 26003326573, 10800 + tz.transition 1924, 5, :o2, 349042669, 144 + tz.transition 1930, 6, :o3, 29113781, 12 + tz.transition 1941, 6, :o4, 19441387, 8 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o5, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 7, :o3, 29175293, 12 + tz.transition 1981, 3, :o6, 354920400 + tz.transition 1981, 9, :o3, 370728000 + tz.transition 1982, 3, :o6, 386456400 + tz.transition 1982, 9, :o3, 402264000 + tz.transition 1983, 3, :o6, 417992400 + tz.transition 1983, 9, :o3, 433800000 + tz.transition 1984, 3, :o6, 449614800 + tz.transition 1984, 9, :o3, 465346800 + tz.transition 1985, 3, :o6, 481071600 + tz.transition 1985, 9, :o3, 496796400 + tz.transition 1986, 3, :o6, 512521200 + tz.transition 1986, 9, :o3, 528246000 + tz.transition 1987, 3, :o6, 543970800 + tz.transition 1987, 9, :o3, 559695600 + tz.transition 1988, 3, :o6, 575420400 + tz.transition 1988, 9, :o3, 591145200 + tz.transition 1989, 3, :o6, 606870000 + tz.transition 1989, 9, :o3, 622594800 + tz.transition 1991, 3, :o7, 670374000 + tz.transition 1991, 9, :o2, 686102400 + tz.transition 1992, 3, :o7, 701820000 + tz.transition 1992, 9, :o2, 717544800 + tz.transition 1993, 3, :o7, 733276800 + tz.transition 1993, 9, :o2, 749001600 + tz.transition 1994, 3, :o7, 764726400 + tz.transition 1994, 9, :o2, 780451200 + tz.transition 1995, 3, :o7, 796176000 + tz.transition 1995, 9, :o2, 811900800 + tz.transition 1996, 3, :o7, 828230400 + tz.transition 1996, 10, :o2, 846374400 + tz.transition 1997, 3, :o7, 859680000 + tz.transition 1997, 10, :o2, 877824000 + tz.transition 1998, 3, :o7, 891129600 + tz.transition 1998, 10, :o2, 909273600 + tz.transition 1999, 3, :o7, 922579200 + tz.transition 1999, 10, :o2, 941328000 + tz.transition 2000, 3, :o7, 954028800 + tz.transition 2000, 10, :o2, 972777600 + tz.transition 2001, 3, :o7, 985478400 + tz.transition 2001, 10, :o2, 1004227200 + tz.transition 2002, 3, :o7, 1017532800 + tz.transition 2002, 10, :o2, 1035676800 + tz.transition 2003, 3, :o7, 1048982400 + tz.transition 2003, 10, :o2, 1067126400 + tz.transition 2004, 3, :o7, 1080432000 + tz.transition 2004, 10, :o2, 1099180800 + tz.transition 2005, 3, :o7, 1111881600 + tz.transition 2005, 10, :o2, 1130630400 + tz.transition 2006, 3, :o7, 1143331200 + tz.transition 2006, 10, :o2, 1162080000 + tz.transition 2007, 3, :o7, 1174780800 + tz.transition 2007, 10, :o2, 1193529600 + tz.transition 2008, 3, :o7, 1206835200 + tz.transition 2008, 10, :o2, 1224979200 + tz.transition 2009, 3, :o7, 1238284800 + tz.transition 2009, 10, :o2, 1256428800 + tz.transition 2010, 3, :o7, 1269734400 + tz.transition 2010, 10, :o2, 1288483200 + tz.transition 2011, 3, :o7, 1301184000 + tz.transition 2011, 10, :o2, 1319932800 + tz.transition 2012, 3, :o7, 1332633600 + tz.transition 2012, 10, :o2, 1351382400 + tz.transition 2013, 3, :o7, 1364688000 + tz.transition 2013, 10, :o2, 1382832000 + tz.transition 2014, 3, :o7, 1396137600 + tz.transition 2014, 10, :o2, 1414281600 + tz.transition 2015, 3, :o7, 1427587200 + tz.transition 2015, 10, :o2, 1445731200 + tz.transition 2016, 3, :o7, 1459036800 + tz.transition 2016, 10, :o2, 1477785600 + tz.transition 2017, 3, :o7, 1490486400 + tz.transition 2017, 10, :o2, 1509235200 + tz.transition 2018, 3, :o7, 1521936000 + tz.transition 2018, 10, :o2, 1540684800 + tz.transition 2019, 3, :o7, 1553990400 + tz.transition 2019, 10, :o2, 1572134400 + tz.transition 2020, 3, :o7, 1585440000 + tz.transition 2020, 10, :o2, 1603584000 + tz.transition 2021, 3, :o7, 1616889600 + tz.transition 2021, 10, :o2, 1635638400 + tz.transition 2022, 3, :o7, 1648339200 + tz.transition 2022, 10, :o2, 1667088000 + tz.transition 2023, 3, :o7, 1679788800 + tz.transition 2023, 10, :o2, 1698537600 + tz.transition 2024, 3, :o7, 1711843200 + tz.transition 2024, 10, :o2, 1729987200 + tz.transition 2025, 3, :o7, 1743292800 + tz.transition 2025, 10, :o2, 1761436800 + tz.transition 2026, 3, :o7, 1774742400 + tz.transition 2026, 10, :o2, 1792886400 + tz.transition 2027, 3, :o7, 1806192000 + tz.transition 2027, 10, :o2, 1824940800 + tz.transition 2028, 3, :o7, 1837641600 + tz.transition 2028, 10, :o2, 1856390400 + tz.transition 2029, 3, :o7, 1869091200 + tz.transition 2029, 10, :o2, 1887840000 + tz.transition 2030, 3, :o7, 1901145600 + tz.transition 2030, 10, :o2, 1919289600 + tz.transition 2031, 3, :o7, 1932595200 + tz.transition 2031, 10, :o2, 1950739200 + tz.transition 2032, 3, :o7, 1964044800 + tz.transition 2032, 10, :o2, 1982793600 + tz.transition 2033, 3, :o7, 1995494400 + tz.transition 2033, 10, :o2, 2014243200 + tz.transition 2034, 3, :o7, 2026944000 + tz.transition 2034, 10, :o2, 2045692800 + tz.transition 2035, 3, :o7, 2058393600 + tz.transition 2035, 10, :o2, 2077142400 + tz.transition 2036, 3, :o7, 2090448000 + tz.transition 2036, 10, :o2, 2108592000 + tz.transition 2037, 3, :o7, 2121897600 + tz.transition 2037, 10, :o2, 2140041600 + tz.transition 2038, 3, :o7, 4931021, 2 + tz.transition 2038, 10, :o2, 4931455, 2 + tz.transition 2039, 3, :o7, 4931749, 2 + tz.transition 2039, 10, :o2, 4932183, 2 + tz.transition 2040, 3, :o7, 4932477, 2 + tz.transition 2040, 10, :o2, 4932911, 2 + tz.transition 2041, 3, :o7, 4933219, 2 + tz.transition 2041, 10, :o2, 4933639, 2 + tz.transition 2042, 3, :o7, 4933947, 2 + tz.transition 2042, 10, :o2, 4934367, 2 + tz.transition 2043, 3, :o7, 4934675, 2 + tz.transition 2043, 10, :o2, 4935095, 2 + tz.transition 2044, 3, :o7, 4935403, 2 + tz.transition 2044, 10, :o2, 4935837, 2 + tz.transition 2045, 3, :o7, 4936131, 2 + tz.transition 2045, 10, :o2, 4936565, 2 + tz.transition 2046, 3, :o7, 4936859, 2 + tz.transition 2046, 10, :o2, 4937293, 2 + tz.transition 2047, 3, :o7, 4937601, 2 + tz.transition 2047, 10, :o2, 4938021, 2 + tz.transition 2048, 3, :o7, 4938329, 2 + tz.transition 2048, 10, :o2, 4938749, 2 + tz.transition 2049, 3, :o7, 4939057, 2 + tz.transition 2049, 10, :o2, 4939491, 2 + tz.transition 2050, 3, :o7, 4939785, 2 + tz.transition 2050, 10, :o2, 4940219, 2 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Moscow.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Moscow.rb new file mode 100644 index 000000000..ef269b675 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Moscow.rb @@ -0,0 +1,181 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Moscow + include TimezoneDefinition + + timezone 'Europe/Moscow' do |tz| + tz.offset :o0, 9020, 0, :LMT + tz.offset :o1, 9000, 0, :MMT + tz.offset :o2, 9048, 0, :MMT + tz.offset :o3, 9048, 3600, :MST + tz.offset :o4, 9048, 7200, :MDST + tz.offset :o5, 10800, 3600, :MSD + tz.offset :o6, 10800, 0, :MSK + tz.offset :o7, 10800, 7200, :MSD + tz.offset :o8, 7200, 0, :EET + tz.offset :o9, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 10401330509, 4320 + tz.transition 1916, 7, :o2, 116210275, 48 + tz.transition 1917, 7, :o3, 8717080873, 3600 + tz.transition 1917, 12, :o2, 8717725273, 3600 + tz.transition 1918, 5, :o4, 8718283123, 3600 + tz.transition 1918, 9, :o3, 8718668473, 3600 + tz.transition 1919, 5, :o4, 8719597123, 3600 + tz.transition 1919, 6, :o5, 8719705423, 3600 + tz.transition 1919, 8, :o6, 7266559, 3 + tz.transition 1921, 2, :o5, 7268206, 3 + tz.transition 1921, 3, :o7, 58146463, 24 + tz.transition 1921, 8, :o5, 58150399, 24 + tz.transition 1921, 9, :o6, 7268890, 3 + tz.transition 1922, 9, :o8, 19386627, 8 + tz.transition 1930, 6, :o6, 29113781, 12 + tz.transition 1981, 3, :o5, 354920400 + tz.transition 1981, 9, :o6, 370728000 + tz.transition 1982, 3, :o5, 386456400 + tz.transition 1982, 9, :o6, 402264000 + tz.transition 1983, 3, :o5, 417992400 + tz.transition 1983, 9, :o6, 433800000 + tz.transition 1984, 3, :o5, 449614800 + tz.transition 1984, 9, :o6, 465346800 + tz.transition 1985, 3, :o5, 481071600 + tz.transition 1985, 9, :o6, 496796400 + tz.transition 1986, 3, :o5, 512521200 + tz.transition 1986, 9, :o6, 528246000 + tz.transition 1987, 3, :o5, 543970800 + tz.transition 1987, 9, :o6, 559695600 + tz.transition 1988, 3, :o5, 575420400 + tz.transition 1988, 9, :o6, 591145200 + tz.transition 1989, 3, :o5, 606870000 + tz.transition 1989, 9, :o6, 622594800 + tz.transition 1990, 3, :o5, 638319600 + tz.transition 1990, 9, :o6, 654649200 + tz.transition 1991, 3, :o9, 670374000 + tz.transition 1991, 9, :o8, 686102400 + tz.transition 1992, 1, :o6, 695779200 + tz.transition 1992, 3, :o5, 701812800 + tz.transition 1992, 9, :o6, 717534000 + tz.transition 1993, 3, :o5, 733273200 + tz.transition 1993, 9, :o6, 748998000 + tz.transition 1994, 3, :o5, 764722800 + tz.transition 1994, 9, :o6, 780447600 + tz.transition 1995, 3, :o5, 796172400 + tz.transition 1995, 9, :o6, 811897200 + tz.transition 1996, 3, :o5, 828226800 + tz.transition 1996, 10, :o6, 846370800 + tz.transition 1997, 3, :o5, 859676400 + tz.transition 1997, 10, :o6, 877820400 + tz.transition 1998, 3, :o5, 891126000 + tz.transition 1998, 10, :o6, 909270000 + tz.transition 1999, 3, :o5, 922575600 + tz.transition 1999, 10, :o6, 941324400 + tz.transition 2000, 3, :o5, 954025200 + tz.transition 2000, 10, :o6, 972774000 + tz.transition 2001, 3, :o5, 985474800 + tz.transition 2001, 10, :o6, 1004223600 + tz.transition 2002, 3, :o5, 1017529200 + tz.transition 2002, 10, :o6, 1035673200 + tz.transition 2003, 3, :o5, 1048978800 + tz.transition 2003, 10, :o6, 1067122800 + tz.transition 2004, 3, :o5, 1080428400 + tz.transition 2004, 10, :o6, 1099177200 + tz.transition 2005, 3, :o5, 1111878000 + tz.transition 2005, 10, :o6, 1130626800 + tz.transition 2006, 3, :o5, 1143327600 + tz.transition 2006, 10, :o6, 1162076400 + tz.transition 2007, 3, :o5, 1174777200 + tz.transition 2007, 10, :o6, 1193526000 + tz.transition 2008, 3, :o5, 1206831600 + tz.transition 2008, 10, :o6, 1224975600 + tz.transition 2009, 3, :o5, 1238281200 + tz.transition 2009, 10, :o6, 1256425200 + tz.transition 2010, 3, :o5, 1269730800 + tz.transition 2010, 10, :o6, 1288479600 + tz.transition 2011, 3, :o5, 1301180400 + tz.transition 2011, 10, :o6, 1319929200 + tz.transition 2012, 3, :o5, 1332630000 + tz.transition 2012, 10, :o6, 1351378800 + tz.transition 2013, 3, :o5, 1364684400 + tz.transition 2013, 10, :o6, 1382828400 + tz.transition 2014, 3, :o5, 1396134000 + tz.transition 2014, 10, :o6, 1414278000 + tz.transition 2015, 3, :o5, 1427583600 + tz.transition 2015, 10, :o6, 1445727600 + tz.transition 2016, 3, :o5, 1459033200 + tz.transition 2016, 10, :o6, 1477782000 + tz.transition 2017, 3, :o5, 1490482800 + tz.transition 2017, 10, :o6, 1509231600 + tz.transition 2018, 3, :o5, 1521932400 + tz.transition 2018, 10, :o6, 1540681200 + tz.transition 2019, 3, :o5, 1553986800 + tz.transition 2019, 10, :o6, 1572130800 + tz.transition 2020, 3, :o5, 1585436400 + tz.transition 2020, 10, :o6, 1603580400 + tz.transition 2021, 3, :o5, 1616886000 + tz.transition 2021, 10, :o6, 1635634800 + tz.transition 2022, 3, :o5, 1648335600 + tz.transition 2022, 10, :o6, 1667084400 + tz.transition 2023, 3, :o5, 1679785200 + tz.transition 2023, 10, :o6, 1698534000 + tz.transition 2024, 3, :o5, 1711839600 + tz.transition 2024, 10, :o6, 1729983600 + tz.transition 2025, 3, :o5, 1743289200 + tz.transition 2025, 10, :o6, 1761433200 + tz.transition 2026, 3, :o5, 1774738800 + tz.transition 2026, 10, :o6, 1792882800 + tz.transition 2027, 3, :o5, 1806188400 + tz.transition 2027, 10, :o6, 1824937200 + tz.transition 2028, 3, :o5, 1837638000 + tz.transition 2028, 10, :o6, 1856386800 + tz.transition 2029, 3, :o5, 1869087600 + tz.transition 2029, 10, :o6, 1887836400 + tz.transition 2030, 3, :o5, 1901142000 + tz.transition 2030, 10, :o6, 1919286000 + tz.transition 2031, 3, :o5, 1932591600 + tz.transition 2031, 10, :o6, 1950735600 + tz.transition 2032, 3, :o5, 1964041200 + tz.transition 2032, 10, :o6, 1982790000 + tz.transition 2033, 3, :o5, 1995490800 + tz.transition 2033, 10, :o6, 2014239600 + tz.transition 2034, 3, :o5, 2026940400 + tz.transition 2034, 10, :o6, 2045689200 + tz.transition 2035, 3, :o5, 2058390000 + tz.transition 2035, 10, :o6, 2077138800 + tz.transition 2036, 3, :o5, 2090444400 + tz.transition 2036, 10, :o6, 2108588400 + tz.transition 2037, 3, :o5, 2121894000 + tz.transition 2037, 10, :o6, 2140038000 + tz.transition 2038, 3, :o5, 59172251, 24 + tz.transition 2038, 10, :o6, 59177459, 24 + tz.transition 2039, 3, :o5, 59180987, 24 + tz.transition 2039, 10, :o6, 59186195, 24 + tz.transition 2040, 3, :o5, 59189723, 24 + tz.transition 2040, 10, :o6, 59194931, 24 + tz.transition 2041, 3, :o5, 59198627, 24 + tz.transition 2041, 10, :o6, 59203667, 24 + tz.transition 2042, 3, :o5, 59207363, 24 + tz.transition 2042, 10, :o6, 59212403, 24 + tz.transition 2043, 3, :o5, 59216099, 24 + tz.transition 2043, 10, :o6, 59221139, 24 + tz.transition 2044, 3, :o5, 59224835, 24 + tz.transition 2044, 10, :o6, 59230043, 24 + tz.transition 2045, 3, :o5, 59233571, 24 + tz.transition 2045, 10, :o6, 59238779, 24 + tz.transition 2046, 3, :o5, 59242307, 24 + tz.transition 2046, 10, :o6, 59247515, 24 + tz.transition 2047, 3, :o5, 59251211, 24 + tz.transition 2047, 10, :o6, 59256251, 24 + tz.transition 2048, 3, :o5, 59259947, 24 + tz.transition 2048, 10, :o6, 59264987, 24 + tz.transition 2049, 3, :o5, 59268683, 24 + tz.transition 2049, 10, :o6, 59273891, 24 + tz.transition 2050, 3, :o5, 59277419, 24 + tz.transition 2050, 10, :o6, 59282627, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Paris.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Paris.rb new file mode 100644 index 000000000..e3236c0ba --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Paris.rb @@ -0,0 +1,232 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Paris + include TimezoneDefinition + + timezone 'Europe/Paris' do |tz| + tz.offset :o0, 561, 0, :LMT + tz.offset :o1, 561, 0, :PMT + tz.offset :o2, 0, 0, :WET + tz.offset :o3, 0, 3600, :WEST + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 3600, 0, :CET + tz.offset :o6, 0, 7200, :WEMT + + tz.transition 1891, 3, :o1, 69460027033, 28800 + tz.transition 1911, 3, :o2, 69670267033, 28800 + tz.transition 1916, 6, :o3, 58104707, 24 + tz.transition 1916, 10, :o2, 58107323, 24 + tz.transition 1917, 3, :o3, 58111499, 24 + tz.transition 1917, 10, :o2, 58116227, 24 + tz.transition 1918, 3, :o3, 58119899, 24 + tz.transition 1918, 10, :o2, 58124963, 24 + tz.transition 1919, 3, :o3, 58128467, 24 + tz.transition 1919, 10, :o2, 58133699, 24 + tz.transition 1920, 2, :o3, 58136867, 24 + tz.transition 1920, 10, :o2, 58142915, 24 + tz.transition 1921, 3, :o3, 58146323, 24 + tz.transition 1921, 10, :o2, 58151723, 24 + tz.transition 1922, 3, :o3, 58155347, 24 + tz.transition 1922, 10, :o2, 58160051, 24 + tz.transition 1923, 5, :o3, 58165595, 24 + tz.transition 1923, 10, :o2, 58168787, 24 + tz.transition 1924, 3, :o3, 58172987, 24 + tz.transition 1924, 10, :o2, 58177523, 24 + tz.transition 1925, 4, :o3, 58181891, 24 + tz.transition 1925, 10, :o2, 58186259, 24 + tz.transition 1926, 4, :o3, 58190963, 24 + tz.transition 1926, 10, :o2, 58194995, 24 + tz.transition 1927, 4, :o3, 58199531, 24 + tz.transition 1927, 10, :o2, 58203731, 24 + tz.transition 1928, 4, :o3, 58208435, 24 + tz.transition 1928, 10, :o2, 58212635, 24 + tz.transition 1929, 4, :o3, 58217339, 24 + tz.transition 1929, 10, :o2, 58221371, 24 + tz.transition 1930, 4, :o3, 58225907, 24 + tz.transition 1930, 10, :o2, 58230107, 24 + tz.transition 1931, 4, :o3, 58234811, 24 + tz.transition 1931, 10, :o2, 58238843, 24 + tz.transition 1932, 4, :o3, 58243211, 24 + tz.transition 1932, 10, :o2, 58247579, 24 + tz.transition 1933, 3, :o3, 58251779, 24 + tz.transition 1933, 10, :o2, 58256483, 24 + tz.transition 1934, 4, :o3, 58260851, 24 + tz.transition 1934, 10, :o2, 58265219, 24 + tz.transition 1935, 3, :o3, 58269419, 24 + tz.transition 1935, 10, :o2, 58273955, 24 + tz.transition 1936, 4, :o3, 58278659, 24 + tz.transition 1936, 10, :o2, 58282691, 24 + tz.transition 1937, 4, :o3, 58287059, 24 + tz.transition 1937, 10, :o2, 58291427, 24 + tz.transition 1938, 3, :o3, 58295627, 24 + tz.transition 1938, 10, :o2, 58300163, 24 + tz.transition 1939, 4, :o3, 58304867, 24 + tz.transition 1939, 11, :o2, 58310075, 24 + tz.transition 1940, 2, :o3, 29156215, 12 + tz.transition 1940, 6, :o4, 29157545, 12 + tz.transition 1942, 11, :o5, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o5, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 8, :o6, 29175929, 12 + tz.transition 1944, 10, :o3, 58352915, 24 + tz.transition 1945, 4, :o6, 58357141, 24 + tz.transition 1945, 9, :o5, 58361149, 24 + tz.transition 1976, 3, :o4, 196819200 + tz.transition 1976, 9, :o5, 212540400 + tz.transition 1977, 4, :o4, 228877200 + tz.transition 1977, 9, :o5, 243997200 + tz.transition 1978, 4, :o4, 260326800 + tz.transition 1978, 10, :o5, 276051600 + tz.transition 1979, 4, :o4, 291776400 + tz.transition 1979, 9, :o5, 307501200 + tz.transition 1980, 4, :o4, 323830800 + tz.transition 1980, 9, :o5, 338950800 + tz.transition 1981, 3, :o4, 354675600 + tz.transition 1981, 9, :o5, 370400400 + tz.transition 1982, 3, :o4, 386125200 + tz.transition 1982, 9, :o5, 401850000 + tz.transition 1983, 3, :o4, 417574800 + tz.transition 1983, 9, :o5, 433299600 + tz.transition 1984, 3, :o4, 449024400 + tz.transition 1984, 9, :o5, 465354000 + tz.transition 1985, 3, :o4, 481078800 + tz.transition 1985, 9, :o5, 496803600 + tz.transition 1986, 3, :o4, 512528400 + tz.transition 1986, 9, :o5, 528253200 + tz.transition 1987, 3, :o4, 543978000 + tz.transition 1987, 9, :o5, 559702800 + tz.transition 1988, 3, :o4, 575427600 + tz.transition 1988, 9, :o5, 591152400 + tz.transition 1989, 3, :o4, 606877200 + tz.transition 1989, 9, :o5, 622602000 + tz.transition 1990, 3, :o4, 638326800 + tz.transition 1990, 9, :o5, 654656400 + tz.transition 1991, 3, :o4, 670381200 + tz.transition 1991, 9, :o5, 686106000 + tz.transition 1992, 3, :o4, 701830800 + tz.transition 1992, 9, :o5, 717555600 + tz.transition 1993, 3, :o4, 733280400 + tz.transition 1993, 9, :o5, 749005200 + tz.transition 1994, 3, :o4, 764730000 + tz.transition 1994, 9, :o5, 780454800 + tz.transition 1995, 3, :o4, 796179600 + tz.transition 1995, 9, :o5, 811904400 + tz.transition 1996, 3, :o4, 828234000 + tz.transition 1996, 10, :o5, 846378000 + tz.transition 1997, 3, :o4, 859683600 + tz.transition 1997, 10, :o5, 877827600 + tz.transition 1998, 3, :o4, 891133200 + tz.transition 1998, 10, :o5, 909277200 + tz.transition 1999, 3, :o4, 922582800 + tz.transition 1999, 10, :o5, 941331600 + tz.transition 2000, 3, :o4, 954032400 + tz.transition 2000, 10, :o5, 972781200 + tz.transition 2001, 3, :o4, 985482000 + tz.transition 2001, 10, :o5, 1004230800 + tz.transition 2002, 3, :o4, 1017536400 + tz.transition 2002, 10, :o5, 1035680400 + tz.transition 2003, 3, :o4, 1048986000 + tz.transition 2003, 10, :o5, 1067130000 + tz.transition 2004, 3, :o4, 1080435600 + tz.transition 2004, 10, :o5, 1099184400 + tz.transition 2005, 3, :o4, 1111885200 + tz.transition 2005, 10, :o5, 1130634000 + tz.transition 2006, 3, :o4, 1143334800 + tz.transition 2006, 10, :o5, 1162083600 + tz.transition 2007, 3, :o4, 1174784400 + tz.transition 2007, 10, :o5, 1193533200 + tz.transition 2008, 3, :o4, 1206838800 + tz.transition 2008, 10, :o5, 1224982800 + tz.transition 2009, 3, :o4, 1238288400 + tz.transition 2009, 10, :o5, 1256432400 + tz.transition 2010, 3, :o4, 1269738000 + tz.transition 2010, 10, :o5, 1288486800 + tz.transition 2011, 3, :o4, 1301187600 + tz.transition 2011, 10, :o5, 1319936400 + tz.transition 2012, 3, :o4, 1332637200 + tz.transition 2012, 10, :o5, 1351386000 + tz.transition 2013, 3, :o4, 1364691600 + tz.transition 2013, 10, :o5, 1382835600 + tz.transition 2014, 3, :o4, 1396141200 + tz.transition 2014, 10, :o5, 1414285200 + tz.transition 2015, 3, :o4, 1427590800 + tz.transition 2015, 10, :o5, 1445734800 + tz.transition 2016, 3, :o4, 1459040400 + tz.transition 2016, 10, :o5, 1477789200 + tz.transition 2017, 3, :o4, 1490490000 + tz.transition 2017, 10, :o5, 1509238800 + tz.transition 2018, 3, :o4, 1521939600 + tz.transition 2018, 10, :o5, 1540688400 + tz.transition 2019, 3, :o4, 1553994000 + tz.transition 2019, 10, :o5, 1572138000 + tz.transition 2020, 3, :o4, 1585443600 + tz.transition 2020, 10, :o5, 1603587600 + tz.transition 2021, 3, :o4, 1616893200 + tz.transition 2021, 10, :o5, 1635642000 + tz.transition 2022, 3, :o4, 1648342800 + tz.transition 2022, 10, :o5, 1667091600 + tz.transition 2023, 3, :o4, 1679792400 + tz.transition 2023, 10, :o5, 1698541200 + tz.transition 2024, 3, :o4, 1711846800 + tz.transition 2024, 10, :o5, 1729990800 + tz.transition 2025, 3, :o4, 1743296400 + tz.transition 2025, 10, :o5, 1761440400 + tz.transition 2026, 3, :o4, 1774746000 + tz.transition 2026, 10, :o5, 1792890000 + tz.transition 2027, 3, :o4, 1806195600 + tz.transition 2027, 10, :o5, 1824944400 + tz.transition 2028, 3, :o4, 1837645200 + tz.transition 2028, 10, :o5, 1856394000 + tz.transition 2029, 3, :o4, 1869094800 + tz.transition 2029, 10, :o5, 1887843600 + tz.transition 2030, 3, :o4, 1901149200 + tz.transition 2030, 10, :o5, 1919293200 + tz.transition 2031, 3, :o4, 1932598800 + tz.transition 2031, 10, :o5, 1950742800 + tz.transition 2032, 3, :o4, 1964048400 + tz.transition 2032, 10, :o5, 1982797200 + tz.transition 2033, 3, :o4, 1995498000 + tz.transition 2033, 10, :o5, 2014246800 + tz.transition 2034, 3, :o4, 2026947600 + tz.transition 2034, 10, :o5, 2045696400 + tz.transition 2035, 3, :o4, 2058397200 + tz.transition 2035, 10, :o5, 2077146000 + tz.transition 2036, 3, :o4, 2090451600 + tz.transition 2036, 10, :o5, 2108595600 + tz.transition 2037, 3, :o4, 2121901200 + tz.transition 2037, 10, :o5, 2140045200 + tz.transition 2038, 3, :o4, 59172253, 24 + tz.transition 2038, 10, :o5, 59177461, 24 + tz.transition 2039, 3, :o4, 59180989, 24 + tz.transition 2039, 10, :o5, 59186197, 24 + tz.transition 2040, 3, :o4, 59189725, 24 + tz.transition 2040, 10, :o5, 59194933, 24 + tz.transition 2041, 3, :o4, 59198629, 24 + tz.transition 2041, 10, :o5, 59203669, 24 + tz.transition 2042, 3, :o4, 59207365, 24 + tz.transition 2042, 10, :o5, 59212405, 24 + tz.transition 2043, 3, :o4, 59216101, 24 + tz.transition 2043, 10, :o5, 59221141, 24 + tz.transition 2044, 3, :o4, 59224837, 24 + tz.transition 2044, 10, :o5, 59230045, 24 + tz.transition 2045, 3, :o4, 59233573, 24 + tz.transition 2045, 10, :o5, 59238781, 24 + tz.transition 2046, 3, :o4, 59242309, 24 + tz.transition 2046, 10, :o5, 59247517, 24 + tz.transition 2047, 3, :o4, 59251213, 24 + tz.transition 2047, 10, :o5, 59256253, 24 + tz.transition 2048, 3, :o4, 59259949, 24 + tz.transition 2048, 10, :o5, 59264989, 24 + tz.transition 2049, 3, :o4, 59268685, 24 + tz.transition 2049, 10, :o5, 59273893, 24 + tz.transition 2050, 3, :o4, 59277421, 24 + tz.transition 2050, 10, :o5, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Prague.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Prague.rb new file mode 100644 index 000000000..bcabee96c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Prague.rb @@ -0,0 +1,187 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Prague + include TimezoneDefinition + + timezone 'Europe/Prague' do |tz| + tz.offset :o0, 3464, 0, :LMT + tz.offset :o1, 3464, 0, :PMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1849, 12, :o1, 25884991367, 10800 + tz.transition 1891, 9, :o2, 26049669767, 10800 + tz.transition 1916, 4, :o3, 29051813, 12 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1917, 4, :o3, 58112029, 24 + tz.transition 1917, 9, :o2, 58115725, 24 + tz.transition 1918, 4, :o3, 58120765, 24 + tz.transition 1918, 9, :o2, 58124461, 24 + tz.transition 1940, 4, :o3, 58313293, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 9, :o2, 58352413, 24 + tz.transition 1945, 4, :o3, 58357285, 24 + tz.transition 1945, 11, :o2, 58362661, 24 + tz.transition 1946, 5, :o3, 58366717, 24 + tz.transition 1946, 10, :o2, 58370389, 24 + tz.transition 1947, 4, :o3, 58375093, 24 + tz.transition 1947, 10, :o2, 58379125, 24 + tz.transition 1948, 4, :o3, 58383829, 24 + tz.transition 1948, 10, :o2, 58387861, 24 + tz.transition 1949, 4, :o3, 58392373, 24 + tz.transition 1949, 10, :o2, 58396597, 24 + tz.transition 1979, 4, :o3, 291776400 + tz.transition 1979, 9, :o2, 307501200 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Riga.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Riga.rb new file mode 100644 index 000000000..784837f75 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Riga.rb @@ -0,0 +1,176 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Riga + include TimezoneDefinition + + timezone 'Europe/Riga' do |tz| + tz.offset :o0, 5784, 0, :LMT + tz.offset :o1, 5784, 0, :RMT + tz.offset :o2, 5784, 3600, :LST + tz.offset :o3, 7200, 0, :EET + tz.offset :o4, 10800, 0, :MSK + tz.offset :o5, 3600, 3600, :CEST + tz.offset :o6, 3600, 0, :CET + tz.offset :o7, 10800, 3600, :MSD + tz.offset :o8, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 8667775559, 3600 + tz.transition 1918, 4, :o2, 8718114659, 3600 + tz.transition 1918, 9, :o1, 8718669059, 3600 + tz.transition 1919, 4, :o2, 8719378259, 3600 + tz.transition 1919, 5, :o1, 8719561859, 3600 + tz.transition 1926, 5, :o3, 8728727159, 3600 + tz.transition 1940, 8, :o4, 29158157, 12 + tz.transition 1941, 6, :o5, 19441411, 8 + tz.transition 1942, 11, :o6, 58335973, 24 + tz.transition 1943, 3, :o5, 58339501, 24 + tz.transition 1943, 10, :o6, 58344037, 24 + tz.transition 1944, 4, :o5, 58348405, 24 + tz.transition 1944, 10, :o6, 58352773, 24 + tz.transition 1944, 10, :o4, 58353035, 24 + tz.transition 1981, 3, :o7, 354920400 + tz.transition 1981, 9, :o4, 370728000 + tz.transition 1982, 3, :o7, 386456400 + tz.transition 1982, 9, :o4, 402264000 + tz.transition 1983, 3, :o7, 417992400 + tz.transition 1983, 9, :o4, 433800000 + tz.transition 1984, 3, :o7, 449614800 + tz.transition 1984, 9, :o4, 465346800 + tz.transition 1985, 3, :o7, 481071600 + tz.transition 1985, 9, :o4, 496796400 + tz.transition 1986, 3, :o7, 512521200 + tz.transition 1986, 9, :o4, 528246000 + tz.transition 1987, 3, :o7, 543970800 + tz.transition 1987, 9, :o4, 559695600 + tz.transition 1988, 3, :o7, 575420400 + tz.transition 1988, 9, :o4, 591145200 + tz.transition 1989, 3, :o8, 606870000 + tz.transition 1989, 9, :o3, 622598400 + tz.transition 1990, 3, :o8, 638323200 + tz.transition 1990, 9, :o3, 654652800 + tz.transition 1991, 3, :o8, 670377600 + tz.transition 1991, 9, :o3, 686102400 + tz.transition 1992, 3, :o8, 701827200 + tz.transition 1992, 9, :o3, 717552000 + tz.transition 1993, 3, :o8, 733276800 + tz.transition 1993, 9, :o3, 749001600 + tz.transition 1994, 3, :o8, 764726400 + tz.transition 1994, 9, :o3, 780451200 + tz.transition 1995, 3, :o8, 796176000 + tz.transition 1995, 9, :o3, 811900800 + tz.transition 1996, 3, :o8, 828230400 + tz.transition 1996, 9, :o3, 843955200 + tz.transition 1997, 3, :o8, 859683600 + tz.transition 1997, 10, :o3, 877827600 + tz.transition 1998, 3, :o8, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o8, 922582800 + tz.transition 1999, 10, :o3, 941331600 + tz.transition 2001, 3, :o8, 985482000 + tz.transition 2001, 10, :o3, 1004230800 + tz.transition 2002, 3, :o8, 1017536400 + tz.transition 2002, 10, :o3, 1035680400 + tz.transition 2003, 3, :o8, 1048986000 + tz.transition 2003, 10, :o3, 1067130000 + tz.transition 2004, 3, :o8, 1080435600 + tz.transition 2004, 10, :o3, 1099184400 + tz.transition 2005, 3, :o8, 1111885200 + tz.transition 2005, 10, :o3, 1130634000 + tz.transition 2006, 3, :o8, 1143334800 + tz.transition 2006, 10, :o3, 1162083600 + tz.transition 2007, 3, :o8, 1174784400 + tz.transition 2007, 10, :o3, 1193533200 + tz.transition 2008, 3, :o8, 1206838800 + tz.transition 2008, 10, :o3, 1224982800 + tz.transition 2009, 3, :o8, 1238288400 + tz.transition 2009, 10, :o3, 1256432400 + tz.transition 2010, 3, :o8, 1269738000 + tz.transition 2010, 10, :o3, 1288486800 + tz.transition 2011, 3, :o8, 1301187600 + tz.transition 2011, 10, :o3, 1319936400 + tz.transition 2012, 3, :o8, 1332637200 + tz.transition 2012, 10, :o3, 1351386000 + tz.transition 2013, 3, :o8, 1364691600 + tz.transition 2013, 10, :o3, 1382835600 + tz.transition 2014, 3, :o8, 1396141200 + tz.transition 2014, 10, :o3, 1414285200 + tz.transition 2015, 3, :o8, 1427590800 + tz.transition 2015, 10, :o3, 1445734800 + tz.transition 2016, 3, :o8, 1459040400 + tz.transition 2016, 10, :o3, 1477789200 + tz.transition 2017, 3, :o8, 1490490000 + tz.transition 2017, 10, :o3, 1509238800 + tz.transition 2018, 3, :o8, 1521939600 + tz.transition 2018, 10, :o3, 1540688400 + tz.transition 2019, 3, :o8, 1553994000 + tz.transition 2019, 10, :o3, 1572138000 + tz.transition 2020, 3, :o8, 1585443600 + tz.transition 2020, 10, :o3, 1603587600 + tz.transition 2021, 3, :o8, 1616893200 + tz.transition 2021, 10, :o3, 1635642000 + tz.transition 2022, 3, :o8, 1648342800 + tz.transition 2022, 10, :o3, 1667091600 + tz.transition 2023, 3, :o8, 1679792400 + tz.transition 2023, 10, :o3, 1698541200 + tz.transition 2024, 3, :o8, 1711846800 + tz.transition 2024, 10, :o3, 1729990800 + tz.transition 2025, 3, :o8, 1743296400 + tz.transition 2025, 10, :o3, 1761440400 + tz.transition 2026, 3, :o8, 1774746000 + tz.transition 2026, 10, :o3, 1792890000 + tz.transition 2027, 3, :o8, 1806195600 + tz.transition 2027, 10, :o3, 1824944400 + tz.transition 2028, 3, :o8, 1837645200 + tz.transition 2028, 10, :o3, 1856394000 + tz.transition 2029, 3, :o8, 1869094800 + tz.transition 2029, 10, :o3, 1887843600 + tz.transition 2030, 3, :o8, 1901149200 + tz.transition 2030, 10, :o3, 1919293200 + tz.transition 2031, 3, :o8, 1932598800 + tz.transition 2031, 10, :o3, 1950742800 + tz.transition 2032, 3, :o8, 1964048400 + tz.transition 2032, 10, :o3, 1982797200 + tz.transition 2033, 3, :o8, 1995498000 + tz.transition 2033, 10, :o3, 2014246800 + tz.transition 2034, 3, :o8, 2026947600 + tz.transition 2034, 10, :o3, 2045696400 + tz.transition 2035, 3, :o8, 2058397200 + tz.transition 2035, 10, :o3, 2077146000 + tz.transition 2036, 3, :o8, 2090451600 + tz.transition 2036, 10, :o3, 2108595600 + tz.transition 2037, 3, :o8, 2121901200 + tz.transition 2037, 10, :o3, 2140045200 + tz.transition 2038, 3, :o8, 59172253, 24 + tz.transition 2038, 10, :o3, 59177461, 24 + tz.transition 2039, 3, :o8, 59180989, 24 + tz.transition 2039, 10, :o3, 59186197, 24 + tz.transition 2040, 3, :o8, 59189725, 24 + tz.transition 2040, 10, :o3, 59194933, 24 + tz.transition 2041, 3, :o8, 59198629, 24 + tz.transition 2041, 10, :o3, 59203669, 24 + tz.transition 2042, 3, :o8, 59207365, 24 + tz.transition 2042, 10, :o3, 59212405, 24 + tz.transition 2043, 3, :o8, 59216101, 24 + tz.transition 2043, 10, :o3, 59221141, 24 + tz.transition 2044, 3, :o8, 59224837, 24 + tz.transition 2044, 10, :o3, 59230045, 24 + tz.transition 2045, 3, :o8, 59233573, 24 + tz.transition 2045, 10, :o3, 59238781, 24 + tz.transition 2046, 3, :o8, 59242309, 24 + tz.transition 2046, 10, :o3, 59247517, 24 + tz.transition 2047, 3, :o8, 59251213, 24 + tz.transition 2047, 10, :o3, 59256253, 24 + tz.transition 2048, 3, :o8, 59259949, 24 + tz.transition 2048, 10, :o3, 59264989, 24 + tz.transition 2049, 3, :o8, 59268685, 24 + tz.transition 2049, 10, :o3, 59273893, 24 + tz.transition 2050, 3, :o8, 59277421, 24 + tz.transition 2050, 10, :o3, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Rome.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Rome.rb new file mode 100644 index 000000000..aa7b43d9d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Rome.rb @@ -0,0 +1,215 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Rome + include TimezoneDefinition + + timezone 'Europe/Rome' do |tz| + tz.offset :o0, 2996, 0, :LMT + tz.offset :o1, 2996, 0, :RMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1866, 9, :o1, 51901915651, 21600 + tz.transition 1893, 10, :o2, 52115798851, 21600 + tz.transition 1916, 6, :o3, 58104419, 24 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1917, 3, :o3, 58111667, 24 + tz.transition 1917, 9, :o2, 58116035, 24 + tz.transition 1918, 3, :o3, 58119899, 24 + tz.transition 1918, 10, :o2, 58124939, 24 + tz.transition 1919, 3, :o3, 58128467, 24 + tz.transition 1919, 10, :o2, 58133675, 24 + tz.transition 1920, 3, :o3, 58137707, 24 + tz.transition 1920, 9, :o2, 58142075, 24 + tz.transition 1940, 6, :o3, 58315091, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 9, :o2, 58352411, 24 + tz.transition 1945, 4, :o3, 58357141, 24 + tz.transition 1945, 9, :o2, 58361123, 24 + tz.transition 1946, 3, :o3, 58365517, 24 + tz.transition 1946, 10, :o2, 58370389, 24 + tz.transition 1947, 3, :o3, 58374251, 24 + tz.transition 1947, 10, :o2, 58379123, 24 + tz.transition 1948, 2, :o3, 58382653, 24 + tz.transition 1948, 10, :o2, 58387861, 24 + tz.transition 1966, 5, :o3, 58542419, 24 + tz.transition 1966, 9, :o2, 29272721, 12 + tz.transition 1967, 5, :o3, 58551323, 24 + tz.transition 1967, 9, :o2, 29277089, 12 + tz.transition 1968, 5, :o3, 58560059, 24 + tz.transition 1968, 9, :o2, 29281457, 12 + tz.transition 1969, 5, :o3, 58568963, 24 + tz.transition 1969, 9, :o2, 29285909, 12 + tz.transition 1970, 5, :o3, 12956400 + tz.transition 1970, 9, :o2, 23234400 + tz.transition 1971, 5, :o3, 43801200 + tz.transition 1971, 9, :o2, 54687600 + tz.transition 1972, 5, :o3, 75855600 + tz.transition 1972, 9, :o2, 86738400 + tz.transition 1973, 6, :o3, 107910000 + tz.transition 1973, 9, :o2, 118188000 + tz.transition 1974, 5, :o3, 138754800 + tz.transition 1974, 9, :o2, 149637600 + tz.transition 1975, 5, :o3, 170809200 + tz.transition 1975, 9, :o2, 181090800 + tz.transition 1976, 5, :o3, 202258800 + tz.transition 1976, 9, :o2, 212540400 + tz.transition 1977, 5, :o3, 233103600 + tz.transition 1977, 9, :o2, 243990000 + tz.transition 1978, 5, :o3, 265158000 + tz.transition 1978, 9, :o2, 276044400 + tz.transition 1979, 5, :o3, 296607600 + tz.transition 1979, 9, :o2, 307494000 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sarajevo.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sarajevo.rb new file mode 100644 index 000000000..068c5fe6a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sarajevo.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Sarajevo + include TimezoneDefinition + + linked_timezone 'Europe/Sarajevo', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Skopje.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Skopje.rb new file mode 100644 index 000000000..10b71f285 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Skopje.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Skopje + include TimezoneDefinition + + linked_timezone 'Europe/Skopje', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sofia.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sofia.rb new file mode 100644 index 000000000..38a70eceb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Sofia.rb @@ -0,0 +1,173 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Sofia + include TimezoneDefinition + + timezone 'Europe/Sofia' do |tz| + tz.offset :o0, 5596, 0, :LMT + tz.offset :o1, 7016, 0, :IMT + tz.offset :o2, 7200, 0, :EET + tz.offset :o3, 3600, 0, :CET + tz.offset :o4, 3600, 3600, :CEST + tz.offset :o5, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 52006653401, 21600 + tz.transition 1894, 11, :o2, 26062154123, 10800 + tz.transition 1942, 11, :o3, 58335973, 24 + tz.transition 1943, 3, :o4, 58339501, 24 + tz.transition 1943, 10, :o3, 58344037, 24 + tz.transition 1944, 4, :o4, 58348405, 24 + tz.transition 1944, 10, :o3, 58352773, 24 + tz.transition 1945, 4, :o2, 29178571, 12 + tz.transition 1979, 3, :o5, 291762000 + tz.transition 1979, 9, :o2, 307576800 + tz.transition 1980, 4, :o5, 323816400 + tz.transition 1980, 9, :o2, 339026400 + tz.transition 1981, 4, :o5, 355266000 + tz.transition 1981, 9, :o2, 370393200 + tz.transition 1982, 4, :o5, 386715600 + tz.transition 1982, 9, :o2, 401846400 + tz.transition 1983, 3, :o5, 417571200 + tz.transition 1983, 9, :o2, 433296000 + tz.transition 1984, 3, :o5, 449020800 + tz.transition 1984, 9, :o2, 465350400 + tz.transition 1985, 3, :o5, 481075200 + tz.transition 1985, 9, :o2, 496800000 + tz.transition 1986, 3, :o5, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o5, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o5, 575424000 + tz.transition 1988, 9, :o2, 591148800 + tz.transition 1989, 3, :o5, 606873600 + tz.transition 1989, 9, :o2, 622598400 + tz.transition 1990, 3, :o5, 638323200 + tz.transition 1990, 9, :o2, 654652800 + tz.transition 1991, 3, :o5, 670370400 + tz.transition 1991, 9, :o2, 686091600 + tz.transition 1992, 3, :o5, 701820000 + tz.transition 1992, 9, :o2, 717541200 + tz.transition 1993, 3, :o5, 733269600 + tz.transition 1993, 9, :o2, 748990800 + tz.transition 1994, 3, :o5, 764719200 + tz.transition 1994, 9, :o2, 780440400 + tz.transition 1995, 3, :o5, 796168800 + tz.transition 1995, 9, :o2, 811890000 + tz.transition 1996, 3, :o5, 828223200 + tz.transition 1996, 10, :o2, 846363600 + tz.transition 1997, 3, :o5, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o5, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o5, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o5, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o5, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o5, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o5, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o5, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o5, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o5, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o5, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o5, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o5, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o5, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o5, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o5, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o5, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o5, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o5, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o5, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o5, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o5, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o5, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o5, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o5, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o5, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o5, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o5, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o5, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o5, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o5, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o5, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o5, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o5, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o5, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o5, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o5, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o5, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o5, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o5, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o5, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o5, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o5, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o5, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o5, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o5, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o5, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o5, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o5, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o5, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o5, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o5, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o5, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o5, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Stockholm.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Stockholm.rb new file mode 100644 index 000000000..43db70fa6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Stockholm.rb @@ -0,0 +1,165 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Stockholm + include TimezoneDefinition + + timezone 'Europe/Stockholm' do |tz| + tz.offset :o0, 4332, 0, :LMT + tz.offset :o1, 3614, 0, :SET + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + + tz.transition 1878, 12, :o1, 17332923239, 7200 + tz.transition 1899, 12, :o2, 104328883793, 43200 + tz.transition 1916, 5, :o3, 29051981, 12 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1980, 4, :o3, 323830800 + tz.transition 1980, 9, :o2, 338950800 + tz.transition 1981, 3, :o3, 354675600 + tz.transition 1981, 9, :o2, 370400400 + tz.transition 1982, 3, :o3, 386125200 + tz.transition 1982, 9, :o2, 401850000 + tz.transition 1983, 3, :o3, 417574800 + tz.transition 1983, 9, :o2, 433299600 + tz.transition 1984, 3, :o3, 449024400 + tz.transition 1984, 9, :o2, 465354000 + tz.transition 1985, 3, :o3, 481078800 + tz.transition 1985, 9, :o2, 496803600 + tz.transition 1986, 3, :o3, 512528400 + tz.transition 1986, 9, :o2, 528253200 + tz.transition 1987, 3, :o3, 543978000 + tz.transition 1987, 9, :o2, 559702800 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Tallinn.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Tallinn.rb new file mode 100644 index 000000000..de5a8569f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Tallinn.rb @@ -0,0 +1,172 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Tallinn + include TimezoneDefinition + + timezone 'Europe/Tallinn' do |tz| + tz.offset :o0, 5940, 0, :LMT + tz.offset :o1, 5940, 0, :TMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + tz.offset :o4, 7200, 0, :EET + tz.offset :o5, 10800, 0, :MSK + tz.offset :o6, 10800, 3600, :MSD + tz.offset :o7, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 385234469, 160 + tz.transition 1918, 1, :o2, 387460069, 160 + tz.transition 1918, 4, :o3, 58120765, 24 + tz.transition 1918, 9, :o2, 58124461, 24 + tz.transition 1919, 6, :o1, 58131371, 24 + tz.transition 1921, 4, :o4, 387649669, 160 + tz.transition 1940, 8, :o5, 29158169, 12 + tz.transition 1941, 9, :o3, 19442019, 8 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 9, :o5, 29176265, 12 + tz.transition 1981, 3, :o6, 354920400 + tz.transition 1981, 9, :o5, 370728000 + tz.transition 1982, 3, :o6, 386456400 + tz.transition 1982, 9, :o5, 402264000 + tz.transition 1983, 3, :o6, 417992400 + tz.transition 1983, 9, :o5, 433800000 + tz.transition 1984, 3, :o6, 449614800 + tz.transition 1984, 9, :o5, 465346800 + tz.transition 1985, 3, :o6, 481071600 + tz.transition 1985, 9, :o5, 496796400 + tz.transition 1986, 3, :o6, 512521200 + tz.transition 1986, 9, :o5, 528246000 + tz.transition 1987, 3, :o6, 543970800 + tz.transition 1987, 9, :o5, 559695600 + tz.transition 1988, 3, :o6, 575420400 + tz.transition 1988, 9, :o5, 591145200 + tz.transition 1989, 3, :o7, 606870000 + tz.transition 1989, 9, :o4, 622598400 + tz.transition 1990, 3, :o7, 638323200 + tz.transition 1990, 9, :o4, 654652800 + tz.transition 1991, 3, :o7, 670377600 + tz.transition 1991, 9, :o4, 686102400 + tz.transition 1992, 3, :o7, 701827200 + tz.transition 1992, 9, :o4, 717552000 + tz.transition 1993, 3, :o7, 733276800 + tz.transition 1993, 9, :o4, 749001600 + tz.transition 1994, 3, :o7, 764726400 + tz.transition 1994, 9, :o4, 780451200 + tz.transition 1995, 3, :o7, 796176000 + tz.transition 1995, 9, :o4, 811900800 + tz.transition 1996, 3, :o7, 828230400 + tz.transition 1996, 10, :o4, 846374400 + tz.transition 1997, 3, :o7, 859680000 + tz.transition 1997, 10, :o4, 877824000 + tz.transition 1998, 3, :o7, 891129600 + tz.transition 1998, 10, :o4, 909277200 + tz.transition 1999, 3, :o7, 922582800 + tz.transition 1999, 10, :o4, 941331600 + tz.transition 2002, 3, :o7, 1017536400 + tz.transition 2002, 10, :o4, 1035680400 + tz.transition 2003, 3, :o7, 1048986000 + tz.transition 2003, 10, :o4, 1067130000 + tz.transition 2004, 3, :o7, 1080435600 + tz.transition 2004, 10, :o4, 1099184400 + tz.transition 2005, 3, :o7, 1111885200 + tz.transition 2005, 10, :o4, 1130634000 + tz.transition 2006, 3, :o7, 1143334800 + tz.transition 2006, 10, :o4, 1162083600 + tz.transition 2007, 3, :o7, 1174784400 + tz.transition 2007, 10, :o4, 1193533200 + tz.transition 2008, 3, :o7, 1206838800 + tz.transition 2008, 10, :o4, 1224982800 + tz.transition 2009, 3, :o7, 1238288400 + tz.transition 2009, 10, :o4, 1256432400 + tz.transition 2010, 3, :o7, 1269738000 + tz.transition 2010, 10, :o4, 1288486800 + tz.transition 2011, 3, :o7, 1301187600 + tz.transition 2011, 10, :o4, 1319936400 + tz.transition 2012, 3, :o7, 1332637200 + tz.transition 2012, 10, :o4, 1351386000 + tz.transition 2013, 3, :o7, 1364691600 + tz.transition 2013, 10, :o4, 1382835600 + tz.transition 2014, 3, :o7, 1396141200 + tz.transition 2014, 10, :o4, 1414285200 + tz.transition 2015, 3, :o7, 1427590800 + tz.transition 2015, 10, :o4, 1445734800 + tz.transition 2016, 3, :o7, 1459040400 + tz.transition 2016, 10, :o4, 1477789200 + tz.transition 2017, 3, :o7, 1490490000 + tz.transition 2017, 10, :o4, 1509238800 + tz.transition 2018, 3, :o7, 1521939600 + tz.transition 2018, 10, :o4, 1540688400 + tz.transition 2019, 3, :o7, 1553994000 + tz.transition 2019, 10, :o4, 1572138000 + tz.transition 2020, 3, :o7, 1585443600 + tz.transition 2020, 10, :o4, 1603587600 + tz.transition 2021, 3, :o7, 1616893200 + tz.transition 2021, 10, :o4, 1635642000 + tz.transition 2022, 3, :o7, 1648342800 + tz.transition 2022, 10, :o4, 1667091600 + tz.transition 2023, 3, :o7, 1679792400 + tz.transition 2023, 10, :o4, 1698541200 + tz.transition 2024, 3, :o7, 1711846800 + tz.transition 2024, 10, :o4, 1729990800 + tz.transition 2025, 3, :o7, 1743296400 + tz.transition 2025, 10, :o4, 1761440400 + tz.transition 2026, 3, :o7, 1774746000 + tz.transition 2026, 10, :o4, 1792890000 + tz.transition 2027, 3, :o7, 1806195600 + tz.transition 2027, 10, :o4, 1824944400 + tz.transition 2028, 3, :o7, 1837645200 + tz.transition 2028, 10, :o4, 1856394000 + tz.transition 2029, 3, :o7, 1869094800 + tz.transition 2029, 10, :o4, 1887843600 + tz.transition 2030, 3, :o7, 1901149200 + tz.transition 2030, 10, :o4, 1919293200 + tz.transition 2031, 3, :o7, 1932598800 + tz.transition 2031, 10, :o4, 1950742800 + tz.transition 2032, 3, :o7, 1964048400 + tz.transition 2032, 10, :o4, 1982797200 + tz.transition 2033, 3, :o7, 1995498000 + tz.transition 2033, 10, :o4, 2014246800 + tz.transition 2034, 3, :o7, 2026947600 + tz.transition 2034, 10, :o4, 2045696400 + tz.transition 2035, 3, :o7, 2058397200 + tz.transition 2035, 10, :o4, 2077146000 + tz.transition 2036, 3, :o7, 2090451600 + tz.transition 2036, 10, :o4, 2108595600 + tz.transition 2037, 3, :o7, 2121901200 + tz.transition 2037, 10, :o4, 2140045200 + tz.transition 2038, 3, :o7, 59172253, 24 + tz.transition 2038, 10, :o4, 59177461, 24 + tz.transition 2039, 3, :o7, 59180989, 24 + tz.transition 2039, 10, :o4, 59186197, 24 + tz.transition 2040, 3, :o7, 59189725, 24 + tz.transition 2040, 10, :o4, 59194933, 24 + tz.transition 2041, 3, :o7, 59198629, 24 + tz.transition 2041, 10, :o4, 59203669, 24 + tz.transition 2042, 3, :o7, 59207365, 24 + tz.transition 2042, 10, :o4, 59212405, 24 + tz.transition 2043, 3, :o7, 59216101, 24 + tz.transition 2043, 10, :o4, 59221141, 24 + tz.transition 2044, 3, :o7, 59224837, 24 + tz.transition 2044, 10, :o4, 59230045, 24 + tz.transition 2045, 3, :o7, 59233573, 24 + tz.transition 2045, 10, :o4, 59238781, 24 + tz.transition 2046, 3, :o7, 59242309, 24 + tz.transition 2046, 10, :o4, 59247517, 24 + tz.transition 2047, 3, :o7, 59251213, 24 + tz.transition 2047, 10, :o4, 59256253, 24 + tz.transition 2048, 3, :o7, 59259949, 24 + tz.transition 2048, 10, :o4, 59264989, 24 + tz.transition 2049, 3, :o7, 59268685, 24 + tz.transition 2049, 10, :o4, 59273893, 24 + tz.transition 2050, 3, :o7, 59277421, 24 + tz.transition 2050, 10, :o4, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vienna.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vienna.rb new file mode 100644 index 000000000..990aabab6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vienna.rb @@ -0,0 +1,183 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Vienna + include TimezoneDefinition + + timezone 'Europe/Vienna' do |tz| + tz.offset :o0, 3920, 0, :LMT + tz.offset :o1, 3600, 0, :CET + tz.offset :o2, 3600, 3600, :CEST + + tz.transition 1893, 3, :o1, 2605558811, 1080 + tz.transition 1916, 4, :o2, 29051813, 12 + tz.transition 1916, 9, :o1, 58107299, 24 + tz.transition 1917, 4, :o2, 58112029, 24 + tz.transition 1917, 9, :o1, 58115725, 24 + tz.transition 1918, 4, :o2, 58120765, 24 + tz.transition 1918, 9, :o1, 58124461, 24 + tz.transition 1920, 4, :o2, 58138069, 24 + tz.transition 1920, 9, :o1, 58141933, 24 + tz.transition 1940, 4, :o2, 58313293, 24 + tz.transition 1942, 11, :o1, 58335973, 24 + tz.transition 1943, 3, :o2, 58339501, 24 + tz.transition 1943, 10, :o1, 58344037, 24 + tz.transition 1944, 4, :o2, 58348405, 24 + tz.transition 1944, 10, :o1, 58352773, 24 + tz.transition 1945, 4, :o2, 58357141, 24 + tz.transition 1945, 4, :o1, 58357381, 24 + tz.transition 1946, 4, :o2, 58366189, 24 + tz.transition 1946, 10, :o1, 58370389, 24 + tz.transition 1947, 4, :o2, 58374757, 24 + tz.transition 1947, 10, :o1, 58379125, 24 + tz.transition 1948, 4, :o2, 58383829, 24 + tz.transition 1948, 10, :o1, 58387861, 24 + tz.transition 1980, 4, :o2, 323823600 + tz.transition 1980, 9, :o1, 338940000 + tz.transition 1981, 3, :o2, 354675600 + tz.transition 1981, 9, :o1, 370400400 + tz.transition 1982, 3, :o2, 386125200 + tz.transition 1982, 9, :o1, 401850000 + tz.transition 1983, 3, :o2, 417574800 + tz.transition 1983, 9, :o1, 433299600 + tz.transition 1984, 3, :o2, 449024400 + tz.transition 1984, 9, :o1, 465354000 + tz.transition 1985, 3, :o2, 481078800 + tz.transition 1985, 9, :o1, 496803600 + tz.transition 1986, 3, :o2, 512528400 + tz.transition 1986, 9, :o1, 528253200 + tz.transition 1987, 3, :o2, 543978000 + tz.transition 1987, 9, :o1, 559702800 + tz.transition 1988, 3, :o2, 575427600 + tz.transition 1988, 9, :o1, 591152400 + tz.transition 1989, 3, :o2, 606877200 + tz.transition 1989, 9, :o1, 622602000 + tz.transition 1990, 3, :o2, 638326800 + tz.transition 1990, 9, :o1, 654656400 + tz.transition 1991, 3, :o2, 670381200 + tz.transition 1991, 9, :o1, 686106000 + tz.transition 1992, 3, :o2, 701830800 + tz.transition 1992, 9, :o1, 717555600 + tz.transition 1993, 3, :o2, 733280400 + tz.transition 1993, 9, :o1, 749005200 + tz.transition 1994, 3, :o2, 764730000 + tz.transition 1994, 9, :o1, 780454800 + tz.transition 1995, 3, :o2, 796179600 + tz.transition 1995, 9, :o1, 811904400 + tz.transition 1996, 3, :o2, 828234000 + tz.transition 1996, 10, :o1, 846378000 + tz.transition 1997, 3, :o2, 859683600 + tz.transition 1997, 10, :o1, 877827600 + tz.transition 1998, 3, :o2, 891133200 + tz.transition 1998, 10, :o1, 909277200 + tz.transition 1999, 3, :o2, 922582800 + tz.transition 1999, 10, :o1, 941331600 + tz.transition 2000, 3, :o2, 954032400 + tz.transition 2000, 10, :o1, 972781200 + tz.transition 2001, 3, :o2, 985482000 + tz.transition 2001, 10, :o1, 1004230800 + tz.transition 2002, 3, :o2, 1017536400 + tz.transition 2002, 10, :o1, 1035680400 + tz.transition 2003, 3, :o2, 1048986000 + tz.transition 2003, 10, :o1, 1067130000 + tz.transition 2004, 3, :o2, 1080435600 + tz.transition 2004, 10, :o1, 1099184400 + tz.transition 2005, 3, :o2, 1111885200 + tz.transition 2005, 10, :o1, 1130634000 + tz.transition 2006, 3, :o2, 1143334800 + tz.transition 2006, 10, :o1, 1162083600 + tz.transition 2007, 3, :o2, 1174784400 + tz.transition 2007, 10, :o1, 1193533200 + tz.transition 2008, 3, :o2, 1206838800 + tz.transition 2008, 10, :o1, 1224982800 + tz.transition 2009, 3, :o2, 1238288400 + tz.transition 2009, 10, :o1, 1256432400 + tz.transition 2010, 3, :o2, 1269738000 + tz.transition 2010, 10, :o1, 1288486800 + tz.transition 2011, 3, :o2, 1301187600 + tz.transition 2011, 10, :o1, 1319936400 + tz.transition 2012, 3, :o2, 1332637200 + tz.transition 2012, 10, :o1, 1351386000 + tz.transition 2013, 3, :o2, 1364691600 + tz.transition 2013, 10, :o1, 1382835600 + tz.transition 2014, 3, :o2, 1396141200 + tz.transition 2014, 10, :o1, 1414285200 + tz.transition 2015, 3, :o2, 1427590800 + tz.transition 2015, 10, :o1, 1445734800 + tz.transition 2016, 3, :o2, 1459040400 + tz.transition 2016, 10, :o1, 1477789200 + tz.transition 2017, 3, :o2, 1490490000 + tz.transition 2017, 10, :o1, 1509238800 + tz.transition 2018, 3, :o2, 1521939600 + tz.transition 2018, 10, :o1, 1540688400 + tz.transition 2019, 3, :o2, 1553994000 + tz.transition 2019, 10, :o1, 1572138000 + tz.transition 2020, 3, :o2, 1585443600 + tz.transition 2020, 10, :o1, 1603587600 + tz.transition 2021, 3, :o2, 1616893200 + tz.transition 2021, 10, :o1, 1635642000 + tz.transition 2022, 3, :o2, 1648342800 + tz.transition 2022, 10, :o1, 1667091600 + tz.transition 2023, 3, :o2, 1679792400 + tz.transition 2023, 10, :o1, 1698541200 + tz.transition 2024, 3, :o2, 1711846800 + tz.transition 2024, 10, :o1, 1729990800 + tz.transition 2025, 3, :o2, 1743296400 + tz.transition 2025, 10, :o1, 1761440400 + tz.transition 2026, 3, :o2, 1774746000 + tz.transition 2026, 10, :o1, 1792890000 + tz.transition 2027, 3, :o2, 1806195600 + tz.transition 2027, 10, :o1, 1824944400 + tz.transition 2028, 3, :o2, 1837645200 + tz.transition 2028, 10, :o1, 1856394000 + tz.transition 2029, 3, :o2, 1869094800 + tz.transition 2029, 10, :o1, 1887843600 + tz.transition 2030, 3, :o2, 1901149200 + tz.transition 2030, 10, :o1, 1919293200 + tz.transition 2031, 3, :o2, 1932598800 + tz.transition 2031, 10, :o1, 1950742800 + tz.transition 2032, 3, :o2, 1964048400 + tz.transition 2032, 10, :o1, 1982797200 + tz.transition 2033, 3, :o2, 1995498000 + tz.transition 2033, 10, :o1, 2014246800 + tz.transition 2034, 3, :o2, 2026947600 + tz.transition 2034, 10, :o1, 2045696400 + tz.transition 2035, 3, :o2, 2058397200 + tz.transition 2035, 10, :o1, 2077146000 + tz.transition 2036, 3, :o2, 2090451600 + tz.transition 2036, 10, :o1, 2108595600 + tz.transition 2037, 3, :o2, 2121901200 + tz.transition 2037, 10, :o1, 2140045200 + tz.transition 2038, 3, :o2, 59172253, 24 + tz.transition 2038, 10, :o1, 59177461, 24 + tz.transition 2039, 3, :o2, 59180989, 24 + tz.transition 2039, 10, :o1, 59186197, 24 + tz.transition 2040, 3, :o2, 59189725, 24 + tz.transition 2040, 10, :o1, 59194933, 24 + tz.transition 2041, 3, :o2, 59198629, 24 + tz.transition 2041, 10, :o1, 59203669, 24 + tz.transition 2042, 3, :o2, 59207365, 24 + tz.transition 2042, 10, :o1, 59212405, 24 + tz.transition 2043, 3, :o2, 59216101, 24 + tz.transition 2043, 10, :o1, 59221141, 24 + tz.transition 2044, 3, :o2, 59224837, 24 + tz.transition 2044, 10, :o1, 59230045, 24 + tz.transition 2045, 3, :o2, 59233573, 24 + tz.transition 2045, 10, :o1, 59238781, 24 + tz.transition 2046, 3, :o2, 59242309, 24 + tz.transition 2046, 10, :o1, 59247517, 24 + tz.transition 2047, 3, :o2, 59251213, 24 + tz.transition 2047, 10, :o1, 59256253, 24 + tz.transition 2048, 3, :o2, 59259949, 24 + tz.transition 2048, 10, :o1, 59264989, 24 + tz.transition 2049, 3, :o2, 59268685, 24 + tz.transition 2049, 10, :o1, 59273893, 24 + tz.transition 2050, 3, :o2, 59277421, 24 + tz.transition 2050, 10, :o1, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vilnius.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vilnius.rb new file mode 100644 index 000000000..d89d095a7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Vilnius.rb @@ -0,0 +1,170 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Vilnius + include TimezoneDefinition + + timezone 'Europe/Vilnius' do |tz| + tz.offset :o0, 6076, 0, :LMT + tz.offset :o1, 5040, 0, :WMT + tz.offset :o2, 5736, 0, :KMT + tz.offset :o3, 3600, 0, :CET + tz.offset :o4, 7200, 0, :EET + tz.offset :o5, 10800, 0, :MSK + tz.offset :o6, 3600, 3600, :CEST + tz.offset :o7, 10800, 3600, :MSD + tz.offset :o8, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 52006653281, 21600 + tz.transition 1916, 12, :o2, 290547533, 120 + tz.transition 1919, 10, :o3, 8720069161, 3600 + tz.transition 1920, 7, :o4, 58140419, 24 + tz.transition 1920, 10, :o3, 29071277, 12 + tz.transition 1940, 8, :o5, 58316267, 24 + tz.transition 1941, 6, :o6, 19441355, 8 + tz.transition 1942, 11, :o3, 58335973, 24 + tz.transition 1943, 3, :o6, 58339501, 24 + tz.transition 1943, 10, :o3, 58344037, 24 + tz.transition 1944, 4, :o6, 58348405, 24 + tz.transition 1944, 7, :o5, 29175641, 12 + tz.transition 1981, 3, :o7, 354920400 + tz.transition 1981, 9, :o5, 370728000 + tz.transition 1982, 3, :o7, 386456400 + tz.transition 1982, 9, :o5, 402264000 + tz.transition 1983, 3, :o7, 417992400 + tz.transition 1983, 9, :o5, 433800000 + tz.transition 1984, 3, :o7, 449614800 + tz.transition 1984, 9, :o5, 465346800 + tz.transition 1985, 3, :o7, 481071600 + tz.transition 1985, 9, :o5, 496796400 + tz.transition 1986, 3, :o7, 512521200 + tz.transition 1986, 9, :o5, 528246000 + tz.transition 1987, 3, :o7, 543970800 + tz.transition 1987, 9, :o5, 559695600 + tz.transition 1988, 3, :o7, 575420400 + tz.transition 1988, 9, :o5, 591145200 + tz.transition 1989, 3, :o7, 606870000 + tz.transition 1989, 9, :o5, 622594800 + tz.transition 1990, 3, :o7, 638319600 + tz.transition 1990, 9, :o5, 654649200 + tz.transition 1991, 3, :o8, 670374000 + tz.transition 1991, 9, :o4, 686102400 + tz.transition 1992, 3, :o8, 701827200 + tz.transition 1992, 9, :o4, 717552000 + tz.transition 1993, 3, :o8, 733276800 + tz.transition 1993, 9, :o4, 749001600 + tz.transition 1994, 3, :o8, 764726400 + tz.transition 1994, 9, :o4, 780451200 + tz.transition 1995, 3, :o8, 796176000 + tz.transition 1995, 9, :o4, 811900800 + tz.transition 1996, 3, :o8, 828230400 + tz.transition 1996, 10, :o4, 846374400 + tz.transition 1997, 3, :o8, 859680000 + tz.transition 1997, 10, :o4, 877824000 + tz.transition 1998, 3, :o6, 891133200 + tz.transition 1998, 10, :o3, 909277200 + tz.transition 1999, 3, :o6, 922582800 + tz.transition 1999, 10, :o4, 941331600 + tz.transition 2003, 3, :o8, 1048986000 + tz.transition 2003, 10, :o4, 1067130000 + tz.transition 2004, 3, :o8, 1080435600 + tz.transition 2004, 10, :o4, 1099184400 + tz.transition 2005, 3, :o8, 1111885200 + tz.transition 2005, 10, :o4, 1130634000 + tz.transition 2006, 3, :o8, 1143334800 + tz.transition 2006, 10, :o4, 1162083600 + tz.transition 2007, 3, :o8, 1174784400 + tz.transition 2007, 10, :o4, 1193533200 + tz.transition 2008, 3, :o8, 1206838800 + tz.transition 2008, 10, :o4, 1224982800 + tz.transition 2009, 3, :o8, 1238288400 + tz.transition 2009, 10, :o4, 1256432400 + tz.transition 2010, 3, :o8, 1269738000 + tz.transition 2010, 10, :o4, 1288486800 + tz.transition 2011, 3, :o8, 1301187600 + tz.transition 2011, 10, :o4, 1319936400 + tz.transition 2012, 3, :o8, 1332637200 + tz.transition 2012, 10, :o4, 1351386000 + tz.transition 2013, 3, :o8, 1364691600 + tz.transition 2013, 10, :o4, 1382835600 + tz.transition 2014, 3, :o8, 1396141200 + tz.transition 2014, 10, :o4, 1414285200 + tz.transition 2015, 3, :o8, 1427590800 + tz.transition 2015, 10, :o4, 1445734800 + tz.transition 2016, 3, :o8, 1459040400 + tz.transition 2016, 10, :o4, 1477789200 + tz.transition 2017, 3, :o8, 1490490000 + tz.transition 2017, 10, :o4, 1509238800 + tz.transition 2018, 3, :o8, 1521939600 + tz.transition 2018, 10, :o4, 1540688400 + tz.transition 2019, 3, :o8, 1553994000 + tz.transition 2019, 10, :o4, 1572138000 + tz.transition 2020, 3, :o8, 1585443600 + tz.transition 2020, 10, :o4, 1603587600 + tz.transition 2021, 3, :o8, 1616893200 + tz.transition 2021, 10, :o4, 1635642000 + tz.transition 2022, 3, :o8, 1648342800 + tz.transition 2022, 10, :o4, 1667091600 + tz.transition 2023, 3, :o8, 1679792400 + tz.transition 2023, 10, :o4, 1698541200 + tz.transition 2024, 3, :o8, 1711846800 + tz.transition 2024, 10, :o4, 1729990800 + tz.transition 2025, 3, :o8, 1743296400 + tz.transition 2025, 10, :o4, 1761440400 + tz.transition 2026, 3, :o8, 1774746000 + tz.transition 2026, 10, :o4, 1792890000 + tz.transition 2027, 3, :o8, 1806195600 + tz.transition 2027, 10, :o4, 1824944400 + tz.transition 2028, 3, :o8, 1837645200 + tz.transition 2028, 10, :o4, 1856394000 + tz.transition 2029, 3, :o8, 1869094800 + tz.transition 2029, 10, :o4, 1887843600 + tz.transition 2030, 3, :o8, 1901149200 + tz.transition 2030, 10, :o4, 1919293200 + tz.transition 2031, 3, :o8, 1932598800 + tz.transition 2031, 10, :o4, 1950742800 + tz.transition 2032, 3, :o8, 1964048400 + tz.transition 2032, 10, :o4, 1982797200 + tz.transition 2033, 3, :o8, 1995498000 + tz.transition 2033, 10, :o4, 2014246800 + tz.transition 2034, 3, :o8, 2026947600 + tz.transition 2034, 10, :o4, 2045696400 + tz.transition 2035, 3, :o8, 2058397200 + tz.transition 2035, 10, :o4, 2077146000 + tz.transition 2036, 3, :o8, 2090451600 + tz.transition 2036, 10, :o4, 2108595600 + tz.transition 2037, 3, :o8, 2121901200 + tz.transition 2037, 10, :o4, 2140045200 + tz.transition 2038, 3, :o8, 59172253, 24 + tz.transition 2038, 10, :o4, 59177461, 24 + tz.transition 2039, 3, :o8, 59180989, 24 + tz.transition 2039, 10, :o4, 59186197, 24 + tz.transition 2040, 3, :o8, 59189725, 24 + tz.transition 2040, 10, :o4, 59194933, 24 + tz.transition 2041, 3, :o8, 59198629, 24 + tz.transition 2041, 10, :o4, 59203669, 24 + tz.transition 2042, 3, :o8, 59207365, 24 + tz.transition 2042, 10, :o4, 59212405, 24 + tz.transition 2043, 3, :o8, 59216101, 24 + tz.transition 2043, 10, :o4, 59221141, 24 + tz.transition 2044, 3, :o8, 59224837, 24 + tz.transition 2044, 10, :o4, 59230045, 24 + tz.transition 2045, 3, :o8, 59233573, 24 + tz.transition 2045, 10, :o4, 59238781, 24 + tz.transition 2046, 3, :o8, 59242309, 24 + tz.transition 2046, 10, :o4, 59247517, 24 + tz.transition 2047, 3, :o8, 59251213, 24 + tz.transition 2047, 10, :o4, 59256253, 24 + tz.transition 2048, 3, :o8, 59259949, 24 + tz.transition 2048, 10, :o4, 59264989, 24 + tz.transition 2049, 3, :o8, 59268685, 24 + tz.transition 2049, 10, :o4, 59273893, 24 + tz.transition 2050, 3, :o8, 59277421, 24 + tz.transition 2050, 10, :o4, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Warsaw.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Warsaw.rb new file mode 100644 index 000000000..7fa51c269 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Warsaw.rb @@ -0,0 +1,212 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Warsaw + include TimezoneDefinition + + timezone 'Europe/Warsaw' do |tz| + tz.offset :o0, 5040, 0, :LMT + tz.offset :o1, 5040, 0, :WMT + tz.offset :o2, 3600, 0, :CET + tz.offset :o3, 3600, 3600, :CEST + tz.offset :o4, 7200, 0, :EET + tz.offset :o5, 7200, 3600, :EEST + + tz.transition 1879, 12, :o1, 288925853, 120 + tz.transition 1915, 8, :o2, 290485733, 120 + tz.transition 1916, 4, :o3, 29051813, 12 + tz.transition 1916, 9, :o2, 58107299, 24 + tz.transition 1917, 4, :o3, 58112029, 24 + tz.transition 1917, 9, :o2, 58115725, 24 + tz.transition 1918, 4, :o3, 58120765, 24 + tz.transition 1918, 9, :o4, 58124461, 24 + tz.transition 1919, 4, :o5, 4844127, 2 + tz.transition 1919, 9, :o4, 4844435, 2 + tz.transition 1922, 5, :o2, 29078477, 12 + tz.transition 1940, 6, :o3, 58315285, 24 + tz.transition 1942, 11, :o2, 58335973, 24 + tz.transition 1943, 3, :o3, 58339501, 24 + tz.transition 1943, 10, :o2, 58344037, 24 + tz.transition 1944, 4, :o3, 58348405, 24 + tz.transition 1944, 10, :o2, 4862735, 2 + tz.transition 1945, 4, :o3, 58357787, 24 + tz.transition 1945, 10, :o2, 29181125, 12 + tz.transition 1946, 4, :o3, 58366187, 24 + tz.transition 1946, 10, :o2, 58370413, 24 + tz.transition 1947, 5, :o3, 58375429, 24 + tz.transition 1947, 10, :o2, 58379125, 24 + tz.transition 1948, 4, :o3, 58383829, 24 + tz.transition 1948, 10, :o2, 58387861, 24 + tz.transition 1949, 4, :o3, 58392397, 24 + tz.transition 1949, 10, :o2, 58396597, 24 + tz.transition 1957, 6, :o3, 4871983, 2 + tz.transition 1957, 9, :o2, 4872221, 2 + tz.transition 1958, 3, :o3, 4872585, 2 + tz.transition 1958, 9, :o2, 4872949, 2 + tz.transition 1959, 5, :o3, 4873439, 2 + tz.transition 1959, 10, :o2, 4873691, 2 + tz.transition 1960, 4, :o3, 4874055, 2 + tz.transition 1960, 10, :o2, 4874419, 2 + tz.transition 1961, 5, :o3, 4874895, 2 + tz.transition 1961, 10, :o2, 4875147, 2 + tz.transition 1962, 5, :o3, 4875623, 2 + tz.transition 1962, 9, :o2, 4875875, 2 + tz.transition 1963, 5, :o3, 4876351, 2 + tz.transition 1963, 9, :o2, 4876603, 2 + tz.transition 1964, 5, :o3, 4877093, 2 + tz.transition 1964, 9, :o2, 4877331, 2 + tz.transition 1977, 4, :o3, 228873600 + tz.transition 1977, 9, :o2, 243993600 + tz.transition 1978, 4, :o3, 260323200 + tz.transition 1978, 10, :o2, 276048000 + tz.transition 1979, 4, :o3, 291772800 + tz.transition 1979, 9, :o2, 307497600 + tz.transition 1980, 4, :o3, 323827200 + tz.transition 1980, 9, :o2, 338947200 + tz.transition 1981, 3, :o3, 354672000 + tz.transition 1981, 9, :o2, 370396800 + tz.transition 1982, 3, :o3, 386121600 + tz.transition 1982, 9, :o2, 401846400 + tz.transition 1983, 3, :o3, 417571200 + tz.transition 1983, 9, :o2, 433296000 + tz.transition 1984, 3, :o3, 449020800 + tz.transition 1984, 9, :o2, 465350400 + tz.transition 1985, 3, :o3, 481075200 + tz.transition 1985, 9, :o2, 496800000 + tz.transition 1986, 3, :o3, 512524800 + tz.transition 1986, 9, :o2, 528249600 + tz.transition 1987, 3, :o3, 543974400 + tz.transition 1987, 9, :o2, 559699200 + tz.transition 1988, 3, :o3, 575427600 + tz.transition 1988, 9, :o2, 591152400 + tz.transition 1989, 3, :o3, 606877200 + tz.transition 1989, 9, :o2, 622602000 + tz.transition 1990, 3, :o3, 638326800 + tz.transition 1990, 9, :o2, 654656400 + tz.transition 1991, 3, :o3, 670381200 + tz.transition 1991, 9, :o2, 686106000 + tz.transition 1992, 3, :o3, 701830800 + tz.transition 1992, 9, :o2, 717555600 + tz.transition 1993, 3, :o3, 733280400 + tz.transition 1993, 9, :o2, 749005200 + tz.transition 1994, 3, :o3, 764730000 + tz.transition 1994, 9, :o2, 780454800 + tz.transition 1995, 3, :o3, 796179600 + tz.transition 1995, 9, :o2, 811904400 + tz.transition 1996, 3, :o3, 828234000 + tz.transition 1996, 10, :o2, 846378000 + tz.transition 1997, 3, :o3, 859683600 + tz.transition 1997, 10, :o2, 877827600 + tz.transition 1998, 3, :o3, 891133200 + tz.transition 1998, 10, :o2, 909277200 + tz.transition 1999, 3, :o3, 922582800 + tz.transition 1999, 10, :o2, 941331600 + tz.transition 2000, 3, :o3, 954032400 + tz.transition 2000, 10, :o2, 972781200 + tz.transition 2001, 3, :o3, 985482000 + tz.transition 2001, 10, :o2, 1004230800 + tz.transition 2002, 3, :o3, 1017536400 + tz.transition 2002, 10, :o2, 1035680400 + tz.transition 2003, 3, :o3, 1048986000 + tz.transition 2003, 10, :o2, 1067130000 + tz.transition 2004, 3, :o3, 1080435600 + tz.transition 2004, 10, :o2, 1099184400 + tz.transition 2005, 3, :o3, 1111885200 + tz.transition 2005, 10, :o2, 1130634000 + tz.transition 2006, 3, :o3, 1143334800 + tz.transition 2006, 10, :o2, 1162083600 + tz.transition 2007, 3, :o3, 1174784400 + tz.transition 2007, 10, :o2, 1193533200 + tz.transition 2008, 3, :o3, 1206838800 + tz.transition 2008, 10, :o2, 1224982800 + tz.transition 2009, 3, :o3, 1238288400 + tz.transition 2009, 10, :o2, 1256432400 + tz.transition 2010, 3, :o3, 1269738000 + tz.transition 2010, 10, :o2, 1288486800 + tz.transition 2011, 3, :o3, 1301187600 + tz.transition 2011, 10, :o2, 1319936400 + tz.transition 2012, 3, :o3, 1332637200 + tz.transition 2012, 10, :o2, 1351386000 + tz.transition 2013, 3, :o3, 1364691600 + tz.transition 2013, 10, :o2, 1382835600 + tz.transition 2014, 3, :o3, 1396141200 + tz.transition 2014, 10, :o2, 1414285200 + tz.transition 2015, 3, :o3, 1427590800 + tz.transition 2015, 10, :o2, 1445734800 + tz.transition 2016, 3, :o3, 1459040400 + tz.transition 2016, 10, :o2, 1477789200 + tz.transition 2017, 3, :o3, 1490490000 + tz.transition 2017, 10, :o2, 1509238800 + tz.transition 2018, 3, :o3, 1521939600 + tz.transition 2018, 10, :o2, 1540688400 + tz.transition 2019, 3, :o3, 1553994000 + tz.transition 2019, 10, :o2, 1572138000 + tz.transition 2020, 3, :o3, 1585443600 + tz.transition 2020, 10, :o2, 1603587600 + tz.transition 2021, 3, :o3, 1616893200 + tz.transition 2021, 10, :o2, 1635642000 + tz.transition 2022, 3, :o3, 1648342800 + tz.transition 2022, 10, :o2, 1667091600 + tz.transition 2023, 3, :o3, 1679792400 + tz.transition 2023, 10, :o2, 1698541200 + tz.transition 2024, 3, :o3, 1711846800 + tz.transition 2024, 10, :o2, 1729990800 + tz.transition 2025, 3, :o3, 1743296400 + tz.transition 2025, 10, :o2, 1761440400 + tz.transition 2026, 3, :o3, 1774746000 + tz.transition 2026, 10, :o2, 1792890000 + tz.transition 2027, 3, :o3, 1806195600 + tz.transition 2027, 10, :o2, 1824944400 + tz.transition 2028, 3, :o3, 1837645200 + tz.transition 2028, 10, :o2, 1856394000 + tz.transition 2029, 3, :o3, 1869094800 + tz.transition 2029, 10, :o2, 1887843600 + tz.transition 2030, 3, :o3, 1901149200 + tz.transition 2030, 10, :o2, 1919293200 + tz.transition 2031, 3, :o3, 1932598800 + tz.transition 2031, 10, :o2, 1950742800 + tz.transition 2032, 3, :o3, 1964048400 + tz.transition 2032, 10, :o2, 1982797200 + tz.transition 2033, 3, :o3, 1995498000 + tz.transition 2033, 10, :o2, 2014246800 + tz.transition 2034, 3, :o3, 2026947600 + tz.transition 2034, 10, :o2, 2045696400 + tz.transition 2035, 3, :o3, 2058397200 + tz.transition 2035, 10, :o2, 2077146000 + tz.transition 2036, 3, :o3, 2090451600 + tz.transition 2036, 10, :o2, 2108595600 + tz.transition 2037, 3, :o3, 2121901200 + tz.transition 2037, 10, :o2, 2140045200 + tz.transition 2038, 3, :o3, 59172253, 24 + tz.transition 2038, 10, :o2, 59177461, 24 + tz.transition 2039, 3, :o3, 59180989, 24 + tz.transition 2039, 10, :o2, 59186197, 24 + tz.transition 2040, 3, :o3, 59189725, 24 + tz.transition 2040, 10, :o2, 59194933, 24 + tz.transition 2041, 3, :o3, 59198629, 24 + tz.transition 2041, 10, :o2, 59203669, 24 + tz.transition 2042, 3, :o3, 59207365, 24 + tz.transition 2042, 10, :o2, 59212405, 24 + tz.transition 2043, 3, :o3, 59216101, 24 + tz.transition 2043, 10, :o2, 59221141, 24 + tz.transition 2044, 3, :o3, 59224837, 24 + tz.transition 2044, 10, :o2, 59230045, 24 + tz.transition 2045, 3, :o3, 59233573, 24 + tz.transition 2045, 10, :o2, 59238781, 24 + tz.transition 2046, 3, :o3, 59242309, 24 + tz.transition 2046, 10, :o2, 59247517, 24 + tz.transition 2047, 3, :o3, 59251213, 24 + tz.transition 2047, 10, :o2, 59256253, 24 + tz.transition 2048, 3, :o3, 59259949, 24 + tz.transition 2048, 10, :o2, 59264989, 24 + tz.transition 2049, 3, :o3, 59268685, 24 + tz.transition 2049, 10, :o2, 59273893, 24 + tz.transition 2050, 3, :o3, 59277421, 24 + tz.transition 2050, 10, :o2, 59282629, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Zagreb.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Zagreb.rb new file mode 100644 index 000000000..ecdd903d2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Europe/Zagreb.rb @@ -0,0 +1,13 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Europe + module Zagreb + include TimezoneDefinition + + linked_timezone 'Europe/Zagreb', 'Europe/Belgrade' + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Auckland.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Auckland.rb new file mode 100644 index 000000000..a524fd6b6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Auckland.rb @@ -0,0 +1,202 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Auckland + include TimezoneDefinition + + timezone 'Pacific/Auckland' do |tz| + tz.offset :o0, 41944, 0, :LMT + tz.offset :o1, 41400, 0, :NZMT + tz.offset :o2, 41400, 3600, :NZST + tz.offset :o3, 41400, 1800, :NZST + tz.offset :o4, 43200, 0, :NZST + tz.offset :o5, 43200, 3600, :NZDT + + tz.transition 1868, 11, :o1, 25959290557, 10800 + tz.transition 1927, 11, :o2, 116409125, 48 + tz.transition 1928, 3, :o1, 38804945, 16 + tz.transition 1928, 10, :o3, 116425589, 48 + tz.transition 1929, 3, :o1, 29108245, 12 + tz.transition 1929, 10, :o3, 116443061, 48 + tz.transition 1930, 3, :o1, 29112613, 12 + tz.transition 1930, 10, :o3, 116460533, 48 + tz.transition 1931, 3, :o1, 29116981, 12 + tz.transition 1931, 10, :o3, 116478005, 48 + tz.transition 1932, 3, :o1, 29121433, 12 + tz.transition 1932, 10, :o3, 116495477, 48 + tz.transition 1933, 3, :o1, 29125801, 12 + tz.transition 1933, 10, :o3, 116512949, 48 + tz.transition 1934, 4, :o1, 29130673, 12 + tz.transition 1934, 9, :o3, 116530085, 48 + tz.transition 1935, 4, :o1, 29135041, 12 + tz.transition 1935, 9, :o3, 116547557, 48 + tz.transition 1936, 4, :o1, 29139409, 12 + tz.transition 1936, 9, :o3, 116565029, 48 + tz.transition 1937, 4, :o1, 29143777, 12 + tz.transition 1937, 9, :o3, 116582501, 48 + tz.transition 1938, 4, :o1, 29148145, 12 + tz.transition 1938, 9, :o3, 116599973, 48 + tz.transition 1939, 4, :o1, 29152597, 12 + tz.transition 1939, 9, :o3, 116617445, 48 + tz.transition 1940, 4, :o1, 29156965, 12 + tz.transition 1940, 9, :o3, 116635253, 48 + tz.transition 1945, 12, :o4, 2431821, 1 + tz.transition 1974, 11, :o5, 152632800 + tz.transition 1975, 2, :o4, 162309600 + tz.transition 1975, 10, :o5, 183477600 + tz.transition 1976, 3, :o4, 194968800 + tz.transition 1976, 10, :o5, 215532000 + tz.transition 1977, 3, :o4, 226418400 + tz.transition 1977, 10, :o5, 246981600 + tz.transition 1978, 3, :o4, 257868000 + tz.transition 1978, 10, :o5, 278431200 + tz.transition 1979, 3, :o4, 289317600 + tz.transition 1979, 10, :o5, 309880800 + tz.transition 1980, 3, :o4, 320767200 + tz.transition 1980, 10, :o5, 341330400 + tz.transition 1981, 2, :o4, 352216800 + tz.transition 1981, 10, :o5, 372780000 + tz.transition 1982, 3, :o4, 384271200 + tz.transition 1982, 10, :o5, 404834400 + tz.transition 1983, 3, :o4, 415720800 + tz.transition 1983, 10, :o5, 436284000 + tz.transition 1984, 3, :o4, 447170400 + tz.transition 1984, 10, :o5, 467733600 + tz.transition 1985, 3, :o4, 478620000 + tz.transition 1985, 10, :o5, 499183200 + tz.transition 1986, 3, :o4, 510069600 + tz.transition 1986, 10, :o5, 530632800 + tz.transition 1987, 2, :o4, 541519200 + tz.transition 1987, 10, :o5, 562082400 + tz.transition 1988, 3, :o4, 573573600 + tz.transition 1988, 10, :o5, 594136800 + tz.transition 1989, 3, :o4, 605023200 + tz.transition 1989, 10, :o5, 623772000 + tz.transition 1990, 3, :o4, 637682400 + tz.transition 1990, 10, :o5, 655221600 + tz.transition 1991, 3, :o4, 669132000 + tz.transition 1991, 10, :o5, 686671200 + tz.transition 1992, 3, :o4, 700581600 + tz.transition 1992, 10, :o5, 718120800 + tz.transition 1993, 3, :o4, 732636000 + tz.transition 1993, 10, :o5, 749570400 + tz.transition 1994, 3, :o4, 764085600 + tz.transition 1994, 10, :o5, 781020000 + tz.transition 1995, 3, :o4, 795535200 + tz.transition 1995, 9, :o5, 812469600 + tz.transition 1996, 3, :o4, 826984800 + tz.transition 1996, 10, :o5, 844524000 + tz.transition 1997, 3, :o4, 858434400 + tz.transition 1997, 10, :o5, 875973600 + tz.transition 1998, 3, :o4, 889884000 + tz.transition 1998, 10, :o5, 907423200 + tz.transition 1999, 3, :o4, 921938400 + tz.transition 1999, 10, :o5, 938872800 + tz.transition 2000, 3, :o4, 953388000 + tz.transition 2000, 9, :o5, 970322400 + tz.transition 2001, 3, :o4, 984837600 + tz.transition 2001, 10, :o5, 1002376800 + tz.transition 2002, 3, :o4, 1016287200 + tz.transition 2002, 10, :o5, 1033826400 + tz.transition 2003, 3, :o4, 1047736800 + tz.transition 2003, 10, :o5, 1065276000 + tz.transition 2004, 3, :o4, 1079791200 + tz.transition 2004, 10, :o5, 1096725600 + tz.transition 2005, 3, :o4, 1111240800 + tz.transition 2005, 10, :o5, 1128175200 + tz.transition 2006, 3, :o4, 1142690400 + tz.transition 2006, 9, :o5, 1159624800 + tz.transition 2007, 3, :o4, 1174140000 + tz.transition 2007, 9, :o5, 1191074400 + tz.transition 2008, 4, :o4, 1207404000 + tz.transition 2008, 9, :o5, 1222524000 + tz.transition 2009, 4, :o4, 1238853600 + tz.transition 2009, 9, :o5, 1253973600 + tz.transition 2010, 4, :o4, 1270303200 + tz.transition 2010, 9, :o5, 1285423200 + tz.transition 2011, 4, :o4, 1301752800 + tz.transition 2011, 9, :o5, 1316872800 + tz.transition 2012, 3, :o4, 1333202400 + tz.transition 2012, 9, :o5, 1348927200 + tz.transition 2013, 4, :o4, 1365256800 + tz.transition 2013, 9, :o5, 1380376800 + tz.transition 2014, 4, :o4, 1396706400 + tz.transition 2014, 9, :o5, 1411826400 + tz.transition 2015, 4, :o4, 1428156000 + tz.transition 2015, 9, :o5, 1443276000 + tz.transition 2016, 4, :o4, 1459605600 + tz.transition 2016, 9, :o5, 1474725600 + tz.transition 2017, 4, :o4, 1491055200 + tz.transition 2017, 9, :o5, 1506175200 + tz.transition 2018, 3, :o4, 1522504800 + tz.transition 2018, 9, :o5, 1538229600 + tz.transition 2019, 4, :o4, 1554559200 + tz.transition 2019, 9, :o5, 1569679200 + tz.transition 2020, 4, :o4, 1586008800 + tz.transition 2020, 9, :o5, 1601128800 + tz.transition 2021, 4, :o4, 1617458400 + tz.transition 2021, 9, :o5, 1632578400 + tz.transition 2022, 4, :o4, 1648908000 + tz.transition 2022, 9, :o5, 1664028000 + tz.transition 2023, 4, :o4, 1680357600 + tz.transition 2023, 9, :o5, 1695477600 + tz.transition 2024, 4, :o4, 1712412000 + tz.transition 2024, 9, :o5, 1727532000 + tz.transition 2025, 4, :o4, 1743861600 + tz.transition 2025, 9, :o5, 1758981600 + tz.transition 2026, 4, :o4, 1775311200 + tz.transition 2026, 9, :o5, 1790431200 + tz.transition 2027, 4, :o4, 1806760800 + tz.transition 2027, 9, :o5, 1821880800 + tz.transition 2028, 4, :o4, 1838210400 + tz.transition 2028, 9, :o5, 1853330400 + tz.transition 2029, 3, :o4, 1869660000 + tz.transition 2029, 9, :o5, 1885384800 + tz.transition 2030, 4, :o4, 1901714400 + tz.transition 2030, 9, :o5, 1916834400 + tz.transition 2031, 4, :o4, 1933164000 + tz.transition 2031, 9, :o5, 1948284000 + tz.transition 2032, 4, :o4, 1964613600 + tz.transition 2032, 9, :o5, 1979733600 + tz.transition 2033, 4, :o4, 1996063200 + tz.transition 2033, 9, :o5, 2011183200 + tz.transition 2034, 4, :o4, 2027512800 + tz.transition 2034, 9, :o5, 2042632800 + tz.transition 2035, 3, :o4, 2058962400 + tz.transition 2035, 9, :o5, 2074687200 + tz.transition 2036, 4, :o4, 2091016800 + tz.transition 2036, 9, :o5, 2106136800 + tz.transition 2037, 4, :o4, 2122466400 + tz.transition 2037, 9, :o5, 2137586400 + tz.transition 2038, 4, :o4, 29586205, 12 + tz.transition 2038, 9, :o5, 29588305, 12 + tz.transition 2039, 4, :o4, 29590573, 12 + tz.transition 2039, 9, :o5, 29592673, 12 + tz.transition 2040, 3, :o4, 29594941, 12 + tz.transition 2040, 9, :o5, 29597125, 12 + tz.transition 2041, 4, :o4, 29599393, 12 + tz.transition 2041, 9, :o5, 29601493, 12 + tz.transition 2042, 4, :o4, 29603761, 12 + tz.transition 2042, 9, :o5, 29605861, 12 + tz.transition 2043, 4, :o4, 29608129, 12 + tz.transition 2043, 9, :o5, 29610229, 12 + tz.transition 2044, 4, :o4, 29612497, 12 + tz.transition 2044, 9, :o5, 29614597, 12 + tz.transition 2045, 4, :o4, 29616865, 12 + tz.transition 2045, 9, :o5, 29618965, 12 + tz.transition 2046, 3, :o4, 29621233, 12 + tz.transition 2046, 9, :o5, 29623417, 12 + tz.transition 2047, 4, :o4, 29625685, 12 + tz.transition 2047, 9, :o5, 29627785, 12 + tz.transition 2048, 4, :o4, 29630053, 12 + tz.transition 2048, 9, :o5, 29632153, 12 + tz.transition 2049, 4, :o4, 29634421, 12 + tz.transition 2049, 9, :o5, 29636521, 12 + tz.transition 2050, 4, :o4, 29638789, 12 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Fiji.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Fiji.rb new file mode 100644 index 000000000..5fe9bbd9a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Fiji.rb @@ -0,0 +1,23 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Fiji + include TimezoneDefinition + + timezone 'Pacific/Fiji' do |tz| + tz.offset :o0, 42820, 0, :LMT + tz.offset :o1, 43200, 0, :FJT + tz.offset :o2, 43200, 3600, :FJST + + tz.transition 1915, 10, :o1, 10457838739, 4320 + tz.transition 1998, 10, :o2, 909842400 + tz.transition 1999, 2, :o1, 920124000 + tz.transition 1999, 11, :o2, 941896800 + tz.transition 2000, 2, :o1, 951573600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Guam.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Guam.rb new file mode 100644 index 000000000..d4c1a0a68 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Guam.rb @@ -0,0 +1,22 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Guam + include TimezoneDefinition + + timezone 'Pacific/Guam' do |tz| + tz.offset :o0, -51660, 0, :LMT + tz.offset :o1, 34740, 0, :LMT + tz.offset :o2, 36000, 0, :GST + tz.offset :o3, 36000, 0, :ChST + + tz.transition 1844, 12, :o1, 1149567407, 480 + tz.transition 1900, 12, :o2, 1159384847, 480 + tz.transition 2000, 12, :o3, 977493600 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Honolulu.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Honolulu.rb new file mode 100644 index 000000000..204b22653 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Honolulu.rb @@ -0,0 +1,28 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Honolulu + include TimezoneDefinition + + timezone 'Pacific/Honolulu' do |tz| + tz.offset :o0, -37886, 0, :LMT + tz.offset :o1, -37800, 0, :HST + tz.offset :o2, -37800, 3600, :HDT + tz.offset :o3, -37800, 3600, :HWT + tz.offset :o4, -37800, 3600, :HPT + tz.offset :o5, -36000, 0, :HST + + tz.transition 1900, 1, :o1, 104328926143, 43200 + tz.transition 1933, 4, :o2, 116505265, 48 + tz.transition 1933, 5, :o1, 116506271, 48 + tz.transition 1942, 2, :o3, 116659201, 48 + tz.transition 1945, 8, :o4, 58360379, 24 + tz.transition 1945, 9, :o1, 116722991, 48 + tz.transition 1947, 6, :o5, 116752561, 48 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Majuro.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Majuro.rb new file mode 100644 index 000000000..32adad92c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Majuro.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Majuro + include TimezoneDefinition + + timezone 'Pacific/Majuro' do |tz| + tz.offset :o0, 41088, 0, :LMT + tz.offset :o1, 39600, 0, :MHT + tz.offset :o2, 43200, 0, :MHT + + tz.transition 1900, 12, :o1, 1086923261, 450 + tz.transition 1969, 9, :o2, 58571881, 24 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Midway.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Midway.rb new file mode 100644 index 000000000..97784fcc1 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Midway.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Midway + include TimezoneDefinition + + timezone 'Pacific/Midway' do |tz| + tz.offset :o0, -42568, 0, :LMT + tz.offset :o1, -39600, 0, :NST + tz.offset :o2, -39600, 3600, :NDT + tz.offset :o3, -39600, 0, :BST + tz.offset :o4, -39600, 0, :SST + + tz.transition 1901, 1, :o1, 26086168721, 10800 + tz.transition 1956, 6, :o2, 58455071, 24 + tz.transition 1956, 9, :o1, 29228627, 12 + tz.transition 1967, 4, :o3, 58549967, 24 + tz.transition 1983, 11, :o4, 439038000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Noumea.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Noumea.rb new file mode 100644 index 000000000..70173db8a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Noumea.rb @@ -0,0 +1,25 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Noumea + include TimezoneDefinition + + timezone 'Pacific/Noumea' do |tz| + tz.offset :o0, 39948, 0, :LMT + tz.offset :o1, 39600, 0, :NCT + tz.offset :o2, 39600, 3600, :NCST + + tz.transition 1912, 1, :o1, 17419781071, 7200 + tz.transition 1977, 12, :o2, 250002000 + tz.transition 1978, 2, :o1, 257342400 + tz.transition 1978, 12, :o2, 281451600 + tz.transition 1979, 2, :o1, 288878400 + tz.transition 1996, 11, :o2, 849366000 + tz.transition 1997, 3, :o1, 857228400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Pago_Pago.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Pago_Pago.rb new file mode 100644 index 000000000..c8fcd7d52 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Pago_Pago.rb @@ -0,0 +1,26 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Pago_Pago + include TimezoneDefinition + + timezone 'Pacific/Pago_Pago' do |tz| + tz.offset :o0, 45432, 0, :LMT + tz.offset :o1, -40968, 0, :LMT + tz.offset :o2, -41400, 0, :SAMT + tz.offset :o3, -39600, 0, :NST + tz.offset :o4, -39600, 0, :BST + tz.offset :o5, -39600, 0, :SST + + tz.transition 1879, 7, :o1, 2889041969, 1200 + tz.transition 1911, 1, :o2, 2902845569, 1200 + tz.transition 1950, 1, :o3, 116797583, 48 + tz.transition 1967, 4, :o4, 58549967, 24 + tz.transition 1983, 11, :o5, 439038000 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Port_Moresby.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Port_Moresby.rb new file mode 100644 index 000000000..f06cf6d54 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Port_Moresby.rb @@ -0,0 +1,20 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Port_Moresby + include TimezoneDefinition + + timezone 'Pacific/Port_Moresby' do |tz| + tz.offset :o0, 35320, 0, :LMT + tz.offset :o1, 35312, 0, :PMMT + tz.offset :o2, 36000, 0, :PGT + + tz.transition 1879, 12, :o1, 5200664597, 2160 + tz.transition 1894, 12, :o2, 13031248093, 5400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Tongatapu.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Tongatapu.rb new file mode 100644 index 000000000..7578d92f3 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/definitions/Pacific/Tongatapu.rb @@ -0,0 +1,27 @@ +require 'tzinfo/timezone_definition' + +module TZInfo + module Definitions + module Pacific + module Tongatapu + include TimezoneDefinition + + timezone 'Pacific/Tongatapu' do |tz| + tz.offset :o0, 44360, 0, :LMT + tz.offset :o1, 44400, 0, :TOT + tz.offset :o2, 46800, 0, :TOT + tz.offset :o3, 46800, 3600, :TOST + + tz.transition 1900, 12, :o1, 5217231571, 2160 + tz.transition 1940, 12, :o2, 174959639, 72 + tz.transition 1999, 10, :o3, 939214800 + tz.transition 2000, 3, :o2, 953384400 + tz.transition 2000, 11, :o3, 973342800 + tz.transition 2001, 1, :o2, 980596800 + tz.transition 2001, 11, :o3, 1004792400 + tz.transition 2002, 1, :o2, 1012046400 + end + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/info_timezone.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/info_timezone.rb new file mode 100644 index 000000000..001303c59 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/info_timezone.rb @@ -0,0 +1,52 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/timezone' + +module TZInfo + + # A Timezone based on a TimezoneInfo. + class InfoTimezone < Timezone #:nodoc: + + # Constructs a new InfoTimezone with a TimezoneInfo instance. + def self.new(info) + tz = super() + tz.send(:setup, info) + tz + end + + # The identifier of the timezone, e.g. "Europe/Paris". + def identifier + @info.identifier + end + + protected + # The TimezoneInfo for this Timezone. + def info + @info + end + + def setup(info) + @info = info + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone.rb new file mode 100644 index 000000000..f8ec4fca8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone.rb @@ -0,0 +1,51 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/info_timezone' + +module TZInfo + + class LinkedTimezone < 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). + # + # If no TimezonePeriod could be found, PeriodNotFound is raised. + def period_for_utc(utc) + @linked_timezone.period_for_utc(utc) + end + + # Returns the set of TimezonePeriod instances that are valid for the given + # 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) + @linked_timezone.periods_for_local(local) + end + + protected + def setup(info) + super(info) + @linked_timezone = Timezone.get(info.link_to_identifier) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone_info.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone_info.rb new file mode 100644 index 000000000..8197ff3e8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/linked_timezone_info.rb @@ -0,0 +1,44 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/timezone_info' + +module TZInfo + # Represents a linked timezone defined in a data module. + class LinkedTimezoneInfo < TimezoneInfo #:nodoc: + + # The zone that provides the data (that this zone is an alias for). + attr_reader :link_to_identifier + + # Constructs a new TimezoneInfo with an identifier and the identifier + # of the zone linked to. + def initialize(identifier, link_to_identifier) + super(identifier) + @link_to_identifier = link_to_identifier + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #@identifier,#@link_to_identifier>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/offset_rationals.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/offset_rationals.rb new file mode 100644 index 000000000..32fa4123f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/offset_rationals.rb @@ -0,0 +1,95 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +module TZInfo + + # Provides a method for getting Rationals for a timezone offset in seconds. + # Pre-reduced rationals are returned for all the half-hour intervals between + # -14 and +14 hours to avoid having to call gcd at runtime. + module OffsetRationals #:nodoc: + @@rational_cache = { + -50400 => Rational(-7,12), + -48600 => Rational(-9,16), + -46800 => Rational(-13,24), + -45000 => Rational(-25,48), + -43200 => Rational(-1,2), + -41400 => Rational(-23,48), + -39600 => Rational(-11,24), + -37800 => Rational(-7,16), + -36000 => Rational(-5,12), + -34200 => Rational(-19,48), + -32400 => Rational(-3,8), + -30600 => Rational(-17,48), + -28800 => Rational(-1,3), + -27000 => Rational(-5,16), + -25200 => Rational(-7,24), + -23400 => Rational(-13,48), + -21600 => Rational(-1,4), + -19800 => Rational(-11,48), + -18000 => Rational(-5,24), + -16200 => Rational(-3,16), + -14400 => Rational(-1,6), + -12600 => Rational(-7,48), + -10800 => Rational(-1,8), + -9000 => Rational(-5,48), + -7200 => Rational(-1,12), + -5400 => Rational(-1,16), + -3600 => Rational(-1,24), + -1800 => Rational(-1,48), + 0 => Rational(0,1), + 1800 => Rational(1,48), + 3600 => Rational(1,24), + 5400 => Rational(1,16), + 7200 => Rational(1,12), + 9000 => Rational(5,48), + 10800 => Rational(1,8), + 12600 => Rational(7,48), + 14400 => Rational(1,6), + 16200 => Rational(3,16), + 18000 => Rational(5,24), + 19800 => Rational(11,48), + 21600 => Rational(1,4), + 23400 => Rational(13,48), + 25200 => Rational(7,24), + 27000 => Rational(5,16), + 28800 => Rational(1,3), + 30600 => Rational(17,48), + 32400 => Rational(3,8), + 34200 => Rational(19,48), + 36000 => Rational(5,12), + 37800 => Rational(7,16), + 39600 => Rational(11,24), + 41400 => Rational(23,48), + 43200 => Rational(1,2), + 45000 => Rational(25,48), + 46800 => Rational(13,24), + 48600 => Rational(9,16), + 50400 => Rational(7,12)} + + # Returns a Rational expressing the fraction of a day that offset in + # seconds represents (i.e. equivalent to Rational(offset, 86400)). + def rational_for_offset(offset) + @@rational_cache[offset] || Rational(offset, 86400) + end + module_function :rational_for_offset + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/time_or_datetime.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/time_or_datetime.rb new file mode 100644 index 000000000..264517f3e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/time_or_datetime.rb @@ -0,0 +1,292 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'date' +require 'time' +require 'tzinfo/offset_rationals' + +module TZInfo + # Used by TZInfo internally to represent either a Time, DateTime or integer + # timestamp (seconds since 1970-01-01 00:00:00). + class TimeOrDateTime #:nodoc: + include Comparable + + # Constructs a new TimeOrDateTime. timeOrDateTime can be a Time, DateTime + # or an integer. If using a Time or DateTime, any time zone information is + # ignored. + def initialize(timeOrDateTime) + @time = nil + @datetime = nil + @timestamp = nil + + if timeOrDateTime.is_a?(Time) + @time = timeOrDateTime + @time = Time.utc(@time.year, @time.mon, @time.mday, @time.hour, @time.min, @time.sec) unless @time.zone == 'UTC' + @orig = @time + elsif timeOrDateTime.is_a?(DateTime) + @datetime = timeOrDateTime + @datetime = @datetime.new_offset(0) unless @datetime.offset == 0 + @orig = @datetime + else + @timestamp = timeOrDateTime.to_i + @orig = @timestamp + end + end + + # Returns the time as a Time. + def to_time + unless @time + if @timestamp + @time = Time.at(@timestamp).utc + else + @time = Time.utc(year, mon, mday, hour, min, sec) + end + end + + @time + end + + # Returns the time as a DateTime. + def to_datetime + unless @datetime + @datetime = DateTime.new(year, mon, mday, hour, min, sec) + end + + @datetime + end + + # Returns the time as an integer timestamp. + def to_i + unless @timestamp + @timestamp = to_time.to_i + end + + @timestamp + end + + # Returns the time as the original time passed to new. + def to_orig + @orig + end + + # Returns a string representation of the TimeOrDateTime. + def to_s + if @orig.is_a?(Time) + "Time: #{@orig.to_s}" + elsif @orig.is_a?(DateTime) + "DateTime: #{@orig.to_s}" + else + "Timestamp: #{@orig.to_s}" + end + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #{@orig.inspect}>" + end + + # Returns the year. + def year + if @time + @time.year + elsif @datetime + @datetime.year + else + to_time.year + end + end + + # Returns the month of the year (1..12). + def mon + if @time + @time.mon + elsif @datetime + @datetime.mon + else + to_time.mon + end + end + alias :month :mon + + # Returns the day of the month (1..n). + def mday + if @time + @time.mday + elsif @datetime + @datetime.mday + else + to_time.mday + end + end + alias :day :mday + + # Returns the hour of the day (0..23). + def hour + if @time + @time.hour + elsif @datetime + @datetime.hour + else + to_time.hour + end + end + + # Returns the minute of the hour (0..59). + def min + if @time + @time.min + elsif @datetime + @datetime.min + else + to_time.min + end + end + + # Returns the second of the minute (0..60). (60 for a leap second). + def sec + if @time + @time.sec + elsif @datetime + @datetime.sec + else + to_time.sec + end + end + + # Compares this TimeOrDateTime with another Time, DateTime, integer + # timestamp or TimeOrDateTime. Returns -1, 0 or +1 depending whether the + # receiver is less than, equal to, or greater than timeOrDateTime. + # + # Milliseconds and smaller units are ignored in the comparison. + def <=>(timeOrDateTime) + if timeOrDateTime.is_a?(TimeOrDateTime) + orig = timeOrDateTime.to_orig + + if @orig.is_a?(DateTime) || orig.is_a?(DateTime) + # If either is a DateTime, assume it is there for a reason + # (i.e. for range). + to_datetime <=> timeOrDateTime.to_datetime + elsif orig.is_a?(Time) + to_time <=> timeOrDateTime.to_time + else + to_i <=> timeOrDateTime.to_i + end + elsif @orig.is_a?(DateTime) || timeOrDateTime.is_a?(DateTime) + # If either is a DateTime, assume it is there for a reason + # (i.e. for range). + to_datetime <=> TimeOrDateTime.wrap(timeOrDateTime).to_datetime + elsif timeOrDateTime.is_a?(Time) + to_time <=> timeOrDateTime + else + to_i <=> timeOrDateTime.to_i + end + end + + # Adds a number of seconds to the TimeOrDateTime. Returns a new + # TimeOrDateTime, preserving what the original constructed type was. + # If the original type is a Time and the resulting calculation goes out of + # range for Times, then an exception will be raised by the Time class. + def +(seconds) + if seconds == 0 + self + else + if @orig.is_a?(DateTime) + TimeOrDateTime.new(@orig + OffsetRationals.rational_for_offset(seconds)) + else + # + defined for Time and integer timestamps + TimeOrDateTime.new(@orig + seconds) + end + end + end + + # Subtracts a number of seconds from the TimeOrDateTime. Returns a new + # TimeOrDateTime, preserving what the original constructed type was. + # If the original type is a Time and the resulting calculation goes out of + # range for Times, then an exception will be raised by the Time class. + def -(seconds) + self + (-seconds) + end + + # Similar to the + operator, but for cases where adding would cause a + # timestamp or time to go out of the allowed range, converts to a DateTime + # based TimeOrDateTime. + def add_with_convert(seconds) + if seconds == 0 + self + else + if @orig.is_a?(DateTime) + TimeOrDateTime.new(@orig + OffsetRationals.rational_for_offset(seconds)) + else + # A Time or timestamp. + result = to_i + seconds + + if result < 0 || result > 2147483647 + result = TimeOrDateTime.new(to_datetime + OffsetRationals.rational_for_offset(seconds)) + else + result = TimeOrDateTime.new(@orig + seconds) + end + end + end + end + + # Returns true if todt represents the same time and was originally + # constructed with the same type (DateTime, Time or timestamp) as this + # TimeOrDateTime. + def eql?(todt) + todt.respond_to?(:to_orig) && to_orig.eql?(todt.to_orig) + end + + # Returns a hash of this TimeOrDateTime. + def hash + @orig.hash + end + + # If no block is given, returns a TimeOrDateTime wrapping the given + # timeOrDateTime. If a block is specified, a TimeOrDateTime is constructed + # and passed to the block. The result of the block must be a TimeOrDateTime. + # to_orig will be called on the result and the result of to_orig will be + # returned. + # + # timeOrDateTime can be a Time, DateTime, integer timestamp or TimeOrDateTime. + # If a TimeOrDateTime is passed in, no new TimeOrDateTime will be constructed, + # the passed in value will be used. + def self.wrap(timeOrDateTime) + t = timeOrDateTime.is_a?(TimeOrDateTime) ? timeOrDateTime : TimeOrDateTime.new(timeOrDateTime) + + if block_given? + t = yield t + + if timeOrDateTime.is_a?(TimeOrDateTime) + t + elsif timeOrDateTime.is_a?(Time) + t.to_time + elsif timeOrDateTime.is_a?(DateTime) + t.to_datetime + else + t.to_i + end + else + t + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone.rb new file mode 100644 index 000000000..04f2f2f0a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone.rb @@ -0,0 +1,508 @@ +#-- +# Copyright (c) 2005-2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'date' +# require 'tzinfo/country' +require 'tzinfo/time_or_datetime' +require 'tzinfo/timezone_period' + +module TZInfo + # Indicate a specified time in a local timezone has more than one + # possible time in UTC. This happens when switching from daylight savings time + # to normal time where the clocks are rolled back. Thrown by period_for_local + # and local_to_utc when using an ambiguous time and not specifying any + # means to resolve the ambiguity. + class AmbiguousTime < StandardError + end + + # Thrown to indicate that no TimezonePeriod matching a given time could be found. + class PeriodNotFound < StandardError + end + + # Thrown by Timezone#get if the identifier given is not valid. + class InvalidTimezoneIdentifier < StandardError + end + + # Thrown if an attempt is made to use a timezone created with Timezone.new(nil). + class UnknownTimezone < StandardError + end + + # Timezone is the base class of all timezones. It provides a factory method + # get to access timezones by identifier. Once a specific Timezone has been + # retrieved, DateTimes, Times and timestamps can be converted between the UTC + # and the local time for the zone. For example: + # + # tz = TZInfo::Timezone.get('America/New_York') + # puts tz.utc_to_local(DateTime.new(2005,8,29,15,35,0)).to_s + # puts tz.local_to_utc(Time.utc(2005,8,29,11,35,0)).to_s + # puts tz.utc_to_local(1125315300).to_s + # + # Each time conversion method returns an object of the same type it was + # passed. + # + # The timezone information all comes from the tz database + # (see http://www.twinsun.com/tz/tz-link.htm) + class Timezone + include Comparable + + # Cache of loaded zones by identifier to avoid using require if a zone + # has already been loaded. + @@loaded_zones = {} + + # Whether the timezones index has been loaded yet. + @@index_loaded = false + + # Returns a timezone by its identifier (e.g. "Europe/London", + # "America/Chicago" or "UTC"). + # + # Raises InvalidTimezoneIdentifier if the timezone couldn't be found. + def self.get(identifier) + instance = @@loaded_zones[identifier] + unless instance + raise InvalidTimezoneIdentifier, 'Invalid identifier' if identifier !~ /^[A-z0-9\+\-_]+(\/[A-z0-9\+\-_]+)*$/ + identifier = identifier.gsub(/-/, '__m__').gsub(/\+/, '__p__') + begin + # Use a temporary variable to avoid an rdoc warning + file = "tzinfo/definitions/#{identifier}" + require file + + m = Definitions + identifier.split(/\//).each {|part| + m = m.const_get(part) + } + + info = m.get + + # Could make Timezone subclasses register an interest in an info + # type. Since there are currently only two however, there isn't + # much point. + if info.kind_of?(DataTimezoneInfo) + instance = DataTimezone.new(info) + elsif info.kind_of?(LinkedTimezoneInfo) + instance = LinkedTimezone.new(info) + else + raise InvalidTimezoneIdentifier, "No handler for info type #{info.class}" + end + + @@loaded_zones[instance.identifier] = instance + rescue LoadError, NameError => e + raise InvalidTimezoneIdentifier, e.message + end + end + + instance + end + + # Returns a proxy for the Timezone with the given identifier. The proxy + # will cause the real timezone to be loaded when an attempt is made to + # find a period or convert a time. get_proxy will not validate the + # identifier. If an invalid identifier is specified, no exception will be + # raised until the proxy is used. + def self.get_proxy(identifier) + TimezoneProxy.new(identifier) + end + + # If identifier is nil calls super(), otherwise calls get. An identfier + # should always be passed in when called externally. + def self.new(identifier = nil) + if identifier + get(identifier) + else + super() + end + end + + # Returns an array containing all the available Timezones. + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all + get_proxies(all_identifiers) + end + + # Returns an array containing the identifiers of all the available + # Timezones. + def self.all_identifiers + load_index + Indexes::Timezones.timezones + end + + # Returns an array containing all the available Timezones that are based + # on data (are not links to other Timezones). + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all_data_zones + get_proxies(all_data_zone_identifiers) + end + + # Returns an array containing the identifiers of all the available + # Timezones that are based on data (are not links to other Timezones).. + def self.all_data_zone_identifiers + load_index + Indexes::Timezones.data_timezones + end + + # Returns an array containing all the available Timezones that are links + # to other Timezones. + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all_linked_zones + get_proxies(all_linked_zone_identifiers) + end + + # Returns an array containing the identifiers of all the available + # Timezones that are links to other Timezones. + def self.all_linked_zone_identifiers + load_index + Indexes::Timezones.linked_timezones + end + + # Returns all the Timezones defined for all Countries. This is not the + # complete set of Timezones as some are not country specific (e.g. + # 'Etc/GMT'). + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.all_country_zones + Country.all_codes.inject([]) {|zones,country| + zones += Country.get(country).zones + } + end + + # Returns all the zone identifiers defined for all Countries. This is not the + # complete set of zone identifiers as some are not country specific (e.g. + # 'Etc/GMT'). You can obtain a Timezone instance for a given identifier + # with the get method. + def self.all_country_zone_identifiers + Country.all_codes.inject([]) {|zones,country| + zones += Country.get(country).zone_identifiers + } + end + + # Returns all US Timezone instances. A shortcut for + # TZInfo::Country.get('US').zones. + # + # Returns TimezoneProxy objects to avoid the overhead of loading Timezone + # definitions until a conversion is actually required. + def self.us_zones + Country.get('US').zones + end + + # Returns all US zone identifiers. A shortcut for + # TZInfo::Country.get('US').zone_identifiers. + def self.us_zone_identifiers + Country.get('US').zone_identifiers + end + + # The identifier of the timezone, e.g. "Europe/Paris". + def identifier + raise UnknownTimezone, 'TZInfo::Timezone constructed directly' + end + + # An alias for identifier. + def name + # Don't use alias, as identifier gets overridden. + identifier + end + + # Returns a friendlier version of the identifier. + def to_s + friendly_identifier + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #{identifier}>" + end + + # Returns a friendlier version of the identifier. Set skip_first_part to + # omit the first part of the identifier (typically a region name) where + # there is more than one part. + # + # For example: + # + # Timezone.get('Europe/Paris').friendly_identifier(false) #=> "Europe - Paris" + # Timezone.get('Europe/Paris').friendly_identifier(true) #=> "Paris" + # Timezone.get('America/Indiana/Knox').friendly_identifier(false) #=> "America - Knox, Indiana" + # Timezone.get('America/Indiana/Knox').friendly_identifier(true) #=> "Knox, Indiana" + def friendly_identifier(skip_first_part = false) + parts = identifier.split('/') + if parts.empty? + # shouldn't happen + identifier + elsif parts.length == 1 + parts[0] + else + if skip_first_part + result = '' + else + result = parts[0] + ' - ' + end + + parts[1, parts.length - 1].reverse_each {|part| + part.gsub!(/_/, ' ') + + if part.index(/[a-z]/) + # Missing a space if a lower case followed by an upper case and the + # name isn't McXxxx. + part.gsub!(/([^M][a-z])([A-Z])/, '\1 \2') + part.gsub!(/([M][a-bd-z])([A-Z])/, '\1 \2') + + # Missing an apostrophe if two consecutive upper case characters. + part.gsub!(/([A-Z])([A-Z])/, '\1\'\2') + end + + result << part + result << ', ' + } + + result.slice!(result.length - 2, 2) + result + end + end + + # 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). + def period_for_utc(utc) + raise UnknownTimezone, 'TZInfo::Timezone constructed directly' + end + + # Returns the set of TimezonePeriod instances that are valid for the given + # local time as an array. If you just want a single period, use + # period_for_local instead and specify how ambiguities should be resolved. + # Returns an empty array if no periods are found for the given time. + def periods_for_local(local) + raise UnknownTimezone, 'TZInfo::Timezone constructed directly' + end + + # Returns the TimezonePeriod for the given local time. local can either be + # a DateTime, Time or integer timestamp (Time.to_i). Any timezone + # information in local is ignored (it is treated as a time in the current + # timezone). + # + # Warning: There are local times that have no equivalent UTC times (e.g. + # in the transition from standard time to daylight savings time). There are + # also local times that have more than one UTC equivalent (e.g. in the + # transition from daylight savings time to standard time). + # + # In the first case (no equivalent UTC time), a PeriodNotFound exception + # will be raised. + # + # In the second case (more than one equivalent UTC time), an AmbiguousTime + # exception will be raised unless the optional dst parameter or block + # handles the ambiguity. + # + # If the ambiguity is due to a transition from daylight savings time to + # standard time, the dst parameter can be used to select whether the + # daylight savings time or local time is used. For example, + # + # Timezone.get('America/New_York').period_for_local(DateTime.new(2004,10,31,1,30,0)) + # + # would raise an AmbiguousTime exception. + # + # Specifying dst=true would the daylight savings period from April to + # October 2004. Specifying dst=false would return the standard period + # from October 2004 to April 2005. + # + # If the dst parameter does not resolve the ambiguity, and a block is + # specified, it is called. The block must take a single parameter - an + # array of the periods that need to be resolved. The block can select and + # return a single period or return nil or an empty array + # to cause an AmbiguousTime exception to be raised. + def period_for_local(local, dst = nil) + results = periods_for_local(local) + + if results.empty? + raise PeriodNotFound + elsif results.size < 2 + results.first + else + # ambiguous result try to resolve + + if !dst.nil? + matches = results.find_all {|period| period.dst? == dst} + results = matches if !matches.empty? + end + + if results.size < 2 + results.first + else + # still ambiguous, try the block + + if block_given? + results = yield results + end + + if results.is_a?(TimezonePeriod) + results + elsif results && results.size == 1 + results.first + else + raise AmbiguousTime, "#{local} is an ambiguous local time." + end + end + end + end + + # Converts a time in UTC to the local timezone. utc can either be + # a DateTime, Time or timestamp (Time.to_i). The returned time has the same + # type as utc. Any timezone information in utc is ignored (it is treated as + # a UTC time). + def utc_to_local(utc) + TimeOrDateTime.wrap(utc) {|utc| + period_for_utc(utc).to_local(utc) + } + end + + # Converts a time in the local timezone to UTC. local can either be + # a DateTime, Time or timestamp (Time.to_i). The returned time has the same + # type as local. Any timezone information in local is ignored (it is treated + # as a local time). + # + # Warning: There are local times that have no equivalent UTC times (e.g. + # in the transition from standard time to daylight savings time). There are + # also local times that have more than one UTC equivalent (e.g. in the + # transition from daylight savings time to standard time). + # + # In the first case (no equivalent UTC time), a PeriodNotFound exception + # will be raised. + # + # In the second case (more than one equivalent UTC time), an AmbiguousTime + # exception will be raised unless the optional dst parameter or block + # handles the ambiguity. + # + # If the ambiguity is due to a transition from daylight savings time to + # standard time, the dst parameter can be used to select whether the + # daylight savings time or local time is used. For example, + # + # Timezone.get('America/New_York').local_to_utc(DateTime.new(2004,10,31,1,30,0)) + # + # would raise an AmbiguousTime exception. + # + # Specifying dst=true would return 2004-10-31 5:30:00. Specifying dst=false + # would return 2004-10-31 6:30:00. + # + # If the dst parameter does not resolve the ambiguity, and a block is + # specified, it is called. The block must take a single parameter - an + # array of the periods that need to be resolved. The block can return a + # single period to use to convert the time or return nil or an empty array + # to cause an AmbiguousTime exception to be raised. + def local_to_utc(local, dst = nil) + TimeOrDateTime.wrap(local) {|local| + if block_given? + period = period_for_local(local, dst) {|periods| yield periods } + else + period = period_for_local(local, dst) + end + + period.to_utc(local) + } + end + + # Returns the current time in the timezone as a Time. + def now + utc_to_local(Time.now.utc) + end + + # Returns the TimezonePeriod for the current time. + def current_period + period_for_utc(Time.now.utc) + end + + # Returns the current Time and TimezonePeriod as an array. The first element + # is the time, the second element is the period. + def current_period_and_time + utc = Time.now.utc + period = period_for_utc(utc) + [period.to_local(utc), period] + end + + alias :current_time_and_period :current_period_and_time + + # Converts a time in UTC to local time and returns it as a string + # according to the given format. The formatting is identical to + # Time.strftime and DateTime.strftime, except %Z is replaced with the + # timezone abbreviation for the specified time (for example, EST or EDT). + def strftime(format, utc = Time.now.utc) + period = period_for_utc(utc) + local = period.to_local(utc) + local = Time.at(local).utc unless local.kind_of?(Time) || local.kind_of?(DateTime) + abbreviation = period.abbreviation.to_s.gsub(/%/, '%%') + + format = format.gsub(/(.?)%Z/) do + if $1 == '%' + # return %%Z so the real strftime treats it as a literal %Z too + '%%Z' + else + "#$1#{abbreviation}" + end + end + + local.strftime(format) + end + + # Compares two Timezones based on their identifier. Returns -1 if tz is less + # than self, 0 if tz is equal to self and +1 if tz is greater than self. + def <=>(tz) + identifier <=> tz.identifier + end + + # Returns true if and only if the identifier of tz is equal to the + # identifier of this Timezone. + def eql?(tz) + self == tz + end + + # Returns a hash of this Timezone. + def hash + identifier.hash + end + + # Dumps this Timezone for marshalling. + def _dump(limit) + identifier + end + + # Loads a marshalled Timezone. + def self._load(data) + Timezone.get(data) + end + + private + # Loads in the index of timezones if it hasn't already been loaded. + def self.load_index + unless @@index_loaded + require 'tzinfo/indexes/timezones' + @@index_loaded = true + end + end + + # Returns an array of proxies corresponding to the given array of + # identifiers. + def self.get_proxies(identifiers) + identifiers.collect {|identifier| get_proxy(identifier)} + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_definition.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_definition.rb new file mode 100644 index 000000000..39ca8bfa5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_definition.rb @@ -0,0 +1,56 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/data_timezone_info' +require 'tzinfo/linked_timezone_info' + +module TZInfo + + # TimezoneDefinition is included into Timezone definition modules. + # TimezoneDefinition provides the methods for defining timezones. + module TimezoneDefinition #:nodoc: + # Add class methods to the includee. + def self.append_features(base) + super + base.extend(ClassMethods) + end + + # Class methods for inclusion. + module ClassMethods #:nodoc: + # Returns and yields a DataTimezoneInfo object to define a timezone. + def timezone(identifier) + yield @timezone = DataTimezoneInfo.new(identifier) + end + + # Defines a linked timezone. + def linked_timezone(identifier, link_to_identifier) + @timezone = LinkedTimezoneInfo.new(identifier, link_to_identifier) + end + + # Returns the last TimezoneInfo to be defined with timezone or + # linked_timezone. + def get + @timezone + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_info.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_info.rb new file mode 100644 index 000000000..68e38c35f --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_info.rb @@ -0,0 +1,40 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +module TZInfo + # Represents a timezone defined in a data module. + class TimezoneInfo #:nodoc: + + # The timezone identifier. + attr_reader :identifier + + # Constructs a new TimezoneInfo with an identifier. + def initialize(identifier) + @identifier = identifier + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #@identifier>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_offset_info.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_offset_info.rb new file mode 100644 index 000000000..913c4164a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_offset_info.rb @@ -0,0 +1,94 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +module TZInfo + # Represents an offset defined in a Timezone data file. + class TimezoneOffsetInfo #:nodoc: + # The base offset of the timezone from UTC in seconds. + attr_reader :utc_offset + + # The offset from standard time for the zone in seconds (i.e. non-zero if + # daylight savings is being observed). + attr_reader :std_offset + + # The total offset of this observance from UTC in seconds + # (utc_offset + std_offset). + attr_reader :utc_total_offset + + # The abbreviation that identifies this observance, e.g. "GMT" + # (Greenwich Mean Time) or "BST" (British Summer Time) for "Europe/London". The returned identifier is a + # symbol. + attr_reader :abbreviation + + # Constructs a new TimezoneOffsetInfo. utc_offset and std_offset are + # specified in seconds. + def initialize(utc_offset, std_offset, abbreviation) + @utc_offset = utc_offset + @std_offset = std_offset + @abbreviation = abbreviation + + @utc_total_offset = @utc_offset + @std_offset + end + + # True if std_offset is non-zero. + def dst? + @std_offset != 0 + end + + # Converts a UTC DateTime to local time based on the offset of this period. + def to_local(utc) + TimeOrDateTime.wrap(utc) {|utc| + utc + @utc_total_offset + } + end + + # Converts a local DateTime to UTC based on the offset of this period. + def to_utc(local) + TimeOrDateTime.wrap(local) {|local| + local - @utc_total_offset + } + end + + # Returns true if and only if toi has the same utc_offset, std_offset + # and abbreviation as this TimezoneOffsetInfo. + def ==(toi) + toi.respond_to?(:utc_offset) && toi.respond_to?(:std_offset) && toi.respond_to?(:abbreviation) && + utc_offset == toi.utc_offset && std_offset == toi.std_offset && abbreviation == toi.abbreviation + end + + # Returns true if and only if toi has the same utc_offset, std_offset + # and abbreviation as this TimezoneOffsetInfo. + def eql?(toi) + self == toi + end + + # Returns a hash of this TimezoneOffsetInfo. + def hash + utc_offset.hash ^ std_offset.hash ^ abbreviation.hash + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #@utc_offset,#@std_offset,#@abbreviation>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_period.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_period.rb new file mode 100644 index 000000000..00888fcfd --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_period.rb @@ -0,0 +1,198 @@ +#-- +# Copyright (c) 2005-2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'tzinfo/offset_rationals' +require 'tzinfo/time_or_datetime' + +module TZInfo + # A period of time in a timezone where the same offset from UTC applies. + # + # All the methods that take times accept instances of Time, DateTime or + # integer timestamps. + class TimezonePeriod + # The TimezoneTransitionInfo that defines the start of this TimezonePeriod + # (may be nil if unbounded). + attr_reader :start_transition + + # The TimezoneTransitionInfo that defines the end of this TimezonePeriod + # (may be nil if unbounded). + attr_reader :end_transition + + # The TimezoneOffsetInfo for this period. + attr_reader :offset + + # Initializes a new TimezonePeriod. + def initialize(start_transition, end_transition, offset = nil) + @start_transition = start_transition + @end_transition = end_transition + + if offset + raise ArgumentError, 'Offset specified with transitions' if @start_transition || @end_transition + @offset = offset + else + if @start_transition + @offset = @start_transition.offset + elsif @end_transition + @offset = @end_transition.previous_offset + else + raise ArgumentError, 'No offset specified and no transitions to determine it from' + end + end + + @utc_total_offset_rational = nil + end + + # Base offset of the timezone from UTC (seconds). + def utc_offset + @offset.utc_offset + end + + # Offset from the local time where daylight savings is in effect (seconds). + # E.g.: utc_offset could be -5 hours. Normally, std_offset would be 0. + # During daylight savings, std_offset would typically become +1 hours. + def std_offset + @offset.std_offset + end + + # The identifier of this period, e.g. "GMT" (Greenwich Mean Time) or "BST" + # (British Summer Time) for "Europe/London". The returned identifier is a + # symbol. + def abbreviation + @offset.abbreviation + end + alias :zone_identifier :abbreviation + + # Total offset from UTC (seconds). Equal to utc_offset + std_offset. + def utc_total_offset + @offset.utc_total_offset + end + + # Total offset from UTC (days). Result is a Rational. + def utc_total_offset_rational + unless @utc_total_offset_rational + @utc_total_offset_rational = OffsetRationals.rational_for_offset(utc_total_offset) + end + @utc_total_offset_rational + end + + # The start time of the period in UTC as a DateTime. May be nil if unbounded. + def utc_start + @start_transition ? @start_transition.at.to_datetime : nil + end + + # The end time of the period in UTC as a DateTime. May be nil if unbounded. + def utc_end + @end_transition ? @end_transition.at.to_datetime : nil + end + + # The start time of the period in local time as a DateTime. May be nil if + # unbounded. + def local_start + @start_transition ? @start_transition.local_start.to_datetime : nil + end + + # The end time of the period in local time as a DateTime. May be nil if + # unbounded. + def local_end + @end_transition ? @end_transition.local_end.to_datetime : nil + end + + # true if daylight savings is in effect for this period; otherwise false. + def dst? + @offset.dst? + end + + # true if this period is valid for the given UTC DateTime; otherwise false. + def valid_for_utc?(utc) + utc_after_start?(utc) && utc_before_end?(utc) + end + + # true if the given UTC DateTime is after the start of the period + # (inclusive); otherwise false. + def utc_after_start?(utc) + !@start_transition || @start_transition.at <= utc + end + + # true if the given UTC DateTime is before the end of the period + # (exclusive); otherwise false. + def utc_before_end?(utc) + !@end_transition || @end_transition.at > utc + end + + # true if this period is valid for the given local DateTime; otherwise false. + def valid_for_local?(local) + local_after_start?(local) && local_before_end?(local) + end + + # true if the given local DateTime is after the start of the period + # (inclusive); otherwise false. + def local_after_start?(local) + !@start_transition || @start_transition.local_start <= local + end + + # true if the given local DateTime is before the end of the period + # (exclusive); otherwise false. + def local_before_end?(local) + !@end_transition || @end_transition.local_end > local + end + + # Converts a UTC DateTime to local time based on the offset of this period. + def to_local(utc) + @offset.to_local(utc) + end + + # Converts a local DateTime to UTC based on the offset of this period. + def to_utc(local) + @offset.to_utc(local) + end + + # Returns true if this TimezonePeriod is equal to p. This compares the + # start_transition, end_transition and offset using ==. + def ==(p) + p.respond_to?(:start_transition) && p.respond_to?(:end_transition) && + p.respond_to?(:offset) && start_transition == p.start_transition && + end_transition == p.end_transition && offset == p.offset + end + + # Returns true if this TimezonePeriods is equal to p. This compares the + # start_transition, end_transition and offset using eql? + def eql?(p) + p.respond_to?(:start_transition) && p.respond_to?(:end_transition) && + p.respond_to?(:offset) && start_transition.eql?(p.start_transition) && + end_transition.eql?(p.end_transition) && offset.eql?(p.offset) + end + + # Returns a hash of this TimezonePeriod. + def hash + result = @start_transition.hash ^ @end_transition.hash + result ^= @offset.hash unless @start_transition || @end_transition + result + end + + # Returns internal object state as a programmer-readable string. + def inspect + result = "#<#{self.class}: #{@start_transition.inspect},#{@end_transition.inspect}" + result << ",#{@offset.inspect}>" unless @start_transition || @end_transition + result + '>' + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_transition_info.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_transition_info.rb new file mode 100644 index 000000000..6ae1b7df9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/tzinfo-0.3.8/tzinfo/timezone_transition_info.rb @@ -0,0 +1,138 @@ +#-- +# Copyright (c) 2006 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 +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +#++ + +require 'date' +require 'tzinfo/time_or_datetime' + +module TZInfo + # Represents an offset defined in a Timezone data file. + class TimezoneTransitionInfo #:nodoc: + # The offset this transition changes to (a TimezoneOffsetInfo instance). + attr_reader :offset + + # The offset this transition changes from (a TimezoneOffsetInfo instance). + attr_reader :previous_offset + + # The numerator of the DateTime if the transition time is defined as a + # DateTime, otherwise the transition time as a timestamp. + attr_reader :numerator_or_time + protected :numerator_or_time + + # Either the denominotor of the DateTime if the transition time is defined + # as a DateTime, otherwise nil. + attr_reader :denominator + protected :denominator + + # Creates a new TimezoneTransitionInfo with the given offset, + # previous_offset (both TimezoneOffsetInfo instances) and UTC time. + # if denominator is nil, numerator_or_time is treated as a number of + # seconds since the epoch. If denominator is specified numerator_or_time + # and denominator are used to create a DateTime as follows: + # + # DateTime.new!(Rational.new!(numerator_or_time, denominator), 0, Date::ITALY) + # + # For performance reasons, the numerator and denominator must be specified + # in their lowest form. + def initialize(offset, previous_offset, numerator_or_time, denominator = nil) + @offset = offset + @previous_offset = previous_offset + @numerator_or_time = numerator_or_time + @denominator = denominator + + @at = nil + @local_end = nil + @local_start = nil + end + + # A TimeOrDateTime instance representing the UTC time when this transition + # occurs. + def at + unless @at + unless @denominator + @at = TimeOrDateTime.new(@numerator_or_time) + else + r = Rational.new!(@numerator_or_time, @denominator) + + # Ruby 1.8.6 introduced new! and deprecated new0. + # Ruby 1.9.0 removed new0. + # We still need to support new0 for older versions of Ruby. + if DateTime.respond_to? :new! + dt = DateTime.new!(r, 0, Date::ITALY) + else + dt = DateTime.new0(r, 0, Date::ITALY) + end + + @at = TimeOrDateTime.new(dt) + end + end + + @at + end + + # A TimeOrDateTime instance representing the local time when this transition + # causes the previous observance to end (calculated from at using + # previous_offset). + def local_end + @local_end = at.add_with_convert(@previous_offset.utc_total_offset) unless @local_end + @local_end + end + + # A TimeOrDateTime instance representing the local time when this transition + # causes the next observance to start (calculated from at using offset). + def local_start + @local_start = at.add_with_convert(@offset.utc_total_offset) unless @local_start + @local_start + end + + # Returns true if this TimezoneTransitionInfo is equal to the given + # TimezoneTransitionInfo. Two TimezoneTransitionInfo instances are + # considered to be equal by == if offset, previous_offset and at are all + # equal. + def ==(tti) + tti.respond_to?(:offset) && tti.respond_to?(:previous_offset) && tti.respond_to?(:at) && + offset == tti.offset && previous_offset == tti.previous_offset && at == tti.at + end + + # Returns true if this TimezoneTransitionInfo is equal to the given + # TimezoneTransitionInfo. Two TimezoneTransitionInfo instances are + # considered to be equal by eql? if offset, previous_offset, + # numerator_or_time and denominator are all equal. This is stronger than ==, + # which just requires the at times to be equal regardless of how they were + # originally specified. + def eql?(tti) + tti.respond_to?(:offset) && tti.respond_to?(:previous_offset) && + tti.respond_to?(:numerator_or_time) && tti.respond_to?(:denominator) && + offset == tti.offset && previous_offset == tti.previous_offset && + numerator_or_time == tti.numerator_or_time && denominator == tti.denominator + end + + # Returns a hash of this TimezoneTransitionInfo instance. + def hash + @offset.hash ^ @previous_offset.hash ^ @numerator_or_time.hash ^ @denominator.hash + end + + # Returns internal object state as a programmer-readable string. + def inspect + "#<#{self.class}: #{at.inspect},#{@offset.inspect}>" + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb new file mode 100644 index 000000000..0de24c0ef --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb @@ -0,0 +1,1021 @@ +# = XmlSimple +# +# Author:: Maik Schmidt <contact@maik-schmidt.de> +# Copyright:: Copyright (c) 2003-2006 Maik Schmidt +# License:: Distributes under the same terms as Ruby. +# +require 'rexml/document' +require 'stringio' + +# Easy API to maintain XML (especially configuration files). +class XmlSimple + include REXML + + @@VERSION = '1.0.11' + + # A simple cache for XML documents that were already transformed + # by xml_in. + class Cache + # Creates and initializes a new Cache object. + def initialize + @mem_share_cache = {} + @mem_copy_cache = {} + end + + # Saves a data structure into a file. + # + # data:: + # Data structure to be saved. + # filename:: + # Name of the file belonging to the data structure. + def save_storable(data, filename) + cache_file = get_cache_filename(filename) + File.open(cache_file, "w+") { |f| Marshal.dump(data, f) } + end + + # Restores a data structure from a file. If restoring the data + # structure failed for any reason, nil will be returned. + # + # filename:: + # Name of the file belonging to the data structure. + def restore_storable(filename) + cache_file = get_cache_filename(filename) + return nil unless File::exist?(cache_file) + return nil unless File::mtime(cache_file).to_i > File::mtime(filename).to_i + data = nil + File.open(cache_file) { |f| data = Marshal.load(f) } + data + end + + # Saves a data structure in a shared memory cache. + # + # data:: + # Data structure to be saved. + # filename:: + # Name of the file belonging to the data structure. + def save_mem_share(data, filename) + @mem_share_cache[filename] = [Time::now.to_i, data] + end + + # Restores a data structure from a shared memory cache. You + # should consider these elements as "read only". If restoring + # the data structure failed for any reason, nil will be + # returned. + # + # filename:: + # Name of the file belonging to the data structure. + def restore_mem_share(filename) + get_from_memory_cache(filename, @mem_share_cache) + end + + # Copies a data structure to a memory cache. + # + # data:: + # Data structure to be copied. + # filename:: + # Name of the file belonging to the data structure. + def save_mem_copy(data, filename) + @mem_share_cache[filename] = [Time::now.to_i, Marshal.dump(data)] + end + + # Restores a data structure from a memory cache. If restoring + # the data structure failed for any reason, nil will be + # returned. + # + # filename:: + # Name of the file belonging to the data structure. + def restore_mem_copy(filename) + data = get_from_memory_cache(filename, @mem_share_cache) + data = Marshal.load(data) unless data.nil? + data + end + + private + + # Returns the "cache filename" belonging to a filename, i.e. + # the extension '.xml' in the original filename will be replaced + # by '.stor'. If filename does not have this extension, '.stor' + # will be appended. + # + # filename:: + # Filename to get "cache filename" for. + def get_cache_filename(filename) + filename.sub(/(\.xml)?$/, '.stor') + end + + # Returns a cache entry from a memory cache belonging to a + # certain filename. If no entry could be found for any reason, + # nil will be returned. + # + # filename:: + # Name of the file the cache entry belongs to. + # cache:: + # Memory cache to get entry from. + def get_from_memory_cache(filename, cache) + return nil unless cache[filename] + return nil unless cache[filename][0] > File::mtime(filename).to_i + return cache[filename][1] + end + end + + # Create a "global" cache. + @@cache = Cache.new + + # Creates and intializes a new XmlSimple object. + # + # defaults:: + # Default values for options. + def initialize(defaults = nil) + unless defaults.nil? || defaults.instance_of?(Hash) + raise ArgumentError, "Options have to be a Hash." + end + @default_options = normalize_option_names(defaults, (KNOWN_OPTIONS['in'] + KNOWN_OPTIONS['out']).uniq) + @options = Hash.new + @_var_values = nil + end + + # Converts an XML document in the same way as the Perl module XML::Simple. + # + # string:: + # XML source. Could be one of the following: + # + # - nil: Tries to load and parse '<scriptname>.xml'. + # - filename: Tries to load and parse filename. + # - IO object: Reads from object until EOF is detected and parses result. + # - XML string: Parses string. + # + # options:: + # Options to be used. + def xml_in(string = nil, options = nil) + handle_options('in', options) + + # If no XML string or filename was supplied look for scriptname.xml. + if string.nil? + string = File::basename($0) + string.sub!(/\.[^.]+$/, '') + string += '.xml' + + directory = File::dirname($0) + @options['searchpath'].unshift(directory) unless directory.nil? + end + + if string.instance_of?(String) + if string =~ /<.*?>/m + @doc = parse(string) + elsif string == '-' + @doc = parse($stdin.readlines.to_s) + else + filename = find_xml_file(string, @options['searchpath']) + + if @options.has_key?('cache') + @options['cache'].each { |scheme| + case(scheme) + when 'storable' + content = @@cache.restore_storable(filename) + when 'mem_share' + content = @@cache.restore_mem_share(filename) + when 'mem_copy' + content = @@cache.restore_mem_copy(filename) + else + raise ArgumentError, "Unsupported caching scheme: <#{scheme}>." + end + return content if content + } + end + + @doc = load_xml_file(filename) + end + elsif string.kind_of?(IO) || string.kind_of?(StringIO) + @doc = parse(string.readlines.to_s) + else + raise ArgumentError, "Could not parse object of type: <#{string.type}>." + end + + result = collapse(@doc.root) + result = @options['keeproot'] ? merge({}, @doc.root.name, result) : result + put_into_cache(result, filename) + result + end + + # This is the functional version of the instance method xml_in. + def XmlSimple.xml_in(string = nil, options = nil) + xml_simple = XmlSimple.new + xml_simple.xml_in(string, options) + end + + # Converts a data structure into an XML document. + # + # ref:: + # Reference to data structure to be converted into XML. + # options:: + # Options to be used. + def xml_out(ref, options = nil) + handle_options('out', options) + if ref.instance_of?(Array) + ref = { @options['anonymoustag'] => ref } + end + + if @options['keeproot'] + keys = ref.keys + if keys.size == 1 + ref = ref[keys[0]] + @options['rootname'] = keys[0] + end + elsif @options['rootname'] == '' + if ref.instance_of?(Hash) + refsave = ref + ref = {} + refsave.each { |key, value| + if !scalar(value) + ref[key] = value + else + ref[key] = [ value.to_s ] + end + } + end + end + + @ancestors = [] + xml = value_to_xml(ref, @options['rootname'], '') + @ancestors = nil + + if @options['xmldeclaration'] + xml = @options['xmldeclaration'] + "\n" + xml + end + + if @options.has_key?('outputfile') + if @options['outputfile'].kind_of?(IO) + return @options['outputfile'].write(xml) + else + File.open(@options['outputfile'], "w") { |file| file.write(xml) } + end + end + xml + end + + # This is the functional version of the instance method xml_out. + def XmlSimple.xml_out(hash, options = nil) + xml_simple = XmlSimple.new + xml_simple.xml_out(hash, options) + end + + private + + # Declare options that are valid for xml_in and xml_out. + KNOWN_OPTIONS = { + 'in' => %w( + keyattr keeproot forcecontent contentkey noattr + searchpath forcearray suppressempty anonymoustag + cache grouptags normalisespace normalizespace + variables varattr keytosymbol + ), + 'out' => %w( + keyattr keeproot contentkey noattr rootname + xmldeclaration outputfile noescape suppressempty + anonymoustag indent grouptags noindent + ) + } + + # Define some reasonable defaults. + DEF_KEY_ATTRIBUTES = [] + DEF_ROOT_NAME = 'opt' + DEF_CONTENT_KEY = 'content' + DEF_XML_DECLARATION = "<?xml version='1.0' standalone='yes'?>" + DEF_ANONYMOUS_TAG = 'anon' + DEF_FORCE_ARRAY = true + DEF_INDENTATION = ' ' + DEF_KEY_TO_SYMBOL = false + + # Normalizes option names in a hash, i.e., turns all + # characters to lower case and removes all underscores. + # Additionally, this method checks, if an unknown option + # was used and raises an according exception. + # + # options:: + # Hash to be normalized. + # known_options:: + # List of known options. + def normalize_option_names(options, known_options) + return nil if options.nil? + result = Hash.new + options.each { |key, value| + lkey = key.downcase + lkey.gsub!(/_/, '') + if !known_options.member?(lkey) + raise ArgumentError, "Unrecognised option: #{lkey}." + end + result[lkey] = value + } + result + end + + # Merges a set of options with the default options. + # + # direction:: + # 'in': If options should be handled for xml_in. + # 'out': If options should be handled for xml_out. + # options:: + # Options to be merged with the default options. + def handle_options(direction, options) + @options = options || Hash.new + + raise ArgumentError, "Options must be a Hash!" unless @options.instance_of?(Hash) + + unless KNOWN_OPTIONS.has_key?(direction) + raise ArgumentError, "Unknown direction: <#{direction}>." + end + + known_options = KNOWN_OPTIONS[direction] + @options = normalize_option_names(@options, known_options) + + unless @default_options.nil? + known_options.each { |option| + unless @options.has_key?(option) + if @default_options.has_key?(option) + @options[option] = @default_options[option] + end + end + } + end + + unless @options.has_key?('noattr') + @options['noattr'] = false + end + + if @options.has_key?('rootname') + @options['rootname'] = '' if @options['rootname'].nil? + else + @options['rootname'] = DEF_ROOT_NAME + end + + if @options.has_key?('xmldeclaration') && @options['xmldeclaration'] == true + @options['xmldeclaration'] = DEF_XML_DECLARATION + end + + @options['keytosymbol'] = DEF_KEY_TO_SYMBOL unless @options.has_key?('keytosymbol') + + if @options.has_key?('contentkey') + if @options['contentkey'] =~ /^-(.*)$/ + @options['contentkey'] = $1 + @options['collapseagain'] = true + end + else + @options['contentkey'] = DEF_CONTENT_KEY + end + + unless @options.has_key?('normalisespace') + @options['normalisespace'] = @options['normalizespace'] + end + @options['normalisespace'] = 0 if @options['normalisespace'].nil? + + if @options.has_key?('searchpath') + unless @options['searchpath'].instance_of?(Array) + @options['searchpath'] = [ @options['searchpath'] ] + end + else + @options['searchpath'] = [] + end + + if @options.has_key?('cache') && scalar(@options['cache']) + @options['cache'] = [ @options['cache'] ] + end + + @options['anonymoustag'] = DEF_ANONYMOUS_TAG unless @options.has_key?('anonymoustag') + + if !@options.has_key?('indent') || @options['indent'].nil? + @options['indent'] = DEF_INDENTATION + end + + @options['indent'] = '' if @options.has_key?('noindent') + + # Special cleanup for 'keyattr' which could be an array or + # a hash or left to default to array. + if @options.has_key?('keyattr') + if !scalar(@options['keyattr']) + # Convert keyattr => { elem => '+attr' } + # to keyattr => { elem => ['attr', '+'] } + if @options['keyattr'].instance_of?(Hash) + @options['keyattr'].each { |key, value| + if value =~ /^([-+])?(.*)$/ + @options['keyattr'][key] = [$2, $1 ? $1 : ''] + end + } + elsif !@options['keyattr'].instance_of?(Array) + raise ArgumentError, "'keyattr' must be String, Hash, or Array!" + end + else + @options['keyattr'] = [ @options['keyattr'] ] + end + else + @options['keyattr'] = DEF_KEY_ATTRIBUTES + end + + if @options.has_key?('forcearray') + if @options['forcearray'].instance_of?(Regexp) + @options['forcearray'] = [ @options['forcearray'] ] + end + + if @options['forcearray'].instance_of?(Array) + force_list = @options['forcearray'] + unless force_list.empty? + @options['forcearray'] = {} + force_list.each { |tag| + if tag.instance_of?(Regexp) + unless @options['forcearray']['_regex'].instance_of?(Array) + @options['forcearray']['_regex'] = [] + end + @options['forcearray']['_regex'] << tag + else + @options['forcearray'][tag] = true + end + } + else + @options['forcearray'] = false + end + else + @options['forcearray'] = @options['forcearray'] ? true : false + end + else + @options['forcearray'] = DEF_FORCE_ARRAY + end + + if @options.has_key?('grouptags') && !@options['grouptags'].instance_of?(Hash) + raise ArgumentError, "Illegal value for 'GroupTags' option - expected a Hash." + end + + if @options.has_key?('variables') && !@options['variables'].instance_of?(Hash) + raise ArgumentError, "Illegal value for 'Variables' option - expected a Hash." + end + + if @options.has_key?('variables') + @_var_values = @options['variables'] + elsif @options.has_key?('varattr') + @_var_values = {} + end + end + + # Actually converts an XML document element into a data structure. + # + # element:: + # The document element to be collapsed. + def collapse(element) + result = @options['noattr'] ? {} : get_attributes(element) + + if @options['normalisespace'] == 2 + result.each { |k, v| result[k] = normalise_space(v) } + end + + if element.has_elements? + element.each_element { |child| + value = collapse(child) + if empty(value) && (element.attributes.empty? || @options['noattr']) + next if @options.has_key?('suppressempty') && @options['suppressempty'] == true + end + result = merge(result, child.name, value) + } + if has_mixed_content?(element) + # normalisespace? + content = element.texts.map { |x| x.to_s } + content = content[0] if content.size == 1 + result[@options['contentkey']] = content + end + elsif element.has_text? # i.e. it has only text. + return collapse_text_node(result, element) + end + + # Turn Arrays into Hashes if key fields present. + count = fold_arrays(result) + + # Disintermediate grouped tags. + if @options.has_key?('grouptags') + result.each { |key, value| + next unless (value.instance_of?(Hash) && (value.size == 1)) + child_key, child_value = value.to_a[0] + if @options['grouptags'][key] == child_key + result[key] = child_value + end + } + end + + # Fold Hases containing a single anonymous Array up into just the Array. + if count == 1 + anonymoustag = @options['anonymoustag'] + if result.has_key?(anonymoustag) && result[anonymoustag].instance_of?(Array) + return result[anonymoustag] + end + end + + if result.empty? && @options.has_key?('suppressempty') + return @options['suppressempty'] == '' ? '' : nil + end + + result + end + + # Collapses a text node and merges it with an existing Hash, if + # possible. + # Thanks to Curtis Schofield for reporting a subtle bug. + # + # hash:: + # Hash to merge text node value with, if possible. + # element:: + # Text node to be collapsed. + def collapse_text_node(hash, element) + value = node_to_text(element) + if empty(value) && !element.has_attributes? + return {} + end + + if element.has_attributes? && !@options['noattr'] + return merge(hash, @options['contentkey'], value) + else + if @options['forcecontent'] + return merge(hash, @options['contentkey'], value) + else + return value + end + end + end + + # Folds all arrays in a Hash. + # + # hash:: + # Hash to be folded. + def fold_arrays(hash) + fold_amount = 0 + keyattr = @options['keyattr'] + if (keyattr.instance_of?(Array) || keyattr.instance_of?(Hash)) + hash.each { |key, value| + if value.instance_of?(Array) + if keyattr.instance_of?(Array) + hash[key] = fold_array(value) + else + hash[key] = fold_array_by_name(key, value) + end + fold_amount += 1 + end + } + end + fold_amount + end + + # Folds an Array to a Hash, if possible. Folding happens + # according to the content of keyattr, which has to be + # an array. + # + # array:: + # Array to be folded. + def fold_array(array) + hash = Hash.new + array.each { |x| + return array unless x.instance_of?(Hash) + key_matched = false + @options['keyattr'].each { |key| + if x.has_key?(key) + key_matched = true + value = x[key] + return array if value.instance_of?(Hash) || value.instance_of?(Array) + value = normalise_space(value) if @options['normalisespace'] == 1 + x.delete(key) + hash[value] = x + break + end + } + return array unless key_matched + } + hash = collapse_content(hash) if @options['collapseagain'] + hash + end + + # Folds an Array to a Hash, if possible. Folding happens + # according to the content of keyattr, which has to be + # a Hash. + # + # name:: + # Name of the attribute to be folded upon. + # array:: + # Array to be folded. + def fold_array_by_name(name, array) + return array unless @options['keyattr'].has_key?(name) + key, flag = @options['keyattr'][name] + + hash = Hash.new + array.each { |x| + if x.instance_of?(Hash) && x.has_key?(key) + value = x[key] + return array if value.instance_of?(Hash) || value.instance_of?(Array) + value = normalise_space(value) if @options['normalisespace'] == 1 + hash[value] = x + hash[value]["-#{key}"] = hash[value][key] if flag == '-' + hash[value].delete(key) unless flag == '+' + else + $stderr.puts("Warning: <#{name}> element has no '#{key}' attribute.") + return array + end + } + hash = collapse_content(hash) if @options['collapseagain'] + hash + end + + # Tries to collapse a Hash even more ;-) + # + # hash:: + # Hash to be collapsed again. + def collapse_content(hash) + content_key = @options['contentkey'] + hash.each_value { |value| + return hash unless value.instance_of?(Hash) && value.size == 1 && value.has_key?(content_key) + hash.each_key { |key| hash[key] = hash[key][content_key] } + } + hash + end + + # Adds a new key/value pair to an existing Hash. If the key to be added + # does already exist and the existing value associated with key is not + # an Array, it will be converted into an Array. Then the new value is + # appended to that Array. + # + # hash:: + # Hash to add key/value pair to. + # key:: + # Key to be added. + # value:: + # Value to be associated with key. + def merge(hash, key, value) + if value.instance_of?(String) + value = normalise_space(value) if @options['normalisespace'] == 2 + + # do variable substitutions + unless @_var_values.nil? || @_var_values.empty? + value.gsub!(/\$\{(\w+)\}/) { |x| get_var($1) } + end + + # look for variable definitions + if @options.has_key?('varattr') + varattr = @options['varattr'] + if hash.has_key?(varattr) + set_var(hash[varattr], value) + end + end + end + + #patch for converting keys to symbols + if @options.has_key?('keytosymbol') + if @options['keytosymbol'] == true + key = key.to_s.downcase.to_sym + end + end + + if hash.has_key?(key) + if hash[key].instance_of?(Array) + hash[key] << value + else + hash[key] = [ hash[key], value ] + end + elsif value.instance_of?(Array) # Handle anonymous arrays. + hash[key] = [ value ] + else + if force_array?(key) + hash[key] = [ value ] + else + hash[key] = value + end + end + hash + end + + # Checks, if the 'forcearray' option has to be used for + # a certain key. + def force_array?(key) + return false if key == @options['contentkey'] + return true if @options['forcearray'] == true + forcearray = @options['forcearray'] + if forcearray.instance_of?(Hash) + return true if forcearray.has_key?(key) + return false unless forcearray.has_key?('_regex') + forcearray['_regex'].each { |x| return true if key =~ x } + end + return false + end + + # Converts the attributes array of a document node into a Hash. + # Returns an empty Hash, if node has no attributes. + # + # node:: + # Document node to extract attributes from. + def get_attributes(node) + attributes = {} + node.attributes.each { |n,v| attributes[n] = v } + attributes + end + + # Determines, if a document element has mixed content. + # + # element:: + # Document element to be checked. + def has_mixed_content?(element) + if element.has_text? && element.has_elements? + return true if element.texts.join('') !~ /^\s*$/s + end + false + end + + # Called when a variable definition is encountered in the XML. + # A variable definition looks like + # <element attrname="name">value</element> + # where attrname matches the varattr setting. + def set_var(name, value) + @_var_values[name] = value + end + + # Called during variable substitution to get the value for the + # named variable. + def get_var(name) + if @_var_values.has_key?(name) + return @_var_values[name] + else + return "${#{name}}" + end + end + + # Recurses through a data structure building up and returning an + # XML representation of that structure as a string. + # + # ref:: + # Reference to the data structure to be encoded. + # name:: + # The XML tag name to be used for this item. + # indent:: + # A string of spaces for use as the current indent level. + def value_to_xml(ref, name, indent) + named = !name.nil? && name != '' + nl = @options.has_key?('noindent') ? '' : "\n" + + if !scalar(ref) + if @ancestors.member?(ref) + raise ArgumentError, "Circular data structures not supported!" + end + @ancestors << ref + else + if named + return [indent, '<', name, '>', @options['noescape'] ? ref.to_s : escape_value(ref.to_s), '</', name, '>', nl].join('') + else + return ref.to_s + nl + end + end + + # Unfold hash to array if possible. + if ref.instance_of?(Hash) && !ref.empty? && !@options['keyattr'].empty? && indent != '' + ref = hash_to_array(name, ref) + end + + result = [] + if ref.instance_of?(Hash) + # Reintermediate grouped values if applicable. + if @options.has_key?('grouptags') + ref.each { |key, value| + if @options['grouptags'].has_key?(key) + ref[key] = { @options['grouptags'][key] => value } + end + } + end + + nested = [] + text_content = nil + if named + result << indent << '<' << name + end + + if !ref.empty? + ref.each { |key, value| + next if !key.nil? && key[0, 1] == '-' + if value.nil? + unless @options.has_key?('suppressempty') && @options['suppressempty'].nil? + raise ArgumentError, "Use of uninitialized value!" + end + value = {} + end + + if !scalar(value) || @options['noattr'] + nested << value_to_xml(value, key, indent + @options['indent']) + else + value = value.to_s + value = escape_value(value) unless @options['noescape'] + if key == @options['contentkey'] + text_content = value + else + result << ' ' << key << '="' << value << '"' + end + end + } + else + text_content = '' + end + + if !nested.empty? || !text_content.nil? + if named + result << '>' + if !text_content.nil? + result << text_content + nested[0].sub!(/^\s+/, '') if !nested.empty? + else + result << nl + end + if !nested.empty? + result << nested << indent + end + result << '</' << name << '>' << nl + else + result << nested + end + else + result << ' />' << nl + end + elsif ref.instance_of?(Array) + ref.each { |value| + if scalar(value) + result << indent << '<' << name << '>' + result << (@options['noescape'] ? value.to_s : escape_value(value.to_s)) + result << '</' << name << '>' << nl + elsif value.instance_of?(Hash) + result << value_to_xml(value, name, indent) + else + result << indent << '<' << name << '>' << nl + result << value_to_xml(value, @options['anonymoustag'], indent + @options['indent']) + result << indent << '</' << name << '>' << nl + end + } + else + # Probably, this is obsolete. + raise ArgumentError, "Can't encode a value of type: #{ref.type}." + end + @ancestors.pop if !scalar(ref) + result.join('') + end + + # Checks, if a certain value is a "scalar" value. Whatever + # that will be in Ruby ... ;-) + # + # value:: + # Value to be checked. + def scalar(value) + return false if value.instance_of?(Hash) || value.instance_of?(Array) + return true + end + + # Attempts to unfold a hash of hashes into an array of hashes. Returns + # a reference to th array on success or the original hash, if unfolding + # is not possible. + # + # parent:: + # + # hashref:: + # Reference to the hash to be unfolded. + def hash_to_array(parent, hashref) + arrayref = [] + hashref.each { |key, value| + return hashref unless value.instance_of?(Hash) + + if @options['keyattr'].instance_of?(Hash) + return hashref unless @options['keyattr'].has_key?(parent) + arrayref << { @options['keyattr'][parent][0] => key }.update(value) + else + arrayref << { @options['keyattr'][0] => key }.update(value) + end + } + arrayref + end + + # Replaces XML markup characters by their external entities. + # + # data:: + # The string to be escaped. + def escape_value(data) + Text::normalize(data) + end + + # Removes leading and trailing whitespace and sequences of + # whitespaces from a string. + # + # text:: + # String to be normalised. + def normalise_space(text) + text.strip.gsub(/\s\s+/, ' ') + end + + # Checks, if an object is nil, an empty String or an empty Hash. + # Thanks to Norbert Gawor for a bugfix. + # + # value:: + # Value to be checked for emptyness. + def empty(value) + case value + when Hash + return value.empty? + when String + return value !~ /\S/m + else + return value.nil? + end + end + + # Converts a document node into a String. + # If the node could not be converted into a String + # for any reason, default will be returned. + # + # node:: + # Document node to be converted. + # default:: + # Value to be returned, if node could not be converted. + def node_to_text(node, default = nil) + if node.instance_of?(REXML::Element) + node.texts.map { |t| t.value }.join('') + elsif node.instance_of?(REXML::Attribute) + node.value.nil? ? default : node.value.strip + elsif node.instance_of?(REXML::Text) + node.value.strip + else + default + end + end + + # Parses an XML string and returns the according document. + # + # xml_string:: + # XML string to be parsed. + # + # The following exception may be raised: + # + # REXML::ParseException:: + # If the specified file is not wellformed. + def parse(xml_string) + Document.new(xml_string) + end + + # Searches in a list of paths for a certain file. Returns + # the full path to the file, if it could be found. Otherwise, + # an exception will be raised. + # + # filename:: + # Name of the file to search for. + # searchpath:: + # List of paths to search in. + def find_xml_file(file, searchpath) + filename = File::basename(file) + + if filename != file + return file if File::file?(file) + else + searchpath.each { |path| + full_path = File::join(path, filename) + return full_path if File::file?(full_path) + } + end + + if searchpath.empty? + return file if File::file?(file) + raise ArgumentError, "File does not exist: #{file}." + end + raise ArgumentError, "Could not find <#{filename}> in <#{searchpath.join(':')}>" + end + + # Loads and parses an XML configuration file. + # + # filename:: + # Name of the configuration file to be loaded. + # + # The following exceptions may be raised: + # + # Errno::ENOENT:: + # If the specified file does not exist. + # REXML::ParseException:: + # If the specified file is not wellformed. + def load_xml_file(filename) + parse(File.readlines(filename).to_s) + end + + # Caches the data belonging to a certain file. + # + # data:: + # Data to be cached. + # filename:: + # Name of file the data was read from. + def put_into_cache(data, filename) + if @options.has_key?('cache') + @options['cache'].each { |scheme| + case(scheme) + when 'storable' + @@cache.save_storable(data, filename) + when 'mem_share' + @@cache.save_mem_share(data, filename) + when 'mem_copy' + @@cache.save_mem_copy(data, filename) + else + raise ArgumentError, "Unsupported caching scheme: <#{scheme}>." + end + } + end + end +end + +# vim:sw=2 diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/version.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/version.rb new file mode 100644 index 000000000..b346459a9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/version.rb @@ -0,0 +1,9 @@ +module ActiveSupport + module VERSION #:nodoc: + MAJOR = 2 + MINOR = 1 + TINY = 0 + + STRING = [MAJOR, MINOR, TINY].join('.') + end +end diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/whiny_nil.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/whiny_nil.rb new file mode 100644 index 000000000..36fe9510b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/active_support/whiny_nil.rb @@ -0,0 +1,58 @@ +# Extensions to +nil+ which allow for more helpful error messages for people who +# are new to Rails. +# +# Ruby raises NoMethodError if you invoke a method on an object that does not +# respond to it: +# +# $ ruby -e nil.destroy +# -e:1: undefined method `destroy' for nil:NilClass (NoMethodError) +# +# With these extensions, if the method belongs to the public interface of the +# classes in NilClass::WHINERS the error message suggests which could be the +# actual intended class: +# +# $ script/runner nil.destroy +# ... +# You might have expected an instance of ActiveRecord::Base. +# ... +# +# NilClass#id exists in Ruby 1.8 (though it is deprecated). Since +id+ is a fundamental +# method of Active Record models NilClass#id is redefined as well to raise a RuntimeError +# and warn the user. She probably wanted a model database identifier and the 4 +# returned by the original method could result in obscure bugs. +# +# The flag <tt>config.whiny_nils</tt> determines whether this feature is enabled. +# By default it is on in development and test modes, and it is off in production +# mode. +class NilClass + WHINERS = [::Array] + WHINERS << ::ActiveRecord::Base if defined? ::ActiveRecord + + METHOD_CLASS_MAP = Hash.new + + WHINERS.each do |klass| + methods = klass.public_instance_methods - public_instance_methods + class_name = klass.name + methods.each { |method| METHOD_CLASS_MAP[method.to_sym] = class_name } + end + + # Raises a RuntimeError when you attempt to call +id+ on +nil+. + def id + raise RuntimeError, "Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id", caller + end + + private + def method_missing(method, *args, &block) + raise_nil_warning_for METHOD_CLASS_MAP[method], method, caller + end + + # Raises a NoMethodError when you attempt to call a method on +nil+. + def raise_nil_warning_for(class_name = nil, selector = nil, with_caller = nil) + message = "You have a nil object when you didn't expect it!" + message << "\nYou might have expected an instance of #{class_name}." if class_name + message << "\nThe error occurred while evaluating nil.#{selector}" if selector + + raise NoMethodError, message, with_caller || caller + end +end + diff --git a/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/activesupport.rb b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/activesupport.rb new file mode 100644 index 000000000..69f36f793 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/pkg/activesupport-2.1.0/lib/activesupport.rb @@ -0,0 +1 @@ +require 'active_support' diff --git a/vendor/rails-2.1.0/activesupport/test/abstract_unit.rb b/vendor/rails-2.1.0/activesupport/test/abstract_unit.rb new file mode 100644 index 000000000..cce8d5d22 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/abstract_unit.rb @@ -0,0 +1,24 @@ +require 'test/unit' + +$:.unshift "#{File.dirname(__FILE__)}/../lib" +$:.unshift File.dirname(__FILE__) +require 'active_support' + +def uses_gem(gem_name, test_name, version = '> 0') + require 'rubygems' + gem gem_name.to_s, version + require gem_name.to_s + yield +rescue LoadError + $stderr.puts "Skipping #{test_name} tests. `gem install #{gem_name}` and try again." +end + +# Wrap tests that use Mocha and skip if unavailable. +unless defined? uses_mocha + def uses_mocha(test_name, &block) + uses_gem('mocha', test_name, '>= 0.5.5', &block) + end +end + +# Show backtraces for deprecated behavior for quicker cleanup. +ActiveSupport::Deprecation.debug = true diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/b.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/b.rb new file mode 100644 index 000000000..9c9e6454c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/b.rb @@ -0,0 +1,2 @@ +class A::B +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/c/d.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/c/d.rb new file mode 100644 index 000000000..0f40d6fbc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/c/d.rb @@ -0,0 +1,2 @@ +class A::C::D +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/c/e/f.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/c/e/f.rb new file mode 100644 index 000000000..57dba5a30 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/a/c/e/f.rb @@ -0,0 +1,2 @@ +class A::C::E::F +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/application.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/application.rb new file mode 100644 index 000000000..d7d3096dc --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/application.rb @@ -0,0 +1 @@ +ApplicationController = 10 diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder.rb new file mode 100644 index 000000000..ad2b27be6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder.rb @@ -0,0 +1,3 @@ +class ClassFolder + ConstantInClassFolder = 'indeed' +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb new file mode 100644 index 000000000..ef66ddaac --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/class_folder_subclass.rb @@ -0,0 +1,3 @@ +class ClassFolder::ClassFolderSubclass < ClassFolder + ConstantInClassFolder +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb new file mode 100644 index 000000000..8235e9072 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/inline_class.rb @@ -0,0 +1,2 @@ +class ClassFolder::InlineClass +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb new file mode 100644 index 000000000..77ea230d2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/class_folder/nested_class.rb @@ -0,0 +1,7 @@ +class ClassFolder + class NestedClass + end + + class SiblingClass + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/conflict.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/conflict.rb new file mode 100644 index 000000000..4ac620190 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/conflict.rb @@ -0,0 +1 @@ +Conflict = 2
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/counting_loader.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/counting_loader.rb new file mode 100644 index 000000000..4225c4412 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/counting_loader.rb @@ -0,0 +1,5 @@ +$counting_loaded_times ||= 0 +$counting_loaded_times += 1 + +module CountingLoader +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/cross_site_dependency.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/cross_site_dependency.rb new file mode 100644 index 000000000..21ee554e9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/cross_site_dependency.rb @@ -0,0 +1,2 @@ +class CrossSiteDependency +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/e.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/e.rb new file mode 100644 index 000000000..2f59e4fb7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/e.rb @@ -0,0 +1,2 @@ +class E +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb new file mode 100644 index 000000000..ca8343704 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/inline_class.rb @@ -0,0 +1,2 @@ +class ModuleFolder::InlineClass +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb new file mode 100644 index 000000000..fc4076bd0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/nested_class.rb @@ -0,0 +1,4 @@ +module ModuleFolder + class NestedClass + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb new file mode 100644 index 000000000..80244b8ba --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_folder/nested_sibling.rb @@ -0,0 +1,2 @@ +class ModuleFolder::NestedSibling +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb new file mode 100644 index 000000000..d12d02f3a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/module_with_custom_const_missing/a/b.rb @@ -0,0 +1 @@ +ModuleWithCustomConstMissing::A::B = "10"
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/multiple_constant_file.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/multiple_constant_file.rb new file mode 100644 index 000000000..a9ff4eb89 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/multiple_constant_file.rb @@ -0,0 +1,2 @@ +MultipleConstantFile = 10 +SiblingConstant = MultipleConstantFile * 2 diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/raises_name_error.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/raises_name_error.rb new file mode 100644 index 000000000..a49960abf --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/raises_name_error.rb @@ -0,0 +1,3 @@ +class RaisesNameError + FooBarBaz +end diff --git a/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/raises_no_method_error.rb b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/raises_no_method_error.rb new file mode 100644 index 000000000..e1b8fce24 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/autoloading_fixtures/raises_no_method_error.rb @@ -0,0 +1,3 @@ +class RaisesNoMethodError + self.foobar_method_doesnt_exist +end diff --git a/vendor/rails-2.1.0/activesupport/test/buffered_logger_test.rb b/vendor/rails-2.1.0/activesupport/test/buffered_logger_test.rb new file mode 100644 index 000000000..97649518b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/buffered_logger_test.rb @@ -0,0 +1,118 @@ +require 'abstract_unit' +require 'stringio' +require 'fileutils' + +class BufferedLoggerTest < Test::Unit::TestCase + def setup + @message = "A debug message" + @integer_message = 12345 + @output = StringIO.new + @logger = ActiveSupport::BufferedLogger.new(@output) + end + + def test_should_log_debugging_message_when_debugging + @logger.level = Logger::DEBUG + @logger.add(Logger::DEBUG, @message) + assert @output.string.include?(@message) + end + + def test_should_not_log_debug_messages_when_log_level_is_info + @logger.level = Logger::INFO + @logger.add(Logger::DEBUG, @message) + assert ! @output.string.include?(@message) + end + + def test_should_add_message_passed_as_block_when_using_add + @logger.level = Logger::INFO + @logger.add(Logger::INFO) {@message} + assert @output.string.include?(@message) + end + + def test_should_add_message_passed_as_block_when_using_shortcut + @logger.level = Logger::INFO + @logger.info {@message} + assert @output.string.include?(@message) + end + + def test_should_convert_message_to_string + @logger.level = Logger::INFO + @logger.info @integer_message + assert @output.string.include?(@integer_message.to_s) + end + + def test_should_convert_message_to_string_when_passed_in_block + @logger.level = Logger::INFO + @logger.info {@integer_message} + assert @output.string.include?(@integer_message.to_s) + end + + def test_should_not_evaluate_block_if_message_wont_be_logged + @logger.level = Logger::INFO + evaluated = false + @logger.add(Logger::DEBUG) {evaluated = true} + assert evaluated == false + end + + def test_should_not_mutate_message + message_copy = @message.dup + @logger.info @message + assert_equal message_copy, @message + end + + + [false, nil, 0].each do |disable| + define_method "test_disabling_auto_flush_with_#{disable.inspect}_should_buffer_until_explicit_flush" do + @logger.auto_flushing = disable + + 4.times do + @logger.info 'wait for it..' + assert @output.string.empty?, @output.string + end + + @logger.flush + assert !@output.string.empty?, @logger.buffer.size + end + + define_method "test_disabling_auto_flush_with_#{disable.inspect}_should_flush_at_max_buffer_size_as_failsafe" do + @logger.auto_flushing = disable + assert_equal ActiveSupport::BufferedLogger::MAX_BUFFER_SIZE, @logger.auto_flushing + + (ActiveSupport::BufferedLogger::MAX_BUFFER_SIZE - 1).times do + @logger.info 'wait for it..' + assert @output.string.empty?, @output.string + end + + @logger.info 'there it is.' + assert !@output.string.empty?, @logger.buffer.size + end + end + + def test_should_know_if_its_loglevel_is_below_a_given_level + ActiveSupport::BufferedLogger::Severity.constants.each do |level| + @logger.level = ActiveSupport::BufferedLogger::Severity.const_get(level) - 1 + assert @logger.send("#{level.downcase}?"), "didn't know if it was #{level.downcase}? or below" + end + end + + def test_should_auto_flush_every_n_messages + @logger.auto_flushing = 5 + + 4.times do + @logger.info 'wait for it..' + assert @output.string.empty?, @output.string + end + + @logger.info 'there it is.' + assert !@output.string.empty?, @output.string + end + + def test_should_create_the_log_directory_if_it_doesnt_exist + tmp_directory = File.join(File.dirname(__FILE__), "tmp") + log_file = File.join(tmp_directory, "development.log") + assert !File.exist?(tmp_directory) + @logger = ActiveSupport::BufferedLogger.new(log_file) + assert File.exist?(tmp_directory) + ensure + FileUtils.rm_rf(tmp_directory) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/caching_test.rb b/vendor/rails-2.1.0/activesupport/test/caching_test.rb new file mode 100644 index 000000000..09b56525e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/caching_test.rb @@ -0,0 +1,66 @@ +require 'abstract_unit' + +class CacheStoreSettingTest < Test::Unit::TestCase + def test_file_fragment_cache_store + store = ActiveSupport::Cache.lookup_store :file_store, "/path/to/cache/directory" + assert_kind_of(ActiveSupport::Cache::FileStore, store) + assert_equal "/path/to/cache/directory", store.cache_path + end + + def test_drb_fragment_cache_store + store = ActiveSupport::Cache.lookup_store :drb_store, "druby://localhost:9192" + assert_kind_of(ActiveSupport::Cache::DRbStore, store) + assert_equal "druby://localhost:9192", store.address + end + + def test_mem_cache_fragment_cache_store + store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost" + assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) + assert_equal %w(localhost), store.addresses + end + + def test_mem_cache_fragment_cache_store_with_multiple_servers + store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost", '192.168.1.1' + assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) + assert_equal %w(localhost 192.168.1.1), store.addresses + end + + def test_mem_cache_fragment_cache_store_with_options + store = ActiveSupport::Cache.lookup_store :mem_cache_store, "localhost", '192.168.1.1', :namespace => 'foo' + assert_kind_of(ActiveSupport::Cache::MemCacheStore, store) + assert_equal %w(localhost 192.168.1.1), store.addresses + assert_equal 'foo', store.instance_variable_get('@data').instance_variable_get('@namespace') + end + + def test_object_assigned_fragment_cache_store + store = ActiveSupport::Cache.lookup_store ActiveSupport::Cache::FileStore.new("/path/to/cache/directory") + assert_kind_of(ActiveSupport::Cache::FileStore, store) + assert_equal "/path/to/cache/directory", store.cache_path + end +end + +uses_mocha 'high-level cache store tests' do + class CacheStoreTest < Test::Unit::TestCase + def setup + @cache = ActiveSupport::Cache.lookup_store(:memory_store) + end + + def test_fetch_without_cache_miss + @cache.stubs(:read).with('foo', {}).returns('bar') + @cache.expects(:write).never + assert_equal 'bar', @cache.fetch('foo') { 'baz' } + end + + def test_fetch_with_cache_miss + @cache.stubs(:read).with('foo', {}).returns(nil) + @cache.expects(:write).with('foo', 'baz', {}) + assert_equal 'baz', @cache.fetch('foo') { 'baz' } + end + + def test_fetch_with_forced_cache_miss + @cache.expects(:read).never + @cache.expects(:write).with('foo', 'bar', :force => true) + @cache.fetch('foo', :force => true) { 'bar' } + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/callbacks_test.rb b/vendor/rails-2.1.0/activesupport/test/callbacks_test.rb new file mode 100644 index 000000000..7f71ca226 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/callbacks_test.rb @@ -0,0 +1,148 @@ +require 'abstract_unit' + +class Record + include ActiveSupport::Callbacks + + define_callbacks :before_save, :after_save + + class << self + def callback_symbol(callback_method) + returning("#{callback_method}_method") do |method_name| + define_method(method_name) do + history << [callback_method, :symbol] + end + end + end + + def callback_string(callback_method) + "history << [#{callback_method.to_sym.inspect}, :string]" + end + + def callback_proc(callback_method) + Proc.new { |model| model.history << [callback_method, :proc] } + end + + def callback_object(callback_method) + klass = Class.new + klass.send(:define_method, callback_method) do |model| + model.history << [callback_method, :object] + end + klass.new + end + end + + def history + @history ||= [] + end +end + +class Person < Record + [:before_save, :after_save].each do |callback_method| + callback_method_sym = callback_method.to_sym + send(callback_method, callback_symbol(callback_method_sym)) + send(callback_method, callback_string(callback_method_sym)) + send(callback_method, callback_proc(callback_method_sym)) + send(callback_method, callback_object(callback_method_sym)) + send(callback_method) { |model| model.history << [callback_method_sym, :block] } + end + + def save + run_callbacks(:before_save) + run_callbacks(:after_save) + end +end + +class ConditionalPerson < Record + before_save Proc.new { |r| r.history << [:before_save, :proc] }, :if => Proc.new { |r| true } + before_save Proc.new { |r| r.history << "b00m" }, :if => Proc.new { |r| false } + before_save Proc.new { |r| r.history << [:before_save, :proc] }, :unless => Proc.new { |r| false } + before_save Proc.new { |r| r.history << "b00m" }, :unless => Proc.new { |r| true } + + def save + run_callbacks(:before_save) + run_callbacks(:after_save) + end +end + +class CallbacksTest < Test::Unit::TestCase + def test_save_person + person = Person.new + assert_equal [], person.history + person.save + assert_equal [ + [:before_save, :symbol], + [:before_save, :string], + [:before_save, :proc], + [:before_save, :object], + [:before_save, :block], + [:after_save, :symbol], + [:after_save, :string], + [:after_save, :proc], + [:after_save, :object], + [:after_save, :block] + ], person.history + end +end + +class ConditionalCallbackTest < Test::Unit::TestCase + def test_save_conditional_person + person = ConditionalPerson.new + person.save + assert_equal [ + [:before_save, :proc], + [:before_save, :proc] + ], person.history + end +end + +class CallbackTest < Test::Unit::TestCase + include ActiveSupport::Callbacks + + def test_eql + callback = Callback.new(:before, :save, :identifier => :lifesaver) + assert callback.eql?(Callback.new(:before, :save, :identifier => :lifesaver)) + assert callback.eql?(Callback.new(:before, :save)) + assert callback.eql?(:lifesaver) + assert callback.eql?(:save) + assert !callback.eql?(Callback.new(:before, :destroy)) + assert !callback.eql?(:destroy) + end + + def test_dup + a = Callback.new(:before, :save) + assert_equal({}, a.options) + b = a.dup + b.options[:unless] = :pigs_fly + assert_equal({:unless => :pigs_fly}, b.options) + assert_equal({}, a.options) + end +end + +class CallbackChainTest < Test::Unit::TestCase + include ActiveSupport::Callbacks + + def setup + @chain = CallbackChain.build(:make, :bacon, :lettuce, :tomato) + end + + def test_build + assert_equal 3, @chain.size + assert_equal [:bacon, :lettuce, :tomato], @chain.map(&:method) + end + + def test_find + assert_equal :bacon, @chain.find(:bacon).method + end + + def test_union + assert_equal [:bacon, :lettuce, :tomato], (@chain | Callback.new(:make, :bacon)).map(&:method) + assert_equal [:bacon, :lettuce, :tomato, :turkey], (@chain | CallbackChain.build(:make, :bacon, :lettuce, :tomato, :turkey)).map(&:method) + assert_equal [:bacon, :lettuce, :tomato, :turkey, :mayo], (@chain | Callback.new(:make, :mayo)).map(&:method) + end + + def test_delete + assert_equal [:bacon, :lettuce, :tomato], @chain.map(&:method) + @chain.delete(:bacon) + assert_equal [:lettuce, :tomato], @chain.map(&:method) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/clean_logger_test.rb b/vendor/rails-2.1.0/activesupport/test/clean_logger_test.rb new file mode 100644 index 000000000..269dd2a62 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/clean_logger_test.rb @@ -0,0 +1,57 @@ +require 'abstract_unit' +require 'stringio' + +class CleanLoggerTest < Test::Unit::TestCase + def setup + @out = StringIO.new + @logger = Logger.new(@out) + end + + def test_format_message + @logger.error 'error' + assert_equal "error\n", @out.string + end + + def test_silence + # Without yielding self. + @logger.silence do + @logger.debug 'debug' + @logger.info 'info' + @logger.warn 'warn' + @logger.error 'error' + @logger.fatal 'fatal' + end + + # Yielding self. + @logger.silence do |logger| + logger.debug 'debug' + logger.info 'info' + logger.warn 'warn' + logger.error 'error' + logger.fatal 'fatal' + end + + # Silencer off. + Logger.silencer = false + @logger.silence do |logger| + logger.warn 'unsilenced' + end + Logger.silencer = true + + assert_equal "error\nfatal\nerror\nfatal\nunsilenced\n", @out.string + end + + def test_datetime_format + @logger.formatter = Logger::Formatter.new + @logger.datetime_format = "%Y-%m-%d" + @logger.debug 'debug' + assert_equal "%Y-%m-%d", @logger.datetime_format + assert_match(/D, \[\d\d\d\d-\d\d-\d\d#\d+\] DEBUG -- : debug/, @out.string) + end + + def test_nonstring_formatting + an_object = [1, 2, 3, 4, 5] + @logger.debug an_object + assert_equal("#{an_object.inspect}\n", @out.string) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/array_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/array_ext_test.rb new file mode 100644 index 000000000..ccab0f70d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/array_ext_test.rb @@ -0,0 +1,250 @@ +require 'abstract_unit' +require 'bigdecimal' + +class ArrayExtAccessTests < Test::Unit::TestCase + def test_from + assert_equal %w( a b c d ), %w( a b c d ).from(0) + assert_equal %w( c d ), %w( a b c d ).from(2) + assert_nil %w( a b c d ).from(10) + end + + def test_to + assert_equal %w( a ), %w( a b c d ).to(0) + assert_equal %w( a b c ), %w( a b c d ).to(2) + assert_equal %w( a b c d ), %w( a b c d ).to(10) + end +end + +class ArrayExtToParamTests < Test::Unit::TestCase + class ToParam < String + def to_param + "#{self}1" + end + end + + def test_string_array + assert_equal '', %w().to_param + assert_equal 'hello/world', %w(hello world).to_param + assert_equal 'hello/10', %w(hello 10).to_param + end + + def test_number_array + assert_equal '10/20', [10, 20].to_param + end + + def test_to_param_array + assert_equal 'custom1/param1', [ToParam.new('custom'), ToParam.new('param')].to_param + end +end + +class ArrayExtToSentenceTests < Test::Unit::TestCase + def test_plain_array_to_sentence + assert_equal "", [].to_sentence + assert_equal "one", ['one'].to_sentence + assert_equal "one and two", ['one', 'two'].to_sentence + assert_equal "one, two, and three", ['one', 'two', 'three'].to_sentence + end + + def test_to_sentence_with_connector + assert_equal "one, two, and also three", ['one', 'two', 'three'].to_sentence(:connector => 'and also') + assert_equal "one, two, three", ['one', 'two', 'three'].to_sentence(:connector => '') + assert_equal "one, two, three", ['one', 'two', 'three'].to_sentence(:connector => nil) + assert_equal "one, two, three", ['one', 'two', 'three'].to_sentence(:connector => ' ') + assert_equal "one, two, and three", ['one', 'two', 'three'].to_sentence(:connector => 'and ') + end + + def test_to_sentence_with_skip_last_comma + assert_equal "one, two, and three", ['one', 'two', 'three'].to_sentence(:skip_last_comma => false) + end + + def test_two_elements + assert_equal "one and two", ['one', 'two'].to_sentence + assert_equal "one two", ['one', 'two'].to_sentence(:connector => '') + end + + def test_one_element + assert_equal "one", ['one'].to_sentence + end + + def test_one_non_string_element + assert_equal '1', [1].to_sentence + end +end + +class ArrayExtToSTests < Test::Unit::TestCase + def test_to_s_db + collection = [ + Class.new { def id() 1 end }.new, + Class.new { def id() 2 end }.new, + Class.new { def id() 3 end }.new + ] + + assert_equal "null", [].to_s(:db) + assert_equal "1,2,3", collection.to_s(:db) + end +end + +class ArrayExtGroupingTests < Test::Unit::TestCase + def test_group_by_with_perfect_fit + groups = [] + ('a'..'i').to_a.in_groups_of(3) do |group| + groups << group + end + + assert_equal [%w(a b c), %w(d e f), %w(g h i)], groups + assert_equal [%w(a b c), %w(d e f), %w(g h i)], ('a'..'i').to_a.in_groups_of(3) + end + + def test_group_by_with_padding + groups = [] + ('a'..'g').to_a.in_groups_of(3) do |group| + groups << group + end + + assert_equal [%w(a b c), %w(d e f), ['g', nil, nil]], groups + end + + def test_group_by_pads_with_specified_values + groups = [] + + ('a'..'g').to_a.in_groups_of(3, 'foo') do |group| + groups << group + end + + assert_equal [%w(a b c), %w(d e f), ['g', 'foo', 'foo']], groups + end + + def test_group_without_padding + groups = [] + + ('a'..'g').to_a.in_groups_of(3, false) do |group| + groups << group + end + + assert_equal [%w(a b c), %w(d e f), ['g']], groups + end +end + +class ArraySplitTests < Test::Unit::TestCase + def test_split_with_empty_array + assert_equal [[]], [].split(0) + end + + def test_split_with_argument + assert_equal [[1, 2], [4, 5]], [1, 2, 3, 4, 5].split(3) + assert_equal [[1, 2, 3, 4, 5]], [1, 2, 3, 4, 5].split(0) + end + + def test_split_with_block + assert_equal [[1, 2], [4, 5], [7, 8], [10]], (1..10).to_a.split { |i| i % 3 == 0 } + end + + def test_split_with_edge_values + assert_equal [[], [2, 3, 4, 5]], [1, 2, 3, 4, 5].split(1) + assert_equal [[1, 2, 3, 4], []], [1, 2, 3, 4, 5].split(5) + assert_equal [[], [2, 3, 4], []], [1, 2, 3, 4, 5].split { |i| i == 1 || i == 5 } + end +end + +class ArrayToXmlTests < Test::Unit::TestCase + def test_to_xml + xml = [ + { :name => "David", :age => 26, :age_in_millis => 820497600000 }, + { :name => "Jason", :age => 31, :age_in_millis => BigDecimal.new('1.0') } + ].to_xml(:skip_instruct => true, :indent => 0) + + assert_equal '<records type="array"><record>', xml.first(30) + assert xml.include?(%(<age type="integer">26</age>)), xml + assert xml.include?(%(<age-in-millis type="integer">820497600000</age-in-millis>)), xml + assert xml.include?(%(<name>David</name>)), xml + assert xml.include?(%(<age type="integer">31</age>)), xml + assert xml.include?(%(<age-in-millis type="decimal">1.0</age-in-millis>)), xml + assert xml.include?(%(<name>Jason</name>)), xml + end + + def test_to_xml_with_dedicated_name + xml = [ + { :name => "David", :age => 26, :age_in_millis => 820497600000 }, { :name => "Jason", :age => 31 } + ].to_xml(:skip_instruct => true, :indent => 0, :root => "people") + + assert_equal '<people type="array"><person>', xml.first(29) + end + + def test_to_xml_with_options + xml = [ + { :name => "David", :street_address => "Paulina" }, { :name => "Jason", :street_address => "Evergreen" } + ].to_xml(:skip_instruct => true, :skip_types => true, :indent => 0) + + assert_equal "<records><record>", xml.first(17) + assert xml.include?(%(<street-address>Paulina</street-address>)) + assert xml.include?(%(<name>David</name>)) + assert xml.include?(%(<street-address>Evergreen</street-address>)) + assert xml.include?(%(<name>Jason</name>)) + end + + def test_to_xml_with_dasherize_false + xml = [ + { :name => "David", :street_address => "Paulina" }, { :name => "Jason", :street_address => "Evergreen" } + ].to_xml(:skip_instruct => true, :skip_types => true, :indent => 0, :dasherize => false) + + assert_equal "<records><record>", xml.first(17) + assert xml.include?(%(<street_address>Paulina</street_address>)) + assert xml.include?(%(<street_address>Evergreen</street_address>)) + end + + def test_to_xml_with_dasherize_true + xml = [ + { :name => "David", :street_address => "Paulina" }, { :name => "Jason", :street_address => "Evergreen" } + ].to_xml(:skip_instruct => true, :skip_types => true, :indent => 0, :dasherize => true) + + assert_equal "<records><record>", xml.first(17) + assert xml.include?(%(<street-address>Paulina</street-address>)) + assert xml.include?(%(<street-address>Evergreen</street-address>)) + end + + def test_to_with_instruct + xml = [ + { :name => "David", :age => 26, :age_in_millis => 820497600000 }, + { :name => "Jason", :age => 31, :age_in_millis => BigDecimal.new('1.0') } + ].to_xml(:skip_instruct => false, :indent => 0) + + assert_match(/^<\?xml [^>]*/, xml) + assert_equal 0, xml.rindex(/<\?xml /) + end + + def test_to_xml_with_block + xml = [ + { :name => "David", :age => 26, :age_in_millis => 820497600000 }, + { :name => "Jason", :age => 31, :age_in_millis => BigDecimal.new('1.0') } + ].to_xml(:skip_instruct => true, :indent => 0) do |builder| + builder.count 2 + end + + assert xml.include?(%(<count>2</count>)), xml + end +end + +class ArrayExtractOptionsTests < Test::Unit::TestCase + def test_extract_options + assert_equal({}, [].extract_options!) + assert_equal({}, [1].extract_options!) + assert_equal({:a=>:b}, [{:a=>:b}].extract_options!) + assert_equal({:a=>:b}, [1, {:a=>:b}].extract_options!) + end +end + +uses_mocha "ArrayExtRandomTests" do + +class ArrayExtRandomTests < Test::Unit::TestCase + def test_random_element_from_array + assert_nil [].rand + + Kernel.expects(:rand).with(1).returns(0) + assert_equal 'x', ['x'].rand + + Kernel.expects(:rand).with(3).returns(1) + assert_equal 2, [1, 2, 3].rand + end +end + +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/base64_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/base64_ext_test.rb new file mode 100644 index 000000000..bd0e9f843 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/base64_ext_test.rb @@ -0,0 +1,8 @@ +require 'abstract_unit' + +class Base64Test < Test::Unit::TestCase + def test_no_newline_in_encoded_value + assert_match(/\n/, ActiveSupport::Base64.encode64("oneverylongstringthatwouldnormallybesplitupbynewlinesbytheregularbase64")) + assert_no_match(/\n/, ActiveSupport::Base64.encode64s("oneverylongstringthatwouldnormallybesplitupbynewlinesbytheregularbase64")) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/bigdecimal.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/bigdecimal.rb new file mode 100644 index 000000000..0417a2bca --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/bigdecimal.rb @@ -0,0 +1,9 @@ +require 'abstract_unit' + +class BigDecimalTest < Test::Unit::TestCase + def test_to_yaml + assert_equal("--- 100000.30020320320000000000000000000000000000001\n", BigDecimal.new('100000.30020320320000000000000000000000000000001').to_yaml) + assert_equal("--- .Inf\n", BigDecimal.new('Infinity').to_yaml) + assert_equal("--- .NaN\n", BigDecimal.new('NaN').to_yaml) + end +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/blank_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/blank_test.rb new file mode 100644 index 000000000..061d94038 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/blank_test.rb @@ -0,0 +1,19 @@ +require 'abstract_unit' + +class EmptyTrue + def empty?() true; end +end + +class EmptyFalse + def empty?() false; end +end + +class BlankTest < Test::Unit::TestCase + BLANK = [ EmptyTrue.new, nil, false, '', ' ', " \n\t \r ", [], {} ] + NOT = [ EmptyFalse.new, Object.new, true, 0, 1, 'a', [nil], { nil => 0 } ] + + def test_blank + BLANK.each { |v| assert v.blank?, "#{v.inspect} should be blank" } + NOT.each { |v| assert !v.blank?, "#{v.inspect} should not be blank" } + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/cgi_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/cgi_ext_test.rb new file mode 100644 index 000000000..320efd405 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/cgi_ext_test.rb @@ -0,0 +1,14 @@ +require 'abstract_unit' + +class EscapeSkippingSlashesTest < Test::Unit::TestCase + def test_array + assert_equal 'hello/world', CGI.escape_skipping_slashes(%w(hello world)) + assert_equal 'hello+world/how/are/you', CGI.escape_skipping_slashes(['hello world', 'how', 'are', 'you']) + end + + def test_typical + assert_equal 'hi', CGI.escape_skipping_slashes('hi') + assert_equal 'hi/world', CGI.escape_skipping_slashes('hi/world') + assert_equal 'hi/world+you+funky+thing', CGI.escape_skipping_slashes('hi/world you funky thing') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/class/attribute_accessor_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/class/attribute_accessor_test.rb new file mode 100644 index 000000000..85d0dd89e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/class/attribute_accessor_test.rb @@ -0,0 +1,31 @@ +require 'abstract_unit' + +class ClassAttributeAccessorTest < Test::Unit::TestCase + def setup + @class = Class.new do + cattr_accessor :foo + cattr_accessor :bar, :instance_writer => false + end + @object = @class.new + end + + def test_should_use_mattr_default + assert_nil @class.foo + assert_nil @object.foo + end + + def test_should_set_mattr_value + @class.foo = :test + assert_equal :test, @object.foo + + @object.foo = :test2 + assert_equal :test2, @class.foo + end + + def test_should_not_create_instance_writer + assert @class.respond_to?(:foo) + assert @class.respond_to?(:foo=) + assert @object.respond_to?(:bar) + assert !@object.respond_to?(:bar=) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb new file mode 100644 index 000000000..7f859772e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/class/class_inheritable_attributes_test.rb @@ -0,0 +1,224 @@ +require 'abstract_unit' + +class ClassInheritableAttributesTest < Test::Unit::TestCase + def setup + @klass = Class.new + end + + def test_reader_declaration + assert_nothing_raised do + @klass.class_inheritable_reader :a + assert_respond_to @klass, :a + assert_respond_to @klass.new, :a + end + end + + def test_writer_declaration + assert_nothing_raised do + @klass.class_inheritable_writer :a + assert_respond_to @klass, :a= + assert_respond_to @klass.new, :a= + end + end + + def test_writer_declaration_without_instance_writer + assert_nothing_raised do + @klass.class_inheritable_writer :a, :instance_writer => false + assert_respond_to @klass, :a= + assert !@klass.new.respond_to?(:a=) + end + end + + def test_accessor_declaration + assert_nothing_raised do + @klass.class_inheritable_accessor :a + assert_respond_to @klass, :a + assert_respond_to @klass.new, :a + assert_respond_to @klass, :a= + assert_respond_to @klass.new, :a= + end + end + + def test_accessor_declaration_without_instance_writer + assert_nothing_raised do + @klass.class_inheritable_accessor :a, :instance_writer => false + assert_respond_to @klass, :a + assert_respond_to @klass.new, :a + assert_respond_to @klass, :a= + assert !@klass.new.respond_to?(:a=) + end + end + + def test_array_declaration + assert_nothing_raised do + @klass.class_inheritable_array :a + assert_respond_to @klass, :a + assert_respond_to @klass.new, :a + assert_respond_to @klass, :a= + assert_respond_to @klass.new, :a= + end + end + + def test_array_declaration_without_instance_writer + assert_nothing_raised do + @klass.class_inheritable_array :a, :instance_writer => false + assert_respond_to @klass, :a + assert_respond_to @klass.new, :a + assert_respond_to @klass, :a= + assert !@klass.new.respond_to?(:a=) + end + end + + def test_hash_declaration + assert_nothing_raised do + @klass.class_inheritable_hash :a + assert_respond_to @klass, :a + assert_respond_to @klass.new, :a + assert_respond_to @klass, :a= + assert_respond_to @klass.new, :a= + end + end + + def test_hash_declaration_without_instance_writer + assert_nothing_raised do + @klass.class_inheritable_hash :a, :instance_writer => false + assert_respond_to @klass, :a + assert_respond_to @klass.new, :a + assert_respond_to @klass, :a= + assert !@klass.new.respond_to?(:a=) + end + end + + def test_reader + @klass.class_inheritable_reader :a + assert_nil @klass.a + assert_nil @klass.new.a + + @klass.send(:write_inheritable_attribute, :a, 'a') + + assert_equal 'a', @klass.a + assert_equal 'a', @klass.new.a + assert_equal @klass.a, @klass.new.a + assert_equal @klass.a.object_id, @klass.new.a.object_id + end + + def test_writer + @klass.class_inheritable_reader :a + @klass.class_inheritable_writer :a + + assert_nil @klass.a + assert_nil @klass.new.a + + @klass.a = 'a' + assert_equal 'a', @klass.a + @klass.new.a = 'A' + assert_equal 'A', @klass.a + end + + def test_array + @klass.class_inheritable_array :a + + assert_nil @klass.a + assert_nil @klass.new.a + + @klass.a = %w(a b c) + assert_equal %w(a b c), @klass.a + assert_equal %w(a b c), @klass.new.a + + @klass.new.a = %w(A B C) + assert_equal %w(a b c A B C), @klass.a + assert_equal %w(a b c A B C), @klass.new.a + end + + def test_hash + @klass.class_inheritable_hash :a + + assert_nil @klass.a + assert_nil @klass.new.a + + @klass.a = { :a => 'a' } + assert_equal({ :a => 'a' }, @klass.a) + assert_equal({ :a => 'a' }, @klass.new.a) + + @klass.new.a = { :b => 'b' } + assert_equal({ :a => 'a', :b => 'b' }, @klass.a) + assert_equal({ :a => 'a', :b => 'b' }, @klass.new.a) + end + + def test_inheritance + @klass.class_inheritable_accessor :a + @klass.a = 'a' + + @sub = eval("class FlogMe < @klass; end; FlogMe") + + @klass.class_inheritable_accessor :b + + assert_respond_to @sub, :a + assert_respond_to @sub, :b + assert_equal @klass.a, @sub.a + assert_equal @klass.b, @sub.b + assert_equal 'a', @sub.a + assert_nil @sub.b + + @klass.b = 'b' + assert_not_equal @klass.b, @sub.b + assert_equal 'b', @klass.b + assert_nil @sub.b + + @sub.a = 'A' + assert_not_equal @klass.a, @sub.a + assert_equal 'a', @klass.a + assert_equal 'A', @sub.a + + @sub.b = 'B' + assert_not_equal @klass.b, @sub.b + assert_equal 'b', @klass.b + assert_equal 'B', @sub.b + end + + def test_array_inheritance + @klass.class_inheritable_accessor :a + @klass.a = [] + + @sub = eval("class SubbyArray < @klass; end; SubbyArray") + + assert_equal [], @klass.a + assert_equal [], @sub.a + + @sub.a << :first + + assert_equal [:first], @sub.a + assert_equal [], @klass.a + end + + def test_array_inheritance_ + @klass.class_inheritable_accessor :a + @klass.a = {} + + @sub = eval("class SubbyHash < @klass; end; SubbyHash") + + assert_equal Hash.new, @klass.a + assert_equal Hash.new, @sub.a + + @sub.a[:first] = :first + + assert_equal 1, @sub.a.keys.size + assert_equal 0, @klass.a.keys.size + end + + def test_reset_inheritable_attributes + @klass.class_inheritable_accessor :a + @klass.a = 'a' + + @sub = eval("class Inheriting < @klass; end; Inheriting") + + assert_equal 'a', @klass.a + assert_equal 'a', @sub.a + + @klass.reset_inheritable_attributes + @sub = eval("class NotInheriting < @klass; end; NotInheriting") + + assert_equal nil, @klass.a + assert_equal nil, @sub.a + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/class/delegating_attributes_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/class/delegating_attributes_test.rb new file mode 100644 index 000000000..8fc08a025 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/class/delegating_attributes_test.rb @@ -0,0 +1,115 @@ +require 'abstract_unit' + +module DelegatingFixtures + class Parent + end + + class Child < Parent + superclass_delegating_accessor :some_attribute + end + + class Mokopuna < Child + end +end + +class DelegatingAttributesTest < Test::Unit::TestCase + include DelegatingFixtures + attr_reader :single_class + + def setup + @single_class = Class.new(Object) + end + + def test_simple_reader_declaration + single_class.superclass_delegating_reader :only_reader + # The class and instance should have an accessor, but there + # should be no mutator + assert single_class.respond_to?(:only_reader) + assert single_class.respond_to?(:only_reader?) + assert single_class.public_instance_methods.map(&:to_s).include?("only_reader") + assert single_class.public_instance_methods.map(&:to_s).include?("only_reader?") + assert !single_class.respond_to?(:only_reader=) + end + + def test_simple_writer_declaration + single_class.superclass_delegating_writer :only_writer + # The class should have a mutator, the instances shouldn't + # neither should have an accessor + assert single_class.respond_to?(:only_writer=) + assert !single_class.public_instance_methods.include?("only_writer=") + assert !single_class.public_instance_methods.include?("only_writer") + assert !single_class.respond_to?(:only_writer) + end + + def test_simple_accessor_declaration + single_class.superclass_delegating_accessor :both + # Class should have accessor and mutator + # the instance should have an accessor only + assert single_class.respond_to?(:both) + assert single_class.respond_to?(:both=) + assert single_class.public_instance_methods.map(&:to_s).include?("both") + assert !single_class.public_instance_methods.map(&:to_s).include?("both=") + end + + def test_working_with_simple_attributes + single_class.superclass_delegating_accessor :both + + single_class.both = "HMMM" + + assert_equal "HMMM", single_class.both + assert_equal true, single_class.both? + + assert_equal "HMMM", single_class.new.both + assert_equal true, single_class.new.both? + + single_class.both = false + assert_equal false, single_class.both? + end + + def test_working_with_accessors + single_class.superclass_delegating_reader :only_reader + single_class.instance_variable_set("@only_reader", "reading only") + assert_equal "reading only", single_class.only_reader + assert_equal "reading only", single_class.new.only_reader + end + + def test_working_with_simple_mutators + single_class.superclass_delegating_writer :only_writer + single_class.only_writer="written" + assert_equal "written", single_class.instance_variable_get("@only_writer") + end + + def test_child_class_delegates_to_parent_but_can_be_overridden + parent = Class.new + parent.superclass_delegating_accessor :both + child = Class.new(parent) + parent.both = "1" + assert_equal "1", child.both + + child.both = "2" + assert_equal "1", parent.both + assert_equal "2", child.both + + parent.both = "3" + assert_equal "3", parent.both + assert_equal "2", child.both + end + + def test_delegation_stops_at_the_right_level + assert_nil Mokopuna.some_attribute + assert_nil Child.some_attribute + Child.some_attribute="1" + assert_equal "1", Mokopuna.some_attribute + ensure + Child.some_attribute=nil + end + + def test_delegation_stops_for_nil + Mokopuna.some_attribute = nil + Child.some_attribute="1" + + assert_equal "1", Child.some_attribute + assert_nil Mokopuna.some_attribute + end + +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/class_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/class_test.rb new file mode 100644 index 000000000..0346fad19 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/class_test.rb @@ -0,0 +1,46 @@ +require 'abstract_unit' + +class A +end + +module X + class B + end +end + +module Y + module Z + class C + end + end +end + +class ClassTest < Test::Unit::TestCase + def test_removing_class_in_root_namespace + assert A.is_a?(Class) + Class.remove_class(A) + assert_raises(NameError) { A.is_a?(Class) } + end + + def test_removing_class_in_one_level_namespace + assert X::B.is_a?(Class) + Class.remove_class(X::B) + assert_raises(NameError) { X::B.is_a?(Class) } + end + + def test_removing_class_in_two_level_namespace + assert Y::Z::C.is_a?(Class) + Class.remove_class(Y::Z::C) + assert_raises(NameError) { Y::Z::C.is_a?(Class) } + end + + def test_retrieving_subclasses + @parent = eval("class D; end; D") + @sub = eval("class E < D; end; E") + @subofsub = eval("class F < E; end; F") + assert @parent.subclasses.all? { |i| [@sub.to_s, @subofsub.to_s].include?(i) } + assert_equal 2, @parent.subclasses.size + assert_equal [@subofsub.to_s], @sub.subclasses + assert_equal [], @subofsub.subclasses + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/date_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/date_ext_test.rb new file mode 100644 index 000000000..5925ae3a6 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/date_ext_test.rb @@ -0,0 +1,242 @@ +require 'abstract_unit' + +class DateExtCalculationsTest < Test::Unit::TestCase + def test_to_s + date = Date.new(2005, 2, 21) + assert_equal "2005-02-21", date.to_s + assert_equal "21 Feb", date.to_s(:short) + assert_equal "February 21, 2005", date.to_s(:long) + assert_equal "February 21st, 2005", date.to_s(:long_ordinal) + assert_equal "2005-02-21", date.to_s(:db) + assert_equal "21 Feb 2005", date.to_s(:rfc822) + end + + def test_readable_inspect + assert_equal "Mon, 21 Feb 2005", Date.new(2005, 2, 21).readable_inspect + assert_equal Date.new(2005, 2, 21).readable_inspect, Date.new(2005, 2, 21).inspect + end + + def test_to_time + assert_equal Time.local(2005, 2, 21), Date.new(2005, 2, 21).to_time + assert_equal Time.local_time(2039, 2, 21), Date.new(2039, 2, 21).to_time + end + + def test_to_datetime + assert_equal DateTime.civil(2005, 2, 21), Date.new(2005, 2, 21).to_datetime + assert_equal 0, Date.new(2005, 2, 21).to_datetime.offset # use UTC offset + assert_equal ::Date::ITALY, Date.new(2005, 2, 21).to_datetime.start # use Ruby's default start value + end + + def test_to_date + assert_equal Date.new(2005, 2, 21), Date.new(2005, 2, 21).to_date + end + + def test_change + assert_equal Date.new(2005, 2, 21), Date.new(2005, 2, 11).change(:day => 21) + assert_equal Date.new(2007, 5, 11), Date.new(2005, 2, 11).change(:year => 2007, :month => 5) + assert_equal Date.new(2006,2,22), Date.new(2005,2,22).change(:year => 2006) + assert_equal Date.new(2005,6,22), Date.new(2005,2,22).change(:month => 6) + end + + def test_beginning_of_week + assert_equal Date.new(2005,1,31), Date.new(2005,2,4).beginning_of_week + assert_equal Date.new(2005,11,28), Date.new(2005,11,28).beginning_of_week #monday + assert_equal Date.new(2005,11,28), Date.new(2005,11,29).beginning_of_week #tuesday + assert_equal Date.new(2005,11,28), Date.new(2005,11,30).beginning_of_week #wednesday + assert_equal Date.new(2005,11,28), Date.new(2005,12,01).beginning_of_week #thursday + assert_equal Date.new(2005,11,28), Date.new(2005,12,02).beginning_of_week #friday + assert_equal Date.new(2005,11,28), Date.new(2005,12,03).beginning_of_week #saturday + assert_equal Date.new(2005,11,28), Date.new(2005,12,04).beginning_of_week #sunday + end + + def test_beginning_of_month + assert_equal Date.new(2005,2,1), Date.new(2005,2,22).beginning_of_month + end + + def test_beginning_of_quarter + assert_equal Date.new(2005,1,1), Date.new(2005,2,15).beginning_of_quarter + assert_equal Date.new(2005,1,1), Date.new(2005,1,1).beginning_of_quarter + assert_equal Date.new(2005,10,1), Date.new(2005,12,31).beginning_of_quarter + assert_equal Date.new(2005,4,1), Date.new(2005,6,30).beginning_of_quarter + end + + def test_end_of_week + assert_equal Date.new(2008,2,24), Date.new(2008,2,22).end_of_week + assert_equal Date.new(2008,3,2), Date.new(2008,2,25).end_of_week #monday + assert_equal Date.new(2008,3,2), Date.new(2008,2,26).end_of_week #tuesday + assert_equal Date.new(2008,3,2), Date.new(2008,2,27).end_of_week #wednesday + assert_equal Date.new(2008,3,2), Date.new(2008,2,28).end_of_week #thursday + assert_equal Date.new(2008,3,2), Date.new(2008,2,29).end_of_week #friday + assert_equal Date.new(2008,3,2), Date.new(2008,3,01).end_of_week #saturday + assert_equal Date.new(2008,3,2), Date.new(2008,3,02).end_of_week #sunday + end + + def test_end_of_quarter + assert_equal Date.new(2008,3,31), Date.new(2008,2,15).end_of_quarter + assert_equal Date.new(2008,3,31), Date.new(2008,3,31).end_of_quarter + assert_equal Date.new(2008,12,31), Date.new(2008,10,8).end_of_quarter + assert_equal Date.new(2008,6,30), Date.new(2008,4,14).end_of_quarter + assert_equal Date.new(2008,9,30), Date.new(2008,8,21).end_of_quarter + end + + def test_end_of_year + assert_equal Date.new(2008,12,31).to_s, Date.new(2008,2,22).end_of_year.to_s + end + + def test_end_of_month + assert_equal Date.new(2005,3,31), Date.new(2005,3,20).end_of_month + assert_equal Date.new(2005,2,28), Date.new(2005,2,20).end_of_month + assert_equal Date.new(2005,4,30), Date.new(2005,4,20).end_of_month + + end + + def test_beginning_of_year + assert_equal Date.new(2005,1,1).to_s, Date.new(2005,2,22).beginning_of_year.to_s + end + + def test_months_ago + assert_equal Date.new(2005,5,5), Date.new(2005,6,5).months_ago(1) + assert_equal Date.new(2004,11,5), Date.new(2005,6,5).months_ago(7) + assert_equal Date.new(2004,12,5), Date.new(2005,6,5).months_ago(6) + assert_equal Date.new(2004,6,5), Date.new(2005,6,5).months_ago(12) + assert_equal Date.new(2003,6,5), Date.new(2005,6,5).months_ago(24) + end + + def test_months_since + assert_equal Date.new(2005,7,5), Date.new(2005,6,5).months_since(1) + assert_equal Date.new(2006,1,5), Date.new(2005,12,5).months_since(1) + assert_equal Date.new(2005,12,5), Date.new(2005,6,5).months_since(6) + assert_equal Date.new(2006,6,5), Date.new(2005,12,5).months_since(6) + assert_equal Date.new(2006,1,5), Date.new(2005,6,5).months_since(7) + assert_equal Date.new(2006,6,5), Date.new(2005,6,5).months_since(12) + assert_equal Date.new(2007,6,5), Date.new(2005,6,5).months_since(24) + assert_equal Date.new(2005,4,30), Date.new(2005,3,31).months_since(1) + assert_equal Date.new(2005,2,28), Date.new(2005,1,29).months_since(1) + assert_equal Date.new(2005,2,28), Date.new(2005,1,30).months_since(1) + assert_equal Date.new(2005,2,28), Date.new(2005,1,31).months_since(1) + end + + def test_years_ago + assert_equal Date.new(2004,6,5), Date.new(2005,6,5).years_ago(1) + assert_equal Date.new(1998,6,5), Date.new(2005,6,5).years_ago(7) + assert_equal Date.new(2003,2,28), Date.new(2004,2,29).years_ago(1) # 1 year ago from leap day + end + + def test_years_since + assert_equal Date.new(2006,6,5), Date.new(2005,6,5).years_since(1) + assert_equal Date.new(2012,6,5), Date.new(2005,6,5).years_since(7) + assert_equal Date.new(2182,6,5), Date.new(2005,6,5).years_since(177) + assert_equal Date.new(2005,2,28), Date.new(2004,2,29).years_since(1) # 1 year since leap day + end + + def test_last_year + assert_equal Date.new(2004,6,5), Date.new(2005,6,5).last_year + end + + def test_next_year + assert_equal Date.new(2006,6,5), Date.new(2005,6,5).next_year + end + + def test_yesterday + assert_equal Date.new(2005,2,21), Date.new(2005,2,22).yesterday + assert_equal Date.new(2005,2,28), Date.new(2005,3,2).yesterday.yesterday + end + + def test_tomorrow + assert_equal Date.new(2005,2,23), Date.new(2005,2,22).tomorrow + assert_equal Date.new(2005,3,2), Date.new(2005,2,28).tomorrow.tomorrow + end + + def test_advance + assert_equal Date.new(2006,2,28), Date.new(2005,2,28).advance(:years => 1) + assert_equal Date.new(2005,6,28), Date.new(2005,2,28).advance(:months => 4) + assert_equal Date.new(2005,3,21), Date.new(2005,2,28).advance(:weeks => 3) + assert_equal Date.new(2005,3,5), Date.new(2005,2,28).advance(:days => 5) + assert_equal Date.new(2012,9,28), Date.new(2005,2,28).advance(:years => 7, :months => 7) + assert_equal Date.new(2013,10,3), Date.new(2005,2,28).advance(:years => 7, :months => 19, :days => 5) + assert_equal Date.new(2013,10,17), Date.new(2005,2,28).advance(:years => 7, :months => 19, :weeks => 2, :days => 5) + assert_equal Date.new(2005,2,28), Date.new(2004,2,29).advance(:years => 1) #leap day plus one year + end + + def test_next_week + assert_equal Date.new(2005,2,28), Date.new(2005,2,22).next_week + assert_equal Date.new(2005,3,4), Date.new(2005,2,22).next_week(:friday) + assert_equal Date.new(2006,10,30), Date.new(2006,10,23).next_week + assert_equal Date.new(2006,11,1), Date.new(2006,10,23).next_week(:wednesday) + end + + def test_next_month_on_31st + assert_equal Date.new(2005, 9, 30), Date.new(2005, 8, 31).next_month + end + + def test_last_month_on_31st + assert_equal Date.new(2004, 2, 29), Date.new(2004, 3, 31).last_month + end + + def test_yesterday_constructor + assert_equal Date.today - 1, Date.yesterday + end + + def test_tomorrow_constructor + assert_equal Date.today + 1, Date.tomorrow + end + + def test_since + assert_equal Time.local(2005,2,21,0,0,45), Date.new(2005,2,21).since(45) + end + + def test_ago + assert_equal Time.local(2005,2,20,23,59,15), Date.new(2005,2,21).ago(45) + end + + def test_beginning_of_day + assert_equal Time.local(2005,2,21,0,0,0), Date.new(2005,2,21).beginning_of_day + end + + def test_end_of_day + assert_equal Time.local(2005,2,21,23,59,59), Date.new(2005,2,21).end_of_day + end + + def test_xmlschema + with_env_tz 'US/Eastern' do + assert_match(/^1980-02-28T00:00:00-05:?00$/, Date.new(1980, 2, 28).xmlschema) + assert_match(/^1980-06-28T00:00:00-04:?00$/, Date.new(1980, 6, 28).xmlschema) + # these tests are only of interest on platforms where older dates #to_time fail over to DateTime + if ::DateTime === Date.new(1880, 6, 28).to_time + assert_match(/^1880-02-28T00:00:00-05:?00$/, Date.new(1880, 2, 28).xmlschema) + assert_match(/^1880-06-28T00:00:00-05:?00$/, Date.new(1880, 6, 28).xmlschema) # DateTimes aren't aware of DST rules + end + end + end + + uses_mocha 'TestDateCurrent' do + def test_current_returns_date_today_when_zone_default_not_set + with_env_tz 'US/Central' do + Time.stubs(:now).returns Time.local(1999, 12, 31, 23) + assert_equal Date.new(1999, 12, 31), Date.today + assert_equal Date.new(1999, 12, 31), Date.current + end + end + + def test_current_returns_time_zone_today_when_zone_default_set + silence_warnings do # silence warnings raised by tzinfo gem + Time.zone_default = TimeZone['Eastern Time (US & Canada)'] + with_env_tz 'US/Central' do + Time.stubs(:now).returns Time.local(1999, 12, 31, 23) + assert_equal Date.new(1999, 12, 31), Date.today + assert_equal Date.new(2000, 1, 1), Date.current + end + end + ensure + Time.zone_default = nil + end + end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/date_time_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/date_time_ext_test.rb new file mode 100644 index 000000000..ed45daf40 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/date_time_ext_test.rb @@ -0,0 +1,288 @@ +require 'abstract_unit' + +class DateTimeExtCalculationsTest < Test::Unit::TestCase + def test_to_s + datetime = DateTime.new(2005, 2, 21, 14, 30, 0, 0) + assert_equal "2005-02-21 14:30:00", datetime.to_s(:db) + assert_equal "14:30", datetime.to_s(:time) + assert_equal "21 Feb 14:30", datetime.to_s(:short) + assert_equal "February 21, 2005 14:30", datetime.to_s(:long) + assert_equal "Mon, 21 Feb 2005 14:30:00 +0000", datetime.to_s(:rfc822) + assert_equal "February 21st, 2005 14:30", datetime.to_s(:long_ordinal) + assert_match(/^2005-02-21T14:30:00(Z|\+00:00)$/, datetime.to_s) + end + + def test_readable_inspect + datetime = DateTime.new(2005, 2, 21, 14, 30, 0) + assert_equal "Mon, 21 Feb 2005 14:30:00 +0000", datetime.readable_inspect + assert_equal datetime.readable_inspect, datetime.inspect + end + + def test_custom_date_format + Time::DATE_FORMATS[:custom] = '%Y%m%d%H%M%S' + assert_equal '20050221143000', DateTime.new(2005, 2, 21, 14, 30, 0).to_s(:custom) + Time::DATE_FORMATS.delete(:custom) + end + + def test_to_date + assert_equal Date.new(2005, 2, 21), DateTime.new(2005, 2, 21).to_date + end + + def test_to_datetime + assert_equal DateTime.new(2005, 2, 21), DateTime.new(2005, 2, 21).to_datetime + end + + def test_to_time + assert_equal Time.utc(2005, 2, 21, 10, 11, 12), DateTime.new(2005, 2, 21, 10, 11, 12, 0, 0).to_time + assert_equal Time.utc_time(2039, 2, 21, 10, 11, 12), DateTime.new(2039, 2, 21, 10, 11, 12, 0, 0).to_time + # DateTimes with offsets other than 0 are returned unaltered + assert_equal DateTime.new(2005, 2, 21, 10, 11, 12, Rational(-5, 24)), DateTime.new(2005, 2, 21, 10, 11, 12, Rational(-5, 24)).to_time + end + + def test_seconds_since_midnight + assert_equal 1,DateTime.civil(2005,1,1,0,0,1).seconds_since_midnight + assert_equal 60,DateTime.civil(2005,1,1,0,1,0).seconds_since_midnight + assert_equal 3660,DateTime.civil(2005,1,1,1,1,0).seconds_since_midnight + assert_equal 86399,DateTime.civil(2005,1,1,23,59,59).seconds_since_midnight + end + + def test_beginning_of_week + assert_equal DateTime.civil(2005,1,31), DateTime.civil(2005,2,4,10,10,10).beginning_of_week + assert_equal DateTime.civil(2005,11,28), DateTime.civil(2005,11,28,0,0,0).beginning_of_week #monday + assert_equal DateTime.civil(2005,11,28), DateTime.civil(2005,11,29,0,0,0).beginning_of_week #tuesday + assert_equal DateTime.civil(2005,11,28), DateTime.civil(2005,11,30,0,0,0).beginning_of_week #wednesday + assert_equal DateTime.civil(2005,11,28), DateTime.civil(2005,12,01,0,0,0).beginning_of_week #thursday + assert_equal DateTime.civil(2005,11,28), DateTime.civil(2005,12,02,0,0,0).beginning_of_week #friday + assert_equal DateTime.civil(2005,11,28), DateTime.civil(2005,12,03,0,0,0).beginning_of_week #saturday + assert_equal DateTime.civil(2005,11,28), DateTime.civil(2005,12,04,0,0,0).beginning_of_week #sunday + end + + def test_beginning_of_day + assert_equal DateTime.civil(2005,2,4,0,0,0), DateTime.civil(2005,2,4,10,10,10).beginning_of_day + end + + def test_end_of_day + assert_equal DateTime.civil(2005,2,4,23,59,59), DateTime.civil(2005,2,4,10,10,10).end_of_day + end + + def test_beginning_of_month + assert_equal DateTime.civil(2005,2,1,0,0,0), DateTime.civil(2005,2,22,10,10,10).beginning_of_month + end + + def test_beginning_of_quarter + assert_equal DateTime.civil(2005,1,1,0,0,0), DateTime.civil(2005,2,15,10,10,10).beginning_of_quarter + assert_equal DateTime.civil(2005,1,1,0,0,0), DateTime.civil(2005,1,1,0,0,0).beginning_of_quarter + assert_equal DateTime.civil(2005,10,1,0,0,0), DateTime.civil(2005,12,31,10,10,10).beginning_of_quarter + assert_equal DateTime.civil(2005,4,1,0,0,0), DateTime.civil(2005,6,30,23,59,59).beginning_of_quarter + end + + def test_end_of_month + assert_equal DateTime.civil(2005,3,31,23,59,59), DateTime.civil(2005,3,20,10,10,10).end_of_month + assert_equal DateTime.civil(2005,2,28,23,59,59), DateTime.civil(2005,2,20,10,10,10).end_of_month + assert_equal DateTime.civil(2005,4,30,23,59,59), DateTime.civil(2005,4,20,10,10,10).end_of_month + end + + def test_beginning_of_year + assert_equal DateTime.civil(2005,1,1,0,0,0), DateTime.civil(2005,2,22,10,10,10).beginning_of_year + end + + def test_months_ago + assert_equal DateTime.civil(2005,5,5,10), DateTime.civil(2005,6,5,10,0,0).months_ago(1) + assert_equal DateTime.civil(2004,11,5,10), DateTime.civil(2005,6,5,10,0,0).months_ago(7) + assert_equal DateTime.civil(2004,12,5,10), DateTime.civil(2005,6,5,10,0,0).months_ago(6) + assert_equal DateTime.civil(2004,6,5,10), DateTime.civil(2005,6,5,10,0,0).months_ago(12) + assert_equal DateTime.civil(2003,6,5,10), DateTime.civil(2005,6,5,10,0,0).months_ago(24) + end + + def test_months_since + assert_equal DateTime.civil(2005,7,5,10), DateTime.civil(2005,6,5,10,0,0).months_since(1) + assert_equal DateTime.civil(2006,1,5,10), DateTime.civil(2005,12,5,10,0,0).months_since(1) + assert_equal DateTime.civil(2005,12,5,10), DateTime.civil(2005,6,5,10,0,0).months_since(6) + assert_equal DateTime.civil(2006,6,5,10), DateTime.civil(2005,12,5,10,0,0).months_since(6) + assert_equal DateTime.civil(2006,1,5,10), DateTime.civil(2005,6,5,10,0,0).months_since(7) + assert_equal DateTime.civil(2006,6,5,10), DateTime.civil(2005,6,5,10,0,0).months_since(12) + assert_equal DateTime.civil(2007,6,5,10), DateTime.civil(2005,6,5,10,0,0).months_since(24) + assert_equal DateTime.civil(2005,4,30,10), DateTime.civil(2005,3,31,10,0,0).months_since(1) + assert_equal DateTime.civil(2005,2,28,10), DateTime.civil(2005,1,29,10,0,0).months_since(1) + assert_equal DateTime.civil(2005,2,28,10), DateTime.civil(2005,1,30,10,0,0).months_since(1) + assert_equal DateTime.civil(2005,2,28,10), DateTime.civil(2005,1,31,10,0,0).months_since(1) + end + + def test_years_ago + assert_equal DateTime.civil(2004,6,5,10), DateTime.civil(2005,6,5,10,0,0).years_ago(1) + assert_equal DateTime.civil(1998,6,5,10), DateTime.civil(2005,6,5,10,0,0).years_ago(7) + assert_equal DateTime.civil(2003,2,28,10), DateTime.civil(2004,2,29,10,0,0).years_ago(1) # 1 year ago from leap day + end + + def test_years_since + assert_equal DateTime.civil(2006,6,5,10), DateTime.civil(2005,6,5,10,0,0).years_since(1) + assert_equal DateTime.civil(2012,6,5,10), DateTime.civil(2005,6,5,10,0,0).years_since(7) + assert_equal DateTime.civil(2182,6,5,10), DateTime.civil(2005,6,5,10,0,0).years_since(177) + assert_equal DateTime.civil(2005,2,28,10), DateTime.civil(2004,2,29,10,0,0).years_since(1) # 1 year since leap day + end + + def test_last_year + assert_equal DateTime.civil(2004,6,5,10), DateTime.civil(2005,6,5,10,0,0).last_year + end + + def test_next_year + assert_equal DateTime.civil(2006,6,5,10), DateTime.civil(2005,6,5,10,0,0).next_year + end + + def test_ago + assert_equal DateTime.civil(2005,2,22,10,10,9), DateTime.civil(2005,2,22,10,10,10).ago(1) + assert_equal DateTime.civil(2005,2,22,9,10,10), DateTime.civil(2005,2,22,10,10,10).ago(3600) + assert_equal DateTime.civil(2005,2,20,10,10,10), DateTime.civil(2005,2,22,10,10,10).ago(86400*2) + assert_equal DateTime.civil(2005,2,20,9,9,45), DateTime.civil(2005,2,22,10,10,10).ago(86400*2 + 3600 + 25) + end + + def test_since + assert_equal DateTime.civil(2005,2,22,10,10,11), DateTime.civil(2005,2,22,10,10,10).since(1) + assert_equal DateTime.civil(2005,2,22,11,10,10), DateTime.civil(2005,2,22,10,10,10).since(3600) + assert_equal DateTime.civil(2005,2,24,10,10,10), DateTime.civil(2005,2,22,10,10,10).since(86400*2) + assert_equal DateTime.civil(2005,2,24,11,10,35), DateTime.civil(2005,2,22,10,10,10).since(86400*2 + 3600 + 25) + assert_equal DateTime.civil(2005,2,22,10,10,11), DateTime.civil(2005,2,22,10,10,10).since(1.333) + assert_equal DateTime.civil(2005,2,22,10,10,12), DateTime.civil(2005,2,22,10,10,10).since(1.667) + end + + def test_yesterday + assert_equal DateTime.civil(2005,2,21,10,10,10), DateTime.civil(2005,2,22,10,10,10).yesterday + assert_equal DateTime.civil(2005,2,28,10,10,10), DateTime.civil(2005,3,2,10,10,10).yesterday.yesterday + end + + def test_tomorrow + assert_equal DateTime.civil(2005,2,23,10,10,10), DateTime.civil(2005,2,22,10,10,10).tomorrow + assert_equal DateTime.civil(2005,3,2,10,10,10), DateTime.civil(2005,2,28,10,10,10).tomorrow.tomorrow + end + + def test_change + assert_equal DateTime.civil(2006,2,22,15,15,10), DateTime.civil(2005,2,22,15,15,10).change(:year => 2006) + assert_equal DateTime.civil(2005,6,22,15,15,10), DateTime.civil(2005,2,22,15,15,10).change(:month => 6) + assert_equal DateTime.civil(2012,9,22,15,15,10), DateTime.civil(2005,2,22,15,15,10).change(:year => 2012, :month => 9) + assert_equal DateTime.civil(2005,2,22,16), DateTime.civil(2005,2,22,15,15,10).change(:hour => 16) + assert_equal DateTime.civil(2005,2,22,16,45), DateTime.civil(2005,2,22,15,15,10).change(:hour => 16, :min => 45) + assert_equal DateTime.civil(2005,2,22,15,45), DateTime.civil(2005,2,22,15,15,10).change(:min => 45) + end + + def test_advance + assert_equal DateTime.civil(2006,2,28,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:years => 1) + assert_equal DateTime.civil(2005,6,28,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:months => 4) + assert_equal DateTime.civil(2005,3,21,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:weeks => 3) + assert_equal DateTime.civil(2005,3,5,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:days => 5) + assert_equal DateTime.civil(2012,9,28,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:years => 7, :months => 7) + assert_equal DateTime.civil(2013,10,3,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :days => 5) + assert_equal DateTime.civil(2013,10,17,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5) + assert_equal DateTime.civil(2001,12,27,15,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:years => -3, :months => -2, :days => -1) + assert_equal DateTime.civil(2005,2,28,15,15,10), DateTime.civil(2004,2,29,15,15,10).advance(:years => 1) #leap day plus one year + assert_equal DateTime.civil(2005,2,28,20,15,10), DateTime.civil(2005,2,28,15,15,10).advance(:hours => 5) + assert_equal DateTime.civil(2005,2,28,15,22,10), DateTime.civil(2005,2,28,15,15,10).advance(:minutes => 7) + assert_equal DateTime.civil(2005,2,28,15,15,19), DateTime.civil(2005,2,28,15,15,10).advance(:seconds => 9) + assert_equal DateTime.civil(2005,2,28,20,22,19), DateTime.civil(2005,2,28,15,15,10).advance(:hours => 5, :minutes => 7, :seconds => 9) + assert_equal DateTime.civil(2005,2,28,10,8,1), DateTime.civil(2005,2,28,15,15,10).advance(:hours => -5, :minutes => -7, :seconds => -9) + assert_equal DateTime.civil(2013,10,17,20,22,19), DateTime.civil(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5, :hours => 5, :minutes => 7, :seconds => 9) + + end + + def test_next_week + assert_equal DateTime.civil(2005,2,28), DateTime.civil(2005,2,22,15,15,10).next_week + assert_equal DateTime.civil(2005,3,4), DateTime.civil(2005,2,22,15,15,10).next_week(:friday) + assert_equal DateTime.civil(2006,10,30), DateTime.civil(2006,10,23,0,0,0).next_week + assert_equal DateTime.civil(2006,11,1), DateTime.civil(2006,10,23,0,0,0).next_week(:wednesday) + end + + def test_next_month_on_31st + assert_equal DateTime.civil(2005, 9, 30), DateTime.civil(2005, 8, 31).next_month + end + + def test_last_month_on_31st + assert_equal DateTime.civil(2004, 2, 29), DateTime.civil(2004, 3, 31).last_month + end + + def test_xmlschema + assert_match(/^1880-02-28T15:15:10\+00:?00$/, DateTime.civil(1880, 2, 28, 15, 15, 10).xmlschema) + assert_match(/^1980-02-28T15:15:10\+00:?00$/, DateTime.civil(1980, 2, 28, 15, 15, 10).xmlschema) + assert_match(/^2080-02-28T15:15:10\+00:?00$/, DateTime.civil(2080, 2, 28, 15, 15, 10).xmlschema) + assert_match(/^1880-02-28T15:15:10-06:?00$/, DateTime.civil(1880, 2, 28, 15, 15, 10, -0.25).xmlschema) + assert_match(/^1980-02-28T15:15:10-06:?00$/, DateTime.civil(1980, 2, 28, 15, 15, 10, -0.25).xmlschema) + assert_match(/^2080-02-28T15:15:10-06:?00$/, DateTime.civil(2080, 2, 28, 15, 15, 10, -0.25).xmlschema) + end + + def test_acts_like_time + assert DateTime.new.acts_like_time? + end + + def test_local_offset + with_env_tz 'US/Eastern' do + assert_equal Rational(-5, 24), DateTime.local_offset + end + with_env_tz 'US/Central' do + assert_equal Rational(-6, 24), DateTime.local_offset + end + end + + def test_utc? + assert_equal true, DateTime.civil(2005, 2, 21, 10, 11, 12).utc? + assert_equal true, DateTime.civil(2005, 2, 21, 10, 11, 12, 0).utc? + assert_equal false, DateTime.civil(2005, 2, 21, 10, 11, 12, 0.25).utc? + assert_equal false, DateTime.civil(2005, 2, 21, 10, 11, 12, -0.25).utc? + end + + def test_utc_offset + assert_equal 0, DateTime.civil(2005, 2, 21, 10, 11, 12).utc_offset + assert_equal 0, DateTime.civil(2005, 2, 21, 10, 11, 12, 0).utc_offset + assert_equal 21600, DateTime.civil(2005, 2, 21, 10, 11, 12, 0.25).utc_offset + assert_equal( -21600, DateTime.civil(2005, 2, 21, 10, 11, 12, -0.25).utc_offset ) + assert_equal( -18000, DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-5, 24)).utc_offset ) + end + + def test_utc + assert_equal DateTime.civil(2005, 2, 21, 16, 11, 12, 0), DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc + assert_equal DateTime.civil(2005, 2, 21, 15, 11, 12, 0), DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-5, 24)).utc + assert_equal DateTime.civil(2005, 2, 21, 10, 11, 12, 0), DateTime.civil(2005, 2, 21, 10, 11, 12, 0).utc + assert_equal DateTime.civil(2005, 2, 21, 9, 11, 12, 0), DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(1, 24)).utc + assert_equal DateTime.civil(2005, 2, 21, 9, 11, 12, 0), DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(1, 24)).getutc + end + + def test_formatted_offset_with_utc + assert_equal '+00:00', DateTime.civil(2000).formatted_offset + assert_equal '+0000', DateTime.civil(2000).formatted_offset(false) + assert_equal 'UTC', DateTime.civil(2000).formatted_offset(true, 'UTC') + end + + def test_formatted_offset_with_local + dt = DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-5, 24)) + assert_equal '-05:00', dt.formatted_offset + assert_equal '-0500', dt.formatted_offset(false) + end + + def test_compare_with_time + assert_equal 1, DateTime.civil(2000) <=> Time.utc(1999, 12, 31, 23, 59, 59) + assert_equal 0, DateTime.civil(2000) <=> Time.utc(2000, 1, 1, 0, 0, 0) + assert_equal(-1, DateTime.civil(2000) <=> Time.utc(2000, 1, 1, 0, 0, 1)) + end + + def test_compare_with_datetime + assert_equal 1, DateTime.civil(2000) <=> DateTime.civil(1999, 12, 31, 23, 59, 59) + assert_equal 0, DateTime.civil(2000) <=> DateTime.civil(2000, 1, 1, 0, 0, 0) + assert_equal(-1, DateTime.civil(2000) <=> DateTime.civil(2000, 1, 1, 0, 0, 1)) + end + + def test_compare_with_time_with_zone + assert_equal 1, DateTime.civil(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(1999, 12, 31, 23, 59, 59), TimeZone['UTC'] ) + assert_equal 0, DateTime.civil(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 0), TimeZone['UTC'] ) + assert_equal(-1, DateTime.civil(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 1), TimeZone['UTC'] )) + end + + def test_to_f + assert_equal 946684800.0, DateTime.civil(2000).to_f + assert_equal 946684800.0, DateTime.civil(1999,12,31,19,0,0,Rational(-5,24)).to_f + end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/duplicable_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/duplicable_test.rb new file mode 100644 index 000000000..3ccfedccd --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/duplicable_test.rb @@ -0,0 +1,22 @@ +require 'abstract_unit' + +class DuplicableTest < Test::Unit::TestCase + NO = [nil, false, true, :symbol, 1, 2.3, BigDecimal.new('4.56')] + YES = ['1', Object.new, /foo/, [], {}, Time.now] + + def test_duplicable + NO.each do |v| + assert !v.duplicable? + begin + v.dup + fail + rescue Exception + end + end + + YES.each do |v| + assert v.duplicable? + assert_nothing_raised { v.dup } + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/duration_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/duration_test.rb new file mode 100644 index 000000000..7b17fe71d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/duration_test.rb @@ -0,0 +1,74 @@ +require 'abstract_unit' + +class DurationTest < Test::Unit::TestCase + def test_inspect + assert_equal '1 month', 1.month.inspect + assert_equal '1 month and 1 day', (1.month + 1.day).inspect + assert_equal '6 months and -2 days', (6.months - 2.days).inspect + assert_equal '10 seconds', 10.seconds.inspect + assert_equal '10 years, 2 months, and 1 day', (10.years + 2.months + 1.day).inspect + assert_equal '7 days', 1.week.inspect + assert_equal '14 days', 1.fortnight.inspect + end + + def test_minus_with_duration_does_not_break_subtraction_of_date_from_date + assert_nothing_raised { Date.today - Date.today } + end + + def test_plus_with_time + assert_equal 1 + 1.second, 1.second + 1, "Duration + Numeric should == Numeric + Duration" + end + + def test_argument_error + begin + 1.second.ago('') + flunk("no exception was raised") + rescue ArgumentError => e + assert_equal 'expected a time or date, got ""', e.message, "ensure ArgumentError is not being raised by dependencies.rb" + rescue Exception + flunk("ArgumentError should be raised, but we got #{$!.class} instead") + end + end + + uses_mocha 'TestDurationSinceAndAgoWithCurrentTime' do + def test_since_and_ago_anchored_to_time_now_when_time_zone_default_not_set + Time.zone_default = nil + with_env_tz 'US/Eastern' do + Time.stubs(:now).returns Time.local(2000) + # since + assert_equal false, 5.seconds.since.is_a?(ActiveSupport::TimeWithZone) + assert_equal Time.local(2000,1,1,0,0,5), 5.seconds.since + # ago + assert_equal false, 5.seconds.ago.is_a?(ActiveSupport::TimeWithZone) + assert_equal Time.local(1999,12,31,23,59,55), 5.seconds.ago + end + end + + def test_since_and_ago_anchored_to_time_zone_now_when_time_zone_default_set + silence_warnings do # silence warnings raised by tzinfo gem + Time.zone_default = TimeZone['Eastern Time (US & Canada)'] + with_env_tz 'US/Eastern' do + Time.stubs(:now).returns Time.local(2000) + # since + assert_equal true, 5.seconds.since.is_a?(ActiveSupport::TimeWithZone) + assert_equal Time.utc(2000,1,1,0,0,5), 5.seconds.since.time + assert_equal 'Eastern Time (US & Canada)', 5.seconds.since.time_zone.name + # ago + assert_equal true, 5.seconds.ago.is_a?(ActiveSupport::TimeWithZone) + assert_equal Time.utc(1999,12,31,23,59,55), 5.seconds.ago.time + assert_equal 'Eastern Time (US & Canada)', 5.seconds.ago.time_zone.name + end + end + ensure + Time.zone_default = nil + end + end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/enumerable_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/enumerable_test.rb new file mode 100644 index 000000000..f5facd54a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/enumerable_test.rb @@ -0,0 +1,66 @@ +require 'abstract_unit' + +Payment = Struct.new(:price) +class SummablePayment < Payment + def +(p) self.class.new(price + p.price) end +end + +class EnumerableTests < Test::Unit::TestCase + def test_group_by + names = %w(marcel sam david jeremy) + klass = Struct.new(:name) + objects = (1..50).inject([]) do |people,| + p = klass.new + p.name = names.sort_by { rand }.first + people << p + end + + grouped = objects.group_by { |object| object.name } + + grouped.each do |name, group| + assert group.all? { |person| person.name == name } + end + + assert_equal objects.uniq.map(&:name), grouped.keys + assert({}.merge(grouped), "Could not convert ActiveSupport::OrderedHash into Hash") + end + + def test_sums + assert_equal 30, [5, 15, 10].sum + assert_equal 30, [5, 15, 10].sum { |i| i } + + assert_equal 'abc', %w(a b c).sum + assert_equal 'abc', %w(a b c).sum { |i| i } + + payments = [ Payment.new(5), Payment.new(15), Payment.new(10) ] + assert_equal 30, payments.sum(&:price) + assert_equal 60, payments.sum { |p| p.price * 2 } + + payments = [ SummablePayment.new(5), SummablePayment.new(15) ] + assert_equal SummablePayment.new(20), payments.sum + assert_equal SummablePayment.new(20), payments.sum { |p| p } + end + + def test_nil_sums + expected_raise = TypeError + + assert_raise(expected_raise) { [5, 15, nil].sum } + + payments = [ Payment.new(5), Payment.new(15), Payment.new(10), Payment.new(nil) ] + assert_raise(expected_raise) { payments.sum(&:price) } + + assert_equal 60, payments.sum { |p| p.price.to_i * 2 } + end + + def test_empty_sums + assert_equal 0, [].sum + assert_equal 0, [].sum { |i| i } + assert_equal Payment.new(0), [].sum(Payment.new(0)) + end + + def test_index_by + payments = [ Payment.new(5), Payment.new(15), Payment.new(10) ] + assert_equal({ 5 => payments[0], 15 => payments[1], 10 => payments[2] }, + payments.index_by { |p| p.price }) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/exception_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/exception_test.rb new file mode 100644 index 000000000..dabd8c7c0 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/exception_test.rb @@ -0,0 +1,68 @@ +require 'abstract_unit' + +class ExceptionExtTests < Test::Unit::TestCase + + def get_exception(cls = RuntimeError, msg = nil, trace = nil) + begin raise cls, msg, (trace || caller) + rescue Exception => e # passed Exception + return e + end + end + + def setup + Exception::TraceSubstitutions.clear + end + + def test_clean_backtrace + Exception::TraceSubstitutions << [/\s*hidden.*/, ''] + e = get_exception RuntimeError, 'RAWR', ['bhal.rb', 'rawh hid den stuff is not here', 'almost all'] + assert_kind_of Exception, e + assert_equal ['bhal.rb', 'rawh hid den stuff is not here', 'almost all'], e.clean_backtrace + end + + def test_app_backtrace + Exception::TraceSubstitutions << [/\s*hidden.*/, ''] + e = get_exception RuntimeError, 'RAWR', ['bhal.rb', ' vendor/file.rb some stuff', 'almost all'] + assert_kind_of Exception, e + assert_equal ['bhal.rb', 'almost all'], e.application_backtrace + end + + def test_app_backtrace_with_before + Exception::TraceSubstitutions << [/\s*hidden.*/, ''] + e = get_exception RuntimeError, 'RAWR', ['vendor/file.rb some stuff', 'bhal.rb', ' vendor/file.rb some stuff', 'almost all'] + assert_kind_of Exception, e + assert_equal ['vendor/file.rb some stuff', 'bhal.rb', 'almost all'], e.application_backtrace + end + + def test_framework_backtrace_with_before + Exception::TraceSubstitutions << [/\s*hidden.*/, ''] + e = get_exception RuntimeError, 'RAWR', ['vendor/file.rb some stuff', 'bhal.rb', ' vendor/file.rb some stuff', 'almost all'] + assert_kind_of Exception, e + assert_equal ['vendor/file.rb some stuff', ' vendor/file.rb some stuff'], e.framework_backtrace + end + + def test_backtrace_should_clean_paths + Exception::TraceSubstitutions << [/\s*hidden.*/, ''] + e = get_exception RuntimeError, 'RAWR', ['a/b/c/../d/../../../bhal.rb', 'rawh hid den stuff is not here', 'almost all'] + assert_kind_of Exception, e + assert_equal ['bhal.rb', 'rawh hid den stuff is not here', 'almost all'], e.clean_backtrace + end + + def test_clean_message_should_clean_paths + Exception::TraceSubstitutions << [/\s*hidden.*/, ''] + e = get_exception RuntimeError, "I dislike a/z/x/../../b/y/../c", ['a/b/c/../d/../../../bhal.rb', 'rawh hid den stuff is not here', 'almost all'] + assert_kind_of Exception, e + assert_equal "I dislike a/b/c", e.clean_message + end + + def test_app_trace_should_be_empty_when_no_app_frames + Exception::TraceSubstitutions << [/\s*hidden.*/, ''] + e = get_exception RuntimeError, 'RAWR', ['vendor/file.rb some stuff', 'generated/bhal.rb', ' vendor/file.rb some stuff', 'generated/almost all'] + assert_kind_of Exception, e + assert_equal [], e.application_backtrace + end + + def test_frozen_error + assert_raise(ActiveSupport::FrozenObjectError) { "foo".freeze.gsub!(/oo/,'aa') } + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/file_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/file_test.rb new file mode 100644 index 000000000..5efe357e9 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/file_test.rb @@ -0,0 +1,29 @@ +require 'abstract_unit' + +class AtomicWriteTest < Test::Unit::TestCase + + def test_atomic_write_without_errors + contents = "Atomic Text" + File.atomic_write(file_name, Dir.pwd) do |file| + file.write(contents) + assert !File.exist?(file_name) + end + assert File.exist?(file_name) + assert_equal contents, File.read(file_name) + ensure + File.unlink(file_name) rescue nil + end + + def test_atomic_write_doesnt_write_when_block_raises + File.atomic_write(file_name) do |file| + file.write("testing") + raise "something bad" + end + rescue + assert !File.exist?(file_name) + end + + def file_name + "atomic.file" + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/float_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/float_ext_test.rb new file mode 100644 index 000000000..d19b5ecf4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/float_ext_test.rb @@ -0,0 +1,25 @@ +require 'abstract_unit' + +class FloatExtRoundingTests < Test::Unit::TestCase + def test_round_for_positive_number + assert_equal 1, 1.4.round + assert_equal 2, 1.6.round + assert_equal 2, 1.6.round(0) + assert_equal 1.4, 1.4.round(1) + assert_equal 1.4, 1.4.round(3) + assert_equal 1.5, 1.45.round(1) + assert_equal 1.45, 1.445.round(2) + end + + def test_round_for_negative_number + assert_equal( -1, -1.4.round ) + assert_equal( -2, -1.6.round ) + assert_equal( -1.4, -1.4.round(1) ) + assert_equal( -1.5, -1.45.round(1) ) + end + + def test_round_with_negative_precision + assert_equal 123460.0, 123456.0.round(-1) + assert_equal 123500.0, 123456.0.round(-2) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/hash_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/hash_ext_test.rb new file mode 100644 index 000000000..69028a123 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/hash_ext_test.rb @@ -0,0 +1,815 @@ +require 'abstract_unit' + +class HashExtTest < Test::Unit::TestCase + def setup + @strings = { 'a' => 1, 'b' => 2 } + @symbols = { :a => 1, :b => 2 } + @mixed = { :a => 1, 'b' => 2 } + @fixnums = { 0 => 1, 1 => 2 } + if RUBY_VERSION < '1.9.0' + @illegal_symbols = { "\0" => 1, "" => 2, [] => 3 } + else + @illegal_symbols = { [] => 3 } + end + end + + def test_methods + h = {} + assert_respond_to h, :symbolize_keys + assert_respond_to h, :symbolize_keys! + assert_respond_to h, :stringify_keys + assert_respond_to h, :stringify_keys! + assert_respond_to h, :to_options + assert_respond_to h, :to_options! + end + + def test_symbolize_keys + assert_equal @symbols, @symbols.symbolize_keys + assert_equal @symbols, @strings.symbolize_keys + assert_equal @symbols, @mixed.symbolize_keys + end + + def test_symbolize_keys! + assert_equal @symbols, @symbols.dup.symbolize_keys! + assert_equal @symbols, @strings.dup.symbolize_keys! + assert_equal @symbols, @mixed.dup.symbolize_keys! + end + + def test_symbolize_keys_preserves_keys_that_cant_be_symbolized + assert_equal @illegal_symbols, @illegal_symbols.symbolize_keys + assert_equal @illegal_symbols, @illegal_symbols.dup.symbolize_keys! + end + + def test_symbolize_keys_preserves_fixnum_keys + assert_equal @fixnums, @fixnums.symbolize_keys + assert_equal @fixnums, @fixnums.dup.symbolize_keys! + end + + def test_stringify_keys + assert_equal @strings, @symbols.stringify_keys + assert_equal @strings, @strings.stringify_keys + assert_equal @strings, @mixed.stringify_keys + end + + def test_stringify_keys! + assert_equal @strings, @symbols.dup.stringify_keys! + assert_equal @strings, @strings.dup.stringify_keys! + assert_equal @strings, @mixed.dup.stringify_keys! + end + + def test_indifferent_assorted + @strings = @strings.with_indifferent_access + @symbols = @symbols.with_indifferent_access + @mixed = @mixed.with_indifferent_access + + assert_equal 'a', @strings.send!(:convert_key, :a) + + assert_equal 1, @strings.fetch('a') + assert_equal 1, @strings.fetch(:a.to_s) + assert_equal 1, @strings.fetch(:a) + + hashes = { :@strings => @strings, :@symbols => @symbols, :@mixed => @mixed } + method_map = { :'[]' => 1, :fetch => 1, :values_at => [1], + :has_key? => true, :include? => true, :key? => true, + :member? => true } + + hashes.each do |name, hash| + method_map.sort_by { |m| m.to_s }.each do |meth, expected| + assert_equal(expected, hash.send!(meth, 'a'), + "Calling #{name}.#{meth} 'a'") + assert_equal(expected, hash.send!(meth, :a), + "Calling #{name}.#{meth} :a") + end + end + + assert_equal [1, 2], @strings.values_at('a', 'b') + assert_equal [1, 2], @strings.values_at(:a, :b) + assert_equal [1, 2], @symbols.values_at('a', 'b') + assert_equal [1, 2], @symbols.values_at(:a, :b) + assert_equal [1, 2], @mixed.values_at('a', 'b') + assert_equal [1, 2], @mixed.values_at(:a, :b) + end + + def test_indifferent_reading + hash = HashWithIndifferentAccess.new + hash["a"] = 1 + hash["b"] = true + hash["c"] = false + hash["d"] = nil + + assert_equal 1, hash[:a] + assert_equal true, hash[:b] + assert_equal false, hash[:c] + assert_equal nil, hash[:d] + assert_equal nil, hash[:e] + end + + def test_indifferent_reading_with_nonnil_default + hash = HashWithIndifferentAccess.new(1) + hash["a"] = 1 + hash["b"] = true + hash["c"] = false + hash["d"] = nil + + assert_equal 1, hash[:a] + assert_equal true, hash[:b] + assert_equal false, hash[:c] + assert_equal nil, hash[:d] + assert_equal 1, hash[:e] + end + + def test_indifferent_writing + hash = HashWithIndifferentAccess.new + hash[:a] = 1 + hash['b'] = 2 + hash[3] = 3 + + assert_equal hash['a'], 1 + assert_equal hash['b'], 2 + assert_equal hash[:a], 1 + assert_equal hash[:b], 2 + assert_equal hash[3], 3 + end + + def test_indifferent_update + hash = HashWithIndifferentAccess.new + hash[:a] = 'a' + hash['b'] = 'b' + + updated_with_strings = hash.update(@strings) + updated_with_symbols = hash.update(@symbols) + updated_with_mixed = hash.update(@mixed) + + assert_equal updated_with_strings[:a], 1 + assert_equal updated_with_strings['a'], 1 + assert_equal updated_with_strings['b'], 2 + + assert_equal updated_with_symbols[:a], 1 + assert_equal updated_with_symbols['b'], 2 + assert_equal updated_with_symbols[:b], 2 + + assert_equal updated_with_mixed[:a], 1 + assert_equal updated_with_mixed['b'], 2 + + assert [updated_with_strings, updated_with_symbols, updated_with_mixed].all? { |h| h.keys.size == 2 } + end + + def test_indifferent_merging + hash = HashWithIndifferentAccess.new + hash[:a] = 'failure' + hash['b'] = 'failure' + + other = { 'a' => 1, :b => 2 } + + merged = hash.merge(other) + + assert_equal HashWithIndifferentAccess, merged.class + assert_equal 1, merged[:a] + assert_equal 2, merged['b'] + + hash.update(other) + + assert_equal 1, hash[:a] + assert_equal 2, hash['b'] + end + + def test_indifferent_deleting + get_hash = proc{ { :a => 'foo' }.with_indifferent_access } + hash = get_hash.call + assert_equal hash.delete(:a), 'foo' + assert_equal hash.delete(:a), nil + hash = get_hash.call + assert_equal hash.delete('a'), 'foo' + assert_equal hash.delete('a'), nil + end + + def test_indifferent_to_hash + # Should convert to a Hash with String keys. + assert_equal @strings, @mixed.with_indifferent_access.to_hash + + # Should preserve the default value. + mixed_with_default = @mixed.dup + mixed_with_default.default = '1234' + roundtrip = mixed_with_default.with_indifferent_access.to_hash + assert_equal @strings, roundtrip + assert_equal '1234', roundtrip.default + end + + def test_indifferent_hash_with_array_of_hashes + hash = { "urls" => { "url" => [ { "address" => "1" }, { "address" => "2" } ] }}.with_indifferent_access + assert_equal "1", hash[:urls][:url].first[:address] + end + + def test_stringify_and_symbolize_keys_on_indifferent_preserves_hash + h = HashWithIndifferentAccess.new + h[:first] = 1 + h.stringify_keys! + assert_equal 1, h['first'] + h = HashWithIndifferentAccess.new + h['first'] = 1 + h.symbolize_keys! + assert_equal 1, h[:first] + end + + def test_to_options_on_indifferent_preserves_hash + h = HashWithIndifferentAccess.new + h['first'] = 1 + h.to_options! + assert_equal 1, h['first'] + end + + + def test_indifferent_subhashes + h = {'user' => {'id' => 5}}.with_indifferent_access + ['user', :user].each {|user| [:id, 'id'].each {|id| assert_equal 5, h[user][id], "h[#{user.inspect}][#{id.inspect}] should be 5"}} + + h = {:user => {:id => 5}}.with_indifferent_access + ['user', :user].each {|user| [:id, 'id'].each {|id| assert_equal 5, h[user][id], "h[#{user.inspect}][#{id.inspect}] should be 5"}} + end + + def test_assert_valid_keys + assert_nothing_raised do + { :failure => "stuff", :funny => "business" }.assert_valid_keys([ :failure, :funny ]) + { :failure => "stuff", :funny => "business" }.assert_valid_keys(:failure, :funny) + end + + assert_raises(ArgumentError, "Unknown key(s): failore") do + { :failore => "stuff", :funny => "business" }.assert_valid_keys([ :failure, :funny ]) + { :failore => "stuff", :funny => "business" }.assert_valid_keys(:failure, :funny) + end + end + + def test_assorted_keys_not_stringified + original = {Object.new => 2, 1 => 2, [] => true} + indiff = original.with_indifferent_access + assert(!indiff.keys.any? {|k| k.kind_of? String}, "A key was converted to a string!") + end + + def test_reverse_merge + defaults = { :a => "x", :b => "y", :c => 10 }.freeze + options = { :a => 1, :b => 2 } + expected = { :a => 1, :b => 2, :c => 10 } + + # Should merge defaults into options, creating a new hash. + assert_equal expected, options.reverse_merge(defaults) + assert_not_equal expected, options + + # Should merge! defaults into options, replacing options. + merged = options.dup + assert_equal expected, merged.reverse_merge!(defaults) + assert_equal expected, merged + + # Should be an alias for reverse_merge! + merged = options.dup + assert_equal expected, merged.reverse_update(defaults) + assert_equal expected, merged + end + + def test_diff + assert_equal({ :a => 2 }, { :a => 2, :b => 5 }.diff({ :a => 1, :b => 5 })) + end + + def test_slice + original = { :a => 'x', :b => 'y', :c => 10 } + expected = { :a => 'x', :b => 'y' } + + # Should return a new hash with only the given keys. + assert_equal expected, original.slice(:a, :b) + assert_not_equal expected, original + + # Should replace the hash with only the given keys. + assert_equal expected, original.slice!(:a, :b) + assert_equal expected, original + end + + def test_indifferent_slice + original = { :a => 'x', :b => 'y', :c => 10 }.with_indifferent_access + expected = { :a => 'x', :b => 'y' }.with_indifferent_access + + [['a', 'b'], [:a, :b]].each do |keys| + # Should return a new hash with only the given keys. + assert_equal expected, original.slice(*keys), keys.inspect + assert_not_equal expected, original + + # Should replace the hash with only the given keys. + copy = original.dup + assert_equal expected, copy.slice!(*keys) + assert_equal expected, copy + end + end + + def test_except + original = { :a => 'x', :b => 'y', :c => 10 } + expected = { :a => 'x', :b => 'y' } + + # Should return a new hash with only the given keys. + assert_equal expected, original.except(:c) + assert_not_equal expected, original + + # Should replace the hash with only the given keys. + assert_equal expected, original.except!(:c) + assert_equal expected, original + end +end + +class IWriteMyOwnXML + def to_xml(options = {}) + options[:indent] ||= 2 + xml = options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent]) + xml.instruct! unless options[:skip_instruct] + xml.level_one do + xml.tag!(:second_level, 'content') + end + end +end + +class HashToXmlTest < Test::Unit::TestCase + def setup + @xml_options = { :root => :person, :skip_instruct => true, :indent => 0 } + end + + def test_one_level + xml = { :name => "David", :street => "Paulina" }.to_xml(@xml_options) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<street>Paulina</street>)) + assert xml.include?(%(<name>David</name>)) + end + + def test_one_level_dasherize_false + xml = { :name => "David", :street_name => "Paulina" }.to_xml(@xml_options.merge(:dasherize => false)) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<street_name>Paulina</street_name>)) + assert xml.include?(%(<name>David</name>)) + end + + def test_one_level_dasherize_true + xml = { :name => "David", :street_name => "Paulina" }.to_xml(@xml_options.merge(:dasherize => true)) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<street-name>Paulina</street-name>)) + assert xml.include?(%(<name>David</name>)) + end + + def test_one_level_with_types + xml = { :name => "David", :street => "Paulina", :age => 26, :age_in_millis => 820497600000, :moved_on => Date.new(2005, 11, 15), :resident => :yes }.to_xml(@xml_options) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<street>Paulina</street>)) + assert xml.include?(%(<name>David</name>)) + assert xml.include?(%(<age type="integer">26</age>)) + assert xml.include?(%(<age-in-millis type="integer">820497600000</age-in-millis>)) + assert xml.include?(%(<moved-on type="date">2005-11-15</moved-on>)) + assert xml.include?(%(<resident type="symbol">yes</resident>)) + end + + def test_one_level_with_nils + xml = { :name => "David", :street => "Paulina", :age => nil }.to_xml(@xml_options) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<street>Paulina</street>)) + assert xml.include?(%(<name>David</name>)) + assert xml.include?(%(<age nil="true"></age>)) + end + + def test_one_level_with_skipping_types + xml = { :name => "David", :street => "Paulina", :age => nil }.to_xml(@xml_options.merge(:skip_types => true)) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<street>Paulina</street>)) + assert xml.include?(%(<name>David</name>)) + assert xml.include?(%(<age nil="true"></age>)) + end + + def test_one_level_with_yielding + xml = { :name => "David", :street => "Paulina" }.to_xml(@xml_options) do |x| + x.creator("Rails") + end + + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<street>Paulina</street>)) + assert xml.include?(%(<name>David</name>)) + assert xml.include?(%(<creator>Rails</creator>)) + end + + def test_two_levels + xml = { :name => "David", :address => { :street => "Paulina" } }.to_xml(@xml_options) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<address><street>Paulina</street></address>)) + assert xml.include?(%(<name>David</name>)) + end + + def test_two_levels_with_second_level_overriding_to_xml + xml = { :name => "David", :address => { :street => "Paulina" }, :child => IWriteMyOwnXML.new }.to_xml(@xml_options) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<address><street>Paulina</street></address>)) + assert xml.include?(%(<level_one><second_level>content</second_level></level_one>)) + end + + def test_two_levels_with_array + xml = { :name => "David", :addresses => [{ :street => "Paulina" }, { :street => "Evergreen" }] }.to_xml(@xml_options) + assert_equal "<person>", xml.first(8) + assert xml.include?(%(<addresses type="array"><address>)) + assert xml.include?(%(<address><street>Paulina</street></address>)) + assert xml.include?(%(<address><street>Evergreen</street></address>)) + assert xml.include?(%(<name>David</name>)) + end + + def test_three_levels_with_array + xml = { :name => "David", :addresses => [{ :streets => [ { :name => "Paulina" }, { :name => "Paulina" } ] } ] }.to_xml(@xml_options) + assert xml.include?(%(<addresses type="array"><address><streets type="array"><street><name>)) + end + + def test_single_record_from_xml + topic_xml = <<-EOT + <topic> + <title>The First Topic</title> + <author-name>David</author-name> + <id type="integer">1</id> + <approved type="boolean"> true </approved> + <replies-count type="integer">0</replies-count> + <replies-close-in type="integer">2592000000</replies-close-in> + <written-on type="date">2003-07-16</written-on> + <viewed-at type="datetime">2003-07-16T09:28:00+0000</viewed-at> + <content type="yaml">--- \n1: should be an integer\n:message: Have a nice day\narray: \n- should-have-dashes: true\n should_have_underscores: true\n</content> + <author-email-address>david@loudthinking.com</author-email-address> + <parent-id></parent-id> + <ad-revenue type="decimal">1.5</ad-revenue> + <optimum-viewing-angle type="float">135</optimum-viewing-angle> + <resident type="symbol">yes</resident> + </topic> + EOT + + expected_topic_hash = { + :title => "The First Topic", + :author_name => "David", + :id => 1, + :approved => true, + :replies_count => 0, + :replies_close_in => 2592000000, + :written_on => Date.new(2003, 7, 16), + :viewed_at => Time.utc(2003, 7, 16, 9, 28), + :content => { :message => "Have a nice day", 1 => "should be an integer", "array" => [{ "should-have-dashes" => true, "should_have_underscores" => true }] }, + :author_email_address => "david@loudthinking.com", + :parent_id => nil, + :ad_revenue => BigDecimal("1.50"), + :optimum_viewing_angle => 135.0, + :resident => :yes + }.stringify_keys + + assert_equal expected_topic_hash, Hash.from_xml(topic_xml)["topic"] + end + + def test_single_record_from_xml_with_nil_values + topic_xml = <<-EOT + <topic> + <title></title> + <id type="integer"></id> + <approved type="boolean"></approved> + <written-on type="date"></written-on> + <viewed-at type="datetime"></viewed-at> + <content type="yaml"></content> + <parent-id></parent-id> + </topic> + EOT + + expected_topic_hash = { + :title => nil, + :id => nil, + :approved => nil, + :written_on => nil, + :viewed_at => nil, + :content => nil, + :parent_id => nil + }.stringify_keys + + assert_equal expected_topic_hash, Hash.from_xml(topic_xml)["topic"] + end + + def test_multiple_records_from_xml + topics_xml = <<-EOT + <topics type="array"> + <topic> + <title>The First Topic</title> + <author-name>David</author-name> + <id type="integer">1</id> + <approved type="boolean">false</approved> + <replies-count type="integer">0</replies-count> + <replies-close-in type="integer">2592000000</replies-close-in> + <written-on type="date">2003-07-16</written-on> + <viewed-at type="datetime">2003-07-16T09:28:00+0000</viewed-at> + <content>Have a nice day</content> + <author-email-address>david@loudthinking.com</author-email-address> + <parent-id nil="true"></parent-id> + </topic> + <topic> + <title>The Second Topic</title> + <author-name>Jason</author-name> + <id type="integer">1</id> + <approved type="boolean">false</approved> + <replies-count type="integer">0</replies-count> + <replies-close-in type="integer">2592000000</replies-close-in> + <written-on type="date">2003-07-16</written-on> + <viewed-at type="datetime">2003-07-16T09:28:00+0000</viewed-at> + <content>Have a nice day</content> + <author-email-address>david@loudthinking.com</author-email-address> + <parent-id></parent-id> + </topic> + </topics> + EOT + + expected_topic_hash = { + :title => "The First Topic", + :author_name => "David", + :id => 1, + :approved => false, + :replies_count => 0, + :replies_close_in => 2592000000, + :written_on => Date.new(2003, 7, 16), + :viewed_at => Time.utc(2003, 7, 16, 9, 28), + :content => "Have a nice day", + :author_email_address => "david@loudthinking.com", + :parent_id => nil + }.stringify_keys + + assert_equal expected_topic_hash, Hash.from_xml(topics_xml)["topics"].first + end + + def test_single_record_from_xml_with_attributes_other_than_type + topic_xml = <<-EOT + <rsp stat="ok"> + <photos page="1" pages="1" perpage="100" total="16"> + <photo id="175756086" owner="55569174@N00" secret="0279bf37a1" server="76" title="Colored Pencil PhotoBooth Fun" ispublic="1" isfriend="0" isfamily="0"/> + </photos> + </rsp> + EOT + + expected_topic_hash = { + :id => "175756086", + :owner => "55569174@N00", + :secret => "0279bf37a1", + :server => "76", + :title => "Colored Pencil PhotoBooth Fun", + :ispublic => "1", + :isfriend => "0", + :isfamily => "0", + }.stringify_keys + + assert_equal expected_topic_hash, Hash.from_xml(topic_xml)["rsp"]["photos"]["photo"] + end + + def test_empty_array_from_xml + blog_xml = <<-XML + <blog> + <posts type="array"></posts> + </blog> + XML + expected_blog_hash = {"blog" => {"posts" => []}} + assert_equal expected_blog_hash, Hash.from_xml(blog_xml) + end + + def test_empty_array_with_whitespace_from_xml + blog_xml = <<-XML + <blog> + <posts type="array"> + </posts> + </blog> + XML + expected_blog_hash = {"blog" => {"posts" => []}} + assert_equal expected_blog_hash, Hash.from_xml(blog_xml) + end + + def test_array_with_one_entry_from_xml + blog_xml = <<-XML + <blog> + <posts type="array"> + <post>a post</post> + </posts> + </blog> + XML + expected_blog_hash = {"blog" => {"posts" => ["a post"]}} + assert_equal expected_blog_hash, Hash.from_xml(blog_xml) + end + + def test_array_with_multiple_entries_from_xml + blog_xml = <<-XML + <blog> + <posts type="array"> + <post>a post</post> + <post>another post</post> + </posts> + </blog> + XML + expected_blog_hash = {"blog" => {"posts" => ["a post", "another post"]}} + assert_equal expected_blog_hash, Hash.from_xml(blog_xml) + end + + def test_file_from_xml + blog_xml = <<-XML + <blog> + <logo type="file" name="logo.png" content_type="image/png"> + </logo> + </blog> + XML + hash = Hash.from_xml(blog_xml) + assert hash.has_key?('blog') + assert hash['blog'].has_key?('logo') + + file = hash['blog']['logo'] + assert_equal 'logo.png', file.original_filename + assert_equal 'image/png', file.content_type + end + + def test_file_from_xml_with_defaults + blog_xml = <<-XML + <blog> + <logo type="file"> + </logo> + </blog> + XML + file = Hash.from_xml(blog_xml)['blog']['logo'] + assert_equal 'untitled', file.original_filename + assert_equal 'application/octet-stream', file.content_type + end + + def test_xsd_like_types_from_xml + bacon_xml = <<-EOT + <bacon> + <weight type="double">0.5</weight> + <price type="decimal">12.50</price> + <chunky type="boolean"> 1 </chunky> + <expires-at type="dateTime">2007-12-25T12:34:56+0000</expires-at> + <notes type="string"></notes> + <illustration type="base64Binary">YmFiZS5wbmc=</illustration> + </bacon> + EOT + + expected_bacon_hash = { + :weight => 0.5, + :chunky => true, + :price => BigDecimal("12.50"), + :expires_at => Time.utc(2007,12,25,12,34,56), + :notes => "", + :illustration => "babe.png" + }.stringify_keys + + assert_equal expected_bacon_hash, Hash.from_xml(bacon_xml)["bacon"] + end + + def test_type_trickles_through_when_unknown + product_xml = <<-EOT + <product> + <weight type="double">0.5</weight> + <image type="ProductImage"><filename>image.gif</filename></image> + + </product> + EOT + + expected_product_hash = { + :weight => 0.5, + :image => {'type' => 'ProductImage', 'filename' => 'image.gif' }, + }.stringify_keys + + assert_equal expected_product_hash, Hash.from_xml(product_xml)["product"] + end + + def test_should_use_default_value_for_unknown_key + hash_wia = HashWithIndifferentAccess.new(3) + assert_equal 3, hash_wia[:new_key] + end + + def test_should_use_default_value_if_no_key_is_supplied + hash_wia = HashWithIndifferentAccess.new(3) + assert_equal 3, hash_wia.default + end + + def test_should_nil_if_no_default_value_is_supplied + hash_wia = HashWithIndifferentAccess.new + assert_nil hash_wia.default + end + + def test_should_copy_the_default_value_when_converting_to_hash_with_indifferent_access + hash = Hash.new(3) + hash_wia = hash.with_indifferent_access + assert_equal 3, hash_wia.default + end + + # The XML builder seems to fail miserably when trying to tag something + # with the same name as a Kernel method (throw, test, loop, select ...) + def test_kernel_method_names_to_xml + hash = { :throw => { :ball => 'red' } } + expected = '<person><throw><ball>red</ball></throw></person>' + + assert_nothing_raised do + assert_equal expected, hash.to_xml(@xml_options) + end + end + + def test_empty_string_works_for_typecast_xml_value + assert_nothing_raised do + Hash.send!(:typecast_xml_value, "") + end + end + + def test_escaping_to_xml + hash = { + :bare_string => 'First & Last Name', + :pre_escaped_string => 'First & Last Name' + }.stringify_keys + + expected_xml = '<person><bare-string>First & Last Name</bare-string><pre-escaped-string>First &amp; Last Name</pre-escaped-string></person>' + assert_equal expected_xml, hash.to_xml(@xml_options) + end + + def test_unescaping_from_xml + xml_string = '<person><bare-string>First & Last Name</bare-string><pre-escaped-string>First &amp; Last Name</pre-escaped-string></person>' + expected_hash = { + :bare_string => 'First & Last Name', + :pre_escaped_string => 'First & Last Name' + }.stringify_keys + assert_equal expected_hash, Hash.from_xml(xml_string)['person'] + end + + def test_roundtrip_to_xml_from_xml + hash = { + :bare_string => 'First & Last Name', + :pre_escaped_string => 'First & Last Name' + }.stringify_keys + + assert_equal hash, Hash.from_xml(hash.to_xml(@xml_options))['person'] + end + + def test_datetime_xml_type_with_utc_time + alert_xml = <<-XML + <alert> + <alert_at type="datetime">2008-02-10T15:30:45Z</alert_at> + </alert> + XML + alert_at = Hash.from_xml(alert_xml)['alert']['alert_at'] + assert alert_at.utc? + assert_equal Time.utc(2008, 2, 10, 15, 30, 45), alert_at + end + + def test_datetime_xml_type_with_non_utc_time + alert_xml = <<-XML + <alert> + <alert_at type="datetime">2008-02-10T10:30:45-05:00</alert_at> + </alert> + XML + alert_at = Hash.from_xml(alert_xml)['alert']['alert_at'] + assert alert_at.utc? + assert_equal Time.utc(2008, 2, 10, 15, 30, 45), alert_at + end + + def test_datetime_xml_type_with_far_future_date + alert_xml = <<-XML + <alert> + <alert_at type="datetime">2050-02-10T15:30:45Z</alert_at> + </alert> + XML + alert_at = Hash.from_xml(alert_xml)['alert']['alert_at'] + assert alert_at.utc? + assert_equal 2050, alert_at.year + assert_equal 2, alert_at.month + assert_equal 10, alert_at.day + assert_equal 15, alert_at.hour + assert_equal 30, alert_at.min + assert_equal 45, alert_at.sec + end +end + +class QueryTest < Test::Unit::TestCase + def test_simple_conversion + assert_query_equal 'a=10', :a => 10 + end + + def test_cgi_escaping + assert_query_equal 'a%3Ab=c+d', 'a:b' => 'c d' + end + + def test_nil_parameter_value + empty = Object.new + def empty.to_param; nil end + assert_query_equal 'a=', 'a' => empty + end + + def test_nested_conversion + assert_query_equal 'person%5Blogin%5D=seckar&person%5Bname%5D=Nicholas', + :person => {:name => 'Nicholas', :login => 'seckar'} + end + + def test_multiple_nested + assert_query_equal 'account%5Bperson%5D%5Bid%5D=20&person%5Bid%5D=10', + :person => {:id => 10}, :account => {:person => {:id => 20}} + end + + def test_array_values + assert_query_equal 'person%5Bid%5D%5B%5D=10&person%5Bid%5D%5B%5D=20', + :person => {:id => [10, 20]} + end + + def test_array_values_are_not_sorted + assert_query_equal 'person%5Bid%5D%5B%5D=20&person%5Bid%5D%5B%5D=10', + :person => {:id => [20, 10]} + end + + private + def assert_query_equal(expected, actual, message = nil) + assert_equal expected.split('&'), actual.to_query.split('&') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/integer_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/integer_ext_test.rb new file mode 100644 index 000000000..5ab36226a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/integer_ext_test.rb @@ -0,0 +1,37 @@ +require 'abstract_unit' + +class IntegerExtTest < Test::Unit::TestCase + def test_even + assert [ -2, 0, 2, 4 ].all? { |i| i.even? } + assert ![ -1, 1, 3 ].all? { |i| i.even? } + + assert 22953686867719691230002707821868552601124472329079.odd? + assert !22953686867719691230002707821868552601124472329079.even? + assert 22953686867719691230002707821868552601124472329080.even? + assert !22953686867719691230002707821868552601124472329080.odd? + end + + def test_odd + assert ![ -2, 0, 2, 4 ].all? { |i| i.odd? } + assert [ -1, 1, 3 ].all? { |i| i.odd? } + assert 1000000000000000000000000000000000000000000000000000000001.odd? + end + + def test_multiple_of + [ -7, 0, 7, 14 ].each { |i| assert i.multiple_of?(7) } + [ -7, 7, 14 ].each { |i| assert ! i.multiple_of?(6) } + # test with a prime + assert !22953686867719691230002707821868552601124472329079.multiple_of?(2) + assert !22953686867719691230002707821868552601124472329079.multiple_of?(3) + assert !22953686867719691230002707821868552601124472329079.multiple_of?(5) + assert !22953686867719691230002707821868552601124472329079.multiple_of?(7) + end + + def test_ordinalize + # These tests are mostly just to ensure that the ordinalize method exists + # It's results are tested comprehensively in the inflector test cases. + assert_equal '1st', 1.ordinalize + assert_equal '8th', 8.ordinalize + 1000000000000000000000000000000000000000000000000000000000000000000000.ordinalize + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/kernel_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/kernel_test.rb new file mode 100644 index 000000000..e826ec161 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/kernel_test.rb @@ -0,0 +1,43 @@ +require 'abstract_unit' + +class KernelTest < Test::Unit::TestCase + def test_silence_warnings + silence_warnings { assert_nil $VERBOSE } + assert_equal 1234, silence_warnings { 1234 } + end + + def test_silence_warnings_verbose_invariant + old_verbose = $VERBOSE + silence_warnings { raise } + flunk + rescue + assert_equal old_verbose, $VERBOSE + end + + + def test_enable_warnings + enable_warnings { assert_equal true, $VERBOSE } + assert_equal 1234, enable_warnings { 1234 } + end + + def test_enable_warnings_verbose_invariant + old_verbose = $VERBOSE + enable_warnings { raise } + flunk + rescue + assert_equal old_verbose, $VERBOSE + end + + + def test_silence_stderr + old_stderr_position = STDERR.tell + silence_stderr { STDERR.puts 'hello world' } + assert_equal old_stderr_position, STDERR.tell + rescue Errno::ESPIPE + # Skip if we can't STDERR.tell + end + + def test_silence_stderr_with_return_value + assert_equal 1, silence_stderr { 1 } + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/load_error_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/load_error_test.rb new file mode 100644 index 000000000..5bb5b4d1b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/load_error_test.rb @@ -0,0 +1,16 @@ +require 'abstract_unit' + +class TestMissingSourceFile < Test::Unit::TestCase + def test_with_require + assert_raises(MissingSourceFile) { require 'no_this_file_don\'t_exist' } + end + def test_with_load + assert_raises(MissingSourceFile) { load 'nor_does_this_one' } + end + def test_path + begin load 'nor/this/one.rb' + rescue MissingSourceFile => e + assert_equal 'nor/this/one.rb', e.path + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb new file mode 100644 index 000000000..7c59348af --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attr_accessor_with_default_test.rb @@ -0,0 +1,30 @@ +require 'abstract_unit' + +class AttrAccessorWithDefaultTest < Test::Unit::TestCase + def setup + @target = Class.new do + def helper + 'helper' + end + end + @instance = @target.new + end + + def test_default_arg + @target.attr_accessor_with_default :foo, :bar + assert_equal(:bar, @instance.foo) + @instance.foo = nil + assert_nil(@instance.foo) + end + + def test_default_proc + @target.attr_accessor_with_default(:foo) {helper.upcase} + assert_equal('HELPER', @instance.foo) + @instance.foo = nil + assert_nil(@instance.foo) + end + + def test_invalid_args + assert_raise(RuntimeError) {@target.attr_accessor_with_default :foo} + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/module/attr_internal_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attr_internal_test.rb new file mode 100644 index 000000000..52833019e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attr_internal_test.rb @@ -0,0 +1,52 @@ +require 'abstract_unit' + +class AttrInternalTest < Test::Unit::TestCase + def setup + @target = Class.new + @instance = @target.new + end + + def test_reader + assert_nothing_raised { @target.attr_internal_reader :foo } + + assert !@instance.instance_variable_defined?('@_foo') + assert_raise(NoMethodError) { @instance.foo = 1 } + + @instance.instance_variable_set('@_foo', 1) + assert_nothing_raised { assert_equal 1, @instance.foo } + end + + def test_writer + assert_nothing_raised { @target.attr_internal_writer :foo } + + assert !@instance.instance_variable_defined?('@_foo') + assert_nothing_raised { assert_equal 1, @instance.foo = 1 } + + assert_equal 1, @instance.instance_variable_get('@_foo') + assert_raise(NoMethodError) { @instance.foo } + end + + def test_accessor + assert_nothing_raised { @target.attr_internal :foo } + + assert !@instance.instance_variable_defined?('@_foo') + assert_nothing_raised { assert_equal 1, @instance.foo = 1 } + + assert_equal 1, @instance.instance_variable_get('@_foo') + assert_nothing_raised { assert_equal 1, @instance.foo } + end + + def test_naming_format + assert_equal '@_%s', @target.attr_internal_naming_format + assert_nothing_raised { @target.attr_internal_naming_format = '@abc%sdef' } + @target.attr_internal :foo + + assert !@instance.instance_variable_defined?('@_foo') + assert !@instance.instance_variable_defined?('@abcfoodef') + assert_nothing_raised { @instance.foo = 1 } + assert !@instance.instance_variable_defined?('@_foo') + assert @instance.instance_variable_defined?('@abcfoodef') + ensure + @target.attr_internal_naming_format = '@_%s' + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/module/attribute_accessor_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attribute_accessor_test.rb new file mode 100644 index 000000000..96975085c --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attribute_accessor_test.rb @@ -0,0 +1,33 @@ +require 'abstract_unit' + +class ModuleAttributeAccessorTest < Test::Unit::TestCase + def setup + m = @module = Module.new do + mattr_accessor :foo + mattr_accessor :bar, :instance_writer => false + end + @class = Class.new + @class.instance_eval { include m } + @object = @class.new + end + + def test_should_use_mattr_default + assert_nil @module.foo + assert_nil @object.foo + end + + def test_should_set_mattr_value + @module.foo = :test + assert_equal :test, @object.foo + + @object.foo = :test2 + assert_equal :test2, @module.foo + end + + def test_should_not_create_instance_writer + assert @module.respond_to?(:foo) + assert @module.respond_to?(:foo=) + assert @object.respond_to?(:bar) + assert !@object.respond_to?(:bar=) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/module/attribute_aliasing_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attribute_aliasing_test.rb new file mode 100644 index 000000000..570ac3b8d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/module/attribute_aliasing_test.rb @@ -0,0 +1,58 @@ +require 'abstract_unit' + +module AttributeAliasing + class Content + attr_accessor :title, :Data + + def initialize + @title, @Data = nil, nil + end + + def title? + !title.nil? + end + + def Data? + !self.Data.nil? + end + end + + class Email < Content + alias_attribute :subject, :title + alias_attribute :body, :Data + end +end + +class AttributeAliasingTest < Test::Unit::TestCase + def test_attribute_alias + e = AttributeAliasing::Email.new + + assert !e.subject? + + e.title = "Upgrade computer" + assert_equal "Upgrade computer", e.subject + assert e.subject? + + e.subject = "We got a long way to go" + assert_equal "We got a long way to go", e.title + assert e.title? + end + + def test_aliasing_to_uppercase_attributes + # Although it's very un-Ruby, some people's AR-mapped tables have + # upper-case attributes, and when people want to alias those names + # to more sensible ones, everything goes *foof*. + e = AttributeAliasing::Email.new + + assert !e.body? + assert !e.Data? + + e.body = "No, really, this is not a joke." + assert_equal "No, really, this is not a joke.", e.Data + assert e.Data? + + e.Data = "Uppercased methods are teh suck" + assert_equal "Uppercased methods are teh suck", e.body + assert e.body? + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/module_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/module_test.rb new file mode 100644 index 000000000..ecdea38d4 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/module_test.rb @@ -0,0 +1,293 @@ +require 'abstract_unit' + +module One + Constant1 = "Hello World" + Constant2 = "What's up?" +end + +class Ab + include One + Constant1 = "Hello World" # Will have different object id than One::Constant1 + Constant3 = "Goodbye World" +end + +module Xy + class Bc + include One + end +end + +module Yz + module Zy + class Cd + include One + end + end +end + +class De +end + +Somewhere = Struct.new(:street, :city) + +Someone = Struct.new(:name, :place) do + delegate :street, :city, :to => :place + delegate :state, :to => :@place + delegate :upcase, :to => "place.city" +end + +class Name + delegate :upcase, :to => :@full_name + + def initialize(first, last) + @full_name = "#{first} #{last}" + end +end + +$nowhere = <<-EOF +class Name + delegate :nowhere +end +EOF + +$noplace = <<-EOF +class Name + delegate :noplace, :tos => :hollywood +end +EOF + +class ModuleTest < Test::Unit::TestCase + def test_included_in_classes + assert One.included_in_classes.include?(Ab) + assert One.included_in_classes.include?(Xy::Bc) + assert One.included_in_classes.include?(Yz::Zy::Cd) + assert !One.included_in_classes.include?(De) + end + + def test_delegation_to_methods + david = Someone.new("David", Somewhere.new("Paulina", "Chicago")) + assert_equal "Paulina", david.street + assert_equal "Chicago", david.city + end + + def test_delegation_down_hierarchy + david = Someone.new("David", Somewhere.new("Paulina", "Chicago")) + assert_equal "CHICAGO", david.upcase + end + + def test_delegation_to_instance_variable + david = Name.new("David", "Hansson") + assert_equal "DAVID HANSSON", david.upcase + end + + def test_missing_delegation_target + assert_raises(ArgumentError) { eval($nowhere) } + assert_raises(ArgumentError) { eval($noplace) } + end + + def test_parent + assert_equal Yz::Zy, Yz::Zy::Cd.parent + assert_equal Yz, Yz::Zy.parent + assert_equal Object, Yz.parent + end + + def test_parents + assert_equal [Yz::Zy, Yz, Object], Yz::Zy::Cd.parents + assert_equal [Yz, Object], Yz::Zy.parents + end + + def test_local_constants + assert_equal %w(Constant1 Constant3), Ab.local_constants.sort.map(&:to_s) + end + + def test_as_load_path + assert_equal 'yz/zy', Yz::Zy.as_load_path + assert_equal 'yz', Yz.as_load_path + end +end + +module BarMethodAliaser + def self.included(foo_class) + foo_class.class_eval do + include BarMethods + alias_method_chain :bar, :baz + end + end +end + +module BarMethods + def bar_with_baz + bar_without_baz << '_with_baz' + end + + def quux_with_baz! + quux_without_baz! << '_with_baz' + end + + def quux_with_baz? + false + end + + def quux_with_baz=(v) + send(:quux_without_baz=, v) << '_with_baz' + end + + def duck_with_orange + duck_without_orange << '_with_orange' + end +end + +class MethodAliasingTest < Test::Unit::TestCase + def setup + Object.const_set :FooClassWithBarMethod, Class.new { def bar() 'bar' end } + @instance = FooClassWithBarMethod.new + end + + def teardown + Object.instance_eval { remove_const :FooClassWithBarMethod } + end + + def test_alias_method_chain + assert @instance.respond_to?(:bar) + feature_aliases = [:bar_with_baz, :bar_without_baz] + + feature_aliases.each do |method| + assert !@instance.respond_to?(method) + end + + assert_equal 'bar', @instance.bar + + FooClassWithBarMethod.class_eval { include BarMethodAliaser } + + feature_aliases.each do |method| + assert @instance.respond_to?(method) + end + + assert_equal 'bar_with_baz', @instance.bar + assert_equal 'bar', @instance.bar_without_baz + end + + def test_alias_method_chain_with_punctuation_method + FooClassWithBarMethod.class_eval do + def quux!; 'quux' end + end + + assert !@instance.respond_to?(:quux_with_baz!) + FooClassWithBarMethod.class_eval do + include BarMethodAliaser + alias_method_chain :quux!, :baz + end + assert @instance.respond_to?(:quux_with_baz!) + + assert_equal 'quux_with_baz', @instance.quux! + assert_equal 'quux', @instance.quux_without_baz! + end + + def test_alias_method_chain_with_same_names_between_predicates_and_bang_methods + FooClassWithBarMethod.class_eval do + def quux!; 'quux!' end + def quux?; true end + def quux=(v); 'quux=' end + end + + assert !@instance.respond_to?(:quux_with_baz!) + assert !@instance.respond_to?(:quux_with_baz?) + assert !@instance.respond_to?(:quux_with_baz=) + + FooClassWithBarMethod.class_eval { include BarMethodAliaser } + assert @instance.respond_to?(:quux_with_baz!) + assert @instance.respond_to?(:quux_with_baz?) + assert @instance.respond_to?(:quux_with_baz=) + + + FooClassWithBarMethod.alias_method_chain :quux!, :baz + assert_equal 'quux!_with_baz', @instance.quux! + assert_equal 'quux!', @instance.quux_without_baz! + + FooClassWithBarMethod.alias_method_chain :quux?, :baz + assert_equal false, @instance.quux? + assert_equal true, @instance.quux_without_baz? + + FooClassWithBarMethod.alias_method_chain :quux=, :baz + assert_equal 'quux=_with_baz', @instance.send(:quux=, 1234) + assert_equal 'quux=', @instance.send(:quux_without_baz=, 1234) + end + + def test_alias_method_chain_with_feature_punctuation + FooClassWithBarMethod.class_eval do + def quux; 'quux' end + def quux?; 'quux?' end + include BarMethodAliaser + alias_method_chain :quux, :baz! + end + + assert_nothing_raised do + assert_equal 'quux_with_baz', @instance.quux_with_baz! + end + + assert_raise(NameError) do + FooClassWithBarMethod.alias_method_chain :quux?, :baz! + end + end + + def test_alias_method_chain_yields_target_and_punctuation + args = nil + + FooClassWithBarMethod.class_eval do + def quux?; end + include BarMethods + + FooClassWithBarMethod.alias_method_chain :quux?, :baz do |target, punctuation| + args = [target, punctuation] + end + end + + assert_not_nil args + assert_equal 'quux', args[0] + assert_equal '?', args[1] + end + + def test_alias_method_chain_preserves_private_method_status + FooClassWithBarMethod.class_eval do + def duck; 'duck' end + include BarMethodAliaser + private :duck + alias_method_chain :duck, :orange + end + + assert_raises NoMethodError do + @instance.duck + end + + assert_equal 'duck_with_orange', @instance.instance_eval { duck } + assert FooClassWithBarMethod.private_method_defined?(:duck) + end + + def test_alias_method_chain_preserves_protected_method_status + FooClassWithBarMethod.class_eval do + def duck; 'duck' end + include BarMethodAliaser + protected :duck + alias_method_chain :duck, :orange + end + + assert_raises NoMethodError do + @instance.duck + end + + assert_equal 'duck_with_orange', @instance.instance_eval { duck } + assert FooClassWithBarMethod.protected_method_defined?(:duck) + end + + def test_alias_method_chain_preserves_public_method_status + FooClassWithBarMethod.class_eval do + def duck; 'duck' end + include BarMethodAliaser + public :duck + alias_method_chain :duck, :orange + end + + assert_equal 'duck_with_orange', @instance.duck + assert FooClassWithBarMethod.public_method_defined?(:duck) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/name_error_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/name_error_test.rb new file mode 100644 index 000000000..bae004809 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/name_error_test.rb @@ -0,0 +1,24 @@ +require 'abstract_unit' + +class NameErrorTest < Test::Unit::TestCase + def test_name_error_should_set_missing_name + begin + SomeNameThatNobodyWillUse____Really ? 1 : 0 + flunk "?!?!" + rescue NameError => exc + assert_equal "NameErrorTest::SomeNameThatNobodyWillUse____Really", exc.missing_name + assert exc.missing_name?(:SomeNameThatNobodyWillUse____Really) + assert exc.missing_name?("NameErrorTest::SomeNameThatNobodyWillUse____Really") + end + end + + def test_missing_method_should_ignore_missing_name + begin + some_method_that_does_not_exist + flunk "?!?!" + rescue NameError => exc + assert_equal nil, exc.missing_name + assert ! exc.missing_name?(:Foo) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/numeric_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/numeric_ext_test.rb new file mode 100644 index 000000000..5401ed7c7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/numeric_ext_test.rb @@ -0,0 +1,162 @@ +require 'abstract_unit' + +class NumericExtTimeAndDateTimeTest < Test::Unit::TestCase + def setup + @now = Time.local(2005,2,10,15,30,45) + @dtnow = DateTime.civil(2005,2,10,15,30,45) + @seconds = { + 1.minute => 60, + 10.minutes => 600, + 1.hour + 15.minutes => 4500, + 2.days + 4.hours + 30.minutes => 189000, + 5.years + 1.month + 1.fortnight => 161589600 + } + end + + def test_units + @seconds.each do |actual, expected| + assert_equal expected, actual + end + end + + def test_intervals + @seconds.values.each do |seconds| + assert_equal seconds.since(@now), @now + seconds + assert_equal seconds.until(@now), @now - seconds + end + end + + # Test intervals based from Time.now + def test_now + @seconds.values.each do |seconds| + now = Time.now + assert seconds.ago >= now - seconds + now = Time.now + assert seconds.from_now >= now + seconds + end + end + + def test_irregular_durations + assert_equal @now.advance(:days => 3000), 3000.days.since(@now) + assert_equal @now.advance(:months => 1), 1.month.since(@now) + assert_equal @now.advance(:months => -1), 1.month.until(@now) + assert_equal @now.advance(:years => 20), 20.years.since(@now) + assert_equal @dtnow.advance(:days => 3000), 3000.days.since(@dtnow) + assert_equal @dtnow.advance(:months => 1), 1.month.since(@dtnow) + assert_equal @dtnow.advance(:months => -1), 1.month.until(@dtnow) + assert_equal @dtnow.advance(:years => 20), 20.years.since(@dtnow) + end + + def test_duration_addition + assert_equal @now.advance(:days => 1).advance(:months => 1), (1.day + 1.month).since(@now) + assert_equal @now.advance(:days => 7), (1.week + 5.seconds - 5.seconds).since(@now) + assert_equal @now.advance(:years => 2), (4.years - 2.years).since(@now) + assert_equal @dtnow.advance(:days => 1).advance(:months => 1), (1.day + 1.month).since(@dtnow) + assert_equal @dtnow.advance(:days => 7), (1.week + 5.seconds - 5.seconds).since(@dtnow) + assert_equal @dtnow.advance(:years => 2), (4.years - 2.years).since(@dtnow) + end + + def test_time_plus_duration + assert_equal @now + 8, @now + 8.seconds + assert_equal @now + 22.9, @now + 22.9.seconds + assert_equal @now.advance(:days => 15), @now + 15.days + assert_equal @now.advance(:months => 1), @now + 1.month + assert_equal @dtnow.since(8), @dtnow + 8.seconds + assert_equal @dtnow.since(22.9), @dtnow + 22.9.seconds + assert_equal @dtnow.advance(:days => 15), @dtnow + 15.days + assert_equal @dtnow.advance(:months => 1), @dtnow + 1.month + end + + def test_chaining_duration_operations + assert_equal @now.advance(:days => 2).advance(:months => -3), @now + 2.days - 3.months + assert_equal @now.advance(:days => 1).advance(:months => 2), @now + 1.day + 2.months + assert_equal @dtnow.advance(:days => 2).advance(:months => -3), @dtnow + 2.days - 3.months + assert_equal @dtnow.advance(:days => 1).advance(:months => 2), @dtnow + 1.day + 2.months + end + + def test_duration_after_convertion_is_no_longer_accurate + assert_equal 30.days.to_i.since(@now), 1.month.to_i.since(@now) + assert_equal 365.25.days.to_f.since(@now), 1.year.to_f.since(@now) + assert_equal 30.days.to_i.since(@dtnow), 1.month.to_i.since(@dtnow) + assert_equal 365.25.days.to_f.since(@dtnow), 1.year.to_f.since(@dtnow) + end + + def test_add_one_year_to_leap_day + assert_equal Time.utc(2005,2,28,15,15,10), Time.utc(2004,2,29,15,15,10) + 1.year + assert_equal DateTime.civil(2005,2,28,15,15,10), DateTime.civil(2004,2,29,15,15,10) + 1.year + end +end + +class NumericExtDateTest < Test::Unit::TestCase + def setup + @today = Date.today + end + + def test_date_plus_duration + assert_equal @today + 1, @today + 1.day + assert_equal @today >> 1, @today + 1.month + assert_equal @today.to_time.since(1), @today + 1.second + assert_equal @today.to_time.since(60), @today + 1.minute + assert_equal @today.to_time.since(60*60), @today + 1.hour + end + + def test_chaining_duration_operations + assert_equal @today.advance(:days => 2).advance(:months => -3), @today + 2.days - 3.months + assert_equal @today.advance(:days => 1).advance(:months => 2), @today + 1.day + 2.months + end + + def test_add_one_year_to_leap_day + assert_equal Date.new(2005,2,28), Date.new(2004,2,29) + 1.year + end +end + +class NumericExtSizeTest < Test::Unit::TestCase + def test_unit_in_terms_of_another + relationships = { + 1024.bytes => 1.kilobyte, + 1024.kilobytes => 1.megabyte, + 3584.0.kilobytes => 3.5.megabytes, + 3584.0.megabytes => 3.5.gigabytes, + 1.kilobyte ** 4 => 1.terabyte, + 1024.kilobytes + 2.megabytes => 3.megabytes, + 2.gigabytes / 4 => 512.megabytes, + 256.megabytes * 20 + 5.gigabytes => 10.gigabytes, + 1.kilobyte ** 5 => 1.petabyte, + 1.kilobyte ** 6 => 1.exabyte + } + + relationships.each do |left, right| + assert_equal right, left + end + end + + def test_units_as_bytes_independently + assert_equal 3145728, 3.megabytes + assert_equal 3145728, 3.megabyte + assert_equal 3072, 3.kilobytes + assert_equal 3072, 3.kilobyte + assert_equal 3221225472, 3.gigabytes + assert_equal 3221225472, 3.gigabyte + assert_equal 3298534883328, 3.terabytes + assert_equal 3298534883328, 3.terabyte + assert_equal 3377699720527872, 3.petabytes + assert_equal 3377699720527872, 3.petabyte + assert_equal 3458764513820540928, 3.exabytes + assert_equal 3458764513820540928, 3.exabyte + end +end + +class NumericExtConversionsTest < Test::Unit::TestCase + + def test_to_utc_offset_s_with_colon + assert_equal "-06:00", -21_600.to_utc_offset_s + assert_equal "+00:00", 0.to_utc_offset_s + assert_equal "+05:00", 18_000.to_utc_offset_s + end + + def test_to_utc_offset_s_without_colon + assert_equal "-0600", -21_600.to_utc_offset_s(false) + assert_equal "+0000", 0.to_utc_offset_s(false) + assert_equal "+0500", 18_000.to_utc_offset_s(false) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/object_and_class_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/object_and_class_ext_test.rb new file mode 100644 index 000000000..16f4ab888 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/object_and_class_ext_test.rb @@ -0,0 +1,246 @@ +require 'abstract_unit' + +class ClassA; end +class ClassB < ClassA; end +class ClassC < ClassB; end +class ClassD < ClassA; end + +class ClassI; end +class ClassJ < ClassI; end + +class ClassK +end +module Nested + class << self + def on_const_missing(&callback) + @on_const_missing = callback + end + private + def const_missing(mod_id) + @on_const_missing[mod_id] if @on_const_missing + super + end + end + class ClassL < ClassK + end +end + +module Bar + def bar; end +end + +module Baz + def baz; end +end + +class Foo + include Bar +end + +class ClassExtTest < Test::Unit::TestCase + def test_methods + assert defined?(ClassB) + assert defined?(ClassC) + assert defined?(ClassD) + + ClassA.remove_subclasses + + assert !defined?(ClassB) + assert !defined?(ClassC) + assert !defined?(ClassD) + end + + def test_subclasses_of + cj = ClassJ + assert_equal [ClassJ], Object.subclasses_of(ClassI) + ClassI.remove_subclasses + assert_equal [], Object.subclasses_of(ClassI) + ensure + Object.const_set :ClassJ, cj + end + + def test_subclasses_of_should_find_nested_classes + assert Object.subclasses_of(ClassK).include?(Nested::ClassL) + end + + def test_subclasses_of_should_not_return_removed_classes + # First create the removed class + old_class = Nested.class_eval { remove_const :ClassL } + new_class = Class.new(ClassK) + Nested.const_set :ClassL, new_class + assert_equal "Nested::ClassL", new_class.name # Sanity check + + subclasses = Object.subclasses_of(ClassK) + assert subclasses.include?(new_class) + assert ! subclasses.include?(old_class) + ensure + Nested.const_set :ClassL, old_class unless defined?(Nested::ClassL) + end + + def test_subclasses_of_should_not_trigger_const_missing + const_missing = false + Nested.on_const_missing { const_missing = true } + + subclasses = Object.subclasses_of ClassK + assert !const_missing + assert_equal [ Nested::ClassL ], subclasses + + removed = Nested.class_eval { remove_const :ClassL } # keep it in memory + subclasses = Object.subclasses_of ClassK + assert !const_missing + assert subclasses.empty? + ensure + Nested.const_set :ClassL, removed unless defined?(Nested::ClassL) + end + + def test_subclasses_of_with_multiple_roots + classes = Object.subclasses_of(ClassI, ClassK) + assert_equal %w(ClassJ Nested::ClassL), classes.collect(&:to_s).sort + end + + def test_subclasses_of_doesnt_find_anonymous_classes + assert_equal [], Object.subclasses_of(Foo) + bar = Class.new(Foo) + assert_nothing_raised do + assert_equal [bar], Object.subclasses_of(Foo) + end + end +end + +class ObjectTests < Test::Unit::TestCase + def test_send_bang_aliases_send_before_19 + assert_respond_to 'a', :send! + assert_equal 1, 'a'.send!(:size) + end + + def test_suppress_re_raises + assert_raises(LoadError) { suppress(ArgumentError) {raise LoadError} } + end + def test_suppress_supresses + suppress(ArgumentError) { raise ArgumentError } + suppress(LoadError) { raise LoadError } + suppress(LoadError, ArgumentError) { raise LoadError } + suppress(LoadError, ArgumentError) { raise ArgumentError } + end + + def test_extended_by + foo = Foo.new + assert foo.extended_by.include?(Bar) + foo.extend(Baz) + assert(([Bar, Baz] - foo.extended_by).empty?, "Expected Bar, Baz in #{foo.extended_by.inspect}") + end + + def test_extend_with_included_modules_from + foo, object = Foo.new, Object.new + assert !object.respond_to?(:bar) + assert !object.respond_to?(:baz) + + object.extend_with_included_modules_from(foo) + assert object.respond_to?(:bar) + assert !object.respond_to?(:baz) + + foo.extend(Baz) + object.extend_with_included_modules_from(foo) + assert object.respond_to?(:bar) + assert object.respond_to?(:baz) + end + + class DuckTime + def acts_like_time? + true + end + end + + def test_duck_typing + object = Object.new + time = Time.now + date = Date.today + dt = DateTime.new + duck = DuckTime.new + + assert !object.acts_like?(:time) + assert !object.acts_like?(:date) + + assert time.acts_like?(:time) + assert !time.acts_like?(:date) + + assert !date.acts_like?(:time) + assert date.acts_like?(:date) + + assert dt.acts_like?(:time) + assert dt.acts_like?(:date) + + assert duck.acts_like?(:time) + assert !duck.acts_like?(:date) + end +end + +class ObjectInstanceVariableTest < Test::Unit::TestCase + def setup + @source, @dest = Object.new, Object.new + @source.instance_variable_set(:@bar, 'bar') + @source.instance_variable_set(:@baz, 'baz') + end + + def test_instance_variable_names + assert_equal %w(@bar @baz), @source.instance_variable_names.sort + end + + def test_instance_variable_defined + assert @source.instance_variable_defined?('@bar') + assert @source.instance_variable_defined?(:@bar) + assert !@source.instance_variable_defined?(:@foo) + assert !@source.instance_variable_defined?('@foo') + end + + def test_copy_instance_variables_from_without_explicit_excludes + assert_equal [], @dest.instance_variables + @dest.copy_instance_variables_from(@source) + + assert_equal %w(@bar @baz), @dest.instance_variables.sort.map(&:to_s) + %w(@bar @baz).each do |name| + assert_equal @source.instance_variable_get(name).object_id, + @dest.instance_variable_get(name).object_id + end + end + + def test_copy_instance_variables_from_with_explicit_excludes + @dest.copy_instance_variables_from(@source, ['@baz']) + assert !@dest.instance_variable_defined?('@baz') + assert_equal 'bar', @dest.instance_variable_get('@bar') + end + + def test_copy_instance_variables_automatically_excludes_protected_instance_variables + @source.instance_variable_set(:@quux, 'quux') + class << @source + def protected_instance_variables + ['@bar', :@quux] + end + end + + @dest.copy_instance_variables_from(@source) + assert !@dest.instance_variable_defined?('@bar') + assert !@dest.instance_variable_defined?('@quux') + assert_equal 'baz', @dest.instance_variable_get('@baz') + end + + def test_instance_values + object = Object.new + object.instance_variable_set :@a, 1 + object.instance_variable_set :@b, 2 + assert_equal({'a' => 1, 'b' => 2}, object.instance_values) + end + + def test_instance_exec_passes_arguments_to_block + assert_equal %w(hello goodbye), 'hello'.instance_exec('goodbye') { |v| [self, v] } + end + + def test_instance_exec_with_frozen_obj + assert_equal %w(olleh goodbye), 'hello'.freeze.instance_exec('goodbye') { |v| [reverse, v] } + end + + def test_instance_exec_nested + assert_equal %w(goodbye olleh bar), 'hello'.instance_exec('goodbye') { |arg| + [arg] + instance_exec('bar') { |v| [reverse, v] } } + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/pathname_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/pathname_test.rb new file mode 100644 index 000000000..d17e8bb25 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/pathname_test.rb @@ -0,0 +1,9 @@ +require 'abstract_unit' + +class TestPathname < Test::Unit::TestCase + def test_clean_within + assert_equal "Hi", Pathname.clean_within("Hi") + assert_equal "Hi", Pathname.clean_within("Hi/a/b/../..") + assert_equal "Hello\nWorld", Pathname.clean_within("Hello/a/b/../..\na/b/../../World/c/..") + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/proc_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/proc_test.rb new file mode 100644 index 000000000..29f85371d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/proc_test.rb @@ -0,0 +1,11 @@ +require 'abstract_unit' + +class ProcTests < Test::Unit::TestCase + def test_bind_returns_method_with_changed_self + block = Proc.new { self } + assert_equal self, block.call + bound_block = block.bind("hello") + assert_not_equal block, bound_block + assert_equal "hello", bound_block.call + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/range_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/range_ext_test.rb new file mode 100644 index 000000000..38253d4d2 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/range_ext_test.rb @@ -0,0 +1,63 @@ +require 'abstract_unit' + +class RangeTest < Test::Unit::TestCase + def test_to_s_from_dates + date_range = Date.new(2005, 12, 10)..Date.new(2005, 12, 12) + assert_equal "BETWEEN '2005-12-10' AND '2005-12-12'", date_range.to_s(:db) + end + + def test_to_s_from_times + date_range = Time.utc(2005, 12, 10, 15, 30)..Time.utc(2005, 12, 10, 17, 30) + assert_equal "BETWEEN '2005-12-10 15:30:00' AND '2005-12-10 17:30:00'", date_range.to_s(:db) + end + + def test_overlaps_last_inclusive + assert((1..5).overlaps?(5..10)) + end + + def test_overlaps_last_exclusive + assert !(1...5).overlaps?(5..10) + end + + def test_overlaps_first_inclusive + assert((5..10).overlaps?(1..5)) + end + + def test_overlaps_first_exclusive + assert !(5..10).overlaps?(1...5) + end + + def test_should_include_identical_inclusive + assert((1..10).include?(1..10)) + end + + def test_should_include_identical_exclusive + assert((1...10).include?(1...10)) + end + + def test_should_include_other_with_exlusive_end + assert((1..10).include?(1...10)) + end + + def test_exclusive_end_should_not_include_identical_with_inclusive_end + assert !(1...10).include?(1..10) + end + + def test_should_not_include_overlapping_first + assert !(2..8).include?(1..3) + end + + def test_should_not_include_overlapping_last + assert !(2..8).include?(5..9) + end + + def test_blockless_step + assert_equal [1,3,5,7,9], (1..10).step(2) + end + + def test_original_step + array = [] + (1..10).step(2) {|i| array << i } + assert_equal [1,3,5,7,9], array + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/string_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/string_ext_test.rb new file mode 100644 index 000000000..19a30f173 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/string_ext_test.rb @@ -0,0 +1,199 @@ +# encoding: utf-8 +require 'date' +require 'abstract_unit' +require 'inflector_test_cases' + +class StringInflectionsTest < Test::Unit::TestCase + include InflectorTestCases + + def test_pluralize + SingularToPlural.each do |singular, plural| + assert_equal(plural, singular.pluralize) + end + + assert_equal("plurals", "plurals".pluralize) + end + + def test_singularize + SingularToPlural.each do |singular, plural| + assert_equal(singular, plural.singularize) + end + end + + def test_titleize + MixtureToTitleCase.each do |before, titleized| + assert_equal(titleized, before.titleize) + end + end + + def test_camelize + CamelToUnderscore.each do |camel, underscore| + assert_equal(camel, underscore.camelize) + end + end + + def test_underscore + CamelToUnderscore.each do |camel, underscore| + assert_equal(underscore, camel.underscore) + end + + assert_equal "html_tidy", "HTMLTidy".underscore + assert_equal "html_tidy_generator", "HTMLTidyGenerator".underscore + end + + def test_underscore_to_lower_camel + UnderscoreToLowerCamel.each do |underscored, lower_camel| + assert_equal(lower_camel, underscored.camelize(:lower)) + end + end + + def test_demodulize + assert_equal "Account", "MyApplication::Billing::Account".demodulize + end + + def test_foreign_key + ClassNameToForeignKeyWithUnderscore.each do |klass, foreign_key| + assert_equal(foreign_key, klass.foreign_key) + end + + ClassNameToForeignKeyWithoutUnderscore.each do |klass, foreign_key| + assert_equal(foreign_key, klass.foreign_key(false)) + end + end + + def test_tableize + ClassNameToTableName.each do |class_name, table_name| + assert_equal(table_name, class_name.tableize) + end + end + + def test_classify + ClassNameToTableName.each do |class_name, table_name| + assert_equal(class_name, table_name.classify) + end + end + + def test_humanize + UnderscoreToHuman.each do |underscore, human| + assert_equal(human, underscore.humanize) + end + end + + def test_ord + assert_equal 97, 'a'.ord + assert_equal 97, 'abc'.ord + end + + def test_string_to_time + assert_equal Time.utc(2005, 2, 27, 23, 50), "2005-02-27 23:50".to_time + assert_equal Time.local(2005, 2, 27, 23, 50), "2005-02-27 23:50".to_time(:local) + assert_equal DateTime.civil(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time + assert_equal Time.local_time(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_time(:local) + end + + def test_string_to_datetime + assert_equal DateTime.civil(2039, 2, 27, 23, 50), "2039-02-27 23:50".to_datetime + assert_equal 0, "2039-02-27 23:50".to_datetime.offset # use UTC offset + assert_equal ::Date::ITALY, "2039-02-27 23:50".to_datetime.start # use Ruby's default start value + end + + def test_string_to_date + assert_equal Date.new(2005, 2, 27), "2005-02-27".to_date + end + + def test_access + s = "hello" + assert_equal "h", s.at(0) + + assert_equal "llo", s.from(2) + assert_equal "hel", s.to(2) + + assert_equal "h", s.first + assert_equal "he", s.first(2) + + assert_equal "o", s.last + assert_equal "llo", s.last(3) + assert_equal "hello", s.last(10) + + assert_equal 'x', 'x'.first + assert_equal 'x', 'x'.first(4) + + assert_equal 'x', 'x'.last + assert_equal 'x', 'x'.last(4) + end + + def test_access_returns_a_real_string + hash = {} + hash["h"] = true + hash["hello123".at(0)] = true + assert_equal %w(h), hash.keys + + hash = {} + hash["llo"] = true + hash["hello".from(2)] = true + assert_equal %w(llo), hash.keys + + hash = {} + hash["hel"] = true + hash["hello".to(2)] = true + assert_equal %w(hel), hash.keys + + hash = {} + hash["hello"] = true + hash["123hello".last(5)] = true + assert_equal %w(hello), hash.keys + + hash = {} + hash["hello"] = true + hash["hello123".first(5)] = true + assert_equal %w(hello), hash.keys + end + + def test_starts_ends_with_alias + s = "hello" + assert s.starts_with?('h') + assert s.starts_with?('hel') + assert !s.starts_with?('el') + + assert s.start_with?('h') + assert s.start_with?('hel') + assert !s.start_with?('el') + + assert s.ends_with?('o') + assert s.ends_with?('lo') + assert !s.ends_with?('el') + + assert s.end_with?('o') + assert s.end_with?('lo') + assert !s.end_with?('el') + end + + def test_string_squish + original = %{ A string with tabs(\t\t), newlines(\n\n), and + many spaces( ). } + + expected = "A string with tabs( ), newlines( ), and many spaces( )." + + # Make sure squish returns what we expect: + assert_equal original.squish, expected + # But doesn't modify the original string: + assert_not_equal original, expected + + # Make sure squish! returns what we expect: + assert_equal original.squish!, expected + # And changes the original string: + assert_equal original, expected + end + + if RUBY_VERSION < '1.9' + def test_each_char_with_utf8_string_when_kcode_is_utf8 + old_kcode, $KCODE = $KCODE, 'UTF8' + '€2.99'.each_char do |char| + assert_not_equal 1, char.length + break + end + ensure + $KCODE = old_kcode + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/symbol_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/symbol_test.rb new file mode 100644 index 000000000..1eaccb996 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/symbol_test.rb @@ -0,0 +1,9 @@ +require 'abstract_unit' + +class SymbolTests < Test::Unit::TestCase + def test_to_proc + assert_equal %w(one two three), [:one, :two, :three].map(&:to_s) + assert_equal(%w(one two three), + {1 => "one", 2 => "two", 3 => "three"}.sort_by(&:first).map(&:last)) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/time_ext_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/time_ext_test.rb new file mode 100644 index 000000000..e53b7193e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/time_ext_test.rb @@ -0,0 +1,622 @@ +require 'abstract_unit' + +class TimeExtCalculationsTest < Test::Unit::TestCase + def test_seconds_since_midnight + assert_equal 1,Time.local(2005,1,1,0,0,1).seconds_since_midnight + assert_equal 60,Time.local(2005,1,1,0,1,0).seconds_since_midnight + assert_equal 3660,Time.local(2005,1,1,1,1,0).seconds_since_midnight + assert_equal 86399,Time.local(2005,1,1,23,59,59).seconds_since_midnight + assert_equal 60.00001,Time.local(2005,1,1,0,1,0,10).seconds_since_midnight + end + + def test_seconds_since_midnight_at_daylight_savings_time_start + with_env_tz 'US/Eastern' do + # dt: US: 2005 April 3rd 2:00am ST => April 3rd 3:00am DT + assert_equal 2*3600-1, Time.local(2005,4,3,1,59,59).seconds_since_midnight, 'just before DST start' + assert_equal 2*3600+1, Time.local(2005,4,3,3, 0, 1).seconds_since_midnight, 'just after DST start' + end + + with_env_tz 'NZ' do + # dt: New Zealand: 2006 October 1st 2:00am ST => October 1st 3:00am DT + assert_equal 2*3600-1, Time.local(2006,10,1,1,59,59).seconds_since_midnight, 'just before DST start' + assert_equal 2*3600+1, Time.local(2006,10,1,3, 0, 1).seconds_since_midnight, 'just after DST start' + end + end + + def test_seconds_since_midnight_at_daylight_savings_time_end + with_env_tz 'US/Eastern' do + # st: US: 2005 October 30th 2:00am DT => October 30th 1:00am ST + # avoid setting a time between 1:00 and 2:00 since that requires specifying whether DST is active + assert_equal 1*3600-1, Time.local(2005,10,30,0,59,59).seconds_since_midnight, 'just before DST end' + assert_equal 3*3600+1, Time.local(2005,10,30,2, 0, 1).seconds_since_midnight, 'just after DST end' + + # now set a time between 1:00 and 2:00 by specifying whether DST is active + # uses: Time.local( sec, min, hour, day, month, year, wday, yday, isdst, tz ) + assert_equal 1*3600+30*60, Time.local(0,30,1,30,10,2005,0,0,true,ENV['TZ']).seconds_since_midnight, 'before DST end' + assert_equal 2*3600+30*60, Time.local(0,30,1,30,10,2005,0,0,false,ENV['TZ']).seconds_since_midnight, 'after DST end' + end + + with_env_tz 'NZ' do + # st: New Zealand: 2006 March 19th 3:00am DT => March 19th 2:00am ST + # avoid setting a time between 2:00 and 3:00 since that requires specifying whether DST is active + assert_equal 2*3600-1, Time.local(2006,3,19,1,59,59).seconds_since_midnight, 'just before DST end' + assert_equal 4*3600+1, Time.local(2006,3,19,3, 0, 1).seconds_since_midnight, 'just after DST end' + + # now set a time between 2:00 and 3:00 by specifying whether DST is active + # uses: Time.local( sec, min, hour, day, month, year, wday, yday, isdst, tz ) + assert_equal 2*3600+30*60, Time.local(0,30,2,19,3,2006,0,0,true, ENV['TZ']).seconds_since_midnight, 'before DST end' + assert_equal 3*3600+30*60, Time.local(0,30,2,19,3,2006,0,0,false,ENV['TZ']).seconds_since_midnight, 'after DST end' + end + end + + def test_beginning_of_week + assert_equal Time.local(2005,1,31), Time.local(2005,2,4,10,10,10).beginning_of_week + assert_equal Time.local(2005,11,28), Time.local(2005,11,28,0,0,0).beginning_of_week #monday + assert_equal Time.local(2005,11,28), Time.local(2005,11,29,0,0,0).beginning_of_week #tuesday + assert_equal Time.local(2005,11,28), Time.local(2005,11,30,0,0,0).beginning_of_week #wednesday + assert_equal Time.local(2005,11,28), Time.local(2005,12,01,0,0,0).beginning_of_week #thursday + assert_equal Time.local(2005,11,28), Time.local(2005,12,02,0,0,0).beginning_of_week #friday + assert_equal Time.local(2005,11,28), Time.local(2005,12,03,0,0,0).beginning_of_week #saturday + assert_equal Time.local(2005,11,28), Time.local(2005,12,04,0,0,0).beginning_of_week #sunday + end + + def test_beginning_of_day + assert_equal Time.local(2005,2,4,0,0,0), Time.local(2005,2,4,10,10,10).beginning_of_day + with_env_tz 'US/Eastern' do + assert_equal Time.local(2006,4,2,0,0,0), Time.local(2006,4,2,10,10,10).beginning_of_day, 'start DST' + assert_equal Time.local(2006,10,29,0,0,0), Time.local(2006,10,29,10,10,10).beginning_of_day, 'ends DST' + end + with_env_tz 'NZ' do + assert_equal Time.local(2006,3,19,0,0,0), Time.local(2006,3,19,10,10,10).beginning_of_day, 'ends DST' + assert_equal Time.local(2006,10,1,0,0,0), Time.local(2006,10,1,10,10,10).beginning_of_day, 'start DST' + end + end + + def test_beginning_of_month + assert_equal Time.local(2005,2,1,0,0,0), Time.local(2005,2,22,10,10,10).beginning_of_month + end + + def test_beginning_of_quarter + assert_equal Time.local(2005,1,1,0,0,0), Time.local(2005,2,15,10,10,10).beginning_of_quarter + assert_equal Time.local(2005,1,1,0,0,0), Time.local(2005,1,1,0,0,0).beginning_of_quarter + assert_equal Time.local(2005,10,1,0,0,0), Time.local(2005,12,31,10,10,10).beginning_of_quarter + assert_equal Time.local(2005,4,1,0,0,0), Time.local(2005,6,30,23,59,59).beginning_of_quarter + end + + def test_end_of_day + assert_equal Time.local(2007,8,12,23,59,59), Time.local(2007,8,12,10,10,10).end_of_day + with_env_tz 'US/Eastern' do + assert_equal Time.local(2007,4,2,23,59,59), Time.local(2007,4,2,10,10,10).end_of_day, 'start DST' + assert_equal Time.local(2007,10,29,23,59,59), Time.local(2007,10,29,10,10,10).end_of_day, 'ends DST' + end + with_env_tz 'NZ' do + assert_equal Time.local(2006,3,19,23,59,59), Time.local(2006,3,19,10,10,10).end_of_day, 'ends DST' + assert_equal Time.local(2006,10,1,23,59,59), Time.local(2006,10,1,10,10,10).end_of_day, 'start DST' + end + end + + def test_end_of_week + assert_equal Time.local(2008,1,6,23,59,59), Time.local(2007,12,31,10,10,10).end_of_week + assert_equal Time.local(2007,9,2,23,59,59), Time.local(2007,8,27,0,0,0).end_of_week #monday + assert_equal Time.local(2007,9,2,23,59,59), Time.local(2007,8,28,0,0,0).end_of_week #tuesday + assert_equal Time.local(2007,9,2,23,59,59), Time.local(2007,8,29,0,0,0).end_of_week #wednesday + assert_equal Time.local(2007,9,2,23,59,59), Time.local(2007,8,30,0,0,0).end_of_week #thursday + assert_equal Time.local(2007,9,2,23,59,59), Time.local(2007,8,31,0,0,0).end_of_week #friday + assert_equal Time.local(2007,9,2,23,59,59), Time.local(2007,9,01,0,0,0).end_of_week #saturday + assert_equal Time.local(2007,9,2,23,59,59), Time.local(2007,9,02,0,0,0).end_of_week #sunday + end + + def test_end_of_month + assert_equal Time.local(2005,3,31,23,59,59), Time.local(2005,3,20,10,10,10).end_of_month + assert_equal Time.local(2005,2,28,23,59,59), Time.local(2005,2,20,10,10,10).end_of_month + assert_equal Time.local(2005,4,30,23,59,59), Time.local(2005,4,20,10,10,10).end_of_month + end + + def test_end_of_quarter + assert_equal Time.local(2007,3,31,23,59,59), Time.local(2007,2,15,10,10,10).end_of_quarter + assert_equal Time.local(2007,3,31,23,59,59), Time.local(2007,3,31,0,0,0).end_of_quarter + assert_equal Time.local(2007,12,31,23,59,59), Time.local(2007,12,21,10,10,10).end_of_quarter + assert_equal Time.local(2007,6,30,23,59,59), Time.local(2007,4,1,0,0,0).end_of_quarter + end + + def test_end_of_year + assert_equal Time.local(2007,12,31,23,59,59), Time.local(2007,2,22,10,10,10).end_of_year + assert_equal Time.local(2007,12,31,23,59,59), Time.local(2007,12,31,10,10,10).end_of_year + end + + def test_beginning_of_year + assert_equal Time.local(2005,1,1,0,0,0), Time.local(2005,2,22,10,10,10).beginning_of_year + end + + def test_months_ago + assert_equal Time.local(2005,5,5,10), Time.local(2005,6,5,10,0,0).months_ago(1) + assert_equal Time.local(2004,11,5,10), Time.local(2005,6,5,10,0,0).months_ago(7) + assert_equal Time.local(2004,12,5,10), Time.local(2005,6,5,10,0,0).months_ago(6) + assert_equal Time.local(2004,6,5,10), Time.local(2005,6,5,10,0,0).months_ago(12) + assert_equal Time.local(2003,6,5,10), Time.local(2005,6,5,10,0,0).months_ago(24) + end + + def test_months_since + assert_equal Time.local(2005,7,5,10), Time.local(2005,6,5,10,0,0).months_since(1) + assert_equal Time.local(2006,1,5,10), Time.local(2005,12,5,10,0,0).months_since(1) + assert_equal Time.local(2005,12,5,10), Time.local(2005,6,5,10,0,0).months_since(6) + assert_equal Time.local(2006,6,5,10), Time.local(2005,12,5,10,0,0).months_since(6) + assert_equal Time.local(2006,1,5,10), Time.local(2005,6,5,10,0,0).months_since(7) + assert_equal Time.local(2006,6,5,10), Time.local(2005,6,5,10,0,0).months_since(12) + assert_equal Time.local(2007,6,5,10), Time.local(2005,6,5,10,0,0).months_since(24) + assert_equal Time.local(2005,4,30,10), Time.local(2005,3,31,10,0,0).months_since(1) + assert_equal Time.local(2005,2,28,10), Time.local(2005,1,29,10,0,0).months_since(1) + assert_equal Time.local(2005,2,28,10), Time.local(2005,1,30,10,0,0).months_since(1) + assert_equal Time.local(2005,2,28,10), Time.local(2005,1,31,10,0,0).months_since(1) + end + + def test_years_ago + assert_equal Time.local(2004,6,5,10), Time.local(2005,6,5,10,0,0).years_ago(1) + assert_equal Time.local(1998,6,5,10), Time.local(2005,6,5,10,0,0).years_ago(7) + assert_equal Time.local(2003,2,28,10), Time.local(2004,2,29,10,0,0).years_ago(1) # 1 year ago from leap day + end + + def test_years_since + assert_equal Time.local(2006,6,5,10), Time.local(2005,6,5,10,0,0).years_since(1) + assert_equal Time.local(2012,6,5,10), Time.local(2005,6,5,10,0,0).years_since(7) + assert_equal Time.local(2005,2,28,10), Time.local(2004,2,29,10,0,0).years_since(1) # 1 year since leap day + # Failure because of size limitations of numeric? + # assert_equal Time.local(2182,6,5,10), Time.local(2005,6,5,10,0,0).years_since(177) + end + + def test_last_year + assert_equal Time.local(2004,6,5,10), Time.local(2005,6,5,10,0,0).last_year + end + + def test_next_year + assert_equal Time.local(2006,6,5,10), Time.local(2005,6,5,10,0,0).next_year + end + + def test_ago + assert_equal Time.local(2005,2,22,10,10,9), Time.local(2005,2,22,10,10,10).ago(1) + assert_equal Time.local(2005,2,22,9,10,10), Time.local(2005,2,22,10,10,10).ago(3600) + assert_equal Time.local(2005,2,20,10,10,10), Time.local(2005,2,22,10,10,10).ago(86400*2) + assert_equal Time.local(2005,2,20,9,9,45), Time.local(2005,2,22,10,10,10).ago(86400*2 + 3600 + 25) + end + + def test_daylight_savings_time_crossings_backward_start + with_env_tz 'US/Eastern' do + # dt: US: 2005 April 3rd 4:18am + assert_equal Time.local(2005,4,2,4,18,0), Time.local(2005,4,3,4,18,0).ago(86400), 'dt-1.day=>st' + assert_equal Time.local(2005,4,1,4,18,0), Time.local(2005,4,2,4,18,0).ago(86400), 'st-1.day=>st' + end + with_env_tz 'NZ' do + # dt: New Zealand: 2006 October 1st 4:18am + assert_equal Time.local(2006,9,30,4,18,0), Time.local(2006,10,1,4,18,0).ago(86400), 'dt-1.day=>st' + assert_equal Time.local(2006,9,29,4,18,0), Time.local(2006,9,30,4,18,0).ago(86400), 'st-1.day=>st' + end + end + + def test_daylight_savings_time_crossings_backward_end + with_env_tz 'US/Eastern' do + # st: US: 2005 October 30th 4:03am + assert_equal Time.local(2005,10,29,4,3), Time.local(2005,10,30,4,3,0).ago(86400), 'st-1.day=>dt' + assert_equal Time.local(2005,10,28,4,3), Time.local(2005,10,29,4,3,0).ago(86400), 'dt-1.day=>dt' + end + with_env_tz 'NZ' do + # st: New Zealand: 2006 March 19th 4:03am + assert_equal Time.local(2006,3,18,4,3), Time.local(2006,3,19,4,3,0).ago(86400), 'st-1.day=>dt' + assert_equal Time.local(2006,3,17,4,3), Time.local(2006,3,18,4,3,0).ago(86400), 'dt-1.day=>dt' + end + end + + def test_daylight_savings_time_crossings_backward_start_1day + with_env_tz 'US/Eastern' do + # dt: US: 2005 April 3rd 4:18am + assert_equal Time.local(2005,4,2,4,18,0), Time.local(2005,4,3,4,18,0).ago(1.day), 'dt-1.day=>st' + assert_equal Time.local(2005,4,1,4,18,0), Time.local(2005,4,2,4,18,0).ago(1.day), 'st-1.day=>st' + end + with_env_tz 'NZ' do + # dt: New Zealand: 2006 October 1st 4:18am + assert_equal Time.local(2006,9,30,4,18,0), Time.local(2006,10,1,4,18,0).ago(1.day), 'dt-1.day=>st' + assert_equal Time.local(2006,9,29,4,18,0), Time.local(2006,9,30,4,18,0).ago(1.day), 'st-1.day=>st' + end + end + + def test_daylight_savings_time_crossings_backward_end_1day + with_env_tz 'US/Eastern' do + # st: US: 2005 October 30th 4:03am + assert_equal Time.local(2005,10,29,4,3), Time.local(2005,10,30,4,3,0).ago(1.day), 'st-1.day=>dt' + assert_equal Time.local(2005,10,28,4,3), Time.local(2005,10,29,4,3,0).ago(1.day), 'dt-1.day=>dt' + end + with_env_tz 'NZ' do + # st: New Zealand: 2006 March 19th 4:03am + assert_equal Time.local(2006,3,18,4,3), Time.local(2006,3,19,4,3,0).ago(1.day), 'st-1.day=>dt' + assert_equal Time.local(2006,3,17,4,3), Time.local(2006,3,18,4,3,0).ago(1.day), 'dt-1.day=>dt' + end + end + def test_since + assert_equal Time.local(2005,2,22,10,10,11), Time.local(2005,2,22,10,10,10).since(1) + assert_equal Time.local(2005,2,22,11,10,10), Time.local(2005,2,22,10,10,10).since(3600) + assert_equal Time.local(2005,2,24,10,10,10), Time.local(2005,2,22,10,10,10).since(86400*2) + assert_equal Time.local(2005,2,24,11,10,35), Time.local(2005,2,22,10,10,10).since(86400*2 + 3600 + 25) + # when out of range of Time, returns a DateTime + assert_equal DateTime.civil(2038,1,20,11,59,59), Time.utc(2038,1,18,11,59,59).since(86400*2) + end + + def test_daylight_savings_time_crossings_forward_start + with_env_tz 'US/Eastern' do + # st: US: 2005 April 2nd 7:27pm + assert_equal Time.local(2005,4,3,19,27,0), Time.local(2005,4,2,19,27,0).since(86400), 'st+1.day=>dt' + assert_equal Time.local(2005,4,4,19,27,0), Time.local(2005,4,3,19,27,0).since(86400), 'dt+1.day=>dt' + end + with_env_tz 'NZ' do + # st: New Zealand: 2006 September 30th 7:27pm + assert_equal Time.local(2006,10,1,19,27,0), Time.local(2006,9,30,19,27,0).since(86400), 'st+1.day=>dt' + assert_equal Time.local(2006,10,2,19,27,0), Time.local(2006,10,1,19,27,0).since(86400), 'dt+1.day=>dt' + end + end + + def test_daylight_savings_time_crossings_forward_start_1day + with_env_tz 'US/Eastern' do + # st: US: 2005 April 2nd 7:27pm + assert_equal Time.local(2005,4,3,19,27,0), Time.local(2005,4,2,19,27,0).since(1.day), 'st+1.day=>dt' + assert_equal Time.local(2005,4,4,19,27,0), Time.local(2005,4,3,19,27,0).since(1.day), 'dt+1.day=>dt' + end + with_env_tz 'NZ' do + # st: New Zealand: 2006 September 30th 7:27pm + assert_equal Time.local(2006,10,1,19,27,0), Time.local(2006,9,30,19,27,0).since(1.day), 'st+1.day=>dt' + assert_equal Time.local(2006,10,2,19,27,0), Time.local(2006,10,1,19,27,0).since(1.day), 'dt+1.day=>dt' + end + end + + def test_daylight_savings_time_crossings_forward_start_tomorrow + with_env_tz 'US/Eastern' do + # st: US: 2005 April 2nd 7:27pm + assert_equal Time.local(2005,4,3,19,27,0), Time.local(2005,4,2,19,27,0).tomorrow, 'st+1.day=>dt' + assert_equal Time.local(2005,4,4,19,27,0), Time.local(2005,4,3,19,27,0).tomorrow, 'dt+1.day=>dt' + end + with_env_tz 'NZ' do + # st: New Zealand: 2006 September 30th 7:27pm + assert_equal Time.local(2006,10,1,19,27,0), Time.local(2006,9,30,19,27,0).tomorrow, 'st+1.day=>dt' + assert_equal Time.local(2006,10,2,19,27,0), Time.local(2006,10,1,19,27,0).tomorrow, 'dt+1.day=>dt' + end + end + + def test_daylight_savings_time_crossings_backward_start_yesterday + with_env_tz 'US/Eastern' do + # st: US: 2005 April 2nd 7:27pm + assert_equal Time.local(2005,4,2,19,27,0), Time.local(2005,4,3,19,27,0).yesterday, 'dt-1.day=>st' + assert_equal Time.local(2005,4,3,19,27,0), Time.local(2005,4,4,19,27,0).yesterday, 'dt-1.day=>dt' + end + with_env_tz 'NZ' do + # st: New Zealand: 2006 September 30th 7:27pm + assert_equal Time.local(2006,9,30,19,27,0), Time.local(2006,10,1,19,27,0).yesterday, 'dt-1.day=>st' + assert_equal Time.local(2006,10,1,19,27,0), Time.local(2006,10,2,19,27,0).yesterday, 'dt-1.day=>dt' + end + end + + def test_daylight_savings_time_crossings_forward_end + with_env_tz 'US/Eastern' do + # dt: US: 2005 October 30th 12:45am + assert_equal Time.local(2005,10,31,0,45,0), Time.local(2005,10,30,0,45,0).since(86400), 'dt+1.day=>st' + assert_equal Time.local(2005,11, 1,0,45,0), Time.local(2005,10,31,0,45,0).since(86400), 'st+1.day=>st' + end + with_env_tz 'NZ' do + # dt: New Zealand: 2006 March 19th 1:45am + assert_equal Time.local(2006,3,20,1,45,0), Time.local(2006,3,19,1,45,0).since(86400), 'dt+1.day=>st' + assert_equal Time.local(2006,3,21,1,45,0), Time.local(2006,3,20,1,45,0).since(86400), 'st+1.day=>st' + end + end + + def test_daylight_savings_time_crossings_forward_end_1day + with_env_tz 'US/Eastern' do + # dt: US: 2005 October 30th 12:45am + assert_equal Time.local(2005,10,31,0,45,0), Time.local(2005,10,30,0,45,0).since(1.day), 'dt+1.day=>st' + assert_equal Time.local(2005,11, 1,0,45,0), Time.local(2005,10,31,0,45,0).since(1.day), 'st+1.day=>st' + end + with_env_tz 'NZ' do + # dt: New Zealand: 2006 March 19th 1:45am + assert_equal Time.local(2006,3,20,1,45,0), Time.local(2006,3,19,1,45,0).since(1.day), 'dt+1.day=>st' + assert_equal Time.local(2006,3,21,1,45,0), Time.local(2006,3,20,1,45,0).since(1.day), 'st+1.day=>st' + end + end + + def test_daylight_savings_time_crossings_forward_end_tomorrow + with_env_tz 'US/Eastern' do + # dt: US: 2005 October 30th 12:45am + assert_equal Time.local(2005,10,31,0,45,0), Time.local(2005,10,30,0,45,0).tomorrow, 'dt+1.day=>st' + assert_equal Time.local(2005,11, 1,0,45,0), Time.local(2005,10,31,0,45,0).tomorrow, 'st+1.day=>st' + end + with_env_tz 'NZ' do + # dt: New Zealand: 2006 March 19th 1:45am + assert_equal Time.local(2006,3,20,1,45,0), Time.local(2006,3,19,1,45,0).tomorrow, 'dt+1.day=>st' + assert_equal Time.local(2006,3,21,1,45,0), Time.local(2006,3,20,1,45,0).tomorrow, 'st+1.day=>st' + end + end + + def test_daylight_savings_time_crossings_backward_end_yesterday + with_env_tz 'US/Eastern' do + # dt: US: 2005 October 30th 12:45am + assert_equal Time.local(2005,10,30,0,45,0), Time.local(2005,10,31,0,45,0).yesterday, 'st-1.day=>dt' + assert_equal Time.local(2005,10, 31,0,45,0), Time.local(2005,11,1,0,45,0).yesterday, 'st-1.day=>st' + end + with_env_tz 'NZ' do + # dt: New Zealand: 2006 March 19th 1:45am + assert_equal Time.local(2006,3,19,1,45,0), Time.local(2006,3,20,1,45,0).yesterday, 'st-1.day=>dt' + assert_equal Time.local(2006,3,20,1,45,0), Time.local(2006,3,21,1,45,0).yesterday, 'st-1.day=>st' + end + end + + def test_yesterday + assert_equal Time.local(2005,2,21,10,10,10), Time.local(2005,2,22,10,10,10).yesterday + assert_equal Time.local(2005,2,28,10,10,10), Time.local(2005,3,2,10,10,10).yesterday.yesterday + end + + def test_tomorrow + assert_equal Time.local(2005,2,23,10,10,10), Time.local(2005,2,22,10,10,10).tomorrow + assert_equal Time.local(2005,3,2,10,10,10), Time.local(2005,2,28,10,10,10).tomorrow.tomorrow + end + + def test_change + assert_equal Time.local(2006,2,22,15,15,10), Time.local(2005,2,22,15,15,10).change(:year => 2006) + assert_equal Time.local(2005,6,22,15,15,10), Time.local(2005,2,22,15,15,10).change(:month => 6) + assert_equal Time.local(2012,9,22,15,15,10), Time.local(2005,2,22,15,15,10).change(:year => 2012, :month => 9) + assert_equal Time.local(2005,2,22,16), Time.local(2005,2,22,15,15,10).change(:hour => 16) + assert_equal Time.local(2005,2,22,16,45), Time.local(2005,2,22,15,15,10).change(:hour => 16, :min => 45) + assert_equal Time.local(2005,2,22,15,45), Time.local(2005,2,22,15,15,10).change(:min => 45) + + assert_equal Time.local(2005,1,2, 5, 0, 0, 0), Time.local(2005,1,2,11,22,33,44).change(:hour => 5) + assert_equal Time.local(2005,1,2,11, 6, 0, 0), Time.local(2005,1,2,11,22,33,44).change(:min => 6) + assert_equal Time.local(2005,1,2,11,22, 7, 0), Time.local(2005,1,2,11,22,33,44).change(:sec => 7) + assert_equal Time.local(2005,1,2,11,22,33, 8), Time.local(2005,1,2,11,22,33,44).change(:usec => 8) + end + + def test_utc_change + assert_equal Time.utc(2006,2,22,15,15,10), Time.utc(2005,2,22,15,15,10).change(:year => 2006) + assert_equal Time.utc(2005,6,22,15,15,10), Time.utc(2005,2,22,15,15,10).change(:month => 6) + assert_equal Time.utc(2012,9,22,15,15,10), Time.utc(2005,2,22,15,15,10).change(:year => 2012, :month => 9) + assert_equal Time.utc(2005,2,22,16), Time.utc(2005,2,22,15,15,10).change(:hour => 16) + assert_equal Time.utc(2005,2,22,16,45), Time.utc(2005,2,22,15,15,10).change(:hour => 16, :min => 45) + assert_equal Time.utc(2005,2,22,15,45), Time.utc(2005,2,22,15,15,10).change(:min => 45) + end + + def test_advance + assert_equal Time.local(2006,2,28,15,15,10), Time.local(2005,2,28,15,15,10).advance(:years => 1) + assert_equal Time.local(2005,6,28,15,15,10), Time.local(2005,2,28,15,15,10).advance(:months => 4) + assert_equal Time.local(2005,3,21,15,15,10), Time.local(2005,2,28,15,15,10).advance(:weeks => 3) + assert_equal Time.local(2005,3,5,15,15,10), Time.local(2005,2,28,15,15,10).advance(:days => 5) + assert_equal Time.local(2012,9,28,15,15,10), Time.local(2005,2,28,15,15,10).advance(:years => 7, :months => 7) + assert_equal Time.local(2013,10,3,15,15,10), Time.local(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :days => 5) + assert_equal Time.local(2013,10,17,15,15,10), Time.local(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5) + assert_equal Time.local(2001,12,27,15,15,10), Time.local(2005,2,28,15,15,10).advance(:years => -3, :months => -2, :days => -1) + assert_equal Time.local(2005,2,28,15,15,10), Time.local(2004,2,29,15,15,10).advance(:years => 1) #leap day plus one year + assert_equal Time.local(2005,2,28,20,15,10), Time.local(2005,2,28,15,15,10).advance(:hours => 5) + assert_equal Time.local(2005,2,28,15,22,10), Time.local(2005,2,28,15,15,10).advance(:minutes => 7) + assert_equal Time.local(2005,2,28,15,15,19), Time.local(2005,2,28,15,15,10).advance(:seconds => 9) + assert_equal Time.local(2005,2,28,20,22,19), Time.local(2005,2,28,15,15,10).advance(:hours => 5, :minutes => 7, :seconds => 9) + assert_equal Time.local(2005,2,28,10,8,1), Time.local(2005,2,28,15,15,10).advance(:hours => -5, :minutes => -7, :seconds => -9) + assert_equal Time.local(2013,10,17,20,22,19), Time.local(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5, :hours => 5, :minutes => 7, :seconds => 9) + end + + def test_utc_advance + assert_equal Time.utc(2006,2,22,15,15,10), Time.utc(2005,2,22,15,15,10).advance(:years => 1) + assert_equal Time.utc(2005,6,22,15,15,10), Time.utc(2005,2,22,15,15,10).advance(:months => 4) + assert_equal Time.utc(2005,3,21,15,15,10), Time.utc(2005,2,28,15,15,10).advance(:weeks => 3) + assert_equal Time.utc(2005,3,5,15,15,10), Time.utc(2005,2,28,15,15,10).advance(:days => 5) + assert_equal Time.utc(2012,9,22,15,15,10), Time.utc(2005,2,22,15,15,10).advance(:years => 7, :months => 7) + assert_equal Time.utc(2013,10,3,15,15,10), Time.utc(2005,2,22,15,15,10).advance(:years => 7, :months => 19, :days => 11) + assert_equal Time.utc(2013,10,17,15,15,10), Time.utc(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5) + assert_equal Time.utc(2001,12,27,15,15,10), Time.utc(2005,2,28,15,15,10).advance(:years => -3, :months => -2, :days => -1) + assert_equal Time.utc(2005,2,28,15,15,10), Time.utc(2004,2,29,15,15,10).advance(:years => 1) #leap day plus one year + assert_equal Time.utc(2005,2,28,20,15,10), Time.utc(2005,2,28,15,15,10).advance(:hours => 5) + assert_equal Time.utc(2005,2,28,15,22,10), Time.utc(2005,2,28,15,15,10).advance(:minutes => 7) + assert_equal Time.utc(2005,2,28,15,15,19), Time.utc(2005,2,28,15,15,10).advance(:seconds => 9) + assert_equal Time.utc(2005,2,28,20,22,19), Time.utc(2005,2,28,15,15,10).advance(:hours => 5, :minutes => 7, :seconds => 9) + assert_equal Time.utc(2005,2,28,10,8,1), Time.utc(2005,2,28,15,15,10).advance(:hours => -5, :minutes => -7, :seconds => -9) + assert_equal Time.utc(2013,10,17,20,22,19), Time.utc(2005,2,28,15,15,10).advance(:years => 7, :months => 19, :weeks => 2, :days => 5, :hours => 5, :minutes => 7, :seconds => 9) + end + + def test_next_week + with_env_tz 'US/Eastern' do + assert_equal Time.local(2005,2,28), Time.local(2005,2,22,15,15,10).next_week + assert_equal Time.local(2005,3,1), Time.local(2005,2,22,15,15,10).next_week(:tuesday) + assert_equal Time.local(2005,3,4), Time.local(2005,2,22,15,15,10).next_week(:friday) + assert_equal Time.local(2006,10,30), Time.local(2006,10,23,0,0,0).next_week + assert_equal Time.local(2006,11,1), Time.local(2006,10,23,0,0,0).next_week(:wednesday) + end + end + + def test_next_week_near_daylight_start + with_env_tz 'US/Eastern' do + assert_equal Time.local(2006,4,3), Time.local(2006,4,2,23,1,0).next_week, 'just crossed standard => daylight' + end + with_env_tz 'NZ' do + assert_equal Time.local(2006,10,2), Time.local(2006,10,1,23,1,0).next_week, 'just crossed standard => daylight' + end + end + + def test_next_week_near_daylight_end + with_env_tz 'US/Eastern' do + assert_equal Time.local(2006,10,30), Time.local(2006,10,29,23,1,0).next_week, 'just crossed daylight => standard' + end + with_env_tz 'NZ' do + assert_equal Time.local(2006,3,20), Time.local(2006,3,19,23,1,0).next_week, 'just crossed daylight => standard' + end + end + + def test_to_s + time = Time.utc(2005, 2, 21, 17, 44, 30) + assert_equal time.to_default_s, time.to_s + assert_equal time.to_default_s, time.to_s(:doesnt_exist) + assert_equal "2005-02-21 17:44:30", time.to_s(:db) + assert_equal "21 Feb 17:44", time.to_s(:short) + assert_equal "17:44", time.to_s(:time) + assert_equal "February 21, 2005 17:44", time.to_s(:long) + assert_equal "February 21st, 2005 17:44", time.to_s(:long_ordinal) + with_env_tz "UTC" do + assert_equal "Mon, 21 Feb 2005 17:44:30 +0000", time.to_s(:rfc822) + end + end + + def test_custom_date_format + Time::DATE_FORMATS[:custom] = '%Y%m%d%H%M%S' + assert_equal '20050221143000', Time.local(2005, 2, 21, 14, 30, 0).to_s(:custom) + Time::DATE_FORMATS.delete(:custom) + end + + def test_to_date + assert_equal Date.new(2005, 2, 21), Time.local(2005, 2, 21, 17, 44, 30).to_date + end + + def test_to_datetime + assert_equal Time.utc(2005, 2, 21, 17, 44, 30).to_datetime, DateTime.civil(2005, 2, 21, 17, 44, 30, 0, 0) + with_env_tz 'US/Eastern' do + assert_equal Time.local(2005, 2, 21, 17, 44, 30).to_datetime, DateTime.civil(2005, 2, 21, 17, 44, 30, Rational(Time.local(2005, 2, 21, 17, 44, 30).utc_offset, 86400), 0) + end + with_env_tz 'NZ' do + assert_equal Time.local(2005, 2, 21, 17, 44, 30).to_datetime, DateTime.civil(2005, 2, 21, 17, 44, 30, Rational(Time.local(2005, 2, 21, 17, 44, 30).utc_offset, 86400), 0) + end + assert_equal ::Date::ITALY, Time.utc(2005, 2, 21, 17, 44, 30).to_datetime.start # use Ruby's default start value + end + + def test_to_time + assert_equal Time.local(2005, 2, 21, 17, 44, 30), Time.local(2005, 2, 21, 17, 44, 30).to_time + end + + # NOTE: this test seems to fail (changeset 1958) only on certain platforms, + # like OSX, and FreeBSD 5.4. + def test_fp_inaccuracy_ticket_1836 + midnight = Time.local(2005, 2, 21, 0, 0, 0) + assert_equal midnight.midnight, (midnight + 1.hour + 0.000001).midnight + end + + def test_days_in_month_with_year + assert_equal 31, Time.days_in_month(1, 2005) + + assert_equal 28, Time.days_in_month(2, 2005) + assert_equal 29, Time.days_in_month(2, 2004) + assert_equal 29, Time.days_in_month(2, 2000) + assert_equal 28, Time.days_in_month(2, 1900) + + assert_equal 31, Time.days_in_month(3, 2005) + assert_equal 30, Time.days_in_month(4, 2005) + assert_equal 31, Time.days_in_month(5, 2005) + assert_equal 30, Time.days_in_month(6, 2005) + assert_equal 31, Time.days_in_month(7, 2005) + assert_equal 31, Time.days_in_month(8, 2005) + assert_equal 30, Time.days_in_month(9, 2005) + assert_equal 31, Time.days_in_month(10, 2005) + assert_equal 30, Time.days_in_month(11, 2005) + assert_equal 31, Time.days_in_month(12, 2005) + end + + uses_mocha 'TestTimeDaysInMonthWithoutYearArg' do + def test_days_in_month_feb_in_common_year_without_year_arg + Time.stubs(:now).returns(Time.utc(2007)) + assert_equal 28, Time.days_in_month(2) + end + + def test_days_in_month_feb_in_leap_year_without_year_arg + Time.stubs(:now).returns(Time.utc(2008)) + assert_equal 29, Time.days_in_month(2) + end + end + + def test_time_with_datetime_fallback + assert_equal Time.time_with_datetime_fallback(:utc, 2005, 2, 21, 17, 44, 30), Time.utc(2005, 2, 21, 17, 44, 30) + assert_equal Time.time_with_datetime_fallback(:local, 2005, 2, 21, 17, 44, 30), Time.local(2005, 2, 21, 17, 44, 30) + assert_equal Time.time_with_datetime_fallback(:utc, 2039, 2, 21, 17, 44, 30), DateTime.civil(2039, 2, 21, 17, 44, 30, 0, 0) + assert_equal Time.time_with_datetime_fallback(:local, 2039, 2, 21, 17, 44, 30), DateTime.civil(2039, 2, 21, 17, 44, 30, DateTime.local_offset, 0) + assert_equal Time.time_with_datetime_fallback(:utc, 1900, 2, 21, 17, 44, 30), DateTime.civil(1900, 2, 21, 17, 44, 30, 0, 0) + assert_equal Time.time_with_datetime_fallback(:local, 1900, 2, 21, 17, 44, 30), DateTime.civil(1900, 2, 21, 17, 44, 30, DateTime.local_offset, 0) + assert_equal Time.time_with_datetime_fallback(:utc, 2005), Time.utc(2005) + assert_equal Time.time_with_datetime_fallback(:utc, 2039), DateTime.civil(2039, 1, 1, 0, 0, 0, 0, 0) + assert_equal Time.time_with_datetime_fallback(:utc, 2005, 2, 21, 17, 44, 30, 1), Time.utc(2005, 2, 21, 17, 44, 30, 1) #with usec + assert_equal Time.time_with_datetime_fallback(:utc, 2039, 2, 21, 17, 44, 30, 1), DateTime.civil(2039, 2, 21, 17, 44, 30, 0, 0) + assert_equal ::Date::ITALY, Time.time_with_datetime_fallback(:utc, 2039, 2, 21, 17, 44, 30, 1).start # use Ruby's default start value + end + + def test_utc_time + assert_equal Time.utc_time(2005, 2, 21, 17, 44, 30), Time.utc(2005, 2, 21, 17, 44, 30) + assert_equal Time.utc_time(2039, 2, 21, 17, 44, 30), DateTime.civil(2039, 2, 21, 17, 44, 30, 0, 0) + assert_equal Time.utc_time(1901, 2, 21, 17, 44, 30), DateTime.civil(1901, 2, 21, 17, 44, 30, 0, 0) + end + + def test_local_time + assert_equal Time.local_time(2005, 2, 21, 17, 44, 30), Time.local(2005, 2, 21, 17, 44, 30) + assert_equal Time.local_time(2039, 2, 21, 17, 44, 30), DateTime.civil(2039, 2, 21, 17, 44, 30, DateTime.local_offset, 0) + assert_equal Time.local_time(1901, 2, 21, 17, 44, 30), DateTime.civil(1901, 2, 21, 17, 44, 30, DateTime.local_offset, 0) + end + + def test_next_month_on_31st + assert_equal Time.local(2005, 9, 30), Time.local(2005, 8, 31).next_month + end + + def test_last_month_on_31st + assert_equal Time.local(2004, 2, 29), Time.local(2004, 3, 31).last_month + end + + def test_xmlschema_is_available + assert_nothing_raised { Time.now.xmlschema } + end + + def test_acts_like_time + assert Time.new.acts_like_time? + end + + def test_formatted_offset_with_utc + assert_equal '+00:00', Time.utc(2000).formatted_offset + assert_equal '+0000', Time.utc(2000).formatted_offset(false) + assert_equal 'UTC', Time.utc(2000).formatted_offset(true, 'UTC') + end + + def test_formatted_offset_with_local + with_env_tz 'US/Eastern' do + assert_equal '-05:00', Time.local(2000).formatted_offset + assert_equal '-0500', Time.local(2000).formatted_offset(false) + assert_equal '-04:00', Time.local(2000, 7).formatted_offset + assert_equal '-0400', Time.local(2000, 7).formatted_offset(false) + end + end + + def test_compare_with_time + assert_equal 1, Time.utc(2000) <=> Time.utc(1999, 12, 31, 23, 59, 59, 999) + assert_equal 0, Time.utc(2000) <=> Time.utc(2000, 1, 1, 0, 0, 0) + assert_equal(-1, Time.utc(2000) <=> Time.utc(2000, 1, 1, 0, 0, 0, 001)) + end + + def test_compare_with_datetime + assert_equal 1, Time.utc(2000) <=> DateTime.civil(1999, 12, 31, 23, 59, 59) + assert_equal 0, Time.utc(2000) <=> DateTime.civil(2000, 1, 1, 0, 0, 0) + assert_equal(-1, Time.utc(2000) <=> DateTime.civil(2000, 1, 1, 0, 0, 1)) + end + + def test_compare_with_time_with_zone + assert_equal 1, Time.utc(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(1999, 12, 31, 23, 59, 59), TimeZone['UTC'] ) + assert_equal 0, Time.utc(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 0), TimeZone['UTC'] ) + assert_equal(-1, Time.utc(2000) <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 1), TimeZone['UTC'] )) + end + + def test_minus_with_time_with_zone + assert_equal 86_400.0, Time.utc(2000, 1, 2) - ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1), TimeZone['UTC'] ) + end + + def test_time_created_with_local_constructor_cannot_represent_times_during_hour_skipped_by_dst + with_env_tz 'US/Eastern' do + # On Apr 2 2006 at 2:00AM in US, clocks were moved forward to 3:00AM. + # Therefore, 2AM EST doesn't exist for this date; Time.local fails over to 3:00AM EDT + assert_equal Time.local(2006, 4, 2, 3), Time.local(2006, 4, 2, 2) + assert Time.local(2006, 4, 2, 2).dst? + end + end + + def test_case_equality + assert Time === Time.utc(2000) + assert Time === ActiveSupport::TimeWithZone.new(Time.utc(2000), TimeZone['UTC']) + assert_equal false, Time === DateTime.civil(2000) + end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/core_ext/time_with_zone_test.rb b/vendor/rails-2.1.0/activesupport/test/core_ext/time_with_zone_test.rb new file mode 100644 index 000000000..c373bca88 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/core_ext/time_with_zone_test.rb @@ -0,0 +1,676 @@ +require 'abstract_unit' + +class TimeWithZoneTest < Test::Unit::TestCase + + def setup + @utc = Time.utc(2000, 1, 1, 0) + @time_zone = TimeZone['Eastern Time (US & Canada)'] + @twz = ActiveSupport::TimeWithZone.new(@utc, @time_zone) + end + + def test_utc + assert_equal @utc, @twz.utc + end + + def test_time + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal Time.utc(1999, 12, 31, 19), @twz.time + end + end + + def test_time_zone + assert_equal @time_zone, @twz.time_zone + end + + def test_in_time_zone + Time.use_zone 'Alaska' do + assert_equal ActiveSupport::TimeWithZone.new(@utc, TimeZone['Alaska']), @twz.in_time_zone + end + end + + def test_in_time_zone_with_argument + assert_equal ActiveSupport::TimeWithZone.new(@utc, TimeZone['Alaska']), @twz.in_time_zone('Alaska') + end + + def test_in_time_zone_with_new_zone_equal_to_old_zone_does_not_create_new_object + assert_equal @twz.object_id, @twz.in_time_zone(TimeZone['Eastern Time (US & Canada)']).object_id + end + + def test_utc? + assert_equal false, @twz.utc? + assert_equal true, ActiveSupport::TimeWithZone.new(Time.utc(2000), TimeZone['UTC']).utc? + end + + def test_formatted_offset + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal '-05:00', @twz.formatted_offset + assert_equal '-04:00', ActiveSupport::TimeWithZone.new(Time.utc(2000, 6), @time_zone).formatted_offset #dst + end + end + + def test_dst? + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal false, @twz.dst? + assert_equal true, ActiveSupport::TimeWithZone.new(Time.utc(2000, 6), @time_zone).dst? + end + end + + def test_zone + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal 'EST', @twz.zone + assert_equal 'EDT', ActiveSupport::TimeWithZone.new(Time.utc(2000, 6), @time_zone).zone #dst + end + end + + def test_to_json + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal "\"1999/12/31 19:00:00 -0500\"", @twz.to_json + end + end + + def test_to_json_with_use_standard_json_time_format_config_set_to_true + old, ActiveSupport.use_standard_json_time_format = ActiveSupport.use_standard_json_time_format, true + assert_equal "\"1999-12-31T19:00:00-05:00\"", @twz.to_json + ensure + ActiveSupport.use_standard_json_time_format = old + end + + def test_strftime + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal '1999-12-31 19:00:00 EST -0500', @twz.strftime('%Y-%m-%d %H:%M:%S %Z %z') + end + end + + def test_inspect + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal 'Fri, 31 Dec 1999 19:00:00 EST -05:00', @twz.inspect + end + end + + def test_to_s + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal '1999-12-31 19:00:00 -0500', @twz.to_s + end + end + + def test_to_s_db + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal '2000-01-01 00:00:00', @twz.to_s(:db) + end + end + + def test_xmlschema + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal "1999-12-31T19:00:00-05:00", @twz.xmlschema + end + end + + def test_to_yaml + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal "--- 1999-12-31 19:00:00 -05:00\n", @twz.to_yaml + end + end + + def test_ruby_to_yaml + silence_warnings do + assert_equal "--- \n:twz: 2000-01-01 00:00:00 Z\n", {:twz => @twz}.to_yaml + end + end + + def test_httpdate + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal 'Sat, 01 Jan 2000 00:00:00 GMT', @twz.httpdate + end + end + + def test_rfc2822 + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal "Fri, 31 Dec 1999 19:00:00 -0500", @twz.rfc2822 + end + end + + def test_compare_with_time + assert_equal 1, @twz <=> Time.utc(1999, 12, 31, 23, 59, 59) + assert_equal 0, @twz <=> Time.utc(2000, 1, 1, 0, 0, 0) + assert_equal(-1, @twz <=> Time.utc(2000, 1, 1, 0, 0, 1)) + end + + def test_compare_with_datetime + assert_equal 1, @twz <=> DateTime.civil(1999, 12, 31, 23, 59, 59) + assert_equal 0, @twz <=> DateTime.civil(2000, 1, 1, 0, 0, 0) + assert_equal(-1, @twz <=> DateTime.civil(2000, 1, 1, 0, 0, 1)) + end + + def test_compare_with_time_with_zone + assert_equal 1, @twz <=> ActiveSupport::TimeWithZone.new( Time.utc(1999, 12, 31, 23, 59, 59), TimeZone['UTC'] ) + assert_equal 0, @twz <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 0), TimeZone['UTC'] ) + assert_equal(-1, @twz <=> ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 0, 0, 1), TimeZone['UTC'] )) + end + + def test_between? + assert @twz.between?(Time.utc(1999,12,31,23,59,59), Time.utc(2000,1,1,0,0,1)) + assert_equal false, @twz.between?(Time.utc(2000,1,1,0,0,1), Time.utc(2000,1,1,0,0,2)) + end + + def test_eql? + assert @twz.eql?(Time.utc(2000)) + assert @twz.eql?( ActiveSupport::TimeWithZone.new(Time.utc(2000), TimeZone["Hawaii"]) ) + end + + def test_plus_with_integer + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal Time.utc(1999, 12, 31, 19, 0 ,5), (@twz + 5).time + end + end + + def test_plus_with_integer_when_self_wraps_datetime + silence_warnings do # silence warnings raised by tzinfo gem + datetime = DateTime.civil(2000, 1, 1, 0) + twz = ActiveSupport::TimeWithZone.new(datetime, @time_zone) + assert_equal DateTime.civil(1999, 12, 31, 19, 0 ,5), (twz + 5).time + end + end + + def test_plus_when_crossing_time_class_limit + silence_warnings do # silence warnings raised by tzinfo gem + twz = ActiveSupport::TimeWithZone.new(Time.utc(2038, 1, 19), @time_zone) + assert_equal [0, 0, 19, 19, 1, 2038], (twz + 86_400).to_a[0,6] + end + end + + def test_plus_with_duration + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal Time.utc(2000, 1, 5, 19, 0 ,0), (@twz + 5.days).time + end + end + + def test_minus_with_integer + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal Time.utc(1999, 12, 31, 18, 59 ,55), (@twz - 5).time + end + end + + def test_minus_with_integer_when_self_wraps_datetime + silence_warnings do # silence warnings raised by tzinfo gem + datetime = DateTime.civil(2000, 1, 1, 0) + twz = ActiveSupport::TimeWithZone.new(datetime, @time_zone) + assert_equal DateTime.civil(1999, 12, 31, 18, 59 ,55), (twz - 5).time + end + end + + def test_minus_with_duration + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal Time.utc(1999, 12, 26, 19, 0 ,0), (@twz - 5.days).time + end + end + + def test_minus_with_time + assert_equal 86_400.0, ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 2), TimeZone['UTC'] ) - Time.utc(2000, 1, 1) + assert_equal 86_400.0, ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 2), TimeZone['Hawaii'] ) - Time.utc(2000, 1, 1) + end + + def test_minus_with_time_with_zone + twz1 = ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1), TimeZone['UTC'] ) + twz2 = ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 2), TimeZone['UTC'] ) + assert_equal 86_400.0, twz2 - twz1 + end + + def test_plus_and_minus_enforce_spring_dst_rules + silence_warnings do # silence warnings raised by tzinfo gem + utc = Time.utc(2006,4,2,6,59,59) # == Apr 2 2006 01:59:59 EST; i.e., 1 second before daylight savings start + twz = ActiveSupport::TimeWithZone.new(utc, @time_zone) + assert_equal Time.utc(2006,4,2,1,59,59), twz.time + assert_equal false, twz.dst? + assert_equal 'EST', twz.zone + twz = twz + 1 + assert_equal Time.utc(2006,4,2,3), twz.time # adding 1 sec springs forward to 3:00AM EDT + assert_equal true, twz.dst? + assert_equal 'EDT', twz.zone + twz = twz - 1 # subtracting 1 second takes goes back to 1:59:59AM EST + assert_equal Time.utc(2006,4,2,1,59,59), twz.time + assert_equal false, twz.dst? + assert_equal 'EST', twz.zone + end + end + + def test_plus_and_minus_enforce_fall_dst_rules + silence_warnings do # silence warnings raised by tzinfo gem + utc = Time.utc(2006,10,29,5,59,59) # == Oct 29 2006 01:59:59 EST; i.e., 1 second before daylight savings end + twz = ActiveSupport::TimeWithZone.new(utc, @time_zone) + assert_equal Time.utc(2006,10,29,1,59,59), twz.time + assert_equal true, twz.dst? + assert_equal 'EDT', twz.zone + twz = twz + 1 + assert_equal Time.utc(2006,10,29,1), twz.time # adding 1 sec falls back from 1:59:59 EDT to 1:00AM EST + assert_equal false, twz.dst? + assert_equal 'EST', twz.zone + twz = twz - 1 + assert_equal Time.utc(2006,10,29,1,59,59), twz.time # subtracting 1 sec goes back to 1:59:59AM EDT + assert_equal true, twz.dst? + assert_equal 'EDT', twz.zone + end + end + + def test_to_a + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal [45, 30, 5, 1, 2, 2000, 2, 32, false, "HST"], ActiveSupport::TimeWithZone.new( Time.utc(2000, 2, 1, 15, 30, 45), TimeZone['Hawaii'] ).to_a + end + end + + def test_to_f + result = ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1), TimeZone['Hawaii'] ).to_f + assert_equal 946684800.0, result + assert result.is_a?(Float) + end + + def test_to_i + result = ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1), TimeZone['Hawaii'] ).to_i + assert_equal 946684800, result + assert result.is_a?(Integer) + end + + def test_to_time + assert_equal @twz, @twz.to_time + end + + def test_to_date + silence_warnings do # silence warnings raised by tzinfo gem + # 1 sec before midnight Jan 1 EST + assert_equal Date.new(1999, 12, 31), ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 4, 59, 59), TimeZone['Eastern Time (US & Canada)'] ).to_date + # midnight Jan 1 EST + assert_equal Date.new(2000, 1, 1), ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 1, 5, 0, 0), TimeZone['Eastern Time (US & Canada)'] ).to_date + # 1 sec before midnight Jan 2 EST + assert_equal Date.new(2000, 1, 1), ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 2, 4, 59, 59), TimeZone['Eastern Time (US & Canada)'] ).to_date + # midnight Jan 2 EST + assert_equal Date.new(2000, 1, 2), ActiveSupport::TimeWithZone.new( Time.utc(2000, 1, 2, 5, 0, 0), TimeZone['Eastern Time (US & Canada)'] ).to_date + end + end + + def test_to_datetime + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal DateTime.civil(1999, 12, 31, 19, 0, 0, Rational(-18_000, 86_400)), @twz.to_datetime + end + end + + def test_acts_like_time + assert @twz.acts_like?(:time) + assert ActiveSupport::TimeWithZone.new(DateTime.civil(2000), @time_zone).acts_like?(:time) + end + + def test_acts_like_date + assert_equal false, @twz.acts_like?(:date) + assert_equal false, ActiveSupport::TimeWithZone.new(DateTime.civil(2000), @time_zone).acts_like?(:date) + end + + def test_is_a + assert @twz.is_a?(Time) + assert @twz.kind_of?(Time) + assert @twz.is_a?(ActiveSupport::TimeWithZone) + end + + def test_method_missing_with_time_return_value + silence_warnings do # silence warnings raised by tzinfo gem + assert_instance_of ActiveSupport::TimeWithZone, @twz.months_since(1) + assert_equal Time.utc(2000, 1, 31, 19, 0 ,0), @twz.months_since(1).time + end + end + + def test_marshal_dump_and_load + silence_warnings do # silence warnings raised by tzinfo gem + marshal_str = Marshal.dump(@twz) + mtime = Marshal.load(marshal_str) + assert_equal Time.utc(2000, 1, 1, 0), mtime.utc + assert_equal TimeZone['Eastern Time (US & Canada)'], mtime.time_zone + assert_equal Time.utc(1999, 12, 31, 19), mtime.time + end + end + + def test_marshal_dump_and_load_with_tzinfo_identifier + silence_warnings do # silence warnings raised by tzinfo gem + twz = ActiveSupport::TimeWithZone.new(@utc, TZInfo::Timezone.get('America/New_York')) + marshal_str = Marshal.dump(twz) + mtime = Marshal.load(marshal_str) + assert_equal Time.utc(2000, 1, 1, 0), mtime.utc + assert_equal 'America/New_York', mtime.time_zone.name + assert_equal Time.utc(1999, 12, 31, 19), mtime.time + end + end + + def test_method_missing_with_non_time_return_value + silence_warnings do # silence warnings raised by tzinfo gem + @twz.time.expects(:foo).returns('bar') + assert_equal 'bar', @twz.foo + end + end + + def test_date_part_value_methods + silence_warnings do # silence warnings raised by tzinfo gem + twz = ActiveSupport::TimeWithZone.new(Time.utc(1999,12,31,19,18,17,500), @time_zone) + twz.stubs(:method_missing).returns(nil) #ensure these methods are defined directly on class + assert_equal 1999, twz.year + assert_equal 12, twz.month + assert_equal 31, twz.day + assert_equal 14, twz.hour + assert_equal 18, twz.min + assert_equal 17, twz.sec + assert_equal 500, twz.usec + end + end + + def test_usec_returns_0_when_datetime_is_wrapped + silence_warnings do # silence warnings raised by tzinfo gem + twz = ActiveSupport::TimeWithZone.new(DateTime.civil(2000), @time_zone) + assert_equal 0, twz.usec + end + end + + def test_utc_to_local_conversion_saves_period_in_instance_variable + silence_warnings do # silence warnings raised by tzinfo gem + assert_nil @twz.instance_variable_get('@period') + @twz.time + assert_kind_of TZInfo::TimezonePeriod, @twz.instance_variable_get('@period') + end + end + + def test_instance_created_with_local_time_returns_correct_utc_time + silence_warnings do # silence warnings raised by tzinfo gem + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(1999, 12, 31, 19)) + assert_equal Time.utc(2000), twz.utc + end + end + + def test_instance_created_with_local_time_enforces_spring_dst_rules + silence_warnings do # silence warnings raised by tzinfo gem + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(2006,4,2,2)) # first second of DST + assert_equal Time.utc(2006,4,2,3), twz.time # springs forward to 3AM + assert_equal true, twz.dst? + assert_equal 'EDT', twz.zone + end + end + + def test_instance_created_with_local_time_enforces_fall_dst_rules + silence_warnings do # silence warnings raised by tzinfo gem + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(2006,10,29,1)) # 1AM can be either DST or non-DST; we'll pick DST + assert_equal Time.utc(2006,10,29,1), twz.time + assert_equal true, twz.dst? + assert_equal 'EDT', twz.zone + end + end + + def test_ruby_19_weekday_name_query_methods + ruby_19_or_greater = RUBY_VERSION >= '1.9' + %w(sunday? monday? tuesday? wednesday? thursday? friday? saturday?).each do |name| + assert_equal ruby_19_or_greater, @twz.respond_to?(name) + end + end + + def test_utc_to_local_conversion_with_far_future_datetime + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal [0,0,19,31,12,2049], ActiveSupport::TimeWithZone.new(DateTime.civil(2050), @time_zone).to_a[0,6] + end + end + + def test_local_to_utc_conversion_with_far_future_datetime + silence_warnings do # silence warnings raised by tzinfo gem + assert_equal DateTime.civil(2050).to_f, ActiveSupport::TimeWithZone.new(nil, @time_zone, DateTime.civil(2049,12,31,19)).to_f + end + end + + def test_change + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Mon, 31 Dec 2001 19:00:00 EST -05:00", @twz.change(:year => 2001).inspect + assert_equal "Wed, 31 Mar 1999 19:00:00 EST -05:00", @twz.change(:month => 3).inspect + assert_equal "Wed, 03 Mar 1999 19:00:00 EST -05:00", @twz.change(:month => 2).inspect + assert_equal "Wed, 15 Dec 1999 19:00:00 EST -05:00", @twz.change(:day => 15).inspect + assert_equal "Fri, 31 Dec 1999 06:00:00 EST -05:00", @twz.change(:hour => 6).inspect + assert_equal "Fri, 31 Dec 1999 19:15:00 EST -05:00", @twz.change(:min => 15).inspect + assert_equal "Fri, 31 Dec 1999 19:00:30 EST -05:00", @twz.change(:sec => 30).inspect + end + + def test_advance + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Mon, 31 Dec 2001 19:00:00 EST -05:00", @twz.advance(:years => 2).inspect + assert_equal "Fri, 31 Mar 2000 19:00:00 EST -05:00", @twz.advance(:months => 3).inspect + assert_equal "Tue, 04 Jan 2000 19:00:00 EST -05:00", @twz.advance(:days => 4).inspect + assert_equal "Sat, 01 Jan 2000 01:00:00 EST -05:00", @twz.advance(:hours => 6).inspect + assert_equal "Fri, 31 Dec 1999 19:15:00 EST -05:00", @twz.advance(:minutes => 15).inspect + assert_equal "Fri, 31 Dec 1999 19:00:30 EST -05:00", @twz.advance(:seconds => 30).inspect + end + + def beginning_of_year + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Fri, 01 Jan 1999 00:00:00 EST -05:00", @twz.beginning_of_year.inspect + end + + def end_of_year + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Fri, 31 Dec 1999 23:59:59 EST -05:00", @twz.end_of_year.inspect + end + + def beginning_of_month + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Fri, 01 Dec 1999 00:00:00 EST -05:00", @twz.beginning_of_month.inspect + end + + def end_of_month + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Fri, 31 Dec 1999 23:59:59 EST -05:00", @twz.end_of_month.inspect + end + + def beginning_of_day + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Fri, 31 Dec 1999 00:00:00 EST -05:00", @twz.beginning_of_day.inspect + end + + def end_of_day + assert_equal "Fri, 31 Dec 1999 19:00:00 EST -05:00", @twz.inspect + assert_equal "Fri, 31 Dec 1999 23:59:59 EST -05:00", @twz.end_of_day.inspect + end + + def test_since + assert_equal "Fri, 31 Dec 1999 19:00:01 EST -05:00", @twz.since(1).inspect + end + + def test_ago + assert_equal "Fri, 31 Dec 1999 18:59:59 EST -05:00", @twz.ago(1).inspect + end + + def test_seconds_since_midnight + assert_equal 19 * 60 * 60, @twz.seconds_since_midnight + end + + def test_advance_1_year_from_leap_day + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(2004,2,29)) + assert_equal "Mon, 28 Feb 2005 00:00:00 EST -05:00", twz.advance(:years => 1).inspect + assert_equal "Mon, 28 Feb 2005 00:00:00 EST -05:00", twz.years_since(1).inspect + assert_equal "Mon, 28 Feb 2005 00:00:00 EST -05:00", (twz + 1.year).inspect + end + + def test_advance_1_month_from_last_day_of_january + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(2005,1,31)) + assert_equal "Mon, 28 Feb 2005 00:00:00 EST -05:00", twz.advance(:months => 1).inspect + assert_equal "Mon, 28 Feb 2005 00:00:00 EST -05:00", twz.months_since(1).inspect + assert_equal "Mon, 28 Feb 2005 00:00:00 EST -05:00", (twz + 1.month).inspect + end + + def test_advance_1_month_from_last_day_of_january_during_leap_year + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(2000,1,31)) + assert_equal "Tue, 29 Feb 2000 00:00:00 EST -05:00", twz.advance(:months => 1).inspect + assert_equal "Tue, 29 Feb 2000 00:00:00 EST -05:00", twz.months_since(1).inspect + assert_equal "Tue, 29 Feb 2000 00:00:00 EST -05:00", (twz + 1.month).inspect + end + + def test_advance_1_month_into_spring_dst_gap + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(2006,3,2,2)) + assert_equal "Sun, 02 Apr 2006 03:00:00 EDT -04:00", twz.advance(:months => 1).inspect + assert_equal "Sun, 02 Apr 2006 03:00:00 EDT -04:00", twz.months_since(1).inspect + assert_equal "Sun, 02 Apr 2006 03:00:00 EDT -04:00", (twz + 1.month).inspect + end + + def test_advance_1_second_into_spring_dst_gap + twz = ActiveSupport::TimeWithZone.new(nil, @time_zone, Time.utc(2006,4,2,1,59,59)) + assert_equal "Sun, 02 Apr 2006 03:00:00 EDT -04:00", twz.advance(:seconds => 1).inspect + assert_equal "Sun, 02 Apr 2006 03:00:00 EDT -04:00", (twz + 1).inspect + assert_equal "Sun, 02 Apr 2006 03:00:00 EDT -04:00", (twz + 1.second).inspect + end +end + +class TimeWithZoneMethodsForTimeAndDateTimeTest < Test::Unit::TestCase + def setup + @t, @dt = Time.utc(2000), DateTime.civil(2000) + end + + def teardown + Time.zone = nil + end + + def test_in_time_zone + silence_warnings do # silence warnings raised by tzinfo gem + Time.use_zone 'Alaska' do + assert_equal 'Fri, 31 Dec 1999 15:00:00 AKST -09:00', @t.in_time_zone.inspect + assert_equal 'Fri, 31 Dec 1999 15:00:00 AKST -09:00', @dt.in_time_zone.inspect + end + Time.use_zone 'Hawaii' do + assert_equal 'Fri, 31 Dec 1999 14:00:00 HST -10:00', @t.in_time_zone.inspect + assert_equal 'Fri, 31 Dec 1999 14:00:00 HST -10:00', @dt.in_time_zone.inspect + end + Time.use_zone nil do + assert_equal @t, @t.in_time_zone + assert_equal @dt, @dt.in_time_zone + end + end + end + + def test_in_time_zone_with_argument + silence_warnings do # silence warnings raised by tzinfo gem + Time.use_zone 'Eastern Time (US & Canada)' do # Time.zone will not affect #in_time_zone(zone) + assert_equal 'Fri, 31 Dec 1999 15:00:00 AKST -09:00', @t.in_time_zone('Alaska').inspect + assert_equal 'Fri, 31 Dec 1999 15:00:00 AKST -09:00', @dt.in_time_zone('Alaska').inspect + assert_equal 'Fri, 31 Dec 1999 14:00:00 HST -10:00', @t.in_time_zone('Hawaii').inspect + assert_equal 'Fri, 31 Dec 1999 14:00:00 HST -10:00', @dt.in_time_zone('Hawaii').inspect + assert_equal 'Sat, 01 Jan 2000 00:00:00 UTC +00:00', @t.in_time_zone('UTC').inspect + assert_equal 'Sat, 01 Jan 2000 00:00:00 UTC +00:00', @dt.in_time_zone('UTC').inspect + assert_equal 'Fri, 31 Dec 1999 15:00:00 AKST -09:00', @t.in_time_zone(-9.hours).inspect + end + end + end + + def test_in_time_zone_with_time_local_instance + silence_warnings do # silence warnings raised by tzinfo gem + with_env_tz 'US/Eastern' do + time = Time.local(1999, 12, 31, 19) # == Time.utc(2000) + assert_equal 'Fri, 31 Dec 1999 15:00:00 AKST -09:00', time.in_time_zone('Alaska').inspect + end + end + end + + def test_use_zone + Time.zone = 'Alaska' + Time.use_zone 'Hawaii' do + assert_equal TimeZone['Hawaii'], Time.zone + end + assert_equal TimeZone['Alaska'], Time.zone + end + + def test_use_zone_with_exception_raised + Time.zone = 'Alaska' + assert_raises RuntimeError do + Time.use_zone('Hawaii') { raise RuntimeError } + end + assert_equal TimeZone['Alaska'], Time.zone + end + + def test_time_zone_getter_and_setter + Time.zone = TimeZone['Alaska'] + assert_equal TimeZone['Alaska'], Time.zone + Time.zone = 'Alaska' + assert_equal TimeZone['Alaska'], Time.zone + Time.zone = -9.hours + assert_equal TimeZone['Alaska'], Time.zone + Time.zone = nil + assert_equal nil, Time.zone + end + + def test_time_zone_getter_and_setter_with_zone_default + Time.zone_default = TimeZone['Alaska'] + assert_equal TimeZone['Alaska'], Time.zone + Time.zone = TimeZone['Hawaii'] + assert_equal TimeZone['Hawaii'], Time.zone + Time.zone = nil + assert_equal TimeZone['Alaska'], Time.zone + ensure + Time.zone_default = nil + end + + def test_time_zone_setter_is_thread_safe + Time.use_zone 'Paris' do + t1 = Thread.new { Time.zone = 'Alaska' }.join + t2 = Thread.new { Time.zone = 'Hawaii' }.join + assert t1.stop?, "Thread 1 did not finish running" + assert t2.stop?, "Thread 2 did not finish running" + assert_equal TimeZone['Paris'], Time.zone + assert_equal TimeZone['Alaska'], t1[:time_zone] + assert_equal TimeZone['Hawaii'], t2[:time_zone] + end + end + + def test_time_zone_setter_with_tzinfo_timezone_object_wraps_in_rails_time_zone + silence_warnings do # silence warnings raised by tzinfo gem + tzinfo = TZInfo::Timezone.get('America/New_York') + Time.zone = tzinfo + assert_kind_of TimeZone, Time.zone + assert_equal tzinfo, Time.zone.tzinfo + assert_equal 'America/New_York', Time.zone.name + assert_equal(-18_000, Time.zone.utc_offset) + end + end + + def test_time_zone_setter_with_tzinfo_timezone_identifier_does_lookup_and_wraps_in_rails_time_zone + silence_warnings do # silence warnings raised by tzinfo gem + Time.zone = 'America/New_York' + assert_kind_of TimeZone, Time.zone + assert_equal 'America/New_York', Time.zone.tzinfo.name + assert_equal 'America/New_York', Time.zone.name + assert_equal(-18_000, Time.zone.utc_offset) + end + end + + def test_time_zone_setter_with_non_identifying_argument_returns_nil + Time.zone = 'foo' + assert_equal nil, Time.zone + Time.zone = -15.hours + assert_equal nil, Time.zone + end + + uses_mocha 'TestTimeCurrent' do + def test_current_returns_time_now_when_zone_default_not_set + with_env_tz 'US/Eastern' do + Time.stubs(:now).returns Time.local(2000) + assert_equal false, Time.current.is_a?(ActiveSupport::TimeWithZone) + assert_equal Time.local(2000), Time.current + end + end + + def test_current_returns_time_zone_now_when_zone_default_set + silence_warnings do # silence warnings raised by tzinfo gem + Time.zone_default = TimeZone['Eastern Time (US & Canada)'] + with_env_tz 'US/Eastern' do + Time.stubs(:now).returns Time.local(2000) + assert_equal true, Time.current.is_a?(ActiveSupport::TimeWithZone) + assert_equal 'Eastern Time (US & Canada)', Time.current.time_zone.name + assert_equal Time.utc(2000), Time.current.time + end + end + ensure + Time.zone_default = nil + end + end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/check_warnings.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/check_warnings.rb new file mode 100644 index 000000000..03c3dca1d --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/check_warnings.rb @@ -0,0 +1,2 @@ +$check_warnings_load_count += 1 +$checked_verbose = $VERBOSE diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/conflict.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/conflict.rb new file mode 100644 index 000000000..e888b7b54 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/conflict.rb @@ -0,0 +1 @@ +Conflict = 1
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/cross_site_depender.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/cross_site_depender.rb new file mode 100644 index 000000000..a31015fc5 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/cross_site_depender.rb @@ -0,0 +1,3 @@ +class CrossSiteDepender + CrossSiteDependency +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/mutual_one.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/mutual_one.rb new file mode 100644 index 000000000..576eb3171 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/mutual_one.rb @@ -0,0 +1,4 @@ +$mutual_dependencies_count += 1 +require_dependency 'mutual_two' +require_dependency 'mutual_two.rb' +require_dependency 'mutual_two' diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/mutual_two.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/mutual_two.rb new file mode 100644 index 000000000..fdbc2dcd8 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/mutual_two.rb @@ -0,0 +1,4 @@ +$mutual_dependencies_count += 1 +require_dependency 'mutual_one.rb' +require_dependency 'mutual_one' +require_dependency 'mutual_one.rb' diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/raises_exception.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/raises_exception.rb new file mode 100644 index 000000000..dd745ac20 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/raises_exception.rb @@ -0,0 +1,3 @@ +$raises_exception_load_count += 1 +raise Exception, 'Loading me failed, so do not add to loaded or history.' +$raises_exception_load_count += 1 diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/requires_nonexistent0.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/requires_nonexistent0.rb new file mode 100644 index 000000000..7e24b3916 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/requires_nonexistent0.rb @@ -0,0 +1 @@ +require 'RMagickDontExistDude' diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/requires_nonexistent1.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/requires_nonexistent1.rb new file mode 100644 index 000000000..41e666816 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/requires_nonexistent1.rb @@ -0,0 +1 @@ +require_dependency 'requires_nonexistent0' diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/service_one.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/service_one.rb new file mode 100644 index 000000000..f43bfea23 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/service_one.rb @@ -0,0 +1,5 @@ +$loaded_service_one ||= 0 +$loaded_service_one += 1 + +class ServiceOne +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies/service_two.rb b/vendor/rails-2.1.0/activesupport/test/dependencies/service_two.rb new file mode 100644 index 000000000..5205a78bb --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies/service_two.rb @@ -0,0 +1,2 @@ +class ServiceTwo +end
\ No newline at end of file diff --git a/vendor/rails-2.1.0/activesupport/test/dependencies_test.rb b/vendor/rails-2.1.0/activesupport/test/dependencies_test.rb new file mode 100644 index 000000000..0309ab685 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/dependencies_test.rb @@ -0,0 +1,765 @@ +require 'abstract_unit' +require 'pp' + +module ModuleWithMissing + mattr_accessor :missing_count + def self.const_missing(name) + self.missing_count += 1 + name + end +end + +module ModuleWithConstant + InheritedConstant = "Hello" +end + +class DependenciesTest < Test::Unit::TestCase + def teardown + Dependencies.clear + end + + def with_loading(*from) + old_mechanism, Dependencies.mechanism = Dependencies.mechanism, :load + dir = File.dirname(__FILE__) + prior_load_paths = Dependencies.load_paths + Dependencies.load_paths = from.collect { |f| "#{dir}/#{f}" } + yield + ensure + Dependencies.load_paths = prior_load_paths + Dependencies.mechanism = old_mechanism + Dependencies.explicitly_unloadable_constants = [] + end + + def test_tracking_loaded_files + require_dependency 'dependencies/service_one' + require_dependency 'dependencies/service_two' + assert_equal 2, Dependencies.loaded.size + end + + def test_tracking_identical_loaded_files + require_dependency 'dependencies/service_one' + require_dependency 'dependencies/service_one' + assert_equal 1, Dependencies.loaded.size + end + + def test_missing_dependency_raises_missing_source_file + assert_raises(MissingSourceFile) { require_dependency("missing_service") } + end + + def test_missing_association_raises_nothing + assert_nothing_raised { require_association("missing_model") } + end + + def test_dependency_which_raises_exception_isnt_added_to_loaded_set + with_loading do + filename = 'dependencies/raises_exception' + $raises_exception_load_count = 0 + + 5.times do |count| + begin + require_dependency filename + flunk 'should have loaded dependencies/raises_exception which raises an exception' + rescue Exception => e + assert_equal 'Loading me failed, so do not add to loaded or history.', e.message + end + assert_equal count + 1, $raises_exception_load_count + + assert !Dependencies.loaded.include?(filename) + assert !Dependencies.history.include?(filename) + end + end + end + + def test_warnings_should_be_enabled_on_first_load + with_loading 'dependencies' do + old_warnings, Dependencies.warnings_on_first_load = Dependencies.warnings_on_first_load, true + + filename = "check_warnings" + expanded = File.expand_path("test/dependencies/#{filename}") + $check_warnings_load_count = 0 + + assert !Dependencies.loaded.include?(expanded) + assert !Dependencies.history.include?(expanded) + + silence_warnings { require_dependency filename } + assert_equal 1, $check_warnings_load_count + assert_equal true, $checked_verbose, 'On first load warnings should be enabled.' + + assert Dependencies.loaded.include?(expanded) + Dependencies.clear + assert !Dependencies.loaded.include?(expanded) + assert Dependencies.history.include?(expanded) + + silence_warnings { require_dependency filename } + assert_equal 2, $check_warnings_load_count + assert_equal nil, $checked_verbose, 'After first load warnings should be left alone.' + + assert Dependencies.loaded.include?(expanded) + Dependencies.clear + assert !Dependencies.loaded.include?(expanded) + assert Dependencies.history.include?(expanded) + + enable_warnings { require_dependency filename } + assert_equal 3, $check_warnings_load_count + assert_equal true, $checked_verbose, 'After first load warnings should be left alone.' + + assert Dependencies.loaded.include?(expanded) + end + end + + def test_mutual_dependencies_dont_infinite_loop + with_loading 'dependencies' do + $mutual_dependencies_count = 0 + assert_nothing_raised { require_dependency 'mutual_one' } + assert_equal 2, $mutual_dependencies_count + + Dependencies.clear + + $mutual_dependencies_count = 0 + assert_nothing_raised { require_dependency 'mutual_two' } + assert_equal 2, $mutual_dependencies_count + end + end + + def test_as_load_path + assert_equal '', DependenciesTest.as_load_path + end + + def test_module_loading + with_loading 'autoloading_fixtures' do + assert_kind_of Module, A + assert_kind_of Class, A::B + assert_kind_of Class, A::C::D + assert_kind_of Class, A::C::E::F + end + end + + def test_non_existing_const_raises_name_error + with_loading 'autoloading_fixtures' do + assert_raises(NameError) { DoesNotExist } + assert_raises(NameError) { NoModule::DoesNotExist } + assert_raises(NameError) { A::DoesNotExist } + assert_raises(NameError) { A::B::DoesNotExist } + end + end + + def test_directories_manifest_as_modules_unless_const_defined + with_loading 'autoloading_fixtures' do + assert_kind_of Module, ModuleFolder + Object.send! :remove_const, :ModuleFolder + end + end + + def test_module_with_nested_class + with_loading 'autoloading_fixtures' do + assert_kind_of Class, ModuleFolder::NestedClass + Object.send! :remove_const, :ModuleFolder + end + end + + def test_module_with_nested_inline_class + with_loading 'autoloading_fixtures' do + assert_kind_of Class, ModuleFolder::InlineClass + Object.send! :remove_const, :ModuleFolder + end + end + + def test_directories_may_manifest_as_nested_classes + with_loading 'autoloading_fixtures' do + assert_kind_of Class, ClassFolder + Object.send! :remove_const, :ClassFolder + end + end + + def test_class_with_nested_class + with_loading 'autoloading_fixtures' do + assert_kind_of Class, ClassFolder::NestedClass + Object.send! :remove_const, :ClassFolder + end + end + + def test_class_with_nested_inline_class + with_loading 'autoloading_fixtures' do + assert_kind_of Class, ClassFolder::InlineClass + Object.send! :remove_const, :ClassFolder + end + end + + def test_class_with_nested_inline_subclass_of_parent + with_loading 'autoloading_fixtures' do + assert_kind_of Class, ClassFolder::ClassFolderSubclass + assert_kind_of Class, ClassFolder + assert_equal 'indeed', ClassFolder::ClassFolderSubclass::ConstantInClassFolder + Object.send! :remove_const, :ClassFolder + end + end + + def test_nested_class_can_access_sibling + with_loading 'autoloading_fixtures' do + sibling = ModuleFolder::NestedClass.class_eval "NestedSibling" + assert defined?(ModuleFolder::NestedSibling) + assert_equal ModuleFolder::NestedSibling, sibling + Object.send! :remove_const, :ModuleFolder + end + end + + def failing_test_access_thru_and_upwards_fails + with_loading 'autoloading_fixtures' do + assert ! defined?(ModuleFolder) + assert_raises(NameError) { ModuleFolder::Object } + assert_raises(NameError) { ModuleFolder::NestedClass::Object } + Object.send! :remove_const, :ModuleFolder + end + end + + def test_non_existing_const_raises_name_error_with_fully_qualified_name + with_loading 'autoloading_fixtures' do + begin + A::DoesNotExist.nil? + flunk "No raise!!" + rescue NameError => e + assert_equal "uninitialized constant A::DoesNotExist", e.message + end + begin + A::B::DoesNotExist.nil? + flunk "No raise!!" + rescue NameError => e + assert_equal "uninitialized constant A::B::DoesNotExist", e.message + end + end + end + + def test_smart_name_error_strings + begin + Object.module_eval "ImaginaryObject" + flunk "No raise!!" + rescue NameError => e + assert e.message.include?("uninitialized constant ImaginaryObject") + end + end + + def test_loadable_constants_for_path_should_handle_empty_autoloads + assert_equal [], Dependencies.loadable_constants_for_path('hello') + end + + def test_loadable_constants_for_path_should_handle_relative_paths + fake_root = 'dependencies' + relative_root = File.dirname(__FILE__) + '/dependencies' + ['', '/'].each do |suffix| + with_loading fake_root + suffix do + assert_equal ["A::B"], Dependencies.loadable_constants_for_path(relative_root + '/a/b') + end + end + end + + def test_loadable_constants_for_path_should_provide_all_results + fake_root = '/usr/apps/backpack' + with_loading fake_root, fake_root + '/lib' do + root = Dependencies.load_paths.first + assert_equal ["Lib::A::B", "A::B"], Dependencies.loadable_constants_for_path(root + '/lib/a/b') + end + end + + def test_loadable_constants_for_path_should_uniq_results + fake_root = '/usr/apps/backpack/lib' + with_loading fake_root, fake_root + '/' do + root = Dependencies.load_paths.first + assert_equal ["A::B"], Dependencies.loadable_constants_for_path(root + '/a/b') + end + end + + def test_loadable_constants_with_load_path_without_trailing_slash + path = File.dirname(__FILE__) + '/autoloading_fixtures/class_folder/inline_class.rb' + with_loading 'autoloading_fixtures/class/' do + assert_equal [], Dependencies.loadable_constants_for_path(path) + end + end + + def test_qualified_const_defined + assert Dependencies.qualified_const_defined?("Object") + assert Dependencies.qualified_const_defined?("::Object") + assert Dependencies.qualified_const_defined?("::Object::Kernel") + assert Dependencies.qualified_const_defined?("::Object::Dependencies") + assert Dependencies.qualified_const_defined?("::Test::Unit::TestCase") + end + + def test_qualified_const_defined_should_not_call_method_missing + ModuleWithMissing.missing_count = 0 + assert ! Dependencies.qualified_const_defined?("ModuleWithMissing::A") + assert_equal 0, ModuleWithMissing.missing_count + assert ! Dependencies.qualified_const_defined?("ModuleWithMissing::A::B") + assert_equal 0, ModuleWithMissing.missing_count + end + + def test_autoloaded? + with_loading 'autoloading_fixtures' do + assert ! Dependencies.autoloaded?("ModuleFolder") + assert ! Dependencies.autoloaded?("ModuleFolder::NestedClass") + + assert Dependencies.autoloaded?(ModuleFolder) + + assert Dependencies.autoloaded?("ModuleFolder") + assert ! Dependencies.autoloaded?("ModuleFolder::NestedClass") + + assert Dependencies.autoloaded?(ModuleFolder::NestedClass) + + assert Dependencies.autoloaded?("ModuleFolder") + assert Dependencies.autoloaded?("ModuleFolder::NestedClass") + + assert Dependencies.autoloaded?("::ModuleFolder") + assert Dependencies.autoloaded?(:ModuleFolder) + + # Anonymous modules aren't autoloaded. + assert !Dependencies.autoloaded?(Module.new) + + nil_name = Module.new + def nil_name.name() nil end + assert !Dependencies.autoloaded?(nil_name) + + Object.class_eval { remove_const :ModuleFolder } + end + end + + def test_qualified_name_for + assert_equal "A", Dependencies.qualified_name_for(Object, :A) + assert_equal "A", Dependencies.qualified_name_for(:Object, :A) + assert_equal "A", Dependencies.qualified_name_for("Object", :A) + assert_equal "A", Dependencies.qualified_name_for("::Object", :A) + assert_equal "A", Dependencies.qualified_name_for("::Kernel", :A) + + assert_equal "Dependencies::A", Dependencies.qualified_name_for(:Dependencies, :A) + assert_equal "Dependencies::A", Dependencies.qualified_name_for(Dependencies, :A) + end + + def test_file_search + with_loading 'dependencies' do + root = Dependencies.load_paths.first + assert_equal nil, Dependencies.search_for_file('service_three') + assert_equal nil, Dependencies.search_for_file('service_three.rb') + assert_equal root + '/service_one.rb', Dependencies.search_for_file('service_one') + assert_equal root + '/service_one.rb', Dependencies.search_for_file('service_one.rb') + end + end + + def test_file_search_uses_first_in_load_path + with_loading 'dependencies', 'autoloading_fixtures' do + deps, autoload = Dependencies.load_paths + assert_match %r/dependencies/, deps + assert_match %r/autoloading_fixtures/, autoload + + assert_equal deps + '/conflict.rb', Dependencies.search_for_file('conflict') + end + with_loading 'autoloading_fixtures', 'dependencies' do + autoload, deps = Dependencies.load_paths + assert_match %r/dependencies/, deps + assert_match %r/autoloading_fixtures/, autoload + + assert_equal autoload + '/conflict.rb', Dependencies.search_for_file('conflict') + end + + end + + def test_custom_const_missing_should_work + Object.module_eval <<-end_eval + module ModuleWithCustomConstMissing + def self.const_missing(name) + const_set name, name.to_s.hash + end + + module A + end + end + end_eval + + with_loading 'autoloading_fixtures' do + assert_kind_of Integer, ::ModuleWithCustomConstMissing::B + assert_kind_of Module, ::ModuleWithCustomConstMissing::A + assert_kind_of String, ::ModuleWithCustomConstMissing::A::B + end + end + + def test_const_missing_should_not_double_load + $counting_loaded_times = 0 + with_loading 'autoloading_fixtures' do + require_dependency '././counting_loader' + assert_equal 1, $counting_loaded_times + assert_raises(ArgumentError) { Dependencies.load_missing_constant Object, :CountingLoader } + assert_equal 1, $counting_loaded_times + end + end + + def test_const_missing_within_anonymous_module + $counting_loaded_times = 0 + m = Module.new + m.module_eval "def a() CountingLoader; end" + extend m + kls = nil + with_loading 'autoloading_fixtures' do + kls = nil + assert_nothing_raised { kls = a } + assert_equal "CountingLoader", kls.name + assert_equal 1, $counting_loaded_times + + assert_nothing_raised { kls = a } + assert_equal 1, $counting_loaded_times + end + end + + def test_removal_from_tree_should_be_detected + with_loading 'dependencies' do + root = Dependencies.load_paths.first + c = ServiceOne + Dependencies.clear + assert ! defined?(ServiceOne) + begin + Dependencies.load_missing_constant(c, :FakeMissing) + flunk "Expected exception" + rescue ArgumentError => e + assert_match %r{ServiceOne has been removed from the module tree}i, e.message + end + end + end + + def test_nested_load_error_isnt_rescued + with_loading 'dependencies' do + assert_raises(MissingSourceFile) do + RequiresNonexistent1 + end + end + end + + def test_load_once_paths_do_not_add_to_autoloaded_constants + with_loading 'autoloading_fixtures' do + Dependencies.load_once_paths = Dependencies.load_paths.dup + + assert ! Dependencies.autoloaded?("ModuleFolder") + assert ! Dependencies.autoloaded?("ModuleFolder::NestedClass") + assert ! Dependencies.autoloaded?(ModuleFolder) + + 1 if ModuleFolder::NestedClass # 1 if to avoid warning + assert ! Dependencies.autoloaded?(ModuleFolder::NestedClass) + end + ensure + Object.class_eval { remove_const :ModuleFolder } + Dependencies.load_once_paths = [] + end + + def test_application_should_special_case_application_controller + with_loading 'autoloading_fixtures' do + require_dependency 'application' + assert_equal 10, ApplicationController + assert Dependencies.autoloaded?(:ApplicationController) + end + end + + def test_const_missing_on_kernel_should_fallback_to_object + with_loading 'autoloading_fixtures' do + kls = Kernel::E + assert_equal "E", kls.name + assert_equal kls.object_id, Kernel::E.object_id + end + end + + def test_preexisting_constants_are_not_marked_as_autoloaded + with_loading 'autoloading_fixtures' do + require_dependency 'e' + assert Dependencies.autoloaded?(:E) + Dependencies.clear + end + + Object.const_set :E, Class.new + with_loading 'autoloading_fixtures' do + require_dependency 'e' + assert ! Dependencies.autoloaded?(:E), "E shouldn't be marked autoloaded!" + Dependencies.clear + end + + ensure + Object.class_eval { remove_const :E } + end + + def test_unloadable + with_loading 'autoloading_fixtures' do + Object.const_set :M, Module.new + M.unloadable + + Dependencies.clear + assert ! defined?(M) + + Object.const_set :M, Module.new + Dependencies.clear + assert ! defined?(M), "Dependencies should unload unloadable constants each time" + end + end + + def test_unloadable_should_fail_with_anonymous_modules + with_loading 'autoloading_fixtures' do + m = Module.new + assert_raises(ArgumentError) { m.unloadable } + end + end + + def test_unloadable_should_return_change_flag + with_loading 'autoloading_fixtures' do + Object.const_set :M, Module.new + assert_equal true, M.unloadable + assert_equal false, M.unloadable + end + end + + def test_new_contants_in_without_constants + assert_equal [], (Dependencies.new_constants_in(Object) { }) + assert Dependencies.constant_watch_stack.empty? + end + + def test_new_constants_in_with_a_single_constant + assert_equal ["Hello"], Dependencies.new_constants_in(Object) { + Object.const_set :Hello, 10 + }.map(&:to_s) + assert Dependencies.constant_watch_stack.empty? + ensure + Object.class_eval { remove_const :Hello } + end + + def test_new_constants_in_with_nesting + outer = Dependencies.new_constants_in(Object) do + Object.const_set :OuterBefore, 10 + + assert_equal ["Inner"], Dependencies.new_constants_in(Object) { + Object.const_set :Inner, 20 + }.map(&:to_s) + + Object.const_set :OuterAfter, 30 + end + + assert_equal ["OuterAfter", "OuterBefore"], outer.sort.map(&:to_s) + assert Dependencies.constant_watch_stack.empty? + ensure + %w(OuterBefore Inner OuterAfter).each do |name| + Object.class_eval { remove_const name if const_defined?(name) } + end + end + + def test_new_constants_in_module + Object.const_set :M, Module.new + + outer = Dependencies.new_constants_in(M) do + M.const_set :OuterBefore, 10 + + inner = Dependencies.new_constants_in(M) do + M.const_set :Inner, 20 + end + assert_equal ["M::Inner"], inner + + M.const_set :OuterAfter, 30 + end + assert_equal ["M::OuterAfter", "M::OuterBefore"], outer.sort + assert Dependencies.constant_watch_stack.empty? + ensure + Object.class_eval { remove_const :M } + end + + def test_new_constants_in_module_using_name + outer = Dependencies.new_constants_in(:M) do + Object.const_set :M, Module.new + M.const_set :OuterBefore, 10 + + inner = Dependencies.new_constants_in(:M) do + M.const_set :Inner, 20 + end + assert_equal ["M::Inner"], inner + + M.const_set :OuterAfter, 30 + end + assert_equal ["M::OuterAfter", "M::OuterBefore"], outer.sort + assert Dependencies.constant_watch_stack.empty? + ensure + Object.class_eval { remove_const :M } + end + + def test_new_constants_in_with_inherited_constants + m = Dependencies.new_constants_in(:Object) do + Object.class_eval { include ModuleWithConstant } + end + assert_equal [], m + end + + def test_new_constants_in_with_illegal_module_name_raises_correct_error + assert_raises(NameError) do + Dependencies.new_constants_in("Illegal-Name") {} + end + end + + def test_file_with_multiple_constants_and_require_dependency + with_loading 'autoloading_fixtures' do + assert ! defined?(MultipleConstantFile) + assert ! defined?(SiblingConstant) + + require_dependency 'multiple_constant_file' + assert defined?(MultipleConstantFile) + assert defined?(SiblingConstant) + assert Dependencies.autoloaded?(:MultipleConstantFile) + assert Dependencies.autoloaded?(:SiblingConstant) + + Dependencies.clear + + assert ! defined?(MultipleConstantFile) + assert ! defined?(SiblingConstant) + end + end + + def test_file_with_multiple_constants_and_auto_loading + with_loading 'autoloading_fixtures' do + assert ! defined?(MultipleConstantFile) + assert ! defined?(SiblingConstant) + + assert_equal 10, MultipleConstantFile + + assert defined?(MultipleConstantFile) + assert defined?(SiblingConstant) + assert Dependencies.autoloaded?(:MultipleConstantFile) + assert Dependencies.autoloaded?(:SiblingConstant) + + Dependencies.clear + + assert ! defined?(MultipleConstantFile) + assert ! defined?(SiblingConstant) + end + end + + def test_nested_file_with_multiple_constants_and_require_dependency + with_loading 'autoloading_fixtures' do + assert ! defined?(ClassFolder::NestedClass) + assert ! defined?(ClassFolder::SiblingClass) + + require_dependency 'class_folder/nested_class' + + assert defined?(ClassFolder::NestedClass) + assert defined?(ClassFolder::SiblingClass) + assert Dependencies.autoloaded?("ClassFolder::NestedClass") + assert Dependencies.autoloaded?("ClassFolder::SiblingClass") + + Dependencies.clear + + assert ! defined?(ClassFolder::NestedClass) + assert ! defined?(ClassFolder::SiblingClass) + end + end + + def test_nested_file_with_multiple_constants_and_auto_loading + with_loading 'autoloading_fixtures' do + assert ! defined?(ClassFolder::NestedClass) + assert ! defined?(ClassFolder::SiblingClass) + + assert_kind_of Class, ClassFolder::NestedClass + + assert defined?(ClassFolder::NestedClass) + assert defined?(ClassFolder::SiblingClass) + assert Dependencies.autoloaded?("ClassFolder::NestedClass") + assert Dependencies.autoloaded?("ClassFolder::SiblingClass") + + Dependencies.clear + + assert ! defined?(ClassFolder::NestedClass) + assert ! defined?(ClassFolder::SiblingClass) + end + end + + def test_autoload_doesnt_shadow_no_method_error_with_relative_constant + with_loading 'autoloading_fixtures' do + assert !defined?(::RaisesNoMethodError), "::RaisesNoMethodError is defined but it hasn't been referenced yet!" + 2.times do + assert_raise(NoMethodError) { RaisesNoMethodError } + assert !defined?(::RaisesNoMethodError), "::RaisesNoMethodError is defined but it should have failed!" + end + end + + ensure + Object.class_eval { remove_const :RaisesNoMethodError if const_defined?(:RaisesNoMethodError) } + end + + def test_autoload_doesnt_shadow_no_method_error_with_absolute_constant + with_loading 'autoloading_fixtures' do + assert !defined?(::RaisesNoMethodError), "::RaisesNoMethodError is defined but it hasn't been referenced yet!" + 2.times do + assert_raise(NoMethodError) { ::RaisesNoMethodError } + assert !defined?(::RaisesNoMethodError), "::RaisesNoMethodError is defined but it should have failed!" + end + end + + ensure + Object.class_eval { remove_const :RaisesNoMethodError if const_defined?(:RaisesNoMethodError) } + end + + def test_autoload_doesnt_shadow_error_when_mechanism_not_set_to_load + with_loading 'autoloading_fixtures' do + Dependencies.mechanism = :require + 2.times do + assert_raise(NameError) {"RaisesNameError".constantize} + end + end + end + + def test_autoload_doesnt_shadow_name_error + with_loading 'autoloading_fixtures' do + assert !defined?(::RaisesNameError), "::RaisesNameError is defined but it hasn't been referenced yet!" + 2.times do + begin + ::RaisesNameError.object_id + flunk 'should have raised NameError when autoloaded file referenced FooBarBaz' + rescue NameError => e + assert_equal 'uninitialized constant RaisesNameError::FooBarBaz', e.message + end + assert !defined?(::RaisesNameError), "::RaisesNameError is defined but it should have failed!" + end + + assert !defined?(RaisesNameError) + 2.times do + assert_raise(NameError) { RaisesNameError } + assert !defined?(::RaisesNameError), "::RaisesNameError is defined but it should have failed!" + end + end + + ensure + Object.class_eval { remove_const :RaisesNoMethodError if const_defined?(:RaisesNoMethodError) } + end + + def test_remove_constant_handles_double_colon_at_start + Object.const_set 'DeleteMe', Module.new + DeleteMe.const_set 'OrMe', Module.new + Dependencies.remove_constant "::DeleteMe::OrMe" + assert ! defined?(DeleteMe::OrMe) + assert defined?(DeleteMe) + Dependencies.remove_constant "::DeleteMe" + assert ! defined?(DeleteMe) + end + + def test_load_once_constants_should_not_be_unloaded + with_loading 'autoloading_fixtures' do + Dependencies.load_once_paths = Dependencies.load_paths + ::A.to_s + assert defined?(A) + Dependencies.clear + assert defined?(A) + end + ensure + Dependencies.load_once_paths = [] + Object.class_eval { remove_const :A if const_defined?(:A) } + end + + def test_load_once_paths_should_behave_when_recursively_loading + with_loading 'dependencies', 'autoloading_fixtures' do + Dependencies.load_once_paths = [Dependencies.load_paths.last] + assert !defined?(CrossSiteDependency) + assert_nothing_raised { CrossSiteDepender.nil? } + assert defined?(CrossSiteDependency) + assert !Dependencies.autoloaded?(CrossSiteDependency), + "CrossSiteDependency shouldn't be marked as autoloaded!" + Dependencies.clear + assert defined?(CrossSiteDependency), + "CrossSiteDependency shouldn't have been unloaded!" + end + ensure + Dependencies.load_once_paths = [] + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/deprecation_test.rb b/vendor/rails-2.1.0/activesupport/test/deprecation_test.rb new file mode 100644 index 000000000..ebfa40594 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/deprecation_test.rb @@ -0,0 +1,151 @@ +require 'abstract_unit' + +class Deprecatee + def initialize + @request = ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new(self, :request) + @_request = 'there we go' + end + def request; @_request end + def old_request; @request end + + def partially(foo = nil) + ActiveSupport::Deprecation.warn('calling with foo=nil is out', caller) if foo.nil? + end + + def not() 2 end + def none() 1 end + def one(a) a end + def multi(a,b,c) [a,b,c] end + deprecate :none, :one, :multi + + def a; end + def b; end + def c; end + def d; end + def e; end + deprecate :a, :b, :c => :e, :d => "you now need to do something extra for this one" +end + + +class DeprecationTest < Test::Unit::TestCase + def setup + # Track the last warning. + @old_behavior = ActiveSupport::Deprecation.behavior + @last_message = nil + ActiveSupport::Deprecation.behavior = Proc.new { |message| @last_message = message } + + @dtc = Deprecatee.new + end + + def teardown + ActiveSupport::Deprecation.behavior = @old_behavior + end + + def test_inline_deprecation_warning + assert_deprecated(/foo=nil/) do + @dtc.partially + end + end + + def test_undeprecated + assert_not_deprecated do + assert_equal 2, @dtc.not + end + end + + def test_deprecate_class_method + assert_deprecated(/none is deprecated.*test_deprecate_class_method at/) do + assert_equal 1, @dtc.none + end + + assert_deprecated(/one is deprecated/) do + assert_equal 1, @dtc.one(1) + end + + assert_deprecated(/multi is deprecated/) do + assert_equal [1,2,3], @dtc.multi(1,2,3) + end + end + + def test_nil_behavior_is_ignored + ActiveSupport::Deprecation.behavior = nil + assert_deprecated(/foo=nil/) { @dtc.partially } + end + + def test_deprecated_instance_variable_proxy + assert_not_deprecated { @dtc.request.size } + + assert_deprecated('@request.size') { assert_equal @dtc.request.size, @dtc.old_request.size } + assert_deprecated('@request.to_s') { assert_equal @dtc.request.to_s, @dtc.old_request.to_s } + end + + def test_deprecated_instance_variable_proxy_shouldnt_warn_on_inspect + assert_not_deprecated { assert_equal @dtc.request.inspect, @dtc.old_request.inspect } + end + + def test_assert_deprecation_without_match + assert_deprecated do + @dtc.partially + end + end + + def test_assert_deprecated_matches_any_warning + assert_deprecated 'abc' do + ActiveSupport::Deprecation.warn 'abc' + ActiveSupport::Deprecation.warn 'def' + end + rescue Test::Unit::AssertionFailedError + flunk 'assert_deprecated should match any warning in block, not just the last one' + end + + def test_assert_not_deprecated_returns_result_of_block + assert_equal 123, assert_not_deprecated { 123 } + end + + def test_assert_deprecated_returns_result_of_block + result = assert_deprecated('abc') do + ActiveSupport::Deprecation.warn 'abc' + 123 + end + assert_equal 123, result + end + + def test_silence + ActiveSupport::Deprecation.silence do + assert_not_deprecated { @dtc.partially } + end + + ActiveSupport::Deprecation.silenced = true + assert_not_deprecated { @dtc.partially } + ActiveSupport::Deprecation.silenced = false + end + + def test_deprecation_without_explanation + assert_deprecated { @dtc.a } + assert_deprecated { @dtc.b } + end + + def test_deprecation_with_alternate_method + assert_deprecated(/use e instead/) { @dtc.c } + end + + def test_deprecation_with_explicit_message + assert_deprecated(/you now need to do something extra for this one/) { @dtc.d } + end + + def test_assertion_failed_error_doesnt_spout_deprecation_warnings + error_class = Class.new(StandardError) do + def message + ActiveSupport::Deprecation.warn 'warning in error message' + super + end + end + + raise error_class.new('hmm') + + rescue => e + error = Test::Unit::Error.new('testing ur doodz', e) + assert_not_deprecated { error.message } + assert_nil @last_message + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/inflector_test.rb b/vendor/rails-2.1.0/activesupport/test/inflector_test.rb new file mode 100644 index 000000000..26af245ff --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/inflector_test.rb @@ -0,0 +1,242 @@ +require 'abstract_unit' +require 'inflector_test_cases' + +module Ace + module Base + class Case + end + end +end + +class InflectorTest < Test::Unit::TestCase + include InflectorTestCases + + def test_pluralize_plurals + assert_equal "plurals", Inflector.pluralize("plurals") + assert_equal "Plurals", Inflector.pluralize("Plurals") + end + + def test_pluralize_empty_string + assert_equal "", Inflector.pluralize("") + end + + SingularToPlural.each do |singular, plural| + define_method "test_pluralize_#{singular}" do + assert_equal(plural, Inflector.pluralize(singular)) + assert_equal(plural.capitalize, Inflector.pluralize(singular.capitalize)) + end + end + + SingularToPlural.each do |singular, plural| + define_method "test_singularize_#{plural}" do + assert_equal(singular, Inflector.singularize(plural)) + assert_equal(singular.capitalize, Inflector.singularize(plural.capitalize)) + end + end + + MixtureToTitleCase.each do |before, titleized| + define_method "test_titleize_#{before}" do + assert_equal(titleized, Inflector.titleize(before)) + end + end + + def test_camelize + CamelToUnderscore.each do |camel, underscore| + assert_equal(camel, Inflector.camelize(underscore)) + end + end + + def test_underscore + CamelToUnderscore.each do |camel, underscore| + assert_equal(underscore, Inflector.underscore(camel)) + end + CamelToUnderscoreWithoutReverse.each do |camel, underscore| + assert_equal(underscore, Inflector.underscore(camel)) + end + end + + def test_camelize_with_module + CamelWithModuleToUnderscoreWithSlash.each do |camel, underscore| + assert_equal(camel, Inflector.camelize(underscore)) + end + end + + def test_underscore_with_slashes + CamelWithModuleToUnderscoreWithSlash.each do |camel, underscore| + assert_equal(underscore, Inflector.underscore(camel)) + end + end + + def test_demodulize + assert_equal "Account", Inflector.demodulize("MyApplication::Billing::Account") + end + + def test_foreign_key + ClassNameToForeignKeyWithUnderscore.each do |klass, foreign_key| + assert_equal(foreign_key, Inflector.foreign_key(klass)) + end + + ClassNameToForeignKeyWithoutUnderscore.each do |klass, foreign_key| + assert_equal(foreign_key, Inflector.foreign_key(klass, false)) + end + end + + def test_tableize + ClassNameToTableName.each do |class_name, table_name| + assert_equal(table_name, Inflector.tableize(class_name)) + end + end + + def test_classify + ClassNameToTableName.each do |class_name, table_name| + assert_equal(class_name, Inflector.classify(table_name)) + assert_equal(class_name, Inflector.classify("table_prefix." + table_name)) + end + end + + def test_classify_with_symbol + assert_nothing_raised do + assert_equal 'FooBar', Inflector.classify(:foo_bars) + end + end + + def test_classify_with_leading_schema_name + assert_equal 'FooBar', Inflector.classify('schema.foo_bar') + end + + def test_humanize + UnderscoreToHuman.each do |underscore, human| + assert_equal(human, Inflector.humanize(underscore)) + end + end + + def test_constantize + assert_nothing_raised { assert_equal Ace::Base::Case, Inflector.constantize("Ace::Base::Case") } + assert_nothing_raised { assert_equal Ace::Base::Case, Inflector.constantize("::Ace::Base::Case") } + assert_nothing_raised { assert_equal InflectorTest, Inflector.constantize("InflectorTest") } + assert_nothing_raised { assert_equal InflectorTest, Inflector.constantize("::InflectorTest") } + assert_raises(NameError) { Inflector.constantize("UnknownClass") } + assert_raises(NameError) { Inflector.constantize("An invalid string") } + assert_raises(NameError) { Inflector.constantize("InvalidClass\n") } + end + + def test_constantize_does_lexical_lookup + assert_raises(NameError) { Inflector.constantize("Ace::Base::InflectorTest") } + end + + def test_ordinal + OrdinalNumbers.each do |number, ordinalized| + assert_equal(ordinalized, Inflector.ordinalize(number)) + end + end + + def test_dasherize + UnderscoresToDashes.each do |underscored, dasherized| + assert_equal(dasherized, Inflector.dasherize(underscored)) + end + end + + def test_underscore_as_reverse_of_dasherize + UnderscoresToDashes.each do |underscored, dasherized| + assert_equal(underscored, Inflector.underscore(Inflector.dasherize(underscored))) + end + end + + def test_underscore_to_lower_camel + UnderscoreToLowerCamel.each do |underscored, lower_camel| + assert_equal(lower_camel, Inflector.camelize(underscored, false)) + end + end + + %w{plurals singulars uncountables}.each do |inflection_type| + class_eval " + def test_clear_#{inflection_type} + cached_values = Inflector.inflections.#{inflection_type} + Inflector.inflections.clear :#{inflection_type} + assert Inflector.inflections.#{inflection_type}.empty?, \"#{inflection_type} inflections should be empty after clear :#{inflection_type}\" + Inflector.inflections.instance_variable_set :@#{inflection_type}, cached_values + end + " + end + + def test_clear_all + cached_values = Inflector.inflections.plurals, Inflector.inflections.singulars, Inflector.inflections.uncountables + Inflector.inflections.clear :all + assert Inflector.inflections.plurals.empty? + assert Inflector.inflections.singulars.empty? + assert Inflector.inflections.uncountables.empty? + Inflector.inflections.instance_variable_set :@plurals, cached_values[0] + Inflector.inflections.instance_variable_set :@singulars, cached_values[1] + Inflector.inflections.instance_variable_set :@uncountables, cached_values[2] + end + + def test_clear_with_default + cached_values = Inflector.inflections.plurals, Inflector.inflections.singulars, Inflector.inflections.uncountables + Inflector.inflections.clear + assert Inflector.inflections.plurals.empty? + assert Inflector.inflections.singulars.empty? + assert Inflector.inflections.uncountables.empty? + Inflector.inflections.instance_variable_set :@plurals, cached_values[0] + Inflector.inflections.instance_variable_set :@singulars, cached_values[1] + Inflector.inflections.instance_variable_set :@uncountables, cached_values[2] + end + + Irregularities.each do |irregularity| + singular, plural = *irregularity + Inflector.inflections do |inflect| + define_method("test_irregularity_between_#{singular}_and_#{plural}") do + inflect.irregular(singular, plural) + assert_equal singular, Inflector.singularize(plural) + assert_equal plural, Inflector.pluralize(singular) + end + end + end + + [ :all, [] ].each do |scope| + Inflector.inflections do |inflect| + define_method("test_clear_inflections_with_#{scope.kind_of?(Array) ? "no_arguments" : scope}") do + # save all the inflections + singulars, plurals, uncountables = inflect.singulars, inflect.plurals, inflect.uncountables + + # clear all the inflections + inflect.clear(*scope) + + assert_equal [], inflect.singulars + assert_equal [], inflect.plurals + assert_equal [], inflect.uncountables + + # restore all the inflections + singulars.reverse.each { |singular| inflect.singular(*singular) } + plurals.reverse.each { |plural| inflect.plural(*plural) } + inflect.uncountable(uncountables) + + assert_equal singulars, inflect.singulars + assert_equal plurals, inflect.plurals + assert_equal uncountables, inflect.uncountables + end + end + end + + { :singulars => :singular, :plurals => :plural, :uncountables => :uncountable }.each do |scope, method| + Inflector.inflections do |inflect| + define_method("test_clear_inflections_with_#{scope}") do + # save the inflections + values = inflect.send(scope) + + # clear the inflections + inflect.clear(scope) + + assert_equal [], inflect.send(scope) + + # restore the inflections + if scope == :uncountables + inflect.send(method, values) + else + values.reverse.each { |value| inflect.send(method, *value) } + end + + assert_equal values, inflect.send(scope) + end + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/inflector_test_cases.rb b/vendor/rails-2.1.0/activesupport/test/inflector_test_cases.rb new file mode 100644 index 000000000..a9dd83a38 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/inflector_test_cases.rb @@ -0,0 +1,211 @@ +module InflectorTestCases + SingularToPlural = { + "search" => "searches", + "switch" => "switches", + "fix" => "fixes", + "box" => "boxes", + "process" => "processes", + "address" => "addresses", + "case" => "cases", + "stack" => "stacks", + "wish" => "wishes", + "fish" => "fish", + + "category" => "categories", + "query" => "queries", + "ability" => "abilities", + "agency" => "agencies", + "movie" => "movies", + + "archive" => "archives", + + "index" => "indices", + + "wife" => "wives", + "safe" => "saves", + "half" => "halves", + + "move" => "moves", + + "salesperson" => "salespeople", + "person" => "people", + + "spokesman" => "spokesmen", + "man" => "men", + "woman" => "women", + + "basis" => "bases", + "diagnosis" => "diagnoses", + "diagnosis_a" => "diagnosis_as", + + "datum" => "data", + "medium" => "media", + "analysis" => "analyses", + + "node_child" => "node_children", + "child" => "children", + + "experience" => "experiences", + "day" => "days", + + "comment" => "comments", + "foobar" => "foobars", + "newsletter" => "newsletters", + + "old_news" => "old_news", + "news" => "news", + + "series" => "series", + "species" => "species", + + "quiz" => "quizzes", + + "perspective" => "perspectives", + + "ox" => "oxen", + "photo" => "photos", + "buffalo" => "buffaloes", + "tomato" => "tomatoes", + "dwarf" => "dwarves", + "elf" => "elves", + "information" => "information", + "equipment" => "equipment", + "bus" => "buses", + "status" => "statuses", + "status_code" => "status_codes", + "mouse" => "mice", + + "louse" => "lice", + "house" => "houses", + "octopus" => "octopi", + "virus" => "viri", + "alias" => "aliases", + "portfolio" => "portfolios", + + "vertex" => "vertices", + "matrix" => "matrices", + "matrix_fu" => "matrix_fus", + + "axis" => "axes", + "testis" => "testes", + "crisis" => "crises", + + "rice" => "rice", + "shoe" => "shoes", + + "horse" => "horses", + "prize" => "prizes", + "edge" => "edges", + + "cow" => "kine" + } + + CamelToUnderscore = { + "Product" => "product", + "SpecialGuest" => "special_guest", + "ApplicationController" => "application_controller", + "Area51Controller" => "area51_controller" + } + + UnderscoreToLowerCamel = { + "product" => "product", + "special_guest" => "specialGuest", + "application_controller" => "applicationController", + "area51_controller" => "area51Controller" + } + + CamelToUnderscoreWithoutReverse = { + "HTMLTidy" => "html_tidy", + "HTMLTidyGenerator" => "html_tidy_generator", + "FreeBSD" => "free_bsd", + "HTML" => "html", + } + + CamelWithModuleToUnderscoreWithSlash = { + "Admin::Product" => "admin/product", + "Users::Commission::Department" => "users/commission/department", + "UsersSection::CommissionDepartment" => "users_section/commission_department", + } + + ClassNameToForeignKeyWithUnderscore = { + "Person" => "person_id", + "MyApplication::Billing::Account" => "account_id" + } + + ClassNameToForeignKeyWithoutUnderscore = { + "Person" => "personid", + "MyApplication::Billing::Account" => "accountid" + } + + ClassNameToTableName = { + "PrimarySpokesman" => "primary_spokesmen", + "NodeChild" => "node_children" + } + + UnderscoreToHuman = { + "employee_salary" => "Employee salary", + "employee_id" => "Employee", + "underground" => "Underground" + } + + MixtureToTitleCase = { + 'active_record' => 'Active Record', + 'ActiveRecord' => 'Active Record', + 'action web service' => 'Action Web Service', + 'Action Web Service' => 'Action Web Service', + 'Action web service' => 'Action Web Service', + 'actionwebservice' => 'Actionwebservice', + 'Actionwebservice' => 'Actionwebservice', + "david's code" => "David's Code", + "David's code" => "David's Code", + "david's Code" => "David's Code" + } + + OrdinalNumbers = { + "0" => "0th", + "1" => "1st", + "2" => "2nd", + "3" => "3rd", + "4" => "4th", + "5" => "5th", + "6" => "6th", + "7" => "7th", + "8" => "8th", + "9" => "9th", + "10" => "10th", + "11" => "11th", + "12" => "12th", + "13" => "13th", + "14" => "14th", + "20" => "20th", + "21" => "21st", + "22" => "22nd", + "23" => "23rd", + "24" => "24th", + "100" => "100th", + "101" => "101st", + "102" => "102nd", + "103" => "103rd", + "104" => "104th", + "110" => "110th", + "111" => "111th", + "112" => "112th", + "113" => "113th", + "1000" => "1000th", + "1001" => "1001st" + } + + UnderscoresToDashes = { + "street" => "street", + "street_address" => "street-address", + "person_street_address" => "person-street-address" + } + + Irregularities = { + 'person' => 'people', + 'man' => 'men', + 'child' => 'children', + 'sex' => 'sexes', + 'move' => 'moves', + } +end diff --git a/vendor/rails-2.1.0/activesupport/test/json/decoding_test.rb b/vendor/rails-2.1.0/activesupport/test/json/decoding_test.rb new file mode 100644 index 000000000..19ae3a01a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/json/decoding_test.rb @@ -0,0 +1,41 @@ +require 'abstract_unit' + +class TestJSONDecoding < Test::Unit::TestCase + TESTS = { + %q({"returnTo":{"\/categories":"\/"}}) => {"returnTo" => {"/categories" => "/"}}, + %q({returnTo:{"\/categories":"\/"}}) => {"returnTo" => {"/categories" => "/"}}, + %q({"return\\"To\\":":{"\/categories":"\/"}}) => {"return\"To\":" => {"/categories" => "/"}}, + %q({"returnTo":{"\/categories":1}}) => {"returnTo" => {"/categories" => 1}}, + %({"returnTo":[1,"a"]}) => {"returnTo" => [1, "a"]}, + %({"returnTo":[1,"\\"a\\",", "b"]}) => {"returnTo" => [1, "\"a\",", "b"]}, + %({a: "'", "b": "5,000"}) => {"a" => "'", "b" => "5,000"}, + %({a: "a's, b's and c's", "b": "5,000"}) => {"a" => "a's, b's and c's", "b" => "5,000"}, + %({a: "2007-01-01"}) => {'a' => Date.new(2007, 1, 1)}, + %({a: "2007-01-01 01:12:34 Z"}) => {'a' => Time.utc(2007, 1, 1, 1, 12, 34)}, + # no time zone + %({a: "2007-01-01 01:12:34"}) => {'a' => "2007-01-01 01:12:34"}, + # needs to be *exact* + %({a: " 2007-01-01 01:12:34 Z "}) => {'a' => " 2007-01-01 01:12:34 Z "}, + %([]) => [], + %({}) => {}, + %(1) => 1, + %("") => "", + %("\\"") => "\"", + %(null) => nil, + %(true) => true, + %(false) => false, + %q("http:\/\/test.host\/posts\/1") => "http://test.host/posts/1" + } + + TESTS.each do |json, expected| + define_method :"test_json_decoding_#{json}" do + assert_nothing_raised do + assert_equal expected, ActiveSupport::JSON.decode(json) + end + end + end + + def test_failed_json_decoding + assert_raises(ActiveSupport::JSON::ParseError) { ActiveSupport::JSON.decode(%({: 1})) } + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/json/encoding_test.rb b/vendor/rails-2.1.0/activesupport/test/json/encoding_test.rb new file mode 100644 index 000000000..38bb8f3e7 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/json/encoding_test.rb @@ -0,0 +1,140 @@ +# encoding: utf-8 +require 'abstract_unit' + +class TestJSONEncoding < Test::Unit::TestCase + class Foo + def initialize(a, b) + @a, @b = a, b + end + end + + TrueTests = [[ true, %(true) ]] + FalseTests = [[ false, %(false) ]] + NilTests = [[ nil, %(null) ]] + NumericTests = [[ 1, %(1) ], + [ 2.5, %(2.5) ]] + + StringTests = [[ 'this is the <string>', %("this is the \\u003Cstring\\u003E")], + [ 'a "string" with quotes & an ampersand', %("a \\"string\\" with quotes \\u0026 an ampersand") ], + [ 'http://test.host/posts/1', %("http://test.host/posts/1")]] + + ArrayTests = [[ ['a', 'b', 'c'], %([\"a\", \"b\", \"c\"]) ], + [ [1, 'a', :b, nil, false], %([1, \"a\", \"b\", null, false]) ]] + + SymbolTests = [[ :a, %("a") ], + [ :this, %("this") ], + [ :"a b", %("a b") ]] + + ObjectTests = [[ Foo.new(1, 2), %({\"a\": 1, \"b\": 2}) ]] + + VariableTests = [[ ActiveSupport::JSON::Variable.new('foo'), 'foo'], + [ ActiveSupport::JSON::Variable.new('alert("foo")'), 'alert("foo")']] + RegexpTests = [[ /^a/, '/^a/' ], [/^\w{1,2}[a-z]+/ix, '/^\\w{1,2}[a-z]+/ix']] + + DateTests = [[ Date.new(2005,2,1), %("2005/02/01") ]] + TimeTests = [[ Time.utc(2005,2,1,15,15,10), %("2005/02/01 15:15:10 +0000") ]] + DateTimeTests = [[ DateTime.civil(2005,2,1,15,15,10), %("2005/02/01 15:15:10 +0000") ]] + + StandardDateTests = [[ Date.new(2005,2,1), %("2005-02-01") ]] + StandardTimeTests = [[ Time.utc(2005,2,1,15,15,10), %("2005-02-01T15:15:10Z") ]] + StandardDateTimeTests = [[ DateTime.civil(2005,2,1,15,15,10), %("2005-02-01T15:15:10+00:00") ]] + StandardStringTests = [[ 'this is the <string>', %("this is the <string>")]] + + constants.grep(/Tests$/).each do |class_tests| + define_method("test_#{class_tests[0..-6].underscore}") do + begin + ActiveSupport.escape_html_entities_in_json = class_tests !~ /^Standard/ + ActiveSupport.use_standard_json_time_format = class_tests =~ /^Standard/ + self.class.const_get(class_tests).each do |pair| + assert_equal pair.last, pair.first.to_json + end + ensure + ActiveSupport.escape_html_entities_in_json = false + ActiveSupport.use_standard_json_time_format = false + end + end + end + + def test_hash_encoding + assert_equal %({\"a\": \"b\"}), { :a => :b }.to_json + assert_equal %({\"a\": 1}), { 'a' => 1 }.to_json + assert_equal %({\"a\": [1, 2]}), { 'a' => [1,2] }.to_json + assert_equal %({1: 2}), { 1 => 2 }.to_json + + sorted_json = '{' + {:a => :b, :c => :d}.to_json[1..-2].split(', ').sort.join(', ') + '}' + assert_equal %({\"a\": \"b\", \"c\": \"d\"}), sorted_json + end + + def test_utf8_string_encoded_properly_when_kcode_is_utf8 + with_kcode 'UTF8' do + assert_equal '"\\u20ac2.99"', '€2.99'.to_json + assert_equal '"\\u270e\\u263a"', '✎☺'.to_json + end + end + + def test_exception_raised_when_encoding_circular_reference + a = [1] + a << a + assert_raises(ActiveSupport::JSON::CircularReferenceError) { a.to_json } + end + + def test_hash_key_identifiers_are_always_quoted + values = {0 => 0, 1 => 1, :_ => :_, "$" => "$", "a" => "a", :A => :A, :A0 => :A0, "A0B" => "A0B"} + assert_equal %w( "$" "A" "A0" "A0B" "_" "a" 0 1 ), object_keys(values.to_json) + end + + def test_hash_should_allow_key_filtering_with_only + assert_equal %({"a": 1}), { 'a' => 1, :b => 2, :c => 3 }.to_json(:only => 'a') + end + + def test_hash_should_allow_key_filtering_with_except + assert_equal %({"b": 2}), { 'foo' => 'bar', :b => 2, :c => 3 }.to_json(:except => ['foo', :c]) + end + + def test_time_to_json_includes_local_offset + ActiveSupport.use_standard_json_time_format = true + with_env_tz 'US/Eastern' do + assert_equal %("2005-02-01T15:15:10-05:00"), Time.local(2005,2,1,15,15,10).to_json + end + ensure + ActiveSupport.use_standard_json_time_format = false + end + + protected + def with_kcode(code) + if RUBY_VERSION < '1.9' + begin + old_kcode, $KCODE = $KCODE, 'UTF8' + yield + ensure + $KCODE = old_kcode + end + else + yield + end + end + + def object_keys(json_object) + json_object[1..-2].scan(/([^{}:,\s]+):/).flatten.sort + end + + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end +end + +uses_mocha 'JsonOptionsTests' do + class JsonOptionsTests < Test::Unit::TestCase + def test_enumerable_should_passthrough_options_to_elements + json_options = { :include => :posts } + ActiveSupport::JSON.expects(:encode).with(1, json_options) + ActiveSupport::JSON.expects(:encode).with(2, json_options) + ActiveSupport::JSON.expects(:encode).with('foo', json_options) + + [1, 2, 'foo'].to_json(json_options) + end + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/multibyte_chars_test.rb b/vendor/rails-2.1.0/activesupport/test/multibyte_chars_test.rb new file mode 100644 index 000000000..63cfadb7e --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/multibyte_chars_test.rb @@ -0,0 +1,182 @@ +# encoding: utf-8 +require 'abstract_unit' + +if RUBY_VERSION < '1.9' + +$KCODE = 'UTF8' + +class CharsTest < Test::Unit::TestCase + + def setup + @s = { + :utf8 => "Abcd Блå ffi блa 埋", + :ascii => "asci ias c iia s", + :bytes => "\270\236\010\210\245" + } + end + + def test_sanity + @s.each do |t, s| + assert s.respond_to?(:chars), "All string should have the chars method (#{t})" + assert s.respond_to?(:to_s), "All string should have the to_s method (#{t})" + assert_kind_of ActiveSupport::Multibyte::Chars, s.chars, "#chars should return an instance of Chars (#{t})" + end + end + + def test_comparability + @s.each do |t, s| + assert_equal s, s.chars.to_s, "Chars#to_s should return enclosed string unchanged" + end + assert_nothing_raised do + assert_equal "a", "a", "Normal string comparisons should be unaffected" + assert_not_equal "a", "b", "Normal string comparisons should be unaffected" + assert_not_equal "a".chars, "b".chars, "Chars objects should be comparable" + assert_equal "a".chars, "A".downcase.chars, "Chars objects should be comparable to each other" + assert_equal "a".chars, "A".downcase, "Chars objects should be comparable to strings coming from elsewhere" + end + + assert !@s[:utf8].eql?(@s[:utf8].chars), "Strict comparison is not supported" + assert_equal @s[:utf8], @s[:utf8].chars, "Chars should be compared by their enclosed string" + + other_string = @s[:utf8].dup + assert_equal other_string, @s[:utf8].chars, "Chars should be compared by their enclosed string" + assert_equal other_string.chars, @s[:utf8].chars, "Chars should be compared by their enclosed string" + + strings = ['builder'.chars, 'armor'.chars, 'zebra'.chars] + strings.sort! + assert_equal ['armor', 'builder', 'zebra'], strings, "Chars should be sortable based on their enclosed string" + + # This leads to a StackLevelTooDeep exception if the comparison is not wired properly + assert_raise(NameError) do + Chars + end + end + + def test_utf8? + assert @s[:utf8].is_utf8?, "UTF-8 strings are UTF-8" + assert @s[:ascii].is_utf8?, "All ASCII strings are also valid UTF-8" + assert !@s[:bytes].is_utf8?, "This bytestring isn't UTF-8" + end + + # The test for the following methods are defined here because they can only be defined on the Chars class for + # various reasons + + def test_gsub + assert_equal 'éxa', 'éda'.chars.gsub(/d/, 'x') + with_kcode('none') do + assert_equal 'éxa', 'éda'.chars.gsub(/d/, 'x') + end + end + + def test_split + word = "efficient" + chars = ["e", "ffi", "c", "i", "e", "n", "t"] + assert_equal chars, word.split(//) + assert_equal chars, word.chars.split(//) + assert_kind_of ActiveSupport::Multibyte::Chars, word.chars.split(//).first, "Split should return Chars instances" + end + + def test_regexp + with_kcode('none') do + assert_equal 12, (@s[:utf8].chars =~ /ffi/), + "Regex matching should be bypassed to String" + end + with_kcode('UTF8') do + assert_equal 9, (@s[:utf8].chars =~ /ffi/), + "Regex matching should be unicode aware" + assert_nil((''.chars =~ /\d+/), + "Non-matching regular expressions should return nil") + end + end + + def test_pragma + if RUBY_VERSION < '1.9' + with_kcode('UTF8') do + assert " ".chars.send(:utf8_pragma?), "UTF8 pragma should be on because KCODE is UTF8" + end + with_kcode('none') do + assert !" ".chars.send(:utf8_pragma?), "UTF8 pragma should be off because KCODE is not UTF8" + end + else + assert !" ".chars.send(:utf8_pragma?), "UTF8 pragma should be off in Ruby 1.9" + end + end + + def test_handler_setting + handler = ''.chars.handler + + ActiveSupport::Multibyte::Chars.handler = :first + assert_equal :first, ''.chars.handler + ActiveSupport::Multibyte::Chars.handler = :second + assert_equal :second, ''.chars.handler + assert_raise(NoMethodError) do + ''.chars.handler.split + end + + ActiveSupport::Multibyte::Chars.handler = handler + end + + def test_method_chaining + assert_kind_of ActiveSupport::Multibyte::Chars, ''.chars.downcase + assert_kind_of ActiveSupport::Multibyte::Chars, ''.chars.strip, "Strip should return a Chars object" + assert_kind_of ActiveSupport::Multibyte::Chars, ''.chars.downcase.strip, "The Chars object should be " + + "forwarded down the call path for chaining" + assert_equal 'foo', " FOO ".chars.normalize.downcase.strip, "The Chars that results from the " + + " operations should be comparable to the string value of the result" + end + + def test_passthrough_on_kcode + # The easiest way to check if the passthrough is in place is through #size + with_kcode('none') do + assert_equal 26, @s[:utf8].chars.size + end + with_kcode('UTF8') do + assert_equal 17, @s[:utf8].chars.size + end + end + + def test_destructiveness + # Note that we're testing the destructiveness here and not the correct behaviour of the methods + str = 'ac' + str.chars.insert(1, 'b') + assert_equal 'abc', str, 'Insert should be destructive for a string' + + str = 'ac' + str.chars.reverse! + assert_equal 'ca', str, 'reverse! should be destructive for a string' + end + + def test_resilience + assert_nothing_raised do + assert_equal 5, @s[:bytes].chars.size, "The sequence contains five interpretable bytes" + end + reversed = [0xb8, 0x17e, 0x8, 0x2c6, 0xa5].reverse.pack('U*') + assert_nothing_raised do + assert_equal reversed, @s[:bytes].chars.reverse.to_s, "Reversing the string should only yield interpretable bytes" + end + assert_nothing_raised do + @s[:bytes].chars.reverse! + assert_equal reversed, @s[:bytes].to_s, "Reversing the string should only yield interpretable bytes" + end + end + + def test_duck_typing + assert_equal true, 'test'.chars.respond_to?(:strip) + assert_equal true, 'test'.chars.respond_to?(:normalize) + assert_equal true, 'test'.chars.respond_to?(:normalize!) + assert_equal false, 'test'.chars.respond_to?(:a_method_that_doesnt_exist) + end + + protected + + def with_kcode(kcode) + old_kcode, $KCODE = $KCODE, kcode + begin + yield + ensure + $KCODE = old_kcode + end + end +end + +end diff --git a/vendor/rails-2.1.0/activesupport/test/multibyte_conformance.rb b/vendor/rails-2.1.0/activesupport/test/multibyte_conformance.rb new file mode 100644 index 000000000..05fb9ef7a --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/multibyte_conformance.rb @@ -0,0 +1,146 @@ +require 'abstract_unit' +require 'open-uri' + +if RUBY_VERSION < '1.9' + +$KCODE = 'UTF8' + +UNIDATA_URL = "http://www.unicode.org/Public/#{ActiveSupport::Multibyte::UNICODE_VERSION}/ucd" +UNIDATA_FILE = '/NormalizationTest.txt' +CACHE_DIR = File.dirname(__FILE__) + '/cache' + +class Downloader + def self.download(from, to) + unless File.exist?(to) + $stderr.puts "Downloading #{from} to #{to}" + unless File.exist?(File.dirname(to)) + system "mkdir -p #{File.dirname(to)}" + end + open(from) do |source| + File.open(to, 'w') do |target| + source.each_line do |l| + target.write l + end + end + end + end + end +end + +class String + # Unicode Inspect returns the codepoints of the string in hex + def ui + "#{self} " + ("[%s]" % unpack("U*").map{|cp| cp.to_s(16) }.join(' ')) + end unless ''.respond_to?(:ui) +end + +Dir.mkdir(CACHE_DIR) unless File.exist?(CACHE_DIR) +Downloader.download(UNIDATA_URL + UNIDATA_FILE, CACHE_DIR + UNIDATA_FILE) + +module ConformanceTest + def test_normalizations_C + each_line_of_norm_tests do |*cols| + col1, col2, col3, col4, col5, comment = *cols + + # CONFORMANCE: + # 1. The following invariants must be true for all conformant implementations + # + # NFC + # c2 == NFC(c1) == NFC(c2) == NFC(c3) + assert_equal col2.ui, @handler.normalize(col1, :c).ui, "Form C - Col 2 has to be NFC(1) - #{comment}" + assert_equal col2.ui, @handler.normalize(col2, :c).ui, "Form C - Col 2 has to be NFC(2) - #{comment}" + assert_equal col2.ui, @handler.normalize(col3, :c).ui, "Form C - Col 2 has to be NFC(3) - #{comment}" + # + # c4 == NFC(c4) == NFC(c5) + assert_equal col4.ui, @handler.normalize(col4, :c).ui, "Form C - Col 4 has to be C(4) - #{comment}" + assert_equal col4.ui, @handler.normalize(col5, :c).ui, "Form C - Col 4 has to be C(5) - #{comment}" + end + end + + def test_normalizations_D + each_line_of_norm_tests do |*cols| + col1, col2, col3, col4, col5, comment = *cols + # + # NFD + # c3 == NFD(c1) == NFD(c2) == NFD(c3) + assert_equal col3.ui, @handler.normalize(col1, :d).ui, "Form D - Col 3 has to be NFD(1) - #{comment}" + assert_equal col3.ui, @handler.normalize(col2, :d).ui, "Form D - Col 3 has to be NFD(2) - #{comment}" + assert_equal col3.ui, @handler.normalize(col3, :d).ui, "Form D - Col 3 has to be NFD(3) - #{comment}" + # c5 == NFD(c4) == NFD(c5) + assert_equal col5.ui, @handler.normalize(col4, :d).ui, "Form D - Col 5 has to be NFD(4) - #{comment}" + assert_equal col5.ui, @handler.normalize(col5, :d).ui, "Form D - Col 5 has to be NFD(5) - #{comment}" + end + end + + def test_normalizations_KC + each_line_of_norm_tests do | *cols | + col1, col2, col3, col4, col5, comment = *cols + # + # NFKC + # c4 == NFKC(c1) == NFKC(c2) == NFKC(c3) == NFKC(c4) == NFKC(c5) + assert_equal col4.ui, @handler.normalize(col1, :kc).ui, "Form D - Col 4 has to be NFKC(1) - #{comment}" + assert_equal col4.ui, @handler.normalize(col2, :kc).ui, "Form D - Col 4 has to be NFKC(2) - #{comment}" + assert_equal col4.ui, @handler.normalize(col3, :kc).ui, "Form D - Col 4 has to be NFKC(3) - #{comment}" + assert_equal col4.ui, @handler.normalize(col4, :kc).ui, "Form D - Col 4 has to be NFKC(4) - #{comment}" + assert_equal col4.ui, @handler.normalize(col5, :kc).ui, "Form D - Col 4 has to be NFKC(5) - #{comment}" + end + end + + def test_normalizations_KD + each_line_of_norm_tests do | *cols | + col1, col2, col3, col4, col5, comment = *cols + # + # NFKD + # c5 == NFKD(c1) == NFKD(c2) == NFKD(c3) == NFKD(c4) == NFKD(c5) + assert_equal col5.ui, @handler.normalize(col1, :kd).ui, "Form KD - Col 5 has to be NFKD(1) - #{comment}" + assert_equal col5.ui, @handler.normalize(col2, :kd).ui, "Form KD - Col 5 has to be NFKD(2) - #{comment}" + assert_equal col5.ui, @handler.normalize(col3, :kd).ui, "Form KD - Col 5 has to be NFKD(3) - #{comment}" + assert_equal col5.ui, @handler.normalize(col4, :kd).ui, "Form KD - Col 5 has to be NFKD(4) - #{comment}" + assert_equal col5.ui, @handler.normalize(col5, :kd).ui, "Form KD - Col 5 has to be NFKD(5) - #{comment}" + end + end + + protected + def each_line_of_norm_tests(&block) + lines = 0 + max_test_lines = 0 # Don't limit below 38, because that's the header of the testfile + File.open(File.dirname(__FILE__) + '/cache' + UNIDATA_FILE, 'r') do | f | + until f.eof? || (max_test_lines > 38 and lines > max_test_lines) + lines += 1 + line = f.gets.chomp! + next if (line.empty? || line =~ /^\#/) + + cols, comment = line.split("#") + cols = cols.split(";").map{|e| e.strip}.reject{|e| e.empty? } + next unless cols.length == 5 + + # codepoints are in hex in the test suite, pack wants them as integers + cols.map!{|c| c.split.map{|codepoint| codepoint.to_i(16)}.pack("U*") } + cols << comment + + yield(*cols) + end + end + end +end + +begin + require_library_or_gem('utf8proc_native') + require 'active_record/multibyte/handlers/utf8_handler_proc' + class ConformanceTestProc < Test::Unit::TestCase + include ConformanceTest + def setup + @handler = ::ActiveSupport::Multibyte::Handlers::UTF8HandlerProc + end + end +rescue LoadError +end + +class ConformanceTestPure < Test::Unit::TestCase + include ConformanceTest + def setup + @handler = ::ActiveSupport::Multibyte::Handlers::UTF8Handler + end +end + +end diff --git a/vendor/rails-2.1.0/activesupport/test/multibyte_handler_test.rb b/vendor/rails-2.1.0/activesupport/test/multibyte_handler_test.rb new file mode 100644 index 000000000..5575ecc32 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/multibyte_handler_test.rb @@ -0,0 +1,372 @@ +# encoding: utf-8 +require 'abstract_unit' + +if RUBY_VERSION < '1.9' + +$KCODE = 'UTF8' + +class String + # Unicode Inspect returns the codepoints of the string in hex + def ui + "#{self} " + ("[%s]" % unpack("U*").map{|cp| cp.to_s(16) }.join(' ')) + end unless ''.respond_to?(:ui) +end + +module UTF8HandlingTest + + def common_setup + # This is an ASCII string with some russian strings and a ligature. It's nicely calibrated, because + # slicing it at some specific bytes will kill your characters if you use standard Ruby routines. + # It has both capital and standard letters, so that we can test case conversions easily. + # It has 26 characters and 28 when the ligature gets split during normalization. + @string = "Abcd Блå ffi бла бла бла бла" + @string_kd = "Abcd Блå ffi бла бла бла бла" + @string_kc = "Abcd Блå ffi бла бла бла бла" + @string_c = "Abcd Блå ffi бла бла бла бла" + @string_d = "Abcd Блå ffi бла бла бла бла" + @bytestring = "\270\236\010\210\245" # Not UTF-8 + + # Characters from the character classes as described in UAX #29 + @character_from_class = { + :l => 0x1100, :v => 0x1160, :t => 0x11A8, :lv => 0xAC00, :lvt => 0xAC01, :cr => 0x000D, :lf => 0x000A, + :extend => 0x094D, :n => 0x64 + } + end + + def test_utf8_recognition + assert ActiveSupport::Multibyte::Handlers::UTF8Handler.consumes?(@string), + "Should recognize as a valid UTF-8 string" + assert !ActiveSupport::Multibyte::Handlers::UTF8Handler.consumes?(@bytestring), "This is bytestring, not UTF-8" + end + + def test_simple_normalization + # Normalization of DEVANAGARI LETTER QA breaks when composition exclusion isn't used correctly + assert_equal [0x915, 0x93c].pack('U*').ui, [0x915, 0x93c].pack('U*').chars.normalize(:c).to_s.ui + + null_byte_str = "Test\0test" + + assert_equal '', @handler.normalize(''), "Empty string should not break things" + assert_equal null_byte_str.ui, @handler.normalize(null_byte_str, :kc).ui, "Null byte should remain" + assert_equal null_byte_str.ui, @handler.normalize(null_byte_str, :c).ui, "Null byte should remain" + assert_equal null_byte_str.ui, @handler.normalize(null_byte_str, :d).ui, "Null byte should remain" + assert_equal null_byte_str.ui, @handler.normalize(null_byte_str, :kd).ui, "Null byte should remain" + assert_equal null_byte_str.ui, @handler.decompose(null_byte_str).ui, "Null byte should remain" + assert_equal null_byte_str.ui, @handler.compose(null_byte_str).ui, "Null byte should remain" + + comp_str = [ + 44, # LATIN CAPITAL LETTER D + 307, # COMBINING DOT ABOVE + 328, # COMBINING OGONEK + 323 # COMBINING DOT BELOW + ].pack("U*") + norm_str_KC = [44,105,106,328,323].pack("U*") + norm_str_C = [44,307,328,323].pack("U*") + norm_str_D = [44,307,110,780,78,769].pack("U*") + norm_str_KD = [44,105,106,110,780,78,769].pack("U*") + + assert_equal norm_str_KC.ui, @handler.normalize(comp_str, :kc).ui, "Should normalize KC" + assert_equal norm_str_C.ui, @handler.normalize(comp_str, :c).ui, "Should normalize C" + assert_equal norm_str_D.ui, @handler.normalize(comp_str, :d).ui, "Should normalize D" + assert_equal norm_str_KD.ui, @handler.normalize(comp_str, :kd).ui, "Should normalize KD" + + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.normalize(@bytestring) } + end + + # Test for the Public Review Issue #29, bad explanation of composition might lead to a + # bad implementation: http://www.unicode.org/review/pr-29.html + def test_normalization_C_pri_29 + [ + [0x0B47, 0x0300, 0x0B3E], + [0x1100, 0x0300, 0x1161] + ].map { |c| c.pack('U*') }.each do |c| + assert_equal c.ui, @handler.normalize(c, :c).ui, "Composition is implemented incorrectly" + end + end + + def test_casefolding + simple_str = "abCdef" + simple_str_upcase = "ABCDEF" + simple_str_downcase = "abcdef" + + assert_equal '', @handler.downcase(@handler.upcase('')), "Empty string should not break things" + assert_equal simple_str_upcase, @handler.upcase(simple_str), "should upcase properly" + assert_equal simple_str_downcase, @handler.downcase(simple_str), "should downcase properly" + assert_equal simple_str_downcase, @handler.downcase(@handler.upcase(simple_str_downcase)), "upcase and downcase should be mirrors" + + rus_str = "аБвгд\0f" + rus_str_upcase = "АБВГД\0F" + rus_str_downcase = "абвгд\0f" + assert_equal rus_str_upcase, @handler.upcase(rus_str), "should upcase properly honoring null-byte" + assert_equal rus_str_downcase, @handler.downcase(rus_str), "should downcase properly honoring null-byte" + + jap_str = "の埋め込み化対応はほぼ完成" + assert_equal jap_str, @handler.upcase(jap_str), "Japanse has no upcase, should remain unchanged" + assert_equal jap_str, @handler.downcase(jap_str), "Japanse has no downcase, should remain unchanged" + + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.upcase(@bytestring) } + end + + def test_capitalize + { 'аБвг аБвг' => 'Абвг абвг', + 'аБвг АБВГ' => 'Абвг абвг', + 'АБВГ АБВГ' => 'Абвг абвг', + '' => '' }.each do |f,t| + assert_equal t, @handler.capitalize(f), "Capitalize should work as expected" + end + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.capitalize(@bytestring) } + end + + def test_translate_offset + str = "Блaå" # [2, 2, 1, 2] bytes + assert_equal 0, @handler.translate_offset('', 0), "Offset for an empty string makes no sense, return 0" + assert_equal 0, @handler.translate_offset(str, 0), "First character, first byte" + assert_equal 0, @handler.translate_offset(str, 1), "First character, second byte" + assert_equal 1, @handler.translate_offset(str, 2), "Second character, third byte" + assert_equal 1, @handler.translate_offset(str, 3), "Second character, fourth byte" + assert_equal 2, @handler.translate_offset(str, 4), "Third character, fifth byte" + assert_equal 3, @handler.translate_offset(str, 5), "Fourth character, sixth byte" + assert_equal 3, @handler.translate_offset(str, 6), "Fourth character, seventh byte" + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.translate_offset(@bytestring, 3) } + end + + def test_insert + assert_equal '', @handler.insert('', 0, ''), "Empty string should not break things" + assert_equal "Abcd Блå ffiБУМ бла бла бла бла", @handler.insert(@string, 10, "БУМ"), + "Text should be inserted at right codepoints" + assert_equal "Abcd Блå ffiБУМ бла бла бла бла", @string, "Insert should be destructive" + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) do + @handler.insert(@bytestring, 2, "\210") + end + end + + def test_reverse + str = "wБлåa \n" + rev = "\n aåлБw" + assert_equal '', @handler.reverse(''), "Empty string shouldn't change" + assert_equal rev.ui, @handler.reverse(str).ui, "Should reverse properly" + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.reverse(@bytestring) } + end + + def test_size + assert_equal 0, @handler.size(''), "Empty string has size 0" + assert_equal 26, @handler.size(@string), "String length should be 26" + assert_equal 26, @handler.length(@string), "String length method should be properly aliased" + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.size(@bytestring) } + end + + def test_slice + assert_equal 0x41, @handler.slice(@string, 0), "Singular characters should return codepoints" + assert_equal 0xE5, @handler.slice(@string, 7), "Singular characters should return codepoints" + assert_equal nil, @handler.slice('', -1..1), "Broken range should return nil" + assert_equal '', @handler.slice('', 0..10), "Empty string should not break things" + assert_equal "d Блå ffi", @handler.slice(@string, 3..9), "Unicode characters have to be returned" + assert_equal "d Блå ffi", @handler.slice(@string, 3, 7), "Unicode characters have to be returned" + assert_equal "A", @handler.slice(@string, 0, 1), "Slicing from an offset should return characters" + assert_equal " Блå ffi ", @handler.slice(@string, 4..10), "Unicode characters have to be returned" + assert_equal "ffi бла", @handler.slice(@string, /ffi бла/u), "Slicing on Regexps should be supported" + assert_equal "ffi бла", @handler.slice(@string, /ffi \w\wа/u), "Slicing on Regexps should be supported" + assert_equal nil, @handler.slice(@string, /unknown/u), "Slicing on Regexps with no match should return nil" + assert_equal "ffi бла", @handler.slice(@string, /(ffi бла)/u,1), "Slicing on Regexps with a match group should be supported" + assert_equal nil, @handler.slice(@string, /(ffi)/u,2), "Slicing with a Regexp and asking for an invalid match group should return nil" + assert_equal "", @handler.slice(@string, 7..6), "Range is empty, should return an empty string" + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.slice(@bytestring, 2..3) } + assert_raise(TypeError, "With 2 args, should raise TypeError for non-Numeric or Regexp first argument") { @handler.slice(@string, 2..3, 1) } + assert_raise(TypeError, "With 2 args, should raise TypeError for non-Numeric or Regexp second argument") { @handler.slice(@string, 1, 2..3) } + assert_raise(ArgumentError, "Should raise ArgumentError when there are more than 2 args") { @handler.slice(@string, 1, 1, 1) } + end + + def test_grapheme_cluster_length + assert_equal 0, @handler.g_length(''), "String should count 0 grapheme clusters" + assert_equal 2, @handler.g_length([0x0924, 0x094D, 0x0930].pack('U*')), "String should count 2 grapheme clusters" + assert_equal 1, @handler.g_length(string_from_classes(%w(cr lf))), "Don't cut between CR and LF" + assert_equal 1, @handler.g_length(string_from_classes(%w(l l))), "Don't cut between L" + assert_equal 1, @handler.g_length(string_from_classes(%w(l v))), "Don't cut between L and V" + assert_equal 1, @handler.g_length(string_from_classes(%w(l lv))), "Don't cut between L and LV" + assert_equal 1, @handler.g_length(string_from_classes(%w(l lvt))), "Don't cut between L and LVT" + assert_equal 1, @handler.g_length(string_from_classes(%w(lv v))), "Don't cut between LV and V" + assert_equal 1, @handler.g_length(string_from_classes(%w(lv t))), "Don't cut between LV and T" + assert_equal 1, @handler.g_length(string_from_classes(%w(v v))), "Don't cut between V and V" + assert_equal 1, @handler.g_length(string_from_classes(%w(v t))), "Don't cut between V and T" + assert_equal 1, @handler.g_length(string_from_classes(%w(lvt t))), "Don't cut between LVT and T" + assert_equal 1, @handler.g_length(string_from_classes(%w(t t))), "Don't cut between T and T" + assert_equal 1, @handler.g_length(string_from_classes(%w(n extend))), "Don't cut before Extend" + assert_equal 2, @handler.g_length(string_from_classes(%w(n n))), "Cut between normal characters" + assert_equal 3, @handler.g_length(string_from_classes(%w(n cr lf n))), "Don't cut between CR and LF" + assert_equal 2, @handler.g_length(string_from_classes(%w(n l v t))), "Don't cut between L, V and T" + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.g_length(@bytestring) } + end + + def test_index + s = "Καλημέρα κόσμε!" + assert_equal 0, @handler.index('', ''), "The empty string is always found at the beginning of the string" + assert_equal 0, @handler.index('haystack', ''), "The empty string is always found at the beginning of the string" + assert_equal 0, @handler.index(s, 'Κ'), "Greek K is at 0" + assert_equal 1, @handler.index(s, 'α'), "Greek Alpha is at 1" + + assert_equal nil, @handler.index(@bytestring, 'a') + assert_raise(ActiveSupport::Multibyte::Handlers::EncodingError) { @handler.index(@bytestring, "\010") } + end + + def test_indexed_insert + s = "Καλη!" + @handler[s, 2] = "a" + assert_equal "Καaη!", s + @handler[s, 2] = "ηη" + assert_equal "Καηηη!", s + assert_raises(IndexError) { @handler[s, 10] = 'a' } + assert_equal "Καηηη!", s + @handler[s, 2] = 32 + assert_equal "Κα ηη!", s + @handler[s, 3, 2] = "λλλ" + assert_equal "Κα λλλ!", s + @handler[s, 1, 0] = "λ" + assert_equal "Κλα λλλ!", s + assert_raises(IndexError) { @handler[s, 10, 4] = 'a' } + assert_equal "Κλα λλλ!", s + @handler[s, 4..6] = "ηη" + assert_equal "Κλα ηη!", s + assert_raises(RangeError) { @handler[s, 10..12] = 'a' } + assert_equal "Κλα ηη!", s + @handler[s, /ηη/] = "λλλ" + assert_equal "Κλα λλλ!", s + assert_raises(IndexError) { @handler[s, /ii/] = 'a' } + assert_equal "Κλα λλλ!", s + @handler[s, /(λλ)(.)/, 2] = "α" + assert_equal "Κλα λλα!", s + assert_raises(IndexError) { @handler[s, /()/, 10] = 'a' } + assert_equal "Κλα λλα!", s + @handler[s, "α"] = "η" + assert_equal "Κλη λλα!", s + @handler[s, "λλ"] = "ααα" + assert_equal "Κλη αααα!", s + end + + def test_rjust + s = "Καη" + assert_raises(ArgumentError) { @handler.rjust(s, 10, '') } + assert_raises(ArgumentError) { @handler.rjust(s) } + assert_equal "Καη", @handler.rjust(s, -3) + assert_equal "Καη", @handler.rjust(s, 0) + assert_equal "Καη", @handler.rjust(s, 3) + assert_equal " Καη", @handler.rjust(s, 5) + assert_equal " Καη", @handler.rjust(s, 7) + assert_equal "----Καη", @handler.rjust(s, 7, '-') + assert_equal "ααααΚαη", @handler.rjust(s, 7, 'α') + assert_equal "abaΚαη", @handler.rjust(s, 6, 'ab') + assert_equal "αηαΚαη", @handler.rjust(s, 6, 'αη') + end + + def test_ljust + s = "Καη" + assert_raises(ArgumentError) { @handler.ljust(s, 10, '') } + assert_raises(ArgumentError) { @handler.ljust(s) } + assert_equal "Καη", @handler.ljust(s, -3) + assert_equal "Καη", @handler.ljust(s, 0) + assert_equal "Καη", @handler.ljust(s, 3) + assert_equal "Καη ", @handler.ljust(s, 5) + assert_equal "Καη ", @handler.ljust(s, 7) + assert_equal "Καη----", @handler.ljust(s, 7, '-') + assert_equal "Καηαααα", @handler.ljust(s, 7, 'α') + assert_equal "Καηaba", @handler.ljust(s, 6, 'ab') + assert_equal "Καηαηα", @handler.ljust(s, 6, 'αη') + end + + def test_center + s = "Καη" + assert_raises(ArgumentError) { @handler.center(s, 10, '') } + assert_raises(ArgumentError) { @handler.center(s) } + assert_equal "Καη", @handler.center(s, -3) + assert_equal "Καη", @handler.center(s, 0) + assert_equal "Καη", @handler.center(s, 3) + assert_equal "Καη ", @handler.center(s, 4) + assert_equal " Καη ", @handler.center(s, 5) + assert_equal " Καη ", @handler.center(s, 6) + assert_equal "--Καη--", @handler.center(s, 7, '-') + assert_equal "--Καη---", @handler.center(s, 8, '-') + assert_equal "ααΚαηαα", @handler.center(s, 7, 'α') + assert_equal "ααΚαηααα", @handler.center(s, 8, 'α') + assert_equal "aΚαηab", @handler.center(s, 6, 'ab') + assert_equal "abΚαηab", @handler.center(s, 7, 'ab') + assert_equal "ababΚαηabab", @handler.center(s, 11, 'ab') + assert_equal "αΚαηαη", @handler.center(s, 6, 'αη') + assert_equal "αηΚαηαη", @handler.center(s, 7, 'αη') + end + + def test_strip + # A unicode aware version of strip should strip all 26 types of whitespace. This includes the NO BREAK SPACE + # aka BOM (byte order mark). The byte order mark has no place in UTF-8 because it's used to detect LE and BE. + b = "\n" + [ + 32, # SPACE + 8195, # EM SPACE + 8199, # FIGURE SPACE, + 8201, # THIN SPACE + 8202, # HAIR SPACE + 65279, # NO BREAK SPACE (ZW) + ].pack('U*') + m = "word блин\n\n\n word" + e = [ + 65279, # NO BREAK SPACE (ZW) + 8201, # THIN SPACE + 8199, # FIGURE SPACE, + 32, # SPACE + ].pack('U*') + string = b+m+e + + assert_equal '', @handler.strip(''), "Empty string should stay empty" + assert_equal m+e, @handler.lstrip(string), "Whitespace should be gone on the left" + assert_equal b+m, @handler.rstrip(string), "Whitespace should be gone on the right" + assert_equal m, @handler.strip(string), "Whitespace should be stripped on both sides" + + bs = "\n #{@bytestring} \n\n" + assert_equal @bytestring, @handler.strip(bs), "Invalid unicode strings should still strip" + end + + def test_tidy_bytes + result = [0xb8, 0x17e, 0x8, 0x2c6, 0xa5].pack('U*') + assert_equal result, @handler.tidy_bytes(@bytestring) + assert_equal "a#{result}a", @handler.tidy_bytes('a' + @bytestring + 'a'), + 'tidy_bytes should leave surrounding characters intact' + assert_equal "é#{result}é", @handler.tidy_bytes('é' + @bytestring + 'é'), + 'tidy_bytes should leave surrounding characters intact' + assert_nothing_raised { @handler.tidy_bytes(@bytestring).unpack('U*') } + + assert_equal "\xC3\xA7", @handler.tidy_bytes("\xE7") # iso_8859_1: small c cedilla + assert_equal "\xC2\xA9", @handler.tidy_bytes("\xA9") # iso_8859_1: copyright symbol + assert_equal "\xE2\x80\x9C", @handler.tidy_bytes("\x93") # win_1252: left smart quote + assert_equal "\xE2\x82\xAC", @handler.tidy_bytes("\x80") # win_1252: euro + assert_equal "\x00", @handler.tidy_bytes("\x00") # null char + assert_equal [0xfffd].pack('U'), @handler.tidy_bytes("\xef\xbf\xbd") # invalid char + end + + protected + + def string_from_classes(classes) + classes.collect do |k| + @character_from_class[k.intern] + end.pack('U*') + end +end + + +begin + require_library_or_gem('utf8proc_native') + require 'active_record/multibyte/handlers/utf8_handler_proc' + class UTF8HandlingTestProc < Test::Unit::TestCase + include UTF8HandlingTest + def setup + common_setup + @handler = ::ActiveSupport::Multibyte::Handlers::UTF8HandlerProc + end + end +rescue LoadError +end + +class UTF8HandlingTestPure < Test::Unit::TestCase + include UTF8HandlingTest + def setup + common_setup + @handler = ::ActiveSupport::Multibyte::Handlers::UTF8Handler + end +end + +end diff --git a/vendor/rails-2.1.0/activesupport/test/option_merger_test.rb b/vendor/rails-2.1.0/activesupport/test/option_merger_test.rb new file mode 100644 index 000000000..509c6d3ba --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/option_merger_test.rb @@ -0,0 +1,50 @@ +require 'abstract_unit' + +class OptionMergerTest < Test::Unit::TestCase + def setup + @options = {:hello => 'world'} + end + + def test_method_with_options_merges_options_when_options_are_present + local_options = {:cool => true} + + with_options(@options) do |o| + assert_equal local_options, method_with_options(local_options) + assert_equal @options.merge(local_options), + o.method_with_options(local_options) + end + end + + def test_method_with_options_appends_options_when_options_are_missing + with_options(@options) do |o| + assert_equal Hash.new, method_with_options + assert_equal @options, o.method_with_options + end + end + + def test_method_with_options_allows_to_overwrite_options + local_options = {:hello => 'moon'} + assert_equal @options.keys, local_options.keys + + with_options(@options) do |o| + assert_equal local_options, method_with_options(local_options) + assert_equal @options.merge(local_options), + o.method_with_options(local_options) + assert_equal local_options, o.method_with_options(local_options) + end + with_options(local_options) do |o| + assert_equal local_options.merge(@options), + o.method_with_options(@options) + end + end + + # Needed when counting objects with the ObjectSpace + def test_option_merger_class_method + assert_equal ActiveSupport::OptionMerger, ActiveSupport::OptionMerger.new('', '').class + end + + private + def method_with_options(options = {}) + options + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/ordered_hash_test.rb b/vendor/rails-2.1.0/activesupport/test/ordered_hash_test.rb new file mode 100644 index 000000000..14be48724 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/ordered_hash_test.rb @@ -0,0 +1,45 @@ +require 'abstract_unit' + +class OrderedHashTest < Test::Unit::TestCase + def setup + @keys = %w( blue green red pink orange ) + @values = %w( 000099 009900 aa0000 cc0066 cc6633 ) + @ordered_hash = ActiveSupport::OrderedHash.new + + @keys.each_with_index do |key, index| + @ordered_hash[key] = @values[index] + end + end + + def test_order + assert_equal @keys, @ordered_hash.keys + assert_equal @values, @ordered_hash.values + end + + def test_access + assert @keys.zip(@values).all? { |k, v| @ordered_hash[k] == v } + end + + def test_assignment + key, value = 'purple', '5422a8' + + @ordered_hash[key] = value + assert_equal @keys.length + 1, @ordered_hash.length + assert_equal key, @ordered_hash.keys.last + assert_equal value, @ordered_hash.values.last + assert_equal value, @ordered_hash[key] + end + + def test_delete + key, value = 'white', 'ffffff' + bad_key = 'black' + + @ordered_hash[key] = value + assert_equal @keys.length + 1, @ordered_hash.length + + assert_equal value, @ordered_hash.delete(key) + assert_equal @keys.length, @ordered_hash.length + + assert_nil @ordered_hash.delete(bad_key) + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/ordered_options_test.rb b/vendor/rails-2.1.0/activesupport/test/ordered_options_test.rb new file mode 100644 index 000000000..fb7a58d0b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/ordered_options_test.rb @@ -0,0 +1,53 @@ +require 'abstract_unit' + +class OrderedOptionsTest < Test::Unit::TestCase + def test_usage + a = OrderedOptions.new + + assert_nil a[:not_set] + + a[:allow_concurreny] = true + assert_equal 1, a.size + assert a[:allow_concurreny] + + a[:allow_concurreny] = false + assert_equal 1, a.size + assert !a[:allow_concurreny] + + a["else_where"] = 56 + assert_equal 2, a.size + assert_equal 56, a[:else_where] + end + + def test_looping + a = OrderedOptions.new + + a[:allow_concurreny] = true + a["else_where"] = 56 + + test = [[:allow_concurreny, true], [:else_where, 56]] + + a.each_with_index do |(key, value), index| + assert_equal test[index].first, key + assert_equal test[index].last, value + end + end + + def test_method_access + a = OrderedOptions.new + + assert_nil a.not_set + + a.allow_concurreny = true + assert_equal 1, a.size + assert a.allow_concurreny + + a.allow_concurreny = false + assert_equal 1, a.size + assert !a.allow_concurreny + + a.else_where = 56 + assert_equal 2, a.size + assert_equal 56, a.else_where + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/test_test.rb b/vendor/rails-2.1.0/activesupport/test/test_test.rb new file mode 100644 index 000000000..1e75e1860 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/test_test.rb @@ -0,0 +1,120 @@ +require 'abstract_unit' +require 'active_support/test_case' + +class AssertDifferenceTest < Test::Unit::TestCase + def setup + @object = Class.new do + attr_accessor :num + def increment + self.num += 1 + end + + def decrement + self.num -= 1 + end + end.new + @object.num = 0 + end + + if lambda { }.respond_to?(:binding) + def test_assert_no_difference + assert_no_difference '@object.num' do + # ... + end + end + + def test_assert_difference + assert_difference '@object.num', +1 do + @object.increment + end + end + + def test_assert_difference_with_implicit_difference + assert_difference '@object.num' do + @object.increment + end + end + + def test_arbitrary_expression + assert_difference '@object.num + 1', +2 do + @object.increment + @object.increment + end + end + + def test_negative_differences + assert_difference '@object.num', -1 do + @object.decrement + end + end + + def test_expression_is_evaluated_in_the_appropriate_scope + local_scope = 'foo' + silence_warnings do + assert_difference('local_scope; @object.num') { @object.increment } + end + end + + def test_array_of_expressions + assert_difference [ '@object.num', '@object.num + 1' ], +1 do + @object.increment + end + end + else + def default_test; end + end +end + +# These should always pass +class NotTestingThingsTest < Test::Unit::TestCase + include ActiveSupport::Testing::Default +end + +class AlsoDoingNothingTest < ActiveSupport::TestCase +end + +# Setup and teardown callbacks. +class SetupAndTeardownTest < Test::Unit::TestCase + setup :reset_callback_record, :foo + teardown :foo, :sentinel, :foo + + def test_inherited_setup_callbacks + assert_equal [:reset_callback_record, :foo], self.class.setup_callback_chain.map(&:method) + assert_equal [:foo], @called_back + assert_equal [:foo, :sentinel, :foo], self.class.teardown_callback_chain.map(&:method) + end + + protected + def reset_callback_record + @called_back = [] + end + + def foo + @called_back << :foo + end + + def sentinel + assert_equal [:foo, :foo], @called_back + end +end + + +class SubclassSetupAndTeardownTest < SetupAndTeardownTest + setup :bar + teardown :bar + + def test_inherited_setup_callbacks + assert_equal [:reset_callback_record, :foo, :bar], self.class.setup_callback_chain.map(&:method) + assert_equal [:foo, :bar], @called_back + assert_equal [:foo, :sentinel, :foo, :bar], self.class.teardown_callback_chain.map(&:method) + end + + protected + def bar + @called_back << :bar + end + + def sentinel + assert_equal [:foo, :bar, :bar, :foo], @called_back + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/time_zone_test.rb b/vendor/rails-2.1.0/activesupport/test/time_zone_test.rb new file mode 100644 index 000000000..f3069b589 --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/time_zone_test.rb @@ -0,0 +1,288 @@ +require 'abstract_unit' + +class TimeZoneTest < Test::Unit::TestCase + + def test_utc_to_local + silence_warnings do # silence warnings raised by tzinfo gem + zone = TimeZone['Eastern Time (US & Canada)'] + assert_equal Time.utc(1999, 12, 31, 19), zone.utc_to_local(Time.utc(2000, 1)) # standard offset -0500 + assert_equal Time.utc(2000, 6, 30, 20), zone.utc_to_local(Time.utc(2000, 7)) # dst offset -0400 + end + end + + def test_local_to_utc + silence_warnings do # silence warnings raised by tzinfo gem + zone = TimeZone['Eastern Time (US & Canada)'] + assert_equal Time.utc(2000, 1, 1, 5), zone.local_to_utc(Time.utc(2000, 1)) # standard offset -0500 + assert_equal Time.utc(2000, 7, 1, 4), zone.local_to_utc(Time.utc(2000, 7)) # dst offset -0400 + end + end + + def test_period_for_local + silence_warnings do # silence warnings raised by tzinfo gem + zone = TimeZone['Eastern Time (US & Canada)'] + assert_instance_of TZInfo::TimezonePeriod, zone.period_for_local(Time.utc(2000)) + end + end + + TimeZone::MAPPING.keys.each do |name| + define_method("test_map_#{name.downcase.gsub(/[^a-z]/, '_')}_to_tzinfo") do + silence_warnings do # silence warnings raised by tzinfo gem + zone = TimeZone[name] + assert zone.tzinfo.respond_to?(:period_for_local) + end + end + end + + def test_from_integer_to_map + assert_instance_of TimeZone, TimeZone[-28800] # PST + end + + def test_from_duration_to_map + assert_instance_of TimeZone, TimeZone[-480.minutes] # PST + end + + TimeZone.all.each do |zone| + name = zone.name.downcase.gsub(/[^a-z]/, '_') + define_method("test_from_#{name}_to_map") do + silence_warnings do # silence warnings raised by tzinfo gem + assert_instance_of TimeZone, TimeZone[zone.name] + end + end + + define_method("test_utc_offset_for_#{name}") do + silence_warnings do # silence warnings raised by tzinfo gem + period = zone.tzinfo.period_for_utc(Time.utc(2006,1,1,0,0,0)) + assert_equal period.utc_offset, zone.utc_offset + end + end + end + + uses_mocha 'TestTimeZoneNowAndToday' do + def test_now + with_env_tz 'US/Eastern' do + Time.stubs(:now).returns(Time.local(2000)) + zone = TimeZone['Eastern Time (US & Canada)'] + assert_instance_of ActiveSupport::TimeWithZone, zone.now + assert_equal Time.utc(2000,1,1,5), zone.now.utc + assert_equal Time.utc(2000), zone.now.time + assert_equal zone, zone.now.time_zone + end + end + + def test_now_enforces_spring_dst_rules + with_env_tz 'US/Eastern' do + Time.stubs(:now).returns(Time.local(2006,4,2,2)) # 2AM springs forward to 3AM + zone = TimeZone['Eastern Time (US & Canada)'] + assert_equal Time.utc(2006,4,2,3), zone.now.time + assert_equal true, zone.now.dst? + end + end + + def test_now_enforces_fall_dst_rules + with_env_tz 'US/Eastern' do + Time.stubs(:now).returns(Time.at(1162098000)) # equivalent to 1AM DST + zone = TimeZone['Eastern Time (US & Canada)'] + assert_equal Time.utc(2006,10,29,1), zone.now.time + assert_equal true, zone.now.dst? + end + end + + def test_today + Time.stubs(:now).returns(Time.utc(2000, 1, 1, 4, 59, 59)) # 1 sec before midnight Jan 1 EST + assert_equal Date.new(1999, 12, 31), TimeZone['Eastern Time (US & Canada)'].today + Time.stubs(:now).returns(Time.utc(2000, 1, 1, 5)) # midnight Jan 1 EST + assert_equal Date.new(2000, 1, 1), TimeZone['Eastern Time (US & Canada)'].today + Time.stubs(:now).returns(Time.utc(2000, 1, 2, 4, 59, 59)) # 1 sec before midnight Jan 2 EST + assert_equal Date.new(2000, 1, 1), TimeZone['Eastern Time (US & Canada)'].today + Time.stubs(:now).returns(Time.utc(2000, 1, 2, 5)) # midnight Jan 2 EST + assert_equal Date.new(2000, 1, 2), TimeZone['Eastern Time (US & Canada)'].today + end + end + + def test_local + silence_warnings do # silence warnings raised by tzinfo gem + time = TimeZone["Hawaii"].local(2007, 2, 5, 15, 30, 45) + assert_equal Time.utc(2007, 2, 5, 15, 30, 45), time.time + assert_equal TimeZone["Hawaii"], time.time_zone + end + end + + def test_local_with_old_date + silence_warnings do # silence warnings raised by tzinfo gem + time = TimeZone["Hawaii"].local(1850, 2, 5, 15, 30, 45) + assert_equal [45,30,15,5,2,1850], time.to_a[0,6] + assert_equal TimeZone["Hawaii"], time.time_zone + end + end + + def test_local_enforces_spring_dst_rules + zone = TimeZone['Eastern Time (US & Canada)'] + twz = zone.local(2006,4,2,1,59,59) # 1 second before DST start + assert_equal Time.utc(2006,4,2,1,59,59), twz.time + assert_equal Time.utc(2006,4,2,6,59,59), twz.utc + assert_equal false, twz.dst? + assert_equal 'EST', twz.zone + twz2 = zone.local(2006,4,2,2) # 2AM does not exist because at 2AM, time springs forward to 3AM + assert_equal Time.utc(2006,4,2,3), twz2.time # twz is created for 3AM + assert_equal Time.utc(2006,4,2,7), twz2.utc + assert_equal true, twz2.dst? + assert_equal 'EDT', twz2.zone + twz3 = zone.local(2006,4,2,2,30) # 2:30AM does not exist because at 2AM, time springs forward to 3AM + assert_equal Time.utc(2006,4,2,3,30), twz3.time # twz is created for 3:30AM + assert_equal Time.utc(2006,4,2,7,30), twz3.utc + assert_equal true, twz3.dst? + assert_equal 'EDT', twz3.zone + end + + def test_local_enforces_fall_dst_rules + # 1AM during fall DST transition is ambiguous, it could be either DST or non-DST 1AM + # Mirroring Time.local behavior, this method selects the DST time + zone = TimeZone['Eastern Time (US & Canada)'] + twz = zone.local(2006,10,29,1) + assert_equal Time.utc(2006,10,29,1), twz.time + assert_equal Time.utc(2006,10,29,5), twz.utc + assert_equal true, twz.dst? + assert_equal 'EDT', twz.zone + end + + def test_at + zone = TimeZone['Eastern Time (US & Canada)'] + secs = 946684800.0 + twz = zone.at(secs) + assert_equal Time.utc(1999,12,31,19), twz.time + assert_equal Time.utc(2000), twz.utc + assert_equal zone, twz.time_zone + assert_equal secs, twz.to_f + end + + def test_at_with_old_date + zone = TimeZone['Eastern Time (US & Canada)'] + secs = DateTime.civil(1850).to_f + twz = zone.at(secs) + assert_equal [1850, 1, 1, 0], [twz.utc.year, twz.utc.mon, twz.utc.day, twz.utc.hour] + assert_equal zone, twz.time_zone + assert_equal secs, twz.to_f + end + + def test_parse + zone = TimeZone['Eastern Time (US & Canada)'] + twz = zone.parse('1999-12-31 19:00:00') + assert_equal Time.utc(1999,12,31,19), twz.time + assert_equal Time.utc(2000), twz.utc + assert_equal zone, twz.time_zone + end + + def test_parse_string_with_timezone + (-11..13).each do |timezone_offset| + zone = TimeZone[timezone_offset] + twz = zone.parse('1999-12-31 19:00:00') + assert_equal twz, zone.parse(twz.to_s) + end + end + + def test_parse_with_old_date + silence_warnings do # silence warnings raised by tzinfo gem + zone = TimeZone['Eastern Time (US & Canada)'] + twz = zone.parse('1850-12-31 19:00:00') + assert_equal [0,0,19,31,12,1850], twz.to_a[0,6] + assert_equal zone, twz.time_zone + end + end + + def test_parse_far_future_date_with_time_zone_offset_in_string + silence_warnings do # silence warnings raised by tzinfo gem + zone = TimeZone['Eastern Time (US & Canada)'] + twz = zone.parse('2050-12-31 19:00:00 -10:00') # i.e., 2050-01-01 05:00:00 UTC + assert_equal [0,0,0,1,1,2051], twz.to_a[0,6] + assert_equal zone, twz.time_zone + end + end + + def test_parse_returns_nil_when_string_without_date_information_is_passed_in + silence_warnings do # silence warnings raised by tzinfo gem + zone = TimeZone['Eastern Time (US & Canada)'] + assert_nil zone.parse('foobar') + assert_nil zone.parse(' ') + end + end + + uses_mocha 'TestParseWithIncompleteDate' do + def test_parse_with_incomplete_date + zone = TimeZone['Eastern Time (US & Canada)'] + zone.stubs(:now).returns zone.local(1999,12,31) + twz = zone.parse('19:00:00') + assert_equal Time.utc(1999,12,31,19), twz.time + end + end + + def test_utc_offset_lazy_loaded_from_tzinfo_when_not_passed_in_to_initialize + silence_warnings do # silence warnings raised by tzinfo gem + tzinfo = TZInfo::Timezone.get('America/New_York') + zone = TimeZone.create(tzinfo.name, nil, tzinfo) + assert_equal nil, zone.instance_variable_get('@utc_offset') + assert_equal(-18_000, zone.utc_offset) + end + end + + def test_formatted_offset_positive + zone = TimeZone['Moscow'] + assert_equal "+03:00", zone.formatted_offset + assert_equal "+0300", zone.formatted_offset(false) + end + + def test_formatted_offset_negative + zone = TimeZone['Eastern Time (US & Canada)'] + assert_equal "-05:00", zone.formatted_offset + assert_equal "-0500", zone.formatted_offset(false) + end + + def test_formatted_offset_zero + zone = TimeZone['London'] + assert_equal "+00:00", zone.formatted_offset + assert_equal "UTC", zone.formatted_offset(true, 'UTC') + end + + def test_zone_compare + zone1 = TimeZone['Central Time (US & Canada)'] # offset -0600 + zone2 = TimeZone['Eastern Time (US & Canada)'] # offset -0500 + assert zone1 < zone2 + assert zone2 > zone1 + assert zone1 == zone1 + end + + def test_to_s + assert_equal "(GMT+03:00) Moscow", TimeZone['Moscow'].to_s + end + + def test_all_sorted + all = TimeZone.all + 1.upto( all.length-1 ) do |i| + assert all[i-1] < all[i] + end + end + + def test_index + assert_nil TimeZone["bogus"] + assert_instance_of TimeZone, TimeZone["Central Time (US & Canada)"] + assert_instance_of TimeZone, TimeZone[8] + assert_raises(ArgumentError) { TimeZone[false] } + end + + def test_new + assert_equal TimeZone["Central Time (US & Canada)"], TimeZone.new("Central Time (US & Canada)") + end + + def test_us_zones + assert TimeZone.us_zones.include?(TimeZone["Hawaii"]) + assert !TimeZone.us_zones.include?(TimeZone["Kuala Lumpur"]) + end + + protected + def with_env_tz(new_tz = 'US/Eastern') + old_tz, ENV['TZ'] = ENV['TZ'], new_tz + yield + ensure + old_tz ? ENV['TZ'] = old_tz : ENV.delete('TZ') + end +end diff --git a/vendor/rails-2.1.0/activesupport/test/whiny_nil_test.rb b/vendor/rails-2.1.0/activesupport/test/whiny_nil_test.rb new file mode 100644 index 000000000..4cb22c41b --- /dev/null +++ b/vendor/rails-2.1.0/activesupport/test/whiny_nil_test.rb @@ -0,0 +1,38 @@ +# Stub to enable testing without Active Record +module ActiveRecord + class Base + def save! + end + end +end + +require 'abstract_unit' +require 'active_support/whiny_nil' + +class WhinyNilTest < Test::Unit::TestCase + def test_unchanged + nil.method_thats_not_in_whiners + rescue NoMethodError => nme + assert_match(/nil.method_thats_not_in_whiners/, nme.message) + end + + def test_active_record + nil.save! + rescue NoMethodError => nme + assert(!(nme.message =~ /nil:NilClass/)) + assert_match(/nil\.save!/, nme.message) + end + + def test_array + nil.each + rescue NoMethodError => nme + assert(!(nme.message =~ /nil:NilClass/)) + assert_match(/nil\.each/, nme.message) + end + + def test_id + nil.id + rescue RuntimeError => nme + assert(!(nme.message =~ /nil:NilClass/)) + end +end |