activesupport 2.3.18 → 3.0.0.beta

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activesupport might be problematic. Click here for more details.

Files changed (403) hide show
  1. data/CHANGELOG +30 -53
  2. data/lib/active_support.rb +43 -31
  3. data/lib/active_support/all.rb +3 -7
  4. data/lib/active_support/backtrace_cleaner.rb +24 -8
  5. data/lib/active_support/base64.rb +9 -0
  6. data/lib/active_support/benchmarkable.rb +60 -0
  7. data/lib/active_support/buffered_logger.rb +12 -9
  8. data/lib/active_support/cache.rb +75 -55
  9. data/lib/active_support/cache/compressed_mem_cache_store.rb +2 -0
  10. data/lib/active_support/cache/file_store.rb +35 -17
  11. data/lib/active_support/cache/mem_cache_store.rb +29 -20
  12. data/lib/active_support/cache/memory_store.rb +18 -17
  13. data/lib/active_support/cache/strategy/local_cache.rb +9 -1
  14. data/lib/active_support/callbacks.rb +490 -169
  15. data/lib/active_support/concern.rb +29 -0
  16. data/lib/active_support/configurable.rb +35 -0
  17. data/lib/active_support/core_ext.rb +2 -7
  18. data/lib/active_support/core_ext/array.rb +2 -10
  19. data/lib/active_support/core_ext/array/access.rb +39 -46
  20. data/lib/active_support/core_ext/array/conversions.rb +146 -182
  21. data/lib/active_support/core_ext/array/extract_options.rb +12 -18
  22. data/lib/active_support/core_ext/array/grouping.rb +87 -93
  23. data/lib/active_support/core_ext/array/random_access.rb +4 -40
  24. data/lib/active_support/core_ext/array/uniq_by.rb +17 -0
  25. data/lib/active_support/core_ext/array/wrap.rb +22 -0
  26. data/lib/active_support/core_ext/big_decimal.rb +1 -0
  27. data/lib/active_support/core_ext/big_decimal/conversions.rb +27 -0
  28. data/lib/active_support/core_ext/cgi.rb +0 -4
  29. data/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +16 -20
  30. data/lib/active_support/core_ext/class.rb +0 -2
  31. data/lib/active_support/core_ext/class/attribute.rb +8 -39
  32. data/lib/active_support/core_ext/class/attribute_accessors.rb +31 -35
  33. data/lib/active_support/core_ext/class/delegating_attributes.rb +34 -40
  34. data/lib/active_support/core_ext/class/inheritable_attributes.rb +100 -16
  35. data/lib/active_support/core_ext/date/acts_like.rb +8 -0
  36. data/lib/active_support/core_ext/date/calculations.rb +218 -238
  37. data/lib/active_support/core_ext/date/conversions.rb +87 -96
  38. data/lib/active_support/core_ext/date/freeze.rb +31 -0
  39. data/lib/active_support/core_ext/date_time/acts_like.rb +13 -0
  40. data/lib/active_support/core_ext/date_time/calculations.rb +97 -110
  41. data/lib/active_support/core_ext/date_time/conversions.rb +83 -95
  42. data/lib/active_support/core_ext/date_time/zones.rb +17 -0
  43. data/lib/active_support/core_ext/enumerable.rb +14 -15
  44. data/lib/active_support/core_ext/exception.rb +1 -43
  45. data/lib/active_support/core_ext/file.rb +0 -4
  46. data/lib/active_support/core_ext/file/atomic.rb +34 -41
  47. data/lib/active_support/core_ext/float.rb +0 -6
  48. data/lib/active_support/core_ext/float/rounding.rb +15 -20
  49. data/lib/active_support/core_ext/hash.rb +8 -14
  50. data/lib/active_support/core_ext/hash/conversions.rb +236 -236
  51. data/lib/active_support/core_ext/hash/deep_merge.rb +12 -19
  52. data/lib/active_support/core_ext/hash/diff.rb +11 -17
  53. data/lib/active_support/core_ext/hash/except.rb +21 -22
  54. data/lib/active_support/core_ext/hash/indifferent_access.rb +8 -137
  55. data/lib/active_support/core_ext/hash/keys.rb +38 -45
  56. data/lib/active_support/core_ext/hash/reverse_merge.rb +25 -32
  57. data/lib/active_support/core_ext/hash/slice.rb +35 -37
  58. data/lib/active_support/core_ext/integer.rb +1 -7
  59. data/lib/active_support/core_ext/integer/inflections.rb +10 -16
  60. data/lib/active_support/core_ext/integer/multiple.rb +6 -0
  61. data/lib/active_support/core_ext/integer/time.rb +36 -42
  62. data/lib/active_support/core_ext/kernel/reporting.rb +9 -7
  63. data/lib/active_support/core_ext/kernel/requires.rb +3 -1
  64. data/lib/active_support/core_ext/load_error.rb +16 -33
  65. data/lib/active_support/core_ext/logger.rb +3 -2
  66. data/lib/active_support/core_ext/module.rb +3 -16
  67. data/lib/active_support/core_ext/module/aliasing.rb +64 -68
  68. data/lib/active_support/core_ext/module/attr_accessor_with_default.rb +1 -1
  69. data/lib/active_support/core_ext/module/attr_internal.rb +4 -4
  70. data/lib/active_support/core_ext/module/attribute_accessors.rb +36 -41
  71. data/lib/active_support/core_ext/module/delegation.rb +1 -1
  72. data/lib/active_support/core_ext/module/deprecation.rb +9 -0
  73. data/lib/active_support/core_ext/module/introspection.rb +77 -79
  74. data/lib/active_support/core_ext/module/loading.rb +2 -0
  75. data/lib/active_support/core_ext/module/synchronization.rb +4 -1
  76. data/lib/active_support/core_ext/name_error.rb +3 -4
  77. data/lib/active_support/core_ext/numeric.rb +1 -8
  78. data/lib/active_support/core_ext/numeric/bytes.rb +35 -41
  79. data/lib/active_support/core_ext/numeric/time.rb +70 -74
  80. data/lib/active_support/core_ext/object.rb +4 -2
  81. data/lib/active_support/core_ext/object/acts_like.rb +10 -0
  82. data/lib/active_support/core_ext/object/conversions.rb +4 -15
  83. data/lib/active_support/core_ext/object/duplicable.rb +65 -0
  84. data/lib/active_support/core_ext/object/instance_variables.rb +0 -7
  85. data/lib/active_support/core_ext/object/metaclass.rb +5 -6
  86. data/lib/active_support/core_ext/object/misc.rb +2 -93
  87. data/lib/active_support/core_ext/object/returning.rb +42 -0
  88. data/lib/active_support/core_ext/object/to_param.rb +49 -0
  89. data/lib/active_support/core_ext/object/to_query.rb +27 -0
  90. data/lib/active_support/core_ext/{try.rb → object/try.rb} +4 -4
  91. data/lib/active_support/core_ext/object/with_options.rb +24 -0
  92. data/lib/active_support/core_ext/proc.rb +6 -4
  93. data/lib/active_support/core_ext/process/daemon.rb +17 -19
  94. data/lib/active_support/core_ext/range.rb +2 -9
  95. data/lib/active_support/core_ext/range/blockless_step.rb +24 -27
  96. data/lib/active_support/core_ext/range/conversions.rb +17 -23
  97. data/lib/active_support/core_ext/range/include_range.rb +18 -27
  98. data/lib/active_support/core_ext/range/overlaps.rb +6 -13
  99. data/lib/active_support/core_ext/regexp.rb +5 -0
  100. data/lib/active_support/core_ext/rexml.rb +12 -7
  101. data/lib/active_support/core_ext/string.rb +6 -19
  102. data/lib/active_support/core_ext/string/access.rb +88 -95
  103. data/lib/active_support/core_ext/string/behavior.rb +6 -12
  104. data/lib/active_support/core_ext/string/conversions.rb +19 -21
  105. data/lib/active_support/core_ext/string/exclude.rb +6 -0
  106. data/lib/active_support/core_ext/string/filters.rb +17 -23
  107. data/lib/active_support/core_ext/string/inflections.rb +146 -153
  108. data/lib/active_support/{vendor/i18n-0.4.1/i18n/core_ext/string/interpolate.rb → core_ext/string/interpolation.rb} +8 -15
  109. data/lib/active_support/core_ext/string/multibyte.rb +68 -74
  110. data/lib/active_support/core_ext/string/output_safety.rb +21 -17
  111. data/lib/active_support/core_ext/string/starts_ends_with.rb +3 -32
  112. data/lib/active_support/core_ext/string/xchar.rb +10 -3
  113. data/lib/active_support/core_ext/time/acts_like.rb +8 -0
  114. data/lib/active_support/core_ext/time/calculations.rb +276 -308
  115. data/lib/active_support/core_ext/time/conversions.rb +78 -84
  116. data/lib/active_support/core_ext/time/marshal_with_utc_flag.rb +22 -0
  117. data/lib/active_support/core_ext/time/publicize_conversion_methods.rb +10 -0
  118. data/lib/active_support/core_ext/time/zones.rb +73 -81
  119. data/lib/active_support/core_ext/uri.rb +2 -1
  120. data/lib/active_support/dependencies.rb +38 -48
  121. data/lib/active_support/dependencies/autoload.rb +49 -0
  122. data/lib/active_support/deprecation.rb +9 -195
  123. data/lib/active_support/deprecation/behaviors.rb +38 -0
  124. data/lib/active_support/deprecation/method_wrappers.rb +29 -0
  125. data/lib/active_support/deprecation/proxy_wrappers.rb +74 -0
  126. data/lib/active_support/deprecation/reporting.rb +55 -0
  127. data/lib/active_support/duration.rb +6 -2
  128. data/lib/active_support/hash_with_indifferent_access.rb +137 -0
  129. data/lib/active_support/i18n.rb +2 -0
  130. data/lib/active_support/inflections.rb +1 -1
  131. data/lib/active_support/inflector.rb +4 -406
  132. data/lib/active_support/inflector/inflections.rb +211 -0
  133. data/lib/active_support/inflector/methods.rb +139 -0
  134. data/lib/active_support/inflector/transliterate.rb +61 -0
  135. data/lib/active_support/json/backends/jsongem.rb +16 -10
  136. data/lib/active_support/json/backends/yaml.rb +72 -2
  137. data/lib/active_support/json/decoding.rb +2 -16
  138. data/lib/active_support/json/encoding.rb +153 -33
  139. data/lib/active_support/json/variable.rb +4 -3
  140. data/lib/active_support/locale/en.yml +1 -4
  141. data/lib/active_support/memoizable.rb +7 -6
  142. data/lib/active_support/message_encryptor.rb +1 -0
  143. data/lib/active_support/message_verifier.rb +12 -29
  144. data/lib/active_support/multibyte.rb +9 -4
  145. data/lib/active_support/multibyte/chars.rb +25 -17
  146. data/lib/active_support/multibyte/unicode_database.rb +5 -5
  147. data/lib/active_support/multibyte/utils.rb +1 -1
  148. data/lib/active_support/notifications.rb +77 -0
  149. data/lib/active_support/notifications/fanout.rb +69 -0
  150. data/lib/active_support/notifications/instrumenter.rb +50 -0
  151. data/lib/active_support/option_merger.rb +2 -0
  152. data/lib/active_support/ordered_hash.rb +33 -37
  153. data/lib/active_support/ordered_options.rb +3 -1
  154. data/lib/active_support/railtie.rb +64 -0
  155. data/lib/active_support/rescuable.rb +11 -6
  156. data/lib/active_support/ruby/shim.rb +19 -0
  157. data/lib/active_support/test_case.rb +8 -1
  158. data/lib/active_support/testing/assertions.rb +2 -14
  159. data/lib/active_support/testing/declarative.rb +31 -12
  160. data/lib/active_support/testing/deprecation.rb +8 -10
  161. data/lib/active_support/testing/isolation.rb +153 -0
  162. data/lib/active_support/testing/pending.rb +48 -0
  163. data/lib/active_support/testing/performance.rb +342 -339
  164. data/lib/active_support/testing/setup_and_teardown.rb +48 -31
  165. data/lib/active_support/time.rb +34 -0
  166. data/lib/active_support/time/autoload.rb +5 -0
  167. data/lib/active_support/time_with_zone.rb +18 -12
  168. data/lib/active_support/values/time_zone.rb +97 -93
  169. data/lib/active_support/version.rb +3 -3
  170. data/lib/active_support/whiny_nil.rb +1 -4
  171. data/lib/active_support/xml_mini.rb +2 -0
  172. data/lib/active_support/xml_mini/jdom.rb +13 -7
  173. data/lib/active_support/xml_mini/libxml.rb +19 -12
  174. data/lib/active_support/xml_mini/libxmlsax.rb +19 -9
  175. data/lib/active_support/xml_mini/nokogiri.rb +18 -12
  176. data/lib/active_support/xml_mini/nokogirisax.rb +15 -6
  177. data/lib/active_support/xml_mini/rexml.rb +24 -9
  178. metadata +94 -244
  179. data/lib/active_support/cache/drb_store.rb +0 -14
  180. data/lib/active_support/core_ext/array/wrapper.rb +0 -24
  181. data/lib/active_support/core_ext/base64.rb +0 -4
  182. data/lib/active_support/core_ext/base64/encoding.rb +0 -16
  183. data/lib/active_support/core_ext/bigdecimal.rb +0 -6
  184. data/lib/active_support/core_ext/bigdecimal/conversions.rb +0 -37
  185. data/lib/active_support/core_ext/blank.rb +0 -2
  186. data/lib/active_support/core_ext/class/removal.rb +0 -50
  187. data/lib/active_support/core_ext/date.rb +0 -10
  188. data/lib/active_support/core_ext/date/behavior.rb +0 -42
  189. data/lib/active_support/core_ext/date_time.rb +0 -12
  190. data/lib/active_support/core_ext/duplicable.rb +0 -43
  191. data/lib/active_support/core_ext/float/time.rb +0 -27
  192. data/lib/active_support/core_ext/integer/even_odd.rb +0 -29
  193. data/lib/active_support/core_ext/kernel/singleton_class.rb +0 -13
  194. data/lib/active_support/core_ext/module/model_naming.rb +0 -25
  195. data/lib/active_support/core_ext/module/remove_method.rb +0 -6
  196. data/lib/active_support/core_ext/numeric/conversions.rb +0 -19
  197. data/lib/active_support/core_ext/object/extending.rb +0 -80
  198. data/lib/active_support/core_ext/object/singleton_class.rb +0 -13
  199. data/lib/active_support/core_ext/pathname.rb +0 -7
  200. data/lib/active_support/core_ext/pathname/clean_within.rb +0 -14
  201. data/lib/active_support/core_ext/string/bytesize.rb +0 -5
  202. data/lib/active_support/core_ext/string/iterators.rb +0 -23
  203. data/lib/active_support/core_ext/symbol.rb +0 -14
  204. data/lib/active_support/core_ext/time.rb +0 -46
  205. data/lib/active_support/core_ext/time/behavior.rb +0 -13
  206. data/lib/active_support/json/backends/okjson.rb +0 -644
  207. data/lib/active_support/json/backends/yajl.rb +0 -40
  208. data/lib/active_support/json/encoders/date.rb +0 -22
  209. data/lib/active_support/json/encoders/date_time.rb +0 -22
  210. data/lib/active_support/json/encoders/enumerable.rb +0 -17
  211. data/lib/active_support/json/encoders/false_class.rb +0 -7
  212. data/lib/active_support/json/encoders/hash.rb +0 -56
  213. data/lib/active_support/json/encoders/nil_class.rb +0 -7
  214. data/lib/active_support/json/encoders/numeric.rb +0 -21
  215. data/lib/active_support/json/encoders/object.rb +0 -10
  216. data/lib/active_support/json/encoders/regexp.rb +0 -9
  217. data/lib/active_support/json/encoders/string.rb +0 -9
  218. data/lib/active_support/json/encoders/symbol.rb +0 -5
  219. data/lib/active_support/json/encoders/time.rb +0 -22
  220. data/lib/active_support/json/encoders/true_class.rb +0 -7
  221. data/lib/active_support/vendor.rb +0 -36
  222. data/lib/active_support/vendor/builder-2.1.2/blankslate.rb +0 -113
  223. data/lib/active_support/vendor/builder-2.1.2/builder.rb +0 -13
  224. data/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +0 -20
  225. data/lib/active_support/vendor/builder-2.1.2/builder/css.rb +0 -250
  226. data/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +0 -115
  227. data/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +0 -139
  228. data/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +0 -63
  229. data/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +0 -328
  230. data/lib/active_support/vendor/i18n-0.4.1/i18n.rb +0 -322
  231. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend.rb +0 -20
  232. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/active_record.rb +0 -61
  233. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/active_record/missing.rb +0 -65
  234. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/active_record/store_procs.rb +0 -38
  235. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/active_record/translation.rb +0 -93
  236. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/base.rb +0 -237
  237. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/cache.rb +0 -77
  238. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/cascade.rb +0 -57
  239. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/chain.rb +0 -77
  240. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/cldr.rb +0 -100
  241. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/fallbacks.rb +0 -69
  242. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/flatten.rb +0 -113
  243. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/gettext.rb +0 -75
  244. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/interpolation_compiler.rb +0 -123
  245. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/key_value.rb +0 -102
  246. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/memoize.rb +0 -48
  247. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/metadata.rb +0 -65
  248. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/pluralization.rb +0 -57
  249. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/simple.rb +0 -87
  250. data/lib/active_support/vendor/i18n-0.4.1/i18n/backend/transliterator.rb +0 -98
  251. data/lib/active_support/vendor/i18n-0.4.1/i18n/config.rb +0 -84
  252. data/lib/active_support/vendor/i18n-0.4.1/i18n/core_ext/hash.rb +0 -29
  253. data/lib/active_support/vendor/i18n-0.4.1/i18n/exceptions.rb +0 -61
  254. data/lib/active_support/vendor/i18n-0.4.1/i18n/gettext.rb +0 -27
  255. data/lib/active_support/vendor/i18n-0.4.1/i18n/gettext/helpers.rb +0 -65
  256. data/lib/active_support/vendor/i18n-0.4.1/i18n/gettext/po_parser.rb +0 -329
  257. data/lib/active_support/vendor/i18n-0.4.1/i18n/locale.rb +0 -6
  258. data/lib/active_support/vendor/i18n-0.4.1/i18n/locale/fallbacks.rb +0 -98
  259. data/lib/active_support/vendor/i18n-0.4.1/i18n/locale/tag.rb +0 -28
  260. data/lib/active_support/vendor/i18n-0.4.1/i18n/locale/tag/parents.rb +0 -24
  261. data/lib/active_support/vendor/i18n-0.4.1/i18n/locale/tag/rfc4646.rb +0 -76
  262. data/lib/active_support/vendor/i18n-0.4.1/i18n/locale/tag/simple.rb +0 -41
  263. data/lib/active_support/vendor/i18n-0.4.1/i18n/version.rb +0 -3
  264. data/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb +0 -1107
  265. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +0 -33
  266. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +0 -47
  267. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +0 -228
  268. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +0 -55
  269. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +0 -219
  270. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +0 -40
  271. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +0 -18
  272. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +0 -25
  273. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +0 -22
  274. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +0 -23
  275. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -166
  276. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -86
  277. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +0 -23
  278. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +0 -23
  279. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +0 -283
  280. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +0 -136
  281. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +0 -204
  282. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +0 -161
  283. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +0 -27
  284. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +0 -274
  285. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -149
  286. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +0 -194
  287. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +0 -22
  288. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +0 -35
  289. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +0 -232
  290. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +0 -139
  291. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +0 -144
  292. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +0 -131
  293. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +0 -282
  294. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +0 -30
  295. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +0 -74
  296. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +0 -205
  297. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +0 -171
  298. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +0 -288
  299. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +0 -196
  300. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +0 -67
  301. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +0 -73
  302. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +0 -161
  303. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +0 -20
  304. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +0 -33
  305. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +0 -30
  306. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +0 -27
  307. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +0 -87
  308. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +0 -165
  309. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +0 -30
  310. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +0 -163
  311. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +0 -20
  312. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +0 -163
  313. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +0 -30
  314. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +0 -20
  315. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +0 -25
  316. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -163
  317. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -31
  318. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +0 -18
  319. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +0 -163
  320. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +0 -18
  321. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +0 -164
  322. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +0 -24
  323. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +0 -18
  324. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +0 -34
  325. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +0 -35
  326. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +0 -33
  327. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +0 -59
  328. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +0 -47
  329. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +0 -78
  330. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +0 -121
  331. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +0 -30
  332. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -65
  333. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +0 -33
  334. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +0 -164
  335. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +0 -163
  336. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -165
  337. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +0 -165
  338. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +0 -270
  339. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -23
  340. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -18
  341. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +0 -187
  342. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +0 -35
  343. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +0 -29
  344. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +0 -193
  345. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +0 -185
  346. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +0 -37
  347. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +0 -185
  348. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +0 -16
  349. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +0 -228
  350. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +0 -185
  351. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +0 -163
  352. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +0 -188
  353. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +0 -13
  354. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +0 -232
  355. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +0 -181
  356. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +0 -197
  357. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +0 -179
  358. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +0 -276
  359. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +0 -163
  360. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +0 -218
  361. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +0 -168
  362. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +0 -268
  363. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +0 -13
  364. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +0 -288
  365. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +0 -211
  366. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +0 -170
  367. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +0 -181
  368. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +0 -232
  369. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +0 -187
  370. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +0 -176
  371. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +0 -215
  372. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +0 -13
  373. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +0 -13
  374. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +0 -173
  375. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +0 -165
  376. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +0 -172
  377. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +0 -183
  378. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +0 -170
  379. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +0 -212
  380. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +0 -13
  381. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +0 -202
  382. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +0 -23
  383. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +0 -22
  384. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +0 -28
  385. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +0 -20
  386. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +0 -25
  387. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +0 -25
  388. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -26
  389. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -20
  390. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +0 -27
  391. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +0 -52
  392. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +0 -51
  393. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +0 -44
  394. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +0 -98
  395. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +0 -56
  396. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +0 -292
  397. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +0 -508
  398. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +0 -56
  399. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +0 -40
  400. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +0 -94
  401. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +0 -198
  402. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +0 -129
  403. data/lib/activesupport.rb +0 -2
