mack-active_record 0.8.2 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (318) hide show
  1. data/lib/mack-active_record/test_extensions.rb +0 -3
  2. metadata +3 -374
  3. data/lib/gems/activesupport-2.2.2/lib/active_support/base64.rb +0 -33
  4. data/lib/gems/activesupport-2.2.2/lib/active_support/basic_object.rb +0 -24
  5. data/lib/gems/activesupport-2.2.2/lib/active_support/buffered_logger.rb +0 -122
  6. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/compressed_mem_cache_store.rb +0 -20
  7. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/drb_store.rb +0 -15
  8. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/file_store.rb +0 -72
  9. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/mem_cache_store.rb +0 -127
  10. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/memory_store.rb +0 -52
  11. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/synchronized_memory_store.rb +0 -47
  12. data/lib/gems/activesupport-2.2.2/lib/active_support/cache.rb +0 -223
  13. data/lib/gems/activesupport-2.2.2/lib/active_support/callbacks.rb +0 -280
  14. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/access.rb +0 -53
  15. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/conversions.rb +0 -183
  16. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/extract_options.rb +0 -20
  17. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/grouping.rb +0 -106
  18. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/random_access.rb +0 -12
  19. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array.rb +0 -13
  20. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64/encoding.rb +0 -16
  21. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64.rb +0 -4
  22. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb +0 -12
  23. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal/conversions.rb +0 -37
  24. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal.rb +0 -6
  25. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/blank.rb +0 -58
  26. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +0 -14
  27. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi.rb +0 -5
  28. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/attribute_accessors.rb +0 -54
  29. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/delegating_attributes.rb +0 -46
  30. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/inheritable_attributes.rb +0 -140
  31. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/removal.rb +0 -50
  32. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class.rb +0 -4
  33. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/behavior.rb +0 -42
  34. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/calculations.rb +0 -230
  35. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/conversions.rb +0 -107
  36. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date.rb +0 -10
  37. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/calculations.rb +0 -126
  38. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/conversions.rb +0 -96
  39. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time.rb +0 -12
  40. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/duplicable.rb +0 -43
  41. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/enumerable.rb +0 -107
  42. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/exception.rb +0 -41
  43. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file/atomic.rb +0 -46
  44. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file.rb +0 -5
  45. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/rounding.rb +0 -24
  46. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/time.rb +0 -27
  47. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float.rb +0 -7
  48. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/conversions.rb +0 -259
  49. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/deep_merge.rb +0 -23
  50. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/diff.rb +0 -19
  51. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/except.rb +0 -25
  52. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/indifferent_access.rb +0 -137
  53. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/keys.rb +0 -52
  54. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/reverse_merge.rb +0 -35
  55. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/slice.rb +0 -33
  56. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash.rb +0 -14
  57. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/even_odd.rb +0 -29
  58. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/inflections.rb +0 -20
  59. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/time.rb +0 -45
  60. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer.rb +0 -9
  61. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/agnostics.rb +0 -11
  62. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/daemonizing.rb +0 -7
  63. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/debugger.rb +0 -13
  64. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb +0 -59
  65. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/requires.rb +0 -24
  66. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel.rb +0 -5
  67. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/load_error.rb +0 -38
  68. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/logger.rb +0 -143
  69. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/aliasing.rb +0 -74
  70. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_accessor_with_default.rb +0 -31
  71. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_internal.rb +0 -32
  72. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attribute_accessors.rb +0 -58
  73. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/delegation.rb +0 -95
  74. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/inclusion.rb +0 -30
  75. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/introspection.rb +0 -90
  76. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/loading.rb +0 -23
  77. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/model_naming.rb +0 -23
  78. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/synchronization.rb +0 -39
  79. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module.rb +0 -23
  80. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/name_error.rb +0 -17
  81. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/bytes.rb +0 -44
  82. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/conversions.rb +0 -19
  83. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/time.rb +0 -81
  84. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric.rb +0 -9
  85. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/conversions.rb +0 -14
  86. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/extending.rb +0 -80
  87. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/instance_variables.rb +0 -74
  88. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/metaclass.rb +0 -13
  89. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/misc.rb +0 -74
  90. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object.rb +0 -5
  91. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname/clean_within.rb +0 -14
  92. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname.rb +0 -7
  93. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/proc.rb +0 -12
  94. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process/daemon.rb +0 -25
  95. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process.rb +0 -1
  96. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/blockless_step.rb +0 -32
  97. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/conversions.rb +0 -27
  98. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/include_range.rb +0 -30
  99. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/overlaps.rb +0 -15
  100. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range.rb +0 -11
  101. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/rexml.rb +0 -36
  102. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/access.rb +0 -82
  103. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/behavior.rb +0 -13
  104. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/conversions.rb +0 -28
  105. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/filters.rb +0 -26
  106. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/inflections.rb +0 -167
  107. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/iterators.rb +0 -21
  108. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/multibyte.rb +0 -81
  109. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/starts_ends_with.rb +0 -35
  110. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/xchar.rb +0 -11
  111. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string.rb +0 -22
  112. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/symbol.rb +0 -14
  113. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/behavior.rb +0 -13
  114. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/calculations.rb +0 -303
  115. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/conversions.rb +0 -90
  116. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/zones.rb +0 -86
  117. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time.rb +0 -42
  118. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext.rb +0 -4
  119. data/lib/gems/activesupport-2.2.2/lib/active_support/dependencies.rb +0 -621
  120. data/lib/gems/activesupport-2.2.2/lib/active_support/deprecation.rb +0 -243
  121. data/lib/gems/activesupport-2.2.2/lib/active_support/duration.rb +0 -96
  122. data/lib/gems/activesupport-2.2.2/lib/active_support/gzip.rb +0 -25
  123. data/lib/gems/activesupport-2.2.2/lib/active_support/inflections.rb +0 -55
  124. data/lib/gems/activesupport-2.2.2/lib/active_support/inflector.rb +0 -397
  125. data/lib/gems/activesupport-2.2.2/lib/active_support/json/decoding.rb +0 -63
  126. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date.rb +0 -21
  127. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date_time.rb +0 -21
  128. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/enumerable.rb +0 -12
  129. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/false_class.rb +0 -5
  130. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/hash.rb +0 -47
  131. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/nil_class.rb +0 -5
  132. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/numeric.rb +0 -5
  133. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/object.rb +0 -6
  134. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/regexp.rb +0 -5
  135. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/string.rb +0 -36
  136. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/symbol.rb +0 -5
  137. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/time.rb +0 -21
  138. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/true_class.rb +0 -5
  139. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoding.rb +0 -37
  140. data/lib/gems/activesupport-2.2.2/lib/active_support/json/variable.rb +0 -10
  141. data/lib/gems/activesupport-2.2.2/lib/active_support/json.rb +0 -23
  142. data/lib/gems/activesupport-2.2.2/lib/active_support/locale/en.yml +0 -32
  143. data/lib/gems/activesupport-2.2.2/lib/active_support/memoizable.rb +0 -82
  144. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/chars.rb +0 -679
  145. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/exceptions.rb +0 -8
  146. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/unicode_database.rb +0 -71
  147. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte.rb +0 -33
  148. data/lib/gems/activesupport-2.2.2/lib/active_support/option_merger.rb +0 -17
  149. data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_hash.rb +0 -58
  150. data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_options.rb +0 -19
  151. data/lib/gems/activesupport-2.2.2/lib/active_support/rescuable.rb +0 -108
  152. data/lib/gems/activesupport-2.2.2/lib/active_support/secure_random.rb +0 -197
  153. data/lib/gems/activesupport-2.2.2/lib/active_support/string_inquirer.rb +0 -21
  154. data/lib/gems/activesupport-2.2.2/lib/active_support/test_case.rb +0 -24
  155. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test/unit/assertions.rb +0 -72
  156. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test.rb +0 -6
  157. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/default.rb +0 -9
  158. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/performance.rb +0 -452
  159. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb +0 -120
  160. data/lib/gems/activesupport-2.2.2/lib/active_support/time_with_zone.rb +0 -328
  161. data/lib/gems/activesupport-2.2.2/lib/active_support/values/time_zone.rb +0 -403
  162. data/lib/gems/activesupport-2.2.2/lib/active_support/values/unicode_tables.dat +0 -0
  163. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/blankslate.rb +0 -113
  164. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +0 -20
  165. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/css.rb +0 -250
  166. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +0 -115
  167. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +0 -139
  168. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +0 -63
  169. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +0 -328
  170. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder.rb +0 -13
  171. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb +0 -216
  172. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/exceptions.rb +0 -53
  173. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n.rb +0 -194
  174. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/memcache-client-1.5.1/memcache.rb +0 -849
  175. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +0 -47
  176. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +0 -228
  177. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +0 -55
  178. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +0 -219
  179. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +0 -40
  180. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +0 -18
  181. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +0 -25
  182. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +0 -22
  183. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +0 -23
  184. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -166
  185. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -86
  186. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +0 -23
  187. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +0 -23
  188. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +0 -283
  189. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +0 -136
  190. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +0 -204
  191. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +0 -161
  192. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +0 -27
  193. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +0 -274
  194. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -149
  195. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +0 -194
  196. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +0 -22
  197. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +0 -35
  198. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +0 -232
  199. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +0 -139
  200. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +0 -144
  201. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +0 -131
  202. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +0 -282
  203. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +0 -30
  204. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +0 -74
  205. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +0 -205
  206. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +0 -171
  207. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +0 -288
  208. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +0 -196
  209. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +0 -67
  210. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +0 -73
  211. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +0 -161
  212. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +0 -20
  213. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +0 -33
  214. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +0 -30
  215. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +0 -27
  216. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +0 -87
  217. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +0 -165
  218. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +0 -30
  219. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +0 -163
  220. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +0 -20
  221. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +0 -163
  222. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +0 -30
  223. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +0 -20
  224. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +0 -25
  225. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -163
  226. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -31
  227. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +0 -18
  228. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +0 -163
  229. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +0 -18
  230. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +0 -164
  231. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +0 -24
  232. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +0 -18
  233. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +0 -34
  234. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +0 -35
  235. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +0 -33
  236. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +0 -59
  237. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +0 -47
  238. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +0 -78
  239. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +0 -121
  240. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +0 -30
  241. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -65
  242. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +0 -33
  243. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +0 -164
  244. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +0 -163
  245. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -165
  246. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +0 -165
  247. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +0 -270
  248. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -23
  249. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -18
  250. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +0 -187
  251. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +0 -35
  252. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +0 -29
  253. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +0 -193
  254. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +0 -185
  255. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +0 -37
  256. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +0 -185
  257. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +0 -16
  258. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +0 -228
  259. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +0 -185
  260. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +0 -163
  261. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +0 -188
  262. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +0 -13
  263. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +0 -232
  264. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +0 -181
  265. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +0 -197
  266. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +0 -179
  267. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +0 -276
  268. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +0 -163
  269. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +0 -218
  270. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +0 -168
  271. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +0 -268
  272. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +0 -13
  273. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +0 -288
  274. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +0 -211
  275. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +0 -170
  276. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +0 -181
  277. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +0 -232
  278. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +0 -187
  279. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +0 -176
  280. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +0 -215
  281. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +0 -13
  282. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +0 -13
  283. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +0 -173
  284. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +0 -165
  285. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +0 -172
  286. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +0 -183
  287. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +0 -170
  288. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +0 -212
  289. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +0 -13
  290. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +0 -202
  291. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +0 -23
  292. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +0 -22
  293. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +0 -28
  294. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +0 -20
  295. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +0 -25
  296. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +0 -25
  297. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -26
  298. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -20
  299. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +0 -27
  300. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +0 -52
  301. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +0 -51
  302. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +0 -44
  303. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +0 -98
  304. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +0 -56
  305. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +0 -292
  306. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +0 -508
  307. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +0 -56
  308. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +0 -40
  309. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +0 -94
  310. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +0 -198
  311. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +0 -129
  312. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +0 -33
  313. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb +0 -1021
  314. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor.rb +0 -34
  315. data/lib/gems/activesupport-2.2.2/lib/active_support/version.rb +0 -9
  316. data/lib/gems/activesupport-2.2.2/lib/active_support/whiny_nil.rb +0 -58
  317. data/lib/gems/activesupport-2.2.2/lib/active_support.rb +0 -61
  318. data/lib/gems/activesupport-2.2.2/lib/activesupport.rb +0 -1