@@ -1,33 +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
- # Add the directory containing this file to the start of the load path if it
24
- # isn't there already.
25
- $:.unshift(File.dirname(__FILE__)) unless
26
- $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
27
-
28
- require 'tzinfo/timezone'
29
- # require 'tzinfo/country'
30
- # require 'tzinfo/tzdataparser'
31
- # require 'tzinfo/timezone_proxy'
32
- require 'tzinfo/data_timezone'
33
- require 'tzinfo/linked_timezone'
@@ -1,47 +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/info_timezone'
24
-
25
- module TZInfo
26
-
27
- # A Timezone based on a DataTimezoneInfo.
28
- class DataTimezone < InfoTimezone #:nodoc:
29
-
30
- # Returns the TimezonePeriod for the given UTC time. utc can either be
31
- # a DateTime, Time or integer timestamp (Time.to_i). Any timezone
32
- # information in utc is ignored (it is treated as a UTC time).
33
- #
34
- # If no TimezonePeriod could be found, PeriodNotFound is raised.
35
- def period_for_utc(utc)
36
- info.period_for_utc(utc)
37
- end
38
-
39
- # Returns the set of TimezonePeriod instances that are valid for the given
40
- # local time as an array. If you just want a single period, use
41
- # period_for_local instead and specify how abiguities should be resolved.
42
- # Raises PeriodNotFound if no periods are found for the given time.
43
- def periods_for_local(local)
44
- info.periods_for_local(local)
45
- end
46
- end
47
- end
@@ -1,228 +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/time_or_datetime'
24
- require 'tzinfo/timezone_info'
25
- require 'tzinfo/timezone_offset_info'
26
- require 'tzinfo/timezone_period'
27
- require 'tzinfo/timezone_transition_info'
28
-
29
- module TZInfo
30
- # Thrown if no offsets have been defined when calling period_for_utc or
31
- # periods_for_local. Indicates an error in the timezone data.
32
- class NoOffsetsDefined < StandardError
33
- end
34
-
35
- # Represents a (non-linked) timezone defined in a data module.
36
- class DataTimezoneInfo < TimezoneInfo #:nodoc:
37
-
38
- # Constructs a new TimezoneInfo with its identifier.
39
- def initialize(identifier)
40
- super(identifier)
41
- @offsets = {}
42
- @transitions = []
43
- @previous_offset = nil
44
- @transitions_index = nil
45
- end
46
-
47
- # Defines a offset. The id uniquely identifies this offset within the
48
- # timezone. utc_offset and std_offset define the offset in seconds of
49
- # standard time from UTC and daylight savings from standard time
50
- # respectively. abbreviation describes the timezone offset (e.g. GMT, BST,
51
- # EST or EDT).
52
- #
53
- # The first offset to be defined is treated as the offset that applies
54
- # until the first transition. This will usually be in Local Mean Time (LMT).
55
- #
56
- # ArgumentError will be raised if the id is already defined.
57
- def offset(id, utc_offset, std_offset, abbreviation)
58
- raise ArgumentError, 'Offset already defined' if @offsets.has_key?(id)
59
-
60
- offset = TimezoneOffsetInfo.new(utc_offset, std_offset, abbreviation)
61
- @offsets[id] = offset
62
- @previous_offset = offset unless @previous_offset
63
- end
64
-
65
- # Defines a transition. Transitions must be defined in chronological order.
66
- # ArgumentError will be raised if a transition is added out of order.
67
- # offset_id refers to an id defined with offset. ArgumentError will be
68
- # raised if the offset_id cannot be found. numerator_or_time and
69
- # denomiator specify the time the transition occurs as. See
70
- # TimezoneTransitionInfo for more detail about specifying times.
71
- def transition(year, month, offset_id, numerator_or_time, denominator = nil)
72
- offset = @offsets[offset_id]
73
- raise ArgumentError, 'Offset not found' unless offset
74
-
75
- if @transitions_index
76
- if year < @last_year || (year == @last_year && month < @last_month)
77
- raise ArgumentError, 'Transitions must be increasing date order'
78
- end
79
-
80
- # Record the position of the first transition with this index.
81
- index = transition_index(year, month)
82
- @transitions_index[index] ||= @transitions.length
83
-
84
- # Fill in any gaps
85
- (index - 1).downto(0) do |i|
86
- break if @transitions_index[i]
87
- @transitions_index[i] = @transitions.length
88
- end
89
- else
90
- @transitions_index = [@transitions.length]
91
- @start_year = year
92
- @start_month = month
93
- end
94
-
95
- @transitions << TimezoneTransitionInfo.new(offset, @previous_offset,
96
- numerator_or_time, denominator)
97
- @last_year = year
98
- @last_month = month
99
- @previous_offset = offset
100
- end
101
-
102
- # Returns the TimezonePeriod for the given UTC time.
103
- # Raises NoOffsetsDefined if no offsets have been defined.
104
- def period_for_utc(utc)
105
- unless @transitions.empty?
106
- utc = TimeOrDateTime.wrap(utc)
107
- index = transition_index(utc.year, utc.mon)
108
-
109
- start_transition = nil
110
- start = transition_before_end(index)
111
- if start
112
- start.downto(0) do |i|
113
- if @transitions[i].at <= utc
114
- start_transition = @transitions[i]
115
- break
116
- end
117
- end
118
- end
119
-
120
- end_transition = nil
121
- start = transition_after_start(index)
122
- if start
123
- start.upto(@transitions.length - 1) do |i|
124
- if @transitions[i].at > utc
125
- end_transition = @transitions[i]
126
- break
127
- end
128
- end
129
- end
130
-
131
- if start_transition || end_transition
132
- TimezonePeriod.new(start_transition, end_transition)
133
- else
134
- # Won't happen since there are transitions. Must always find one
135
- # transition that is either >= or < the specified time.
136
- raise 'No transitions found in search'
137
- end
138
- else
139
- raise NoOffsetsDefined, 'No offsets have been defined' unless @previous_offset
140
- TimezonePeriod.new(nil, nil, @previous_offset)
141
- end
142
- end
143
-
144
- # Returns the set of TimezonePeriods for the given local time as an array.
145
- # Results returned are ordered by increasing UTC start date.
146
- # Returns an empty array if no periods are found for the given time.
147
- # Raises NoOffsetsDefined if no offsets have been defined.
148
- def periods_for_local(local)
149
- unless @transitions.empty?
150
- local = TimeOrDateTime.wrap(local)
151
- index = transition_index(local.year, local.mon)
152
-
153
- result = []
154
-
155
- start_index = transition_after_start(index - 1)
156
- if start_index && @transitions[start_index].local_end > local
157
- if start_index > 0
158
- if @transitions[start_index - 1].local_start <= local
159
- result << TimezonePeriod.new(@transitions[start_index - 1], @transitions[start_index])
160
- end
161
- else
162
- result << TimezonePeriod.new(nil, @transitions[start_index])
163
- end
164
- end
165
-
166
- end_index = transition_before_end(index + 1)
167
-
168
- if end_index
169
- start_index = end_index unless start_index
170
-
171
- start_index.upto(transition_before_end(index + 1)) do |i|
172
- if @transitions[i].local_start <= local
173
- if i + 1 < @transitions.length
174
- if @transitions[i + 1].local_end > local
175
- result << TimezonePeriod.new(@transitions[i], @transitions[i + 1])
176
- end
177
- else
178
- result << TimezonePeriod.new(@transitions[i], nil)
179
- end
180
- end
181
- end
182
- end
183
-
184
- result
185
- else
186
- raise NoOffsetsDefined, 'No offsets have been defined' unless @previous_offset
187
- [TimezonePeriod.new(nil, nil, @previous_offset)]
188
- end
189
- end
190
-
191
- private
192
- # Returns the index into the @transitions_index array for a given year
193
- # and month.
194
- def transition_index(year, month)
195
- index = (year - @start_year) * 2
196
- index += 1 if month > 6
197
- index -= 1 if @start_month > 6
198
- index
199
- end
200
-
201
- # Returns the index into @transitions of the first transition that occurs
202
- # on or after the start of the given index into @transitions_index.
203
- # Returns nil if there are no such transitions.
204
- def transition_after_start(index)
205
- if index >= @transitions_index.length
206
- nil
207
- else
208
- index = 0 if index < 0
209
- @transitions_index[index]
210
- end
211
- end
212
-
213
- # Returns the index into @transitions of the first transition that occurs
214
- # before the end of the given index into @transitions_index.
215
- # Returns nil if there are no such transitions.
216
- def transition_before_end(index)
217
- index = index + 1
218
-
219
- if index <= 0
220
- nil
221
- elsif index >= @transitions_index.length
222
- @transitions.length - 1
223
- else
224
- @transitions_index[index] - 1
225
- end
226
- end
227
- end
228
- end
@@ -1,55 +0,0 @@
1
- require 'tzinfo/timezone_definition'
2
-
3
- module TZInfo
4
- module Definitions
5
- module Africa
6
- module Algiers
7
- include TimezoneDefinition
8
-
9
- timezone 'Africa/Algiers' do |tz|
10
- tz.offset :o0, 732, 0, :LMT
11
- tz.offset :o1, 561, 0, :PMT
12
- tz.offset :o2, 0, 0, :WET
13
- tz.offset :o3, 0, 3600, :WEST
14
- tz.offset :o4, 3600, 0, :CET
15
- tz.offset :o5, 3600, 3600, :CEST
16
-
17
- tz.transition 1891, 3, :o1, 2170625843, 900
18
- tz.transition 1911, 3, :o2, 69670267013, 28800
19
- tz.transition 1916, 6, :o3, 58104707, 24
20
- tz.transition 1916, 10, :o2, 58107323, 24
21
- tz.transition 1917, 3, :o3, 58111499, 24
22
- tz.transition 1917, 10, :o2, 58116227, 24
23
- tz.transition 1918, 3, :o3, 58119899, 24
24
- tz.transition 1918, 10, :o2, 58124963, 24
25
- tz.transition 1919, 3, :o3, 58128467, 24
26
- tz.transition 1919, 10, :o2, 58133699, 24
27
- tz.transition 1920, 2, :o3, 58136867, 24
28
- tz.transition 1920, 10, :o2, 58142915, 24
29
- tz.transition 1921, 3, :o3, 58146323, 24
30
- tz.transition 1921, 6, :o2, 58148699, 24
31
- tz.transition 1939, 9, :o3, 58308443, 24
32
- tz.transition 1939, 11, :o2, 4859173, 2
33
- tz.transition 1940, 2, :o4, 29156215, 12
34
- tz.transition 1944, 4, :o5, 58348405, 24
35
- tz.transition 1944, 10, :o4, 4862743, 2
36
- tz.transition 1945, 4, :o5, 58357141, 24
37
- tz.transition 1945, 9, :o4, 58361147, 24
38
- tz.transition 1946, 10, :o2, 58370411, 24
39
- tz.transition 1956, 1, :o4, 4871003, 2
40
- tz.transition 1963, 4, :o2, 58515203, 24
41
- tz.transition 1971, 4, :o3, 41468400
42
- tz.transition 1971, 9, :o2, 54774000
43
- tz.transition 1977, 5, :o3, 231724800
44
- tz.transition 1977, 10, :o4, 246236400
45
- tz.transition 1978, 3, :o5, 259545600
46
- tz.transition 1978, 9, :o4, 275274000
47
- tz.transition 1979, 10, :o2, 309740400
48
- tz.transition 1980, 4, :o3, 325468800
49
- tz.transition 1980, 10, :o2, 341802000
50
- tz.transition 1981, 5, :o4, 357523200
51
- end
52
- end
53
- end
54
- end
55
- end
@@ -1,219 +0,0 @@
1
- require 'tzinfo/timezone_definition'
2
-
3
- module TZInfo
4
- module Definitions
5
- module Africa
6
- module Cairo
7
- include TimezoneDefinition
8
-
9
- timezone 'Africa/Cairo' do |tz|
10
- tz.offset :o0, 7500, 0, :LMT
11
- tz.offset :o1, 7200, 0, :EET
12
- tz.offset :o2, 7200, 3600, :EEST
13
-
14
- tz.transition 1900, 9, :o1, 695604503, 288
15
- tz.transition 1940, 7, :o2, 29157905, 12
16
- tz.transition 1940, 9, :o1, 19439227, 8
17
- tz.transition 1941, 4, :o2, 29161193, 12
18
- tz.transition 1941, 9, :o1, 19442027, 8
19
- tz.transition 1942, 3, :o2, 29165405, 12
20
- tz.transition 1942, 10, :o1, 19445275, 8
21
- tz.transition 1943, 3, :o2, 29169785, 12
22
- tz.transition 1943, 10, :o1, 19448235, 8
23
- tz.transition 1944, 3, :o2, 29174177, 12
24
- tz.transition 1944, 10, :o1, 19451163, 8
25
- tz.transition 1945, 4, :o2, 29178737, 12
26
- tz.transition 1945, 10, :o1, 19454083, 8
27
- tz.transition 1957, 5, :o2, 29231621, 12
28
- tz.transition 1957, 9, :o1, 19488899, 8
29
- tz.transition 1958, 4, :o2, 29235893, 12
30
- tz.transition 1958, 9, :o1, 19491819, 8
31
- tz.transition 1959, 4, :o2, 58480547, 24
32
- tz.transition 1959, 9, :o1, 4873683, 2
33
- tz.transition 1960, 4, :o2, 58489331, 24
34
- tz.transition 1960, 9, :o1, 4874415, 2
35
- tz.transition 1961, 4, :o2, 58498091, 24
36
- tz.transition 1961, 9, :o1, 4875145, 2
37
- tz.transition 1962, 4, :o2, 58506851, 24
38
- tz.transition 1962, 9, :o1, 4875875, 2
39
- tz.transition 1963, 4, :o2, 58515611, 24
40
- tz.transition 1963, 9, :o1, 4876605, 2
41
- tz.transition 1964, 4, :o2, 58524395, 24
42
- tz.transition 1964, 9, :o1, 4877337, 2
43
- tz.transition 1965, 4, :o2, 58533155, 24
44
- tz.transition 1965, 9, :o1, 4878067, 2
45
- tz.transition 1966, 4, :o2, 58541915, 24
46
- tz.transition 1966, 10, :o1, 4878799, 2
47
- tz.transition 1967, 4, :o2, 58550675, 24
48
- tz.transition 1967, 10, :o1, 4879529, 2
49
- tz.transition 1968, 4, :o2, 58559459, 24
50
- tz.transition 1968, 10, :o1, 4880261, 2
51
- tz.transition 1969, 4, :o2, 58568219, 24
52
- tz.transition 1969, 10, :o1, 4880991, 2
53
- tz.transition 1970, 4, :o2, 10364400
54
- tz.transition 1970, 10, :o1, 23587200
55
- tz.transition 1971, 4, :o2, 41900400
56
- tz.transition 1971, 10, :o1, 55123200
57
- tz.transition 1972, 4, :o2, 73522800
58
- tz.transition 1972, 10, :o1, 86745600
59
- tz.transition 1973, 4, :o2, 105058800
60
- tz.transition 1973, 10, :o1, 118281600
61
- tz.transition 1974, 4, :o2, 136594800
62
- tz.transition 1974, 10, :o1, 149817600
63
- tz.transition 1975, 4, :o2, 168130800
64
- tz.transition 1975, 10, :o1, 181353600
65
- tz.transition 1976, 4, :o2, 199753200
66
- tz.transition 1976, 10, :o1, 212976000
67
- tz.transition 1977, 4, :o2, 231289200
68
- tz.transition 1977, 10, :o1, 244512000
69
- tz.transition 1978, 4, :o2, 262825200
70
- tz.transition 1978, 10, :o1, 276048000
71
- tz.transition 1979, 4, :o2, 294361200
72
- tz.transition 1979, 10, :o1, 307584000
73
- tz.transition 1980, 4, :o2, 325983600
74
- tz.transition 1980, 10, :o1, 339206400
75
- tz.transition 1981, 4, :o2, 357519600
76
- tz.transition 1981, 10, :o1, 370742400
77
- tz.transition 1982, 7, :o2, 396399600
78
- tz.transition 1982, 10, :o1, 402278400
79
- tz.transition 1983, 7, :o2, 426812400
80
- tz.transition 1983, 10, :o1, 433814400
81
- tz.transition 1984, 4, :o2, 452214000
82
- tz.transition 1984, 10, :o1, 465436800
83
- tz.transition 1985, 4, :o2, 483750000
84
- tz.transition 1985, 10, :o1, 496972800
85
- tz.transition 1986, 4, :o2, 515286000
86
- tz.transition 1986, 10, :o1, 528508800
87
- tz.transition 1987, 4, :o2, 546822000
88
- tz.transition 1987, 10, :o1, 560044800
89
- tz.transition 1988, 4, :o2, 578444400
90
- tz.transition 1988, 10, :o1, 591667200
91
- tz.transition 1989, 5, :o2, 610412400
92
- tz.transition 1989, 10, :o1, 623203200
93
- tz.transition 1990, 4, :o2, 641516400
94
- tz.transition 1990, 10, :o1, 654739200
95
- tz.transition 1991, 4, :o2, 673052400
96
- tz.transition 1991, 10, :o1, 686275200
97
- tz.transition 1992, 4, :o2, 704674800
98
- tz.transition 1992, 10, :o1, 717897600
99
- tz.transition 1993, 4, :o2, 736210800
100
- tz.transition 1993, 10, :o1, 749433600
101
- tz.transition 1994, 4, :o2, 767746800
102
- tz.transition 1994, 10, :o1, 780969600
103
- tz.transition 1995, 4, :o2, 799020000
104
- tz.transition 1995, 9, :o1, 812322000
105
- tz.transition 1996, 4, :o2, 830469600
106
- tz.transition 1996, 9, :o1, 843771600
107
- tz.transition 1997, 4, :o2, 861919200
108
- tz.transition 1997, 9, :o1, 875221200
109
- tz.transition 1998, 4, :o2, 893368800
110
- tz.transition 1998, 9, :o1, 906670800
111
- tz.transition 1999, 4, :o2, 925423200
112
- tz.transition 1999, 9, :o1, 938725200
113
- tz.transition 2000, 4, :o2, 956872800
114
- tz.transition 2000, 9, :o1, 970174800
115
- tz.transition 2001, 4, :o2, 988322400
116
- tz.transition 2001, 9, :o1, 1001624400
117
- tz.transition 2002, 4, :o2, 1019772000
118
- tz.transition 2002, 9, :o1, 1033074000
119
- tz.transition 2003, 4, :o2, 1051221600
120
- tz.transition 2003, 9, :o1, 1064523600
121
- tz.transition 2004, 4, :o2, 1083276000
122
- tz.transition 2004, 9, :o1, 1096578000
123
- tz.transition 2005, 4, :o2, 1114725600
124
- tz.transition 2005, 9, :o1, 1128027600
125
- tz.transition 2006, 4, :o2, 1146175200
126
- tz.transition 2006, 9, :o1, 1158872400
127
- tz.transition 2007, 4, :o2, 1177624800
128
- tz.transition 2007, 9, :o1, 1189112400
129
- tz.transition 2008, 4, :o2, 1209074400
130
- tz.transition 2008, 8, :o1, 1219957200
131
- tz.transition 2009, 4, :o2, 1240524000
132
- tz.transition 2009, 8, :o1, 1251406800
133
- tz.transition 2010, 4, :o2, 1272578400
134
- tz.transition 2010, 8, :o1, 1282856400
135
- tz.transition 2011, 4, :o2, 1304028000
136
- tz.transition 2011, 8, :o1, 1314306000
137
- tz.transition 2012, 4, :o2, 1335477600
138
- tz.transition 2012, 8, :o1, 1346360400
139
- tz.transition 2013, 4, :o2, 1366927200
140
- tz.transition 2013, 8, :o1, 1377810000
141
- tz.transition 2014, 4, :o2, 1398376800
142
- tz.transition 2014, 8, :o1, 1409259600
143
- tz.transition 2015, 4, :o2, 1429826400
144
- tz.transition 2015, 8, :o1, 1440709200
145
- tz.transition 2016, 4, :o2, 1461880800
146
- tz.transition 2016, 8, :o1, 1472158800
147
- tz.transition 2017, 4, :o2, 1493330400
148
- tz.transition 2017, 8, :o1, 1504213200
149
- tz.transition 2018, 4, :o2, 1524780000
150
- tz.transition 2018, 8, :o1, 1535662800
151
- tz.transition 2019, 4, :o2, 1556229600
152
- tz.transition 2019, 8, :o1, 1567112400
153
- tz.transition 2020, 4, :o2, 1587679200
154
- tz.transition 2020, 8, :o1, 1598562000
155
- tz.transition 2021, 4, :o2, 1619733600
156
- tz.transition 2021, 8, :o1, 1630011600
157
- tz.transition 2022, 4, :o2, 1651183200
158
- tz.transition 2022, 8, :o1, 1661461200
159
- tz.transition 2023, 4, :o2, 1682632800
160
- tz.transition 2023, 8, :o1, 1693515600
161
- tz.transition 2024, 4, :o2, 1714082400
162
- tz.transition 2024, 8, :o1, 1724965200
163
- tz.transition 2025, 4, :o2, 1745532000
164
- tz.transition 2025, 8, :o1, 1756414800
165
- tz.transition 2026, 4, :o2, 1776981600
166
- tz.transition 2026, 8, :o1, 1787864400
167
- tz.transition 2027, 4, :o2, 1809036000
168
- tz.transition 2027, 8, :o1, 1819314000
169
- tz.transition 2028, 4, :o2, 1840485600
170
- tz.transition 2028, 8, :o1, 1851368400
171
- tz.transition 2029, 4, :o2, 1871935200
172
- tz.transition 2029, 8, :o1, 1882818000
173
- tz.transition 2030, 4, :o2, 1903384800
174
- tz.transition 2030, 8, :o1, 1914267600
175
- tz.transition 2031, 4, :o2, 1934834400
176
- tz.transition 2031, 8, :o1, 1945717200
177
- tz.transition 2032, 4, :o2, 1966888800
178
- tz.transition 2032, 8, :o1, 1977166800
179
- tz.transition 2033, 4, :o2, 1998338400
180
- tz.transition 2033, 8, :o1, 2008616400
181
- tz.transition 2034, 4, :o2, 2029788000
182
- tz.transition 2034, 8, :o1, 2040670800
183
- tz.transition 2035, 4, :o2, 2061237600
184
- tz.transition 2035, 8, :o1, 2072120400
185
- tz.transition 2036, 4, :o2, 2092687200
186
- tz.transition 2036, 8, :o1, 2103570000
187
- tz.transition 2037, 4, :o2, 2124136800
188
- tz.transition 2037, 8, :o1, 2135019600
189
- tz.transition 2038, 4, :o2, 29586521, 12
190
- tz.transition 2038, 8, :o1, 19725299, 8
191
- tz.transition 2039, 4, :o2, 29590889, 12
192
- tz.transition 2039, 8, :o1, 19728211, 8
193
- tz.transition 2040, 4, :o2, 29595257, 12
194
- tz.transition 2040, 8, :o1, 19731179, 8
195
- tz.transition 2041, 4, :o2, 29599625, 12
196
- tz.transition 2041, 8, :o1, 19734091, 8
197
- tz.transition 2042, 4, :o2, 29603993, 12
198
- tz.transition 2042, 8, :o1, 19737003, 8
199
- tz.transition 2043, 4, :o2, 29608361, 12
200
- tz.transition 2043, 8, :o1, 19739915, 8
201
- tz.transition 2044, 4, :o2, 29612813, 12
202
- tz.transition 2044, 8, :o1, 19742827, 8
203
- tz.transition 2045, 4, :o2, 29617181, 12
204
- tz.transition 2045, 8, :o1, 19745795, 8
205
- tz.transition 2046, 4, :o2, 29621549, 12
206
- tz.transition 2046, 8, :o1, 19748707, 8
207
- tz.transition 2047, 4, :o2, 29625917, 12
208
- tz.transition 2047, 8, :o1, 19751619, 8
209
- tz.transition 2048, 4, :o2, 29630285, 12
210
- tz.transition 2048, 8, :o1, 19754531, 8
211
- tz.transition 2049, 4, :o2, 29634737, 12
212
- tz.transition 2049, 8, :o1, 19757443, 8
213
- tz.transition 2050, 4, :o2, 29639105, 12
214
- tz.transition 2050, 8, :o1, 19760355, 8
215
- end
216
- end
217
- end
218
- end
219
- end