@@ -1,508 +0,0 @@
1
- #--
2
- # Copyright (c) 2005-2006 Philip Ross
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in all
12
- # copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #++
22
-
23
- require 'date'
24
- # require 'tzinfo/country'
25
- require 'tzinfo/time_or_datetime'
26
- require 'tzinfo/timezone_period'
27
-
28
- module TZInfo
29
- # Indicate a specified time in a local timezone has more than one
30
- # possible time in UTC. This happens when switching from daylight savings time
31
- # to normal time where the clocks are rolled back. Thrown by period_for_local
32
- # and local_to_utc when using an ambiguous time and not specifying any
33
- # means to resolve the ambiguity.
34
- class AmbiguousTime < StandardError
35
- end
36
-
37
- # Thrown to indicate that no TimezonePeriod matching a given time could be found.
38
- class PeriodNotFound < StandardError
39
- end
40
-
41
- # Thrown by Timezone#get if the identifier given is not valid.
42
- class InvalidTimezoneIdentifier < StandardError
43
- end
44
-
45
- # Thrown if an attempt is made to use a timezone created with Timezone.new(nil).
46
- class UnknownTimezone < StandardError
47
- end
48
-
49
- # Timezone is the base class of all timezones. It provides a factory method
50
- # get to access timezones by identifier. Once a specific Timezone has been
51
- # retrieved, DateTimes, Times and timestamps can be converted between the UTC
52
- # and the local time for the zone. For example:
53
- #
54
- # tz = TZInfo::Timezone.get('America/New_York')
55
- # puts tz.utc_to_local(DateTime.new(2005,8,29,15,35,0)).to_s
56
- # puts tz.local_to_utc(Time.utc(2005,8,29,11,35,0)).to_s
57
- # puts tz.utc_to_local(1125315300).to_s
58
- #
59
- # Each time conversion method returns an object of the same type it was
60
- # passed.
61
- #
62
- # The timezone information all comes from the tz database
63
- # (see http://www.twinsun.com/tz/tz-link.htm)
64
- class Timezone
65
- include Comparable
66
-
67
- # Cache of loaded zones by identifier to avoid using require if a zone
68
- # has already been loaded.
69
- @@loaded_zones = {}
70
-
71
- # Whether the timezones index has been loaded yet.
72
- @@index_loaded = false
73
-
74
- # Returns a timezone by its identifier (e.g. "Europe/London",
75
- # "America/Chicago" or "UTC").
76
- #
77
- # Raises InvalidTimezoneIdentifier if the timezone couldn't be found.
78
- def self.get(identifier)
79
- instance = @@loaded_zones[identifier]
80
- unless instance
81
- raise InvalidTimezoneIdentifier, 'Invalid identifier' if identifier !~ /^[A-z0-9\+\-_]+(\/[A-z0-9\+\-_]+)*$/
82
- identifier = identifier.gsub(/-/, '__m__').gsub(/\+/, '__p__')
83
- begin
84
- # Use a temporary variable to avoid an rdoc warning
85
- file = "tzinfo/definitions/#{identifier}"
86
- require file
87
-
88
- m = Definitions
89
- identifier.split(/\//).each {|part|
90
- m = m.const_get(part)
91
- }
92
-
93
- info = m.get
94
-
95
- # Could make Timezone subclasses register an interest in an info
96
- # type. Since there are currently only two however, there isn't
97
- # much point.
98
- if info.kind_of?(DataTimezoneInfo)
99
- instance = DataTimezone.new(info)
100
- elsif info.kind_of?(LinkedTimezoneInfo)
101
- instance = LinkedTimezone.new(info)
102
- else
103
- raise InvalidTimezoneIdentifier, "No handler for info type #{info.class}"
104
- end
105
-
106
- @@loaded_zones[instance.identifier] = instance
107
- rescue LoadError, NameError => e
108
- raise InvalidTimezoneIdentifier, e.message
109
- end
110
- end
111
-
112
- instance
113
- end
114
-
115
- # Returns a proxy for the Timezone with the given identifier. The proxy
116
- # will cause the real timezone to be loaded when an attempt is made to
117
- # find a period or convert a time. get_proxy will not validate the
118
- # identifier. If an invalid identifier is specified, no exception will be
119
- # raised until the proxy is used.
120
- def self.get_proxy(identifier)
121
- TimezoneProxy.new(identifier)
122
- end
123
-
124
- # If identifier is nil calls super(), otherwise calls get. An identfier
125
- # should always be passed in when called externally.
126
- def self.new(identifier = nil)
127
- if identifier
128
- get(identifier)
129
- else
130
- super()
131
- end
132
- end
133
-
134
- # Returns an array containing all the available Timezones.
135
- #
136
- # Returns TimezoneProxy objects to avoid the overhead of loading Timezone
137
- # definitions until a conversion is actually required.
138
- def self.all
139
- get_proxies(all_identifiers)
140
- end
141
-
142
- # Returns an array containing the identifiers of all the available
143
- # Timezones.
144
- def self.all_identifiers
145
- load_index
146
- Indexes::Timezones.timezones
147
- end
148
-
149
- # Returns an array containing all the available Timezones that are based
150
- # on data (are not links to other Timezones).
151
- #
152
- # Returns TimezoneProxy objects to avoid the overhead of loading Timezone
153
- # definitions until a conversion is actually required.
154
- def self.all_data_zones
155
- get_proxies(all_data_zone_identifiers)
156
- end
157
-
158
- # Returns an array containing the identifiers of all the available
159
- # Timezones that are based on data (are not links to other Timezones)..
160
- def self.all_data_zone_identifiers
161
- load_index
162
- Indexes::Timezones.data_timezones
163
- end
164
-
165
- # Returns an array containing all the available Timezones that are links
166
- # to other Timezones.
167
- #
168
- # Returns TimezoneProxy objects to avoid the overhead of loading Timezone
169
- # definitions until a conversion is actually required.
170
- def self.all_linked_zones
171
- get_proxies(all_linked_zone_identifiers)
172
- end
173
-
174
- # Returns an array containing the identifiers of all the available
175
- # Timezones that are links to other Timezones.
176
- def self.all_linked_zone_identifiers
177
- load_index
178
- Indexes::Timezones.linked_timezones
179
- end
180
-
181
- # Returns all the Timezones defined for all Countries. This is not the
182
- # complete set of Timezones as some are not country specific (e.g.
183
- # 'Etc/GMT').
184
- #
185
- # Returns TimezoneProxy objects to avoid the overhead of loading Timezone
186
- # definitions until a conversion is actually required.
187
- def self.all_country_zones
188
- Country.all_codes.inject([]) {|zones,country|
189
- zones += Country.get(country).zones
190
- }
191
- end
192
-
193
- # Returns all the zone identifiers defined for all Countries. This is not the
194
- # complete set of zone identifiers as some are not country specific (e.g.
195
- # 'Etc/GMT'). You can obtain a Timezone instance for a given identifier
196
- # with the get method.
197
- def self.all_country_zone_identifiers
198
- Country.all_codes.inject([]) {|zones,country|
199
- zones += Country.get(country).zone_identifiers
200
- }
201
- end
202
-
203
- # Returns all US Timezone instances. A shortcut for
204
- # TZInfo::Country.get('US').zones.
205
- #
206
- # Returns TimezoneProxy objects to avoid the overhead of loading Timezone
207
- # definitions until a conversion is actually required.
208
- def self.us_zones
209
- Country.get('US').zones
210
- end
211
-
212
- # Returns all US zone identifiers. A shortcut for
213
- # TZInfo::Country.get('US').zone_identifiers.
214
- def self.us_zone_identifiers
215
- Country.get('US').zone_identifiers
216
- end
217
-
218
- # The identifier of the timezone, e.g. "Europe/Paris".
219
- def identifier
220
- raise UnknownTimezone, 'TZInfo::Timezone constructed directly'
221
- end
222
-
223
- # An alias for identifier.
224
- def name
225
- # Don't use alias, as identifier gets overridden.
226
- identifier
227
- end
228
-
229
- # Returns a friendlier version of the identifier.
230
- def to_s
231
- friendly_identifier
232
- end
233
-
234
- # Returns internal object state as a programmer-readable string.
235
- def inspect
236
- "#<#{self.class}: #{identifier}>"
237
- end
238
-
239
- # Returns a friendlier version of the identifier. Set skip_first_part to
240
- # omit the first part of the identifier (typically a region name) where
241
- # there is more than one part.
242
- #
243
- # For example:
244
- #
245
- # Timezone.get('Europe/Paris').friendly_identifier(false) #=> "Europe - Paris"
246
- # Timezone.get('Europe/Paris').friendly_identifier(true) #=> "Paris"
247
- # Timezone.get('America/Indiana/Knox').friendly_identifier(false) #=> "America - Knox, Indiana"
248
- # Timezone.get('America/Indiana/Knox').friendly_identifier(true) #=> "Knox, Indiana"
249
- def friendly_identifier(skip_first_part = false)
250
- parts = identifier.split('/')
251
- if parts.empty?
252
- # shouldn't happen
253
- identifier
254
- elsif parts.length == 1
255
- parts[0]
256
- else
257
- if skip_first_part
258
- result = ''
259
- else
260
- result = parts[0] + ' - '
261
- end
262
-
263
- parts[1, parts.length - 1].reverse_each {|part|
264
- part.gsub!(/_/, ' ')
265
-
266
- if part.index(/[a-z]/)
267
- # Missing a space if a lower case followed by an upper case and the
268
- # name isn't McXxxx.
269
- part.gsub!(/([^M][a-z])([A-Z])/, '\1 \2')
270
- part.gsub!(/([M][a-bd-z])([A-Z])/, '\1 \2')
271
-
272
- # Missing an apostrophe if two consecutive upper case characters.
273
- part.gsub!(/([A-Z])([A-Z])/, '\1\'\2')
274
- end
275
-
276
- result << part
277
- result << ', '
278
- }
279
-
280
- result.slice!(result.length - 2, 2)
281
- result
282
- end
283
- end
284
-
285
- # Returns the TimezonePeriod for the given UTC time. utc can either be
286
- # a DateTime, Time or integer timestamp (Time.to_i). Any timezone
287
- # information in utc is ignored (it is treated as a UTC time).
288
- def period_for_utc(utc)
289
- raise UnknownTimezone, 'TZInfo::Timezone constructed directly'
290
- end
291
-
292
- # Returns the set of TimezonePeriod instances that are valid for the given
293
- # local time as an array. If you just want a single period, use
294
- # period_for_local instead and specify how ambiguities should be resolved.
295
- # Returns an empty array if no periods are found for the given time.
296
- def periods_for_local(local)
297
- raise UnknownTimezone, 'TZInfo::Timezone constructed directly'
298
- end
299
-
300
- # Returns the TimezonePeriod for the given local time. local can either be
301
- # a DateTime, Time or integer timestamp (Time.to_i). Any timezone
302
- # information in local is ignored (it is treated as a time in the current
303
- # timezone).
304
- #
305
- # Warning: There are local times that have no equivalent UTC times (e.g.
306
- # in the transition from standard time to daylight savings time). There are
307
- # also local times that have more than one UTC equivalent (e.g. in the
308
- # transition from daylight savings time to standard time).
309
- #
310
- # In the first case (no equivalent UTC time), a PeriodNotFound exception
311
- # will be raised.
312
- #
313
- # In the second case (more than one equivalent UTC time), an AmbiguousTime
314
- # exception will be raised unless the optional dst parameter or block
315
- # handles the ambiguity.
316
- #
317
- # If the ambiguity is due to a transition from daylight savings time to
318
- # standard time, the dst parameter can be used to select whether the
319
- # daylight savings time or local time is used. For example,
320
- #
321
- # Timezone.get('America/New_York').period_for_local(DateTime.new(2004,10,31,1,30,0))
322
- #
323
- # would raise an AmbiguousTime exception.
324
- #
325
- # Specifying dst=true would the daylight savings period from April to
326
- # October 2004. Specifying dst=false would return the standard period
327
- # from October 2004 to April 2005.
328
- #
329
- # If the dst parameter does not resolve the ambiguity, and a block is
330
- # specified, it is called. The block must take a single parameter - an
331
- # array of the periods that need to be resolved. The block can select and
332
- # return a single period or return nil or an empty array
333
- # to cause an AmbiguousTime exception to be raised.
334
- def period_for_local(local, dst = nil)
335
- results = periods_for_local(local)
336
-
337
- if results.empty?
338
- raise PeriodNotFound
339
- elsif results.size < 2
340
- results.first
341
- else
342
- # ambiguous result try to resolve
343
-
344
- if !dst.nil?
345
- matches = results.find_all {|period| period.dst? == dst}
346
- results = matches if !matches.empty?
347
- end
348
-
349
- if results.size < 2
350
- results.first
351
- else
352
- # still ambiguous, try the block
353
-
354
- if block_given?
355
- results = yield results
356
- end
357
-
358
- if results.is_a?(TimezonePeriod)
359
- results
360
- elsif results && results.size == 1
361
- results.first
362
- else
363
- raise AmbiguousTime, "#{local} is an ambiguous local time."
364
- end
365
- end
366
- end
367
- end
368
-
369
- # Converts a time in UTC to the local timezone. utc can either be
370
- # a DateTime, Time or timestamp (Time.to_i). The returned time has the same
371
- # type as utc. Any timezone information in utc is ignored (it is treated as
372
- # a UTC time).
373
- def utc_to_local(utc)
374
- TimeOrDateTime.wrap(utc) {|wrapped|
375
- period_for_utc(wrapped).to_local(wrapped)
376
- }
377
- end
378
-
379
- # Converts a time in the local timezone to UTC. local can either be
380
- # a DateTime, Time or timestamp (Time.to_i). The returned time has the same
381
- # type as local. Any timezone information in local is ignored (it is treated
382
- # as a local time).
383
- #
384
- # Warning: There are local times that have no equivalent UTC times (e.g.
385
- # in the transition from standard time to daylight savings time). There are
386
- # also local times that have more than one UTC equivalent (e.g. in the
387
- # transition from daylight savings time to standard time).
388
- #
389
- # In the first case (no equivalent UTC time), a PeriodNotFound exception
390
- # will be raised.
391
- #
392
- # In the second case (more than one equivalent UTC time), an AmbiguousTime
393
- # exception will be raised unless the optional dst parameter or block
394
- # handles the ambiguity.
395
- #
396
- # If the ambiguity is due to a transition from daylight savings time to
397
- # standard time, the dst parameter can be used to select whether the
398
- # daylight savings time or local time is used. For example,
399
- #
400
- # Timezone.get('America/New_York').local_to_utc(DateTime.new(2004,10,31,1,30,0))
401
- #
402
- # would raise an AmbiguousTime exception.
403
- #
404
- # Specifying dst=true would return 2004-10-31 5:30:00. Specifying dst=false
405
- # would return 2004-10-31 6:30:00.
406
- #
407
- # If the dst parameter does not resolve the ambiguity, and a block is
408
- # specified, it is called. The block must take a single parameter - an
409
- # array of the periods that need to be resolved. The block can return a
410
- # single period to use to convert the time or return nil or an empty array
411
- # to cause an AmbiguousTime exception to be raised.
412
- def local_to_utc(local, dst = nil)
413
- TimeOrDateTime.wrap(local) {|wrapped|
414
- if block_given?
415
- period = period_for_local(wrapped, dst) {|periods| yield periods }
416
- else
417
- period = period_for_local(wrapped, dst)
418
- end
419
-
420
- period.to_utc(wrapped)
421
- }
422
- end
423
-
424
- # Returns the current time in the timezone as a Time.
425
- def now
426
- utc_to_local(Time.now.utc)
427
- end
428
-
429
- # Returns the TimezonePeriod for the current time.
430
- def current_period
431
- period_for_utc(Time.now.utc)
432
- end
433
-
434
- # Returns the current Time and TimezonePeriod as an array. The first element
435
- # is the time, the second element is the period.
436
- def current_period_and_time
437
- utc = Time.now.utc
438
- period = period_for_utc(utc)
439
- [period.to_local(utc), period]
440
- end
441
-
442
- alias :current_time_and_period :current_period_and_time
443
-
444
- # Converts a time in UTC to local time and returns it as a string
445
- # according to the given format. The formatting is identical to
446
- # Time.strftime and DateTime.strftime, except %Z is replaced with the
447
- # timezone abbreviation for the specified time (for example, EST or EDT).
448
- def strftime(format, utc = Time.now.utc)
449
- period = period_for_utc(utc)
450
- local = period.to_local(utc)
451
- local = Time.at(local).utc unless local.kind_of?(Time) || local.kind_of?(DateTime)
452
- abbreviation = period.abbreviation.to_s.gsub(/%/, '%%')
453
-
454
- format = format.gsub(/(.?)%Z/) do
455
- if $1 == '%'
456
- # return %%Z so the real strftime treats it as a literal %Z too
457
- '%%Z'
458
- else
459
- "#$1#{abbreviation}"
460
- end
461
- end
462
-
463
- local.strftime(format)
464
- end
465
-
466
- # Compares two Timezones based on their identifier. Returns -1 if tz is less
467
- # than self, 0 if tz is equal to self and +1 if tz is greater than self.
468
- def <=>(tz)
469
- identifier <=> tz.identifier
470
- end
471
-
472
- # Returns true if and only if the identifier of tz is equal to the
473
- # identifier of this Timezone.
474
- def eql?(tz)
475
- self == tz
476
- end
477
-
478
- # Returns a hash of this Timezone.
479
- def hash
480
- identifier.hash
481
- end
482
-
483
- # Dumps this Timezone for marshalling.
484
- def _dump(limit)
485
- identifier
486
- end
487
-
488
- # Loads a marshalled Timezone.
489
- def self._load(data)
490
- Timezone.get(data)
491
- end
492
-
493
- private
494
- # Loads in the index of timezones if it hasn't already been loaded.
495
- def self.load_index
496
- unless @@index_loaded
497
- require 'tzinfo/indexes/timezones'
498
- @@index_loaded = true
499
- end
500
- end
501
-
502
- # Returns an array of proxies corresponding to the given array of
503
- # identifiers.
504
- def self.get_proxies(identifiers)
505
- identifiers.collect {|identifier| get_proxy(identifier)}
506
- end
507
- end
508
- end
@@ -1,56 +0,0 @@
1
- #--
2
- # Copyright (c) 2006 Philip Ross
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in all
12
- # copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #++
22
-
23
- require 'tzinfo/data_timezone_info'
24
- require 'tzinfo/linked_timezone_info'
25
-
26
- module TZInfo
27
-
28
- # TimezoneDefinition is included into Timezone definition modules.
29
- # TimezoneDefinition provides the methods for defining timezones.
30
- module TimezoneDefinition #:nodoc:
31
- # Add class methods to the includee.
32
- def self.append_features(base)
33
- super
34
- base.extend(ClassMethods)
35
- end
36
-
37
- # Class methods for inclusion.
38
- module ClassMethods #:nodoc:
39
- # Returns and yields a DataTimezoneInfo object to define a timezone.
40
- def timezone(identifier)
41
- yield @timezone = DataTimezoneInfo.new(identifier)
42
- end
43
-
44
- # Defines a linked timezone.
45
- def linked_timezone(identifier, link_to_identifier)
46
- @timezone = LinkedTimezoneInfo.new(identifier, link_to_identifier)
47
- end
48
-
49
- # Returns the last TimezoneInfo to be defined with timezone or
50
- # linked_timezone.
51
- def get
52
- @timezone
53
- end
54
- end
55
- end
56
- end
@@ -1,40 +0,0 @@
1
- #--
2
- # Copyright (c) 2006 Philip Ross
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in all
12
- # copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #++
22
-
23
- module TZInfo
24
- # Represents a timezone defined in a data module.
25
- class TimezoneInfo #:nodoc:
26
-
27
- # The timezone identifier.
28
- attr_reader :identifier
29
-
30
- # Constructs a new TimezoneInfo with an identifier.
31
- def initialize(identifier)
32
- @identifier = identifier
33
- end
34
-
35
- # Returns internal object state as a programmer-readable string.
36
- def inspect
37
- "#<#{self.class}: #@identifier>"
38
- end
39
- end
40
- end
@@ -1,94 +0,0 @@
1
- #--
2
- # Copyright (c) 2006 Philip Ross
3
- #
4
- # Permission is hereby granted, free of charge, to any person obtaining a copy
5
- # of this software and associated documentation files (the "Software"), to deal
6
- # in the Software without restriction, including without limitation the rights
7
- # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
- # copies of the Software, and to permit persons to whom the Software is
9
- # furnished to do so, subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be included in all
12
- # copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
- # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
- # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
- # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
- # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
- # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
- # THE SOFTWARE.
21
- #++
22
-
23
- module TZInfo
24
- # Represents an offset defined in a Timezone data file.
25
- class TimezoneOffsetInfo #:nodoc:
26
- # The base offset of the timezone from UTC in seconds.
27
- attr_reader :utc_offset
28
-
29
- # The offset from standard time for the zone in seconds (i.e. non-zero if
30
- # daylight savings is being observed).
31
- attr_reader :std_offset
32
-
33
- # The total offset of this observance from UTC in seconds
34
- # (utc_offset + std_offset).
35
- attr_reader :utc_total_offset
36
-
37
- # The abbreviation that identifies this observance, e.g. "GMT"
38
- # (Greenwich Mean Time) or "BST" (British Summer Time) for "Europe/London". The returned identifier is a
39
- # symbol.
40
- attr_reader :abbreviation
41
-
42
- # Constructs a new TimezoneOffsetInfo. utc_offset and std_offset are
43
- # specified in seconds.
44
- def initialize(utc_offset, std_offset, abbreviation)
45
- @utc_offset = utc_offset
46
- @std_offset = std_offset
47
- @abbreviation = abbreviation
48
-
49
- @utc_total_offset = @utc_offset + @std_offset
50
- end
51
-
52
- # True if std_offset is non-zero.
53
- def dst?
54
- @std_offset != 0
55
- end
56
-
57
- # Converts a UTC DateTime to local time based on the offset of this period.
58
- def to_local(utc)
59
- TimeOrDateTime.wrap(utc) {|wrapped|
60
- wrapped + @utc_total_offset
61
- }
62
- end
63
-
64
- # Converts a local DateTime to UTC based on the offset of this period.
65
- def to_utc(local)
66
- TimeOrDateTime.wrap(local) {|wrapped|
67
- wrapped - @utc_total_offset
68
- }
69
- end
70
-
71
- # Returns true if and only if toi has the same utc_offset, std_offset
72
- # and abbreviation as this TimezoneOffsetInfo.
73
- def ==(toi)
74
- toi.respond_to?(:utc_offset) && toi.respond_to?(:std_offset) && toi.respond_to?(:abbreviation) &&
75
- utc_offset == toi.utc_offset && std_offset == toi.std_offset && abbreviation == toi.abbreviation
76
- end
77
-
78
- # Returns true if and only if toi has the same utc_offset, std_offset
79
- # and abbreviation as this TimezoneOffsetInfo.
80
- def eql?(toi)
81
- self == toi
82
- end
83
-
84
- # Returns a hash of this TimezoneOffsetInfo.
85
- def hash
86
- utc_offset.hash ^ std_offset.hash ^ abbreviation.hash
87
- end
88
-
89
- # Returns internal object state as a programmer-readable string.
90
- def inspect
91
- "#<#{self.class}: #@utc_offset,#@std_offset,#@abbreviation>"
92
- end
93
- end
94
- end