mack-facets 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 (820) hide show
  1. data/lib/gems.rb +5 -1
  2. data/lib/gems/activesupport-2.2.2/lib/active_support.rb +61 -0
  3. data/lib/gems/activesupport-2.2.2/lib/active_support/base64.rb +33 -0
  4. data/lib/gems/activesupport-2.2.2/lib/active_support/basic_object.rb +24 -0
  5. data/lib/gems/activesupport-2.2.2/lib/active_support/buffered_logger.rb +122 -0
  6. data/lib/gems/activesupport-2.2.2/lib/active_support/cache.rb +223 -0
  7. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/compressed_mem_cache_store.rb +20 -0
  8. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/drb_store.rb +15 -0
  9. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/file_store.rb +72 -0
  10. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/mem_cache_store.rb +127 -0
  11. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/memory_store.rb +52 -0
  12. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/synchronized_memory_store.rb +47 -0
  13. data/lib/gems/activesupport-2.2.2/lib/active_support/callbacks.rb +280 -0
  14. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext.rb +4 -0
  15. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array.rb +13 -0
  16. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/access.rb +53 -0
  17. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/conversions.rb +183 -0
  18. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/extract_options.rb +20 -0
  19. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/grouping.rb +106 -0
  20. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/random_access.rb +12 -0
  21. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64.rb +4 -0
  22. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64/encoding.rb +16 -0
  23. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb +12 -0
  24. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal.rb +6 -0
  25. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal/conversions.rb +37 -0
  26. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/blank.rb +58 -0
  27. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi.rb +5 -0
  28. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +14 -0
  29. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class.rb +4 -0
  30. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/attribute_accessors.rb +54 -0
  31. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/delegating_attributes.rb +46 -0
  32. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/inheritable_attributes.rb +140 -0
  33. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/removal.rb +50 -0
  34. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date.rb +10 -0
  35. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/behavior.rb +42 -0
  36. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/calculations.rb +230 -0
  37. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/conversions.rb +107 -0
  38. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time.rb +12 -0
  39. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/calculations.rb +126 -0
  40. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/conversions.rb +96 -0
  41. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/duplicable.rb +43 -0
  42. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/enumerable.rb +107 -0
  43. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/exception.rb +41 -0
  44. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file.rb +5 -0
  45. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file/atomic.rb +46 -0
  46. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float.rb +7 -0
  47. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/rounding.rb +24 -0
  48. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/time.rb +27 -0
  49. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash.rb +14 -0
  50. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/conversions.rb +259 -0
  51. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/deep_merge.rb +23 -0
  52. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/diff.rb +19 -0
  53. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/except.rb +25 -0
  54. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/indifferent_access.rb +137 -0
  55. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/keys.rb +52 -0
  56. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/reverse_merge.rb +35 -0
  57. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/slice.rb +33 -0
  58. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer.rb +9 -0
  59. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/even_odd.rb +29 -0
  60. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/inflections.rb +20 -0
  61. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/time.rb +45 -0
  62. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel.rb +5 -0
  63. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/agnostics.rb +11 -0
  64. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/daemonizing.rb +7 -0
  65. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/debugger.rb +13 -0
  66. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb +59 -0
  67. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/requires.rb +24 -0
  68. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/load_error.rb +38 -0
  69. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/logger.rb +143 -0
  70. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module.rb +23 -0
  71. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/aliasing.rb +74 -0
  72. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_accessor_with_default.rb +31 -0
  73. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_internal.rb +32 -0
  74. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attribute_accessors.rb +58 -0
  75. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/delegation.rb +95 -0
  76. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/inclusion.rb +30 -0
  77. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/introspection.rb +90 -0
  78. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/loading.rb +23 -0
  79. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/model_naming.rb +23 -0
  80. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/synchronization.rb +39 -0
  81. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/name_error.rb +17 -0
  82. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric.rb +9 -0
  83. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/bytes.rb +44 -0
  84. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/conversions.rb +19 -0
  85. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/time.rb +81 -0
  86. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object.rb +5 -0
  87. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/conversions.rb +14 -0
  88. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/extending.rb +80 -0
  89. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/instance_variables.rb +74 -0
  90. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/metaclass.rb +13 -0
  91. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/misc.rb +74 -0
  92. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname.rb +7 -0
  93. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname/clean_within.rb +14 -0
  94. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/proc.rb +12 -0
  95. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process.rb +1 -0
  96. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process/daemon.rb +25 -0
  97. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range.rb +11 -0
  98. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/blockless_step.rb +32 -0
  99. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/conversions.rb +27 -0
  100. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/include_range.rb +30 -0
  101. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/overlaps.rb +15 -0
  102. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/rexml.rb +36 -0
  103. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string.rb +22 -0
  104. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/access.rb +82 -0
  105. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/behavior.rb +13 -0
  106. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/conversions.rb +28 -0
  107. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/filters.rb +26 -0
  108. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/inflections.rb +167 -0
  109. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/iterators.rb +21 -0
  110. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/multibyte.rb +81 -0
  111. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/starts_ends_with.rb +35 -0
  112. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/xchar.rb +11 -0
  113. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/symbol.rb +14 -0
  114. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time.rb +42 -0
  115. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/behavior.rb +13 -0
  116. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/calculations.rb +303 -0
  117. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/conversions.rb +90 -0
  118. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/zones.rb +86 -0
  119. data/lib/gems/activesupport-2.2.2/lib/active_support/dependencies.rb +621 -0
  120. data/lib/gems/activesupport-2.2.2/lib/active_support/deprecation.rb +243 -0
  121. data/lib/gems/activesupport-2.2.2/lib/active_support/duration.rb +96 -0
  122. data/lib/gems/activesupport-2.2.2/lib/active_support/gzip.rb +25 -0
  123. data/lib/gems/activesupport-2.2.2/lib/active_support/inflections.rb +55 -0
  124. data/lib/gems/activesupport-2.2.2/lib/active_support/inflector.rb +397 -0
  125. data/lib/gems/activesupport-2.2.2/lib/active_support/json.rb +23 -0
  126. data/lib/gems/activesupport-2.2.2/lib/active_support/json/decoding.rb +63 -0
  127. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date.rb +21 -0
  128. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date_time.rb +21 -0
  129. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/enumerable.rb +12 -0
  130. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/false_class.rb +5 -0
  131. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/hash.rb +47 -0
  132. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/nil_class.rb +5 -0
  133. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/numeric.rb +5 -0
  134. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/object.rb +6 -0
  135. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/regexp.rb +5 -0
  136. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/string.rb +36 -0
  137. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/symbol.rb +5 -0
  138. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/time.rb +21 -0
  139. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/true_class.rb +5 -0
  140. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoding.rb +37 -0
  141. data/lib/gems/activesupport-2.2.2/lib/active_support/json/variable.rb +10 -0
  142. data/lib/gems/activesupport-2.2.2/lib/active_support/locale/en.yml +32 -0
  143. data/lib/gems/activesupport-2.2.2/lib/active_support/memoizable.rb +82 -0
  144. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte.rb +33 -0
  145. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/chars.rb +679 -0
  146. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/exceptions.rb +8 -0
  147. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/unicode_database.rb +71 -0
  148. data/lib/gems/activesupport-2.2.2/lib/active_support/option_merger.rb +17 -0
  149. data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_hash.rb +58 -0
  150. data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_options.rb +19 -0
  151. data/lib/gems/activesupport-2.2.2/lib/active_support/rescuable.rb +108 -0
  152. data/lib/gems/activesupport-2.2.2/lib/active_support/secure_random.rb +197 -0
  153. data/lib/gems/activesupport-2.2.2/lib/active_support/string_inquirer.rb +21 -0
  154. data/lib/gems/activesupport-2.2.2/lib/active_support/test_case.rb +24 -0
  155. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test.rb +6 -0
  156. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test/unit/assertions.rb +72 -0
  157. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/default.rb +9 -0
  158. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/performance.rb +452 -0
  159. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb +120 -0
  160. data/lib/gems/activesupport-2.2.2/lib/active_support/time_with_zone.rb +328 -0
  161. data/lib/gems/activesupport-2.2.2/lib/active_support/values/time_zone.rb +403 -0
  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.rb +34 -0
  164. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/blankslate.rb +113 -0
  165. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder.rb +13 -0
  166. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +20 -0
  167. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/css.rb +250 -0
  168. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +115 -0
  169. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +139 -0
  170. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +63 -0
  171. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +328 -0
  172. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n.rb +194 -0
  173. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb +216 -0
  174. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/exceptions.rb +53 -0
  175. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/memcache-client-1.5.1/memcache.rb +849 -0
  176. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +33 -0
  177. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +47 -0
  178. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +228 -0
  179. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +55 -0
  180. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +219 -0
  181. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +40 -0
  182. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +18 -0
  183. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +25 -0
  184. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +22 -0
  185. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +23 -0
  186. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +166 -0
  187. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +86 -0
  188. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +23 -0
  189. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +23 -0
  190. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +283 -0
  191. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +136 -0
  192. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +204 -0
  193. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +161 -0
  194. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +27 -0
  195. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +274 -0
  196. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +149 -0
  197. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +194 -0
  198. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +22 -0
  199. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +35 -0
  200. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +232 -0
  201. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +139 -0
  202. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +144 -0
  203. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +131 -0
  204. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +282 -0
  205. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +30 -0
  206. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +74 -0
  207. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +205 -0
  208. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +171 -0
  209. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +288 -0
  210. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +196 -0
  211. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +67 -0
  212. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +73 -0
  213. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +161 -0
  214. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +20 -0
  215. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +33 -0
  216. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +30 -0
  217. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +27 -0
  218. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +87 -0
  219. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +165 -0
  220. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +30 -0
  221. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +163 -0
  222. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +20 -0
  223. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +163 -0
  224. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +30 -0
  225. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +20 -0
  226. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +25 -0
  227. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +163 -0
  228. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +31 -0
  229. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +18 -0
  230. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +163 -0
  231. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +18 -0
  232. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +164 -0
  233. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +24 -0
  234. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +18 -0
  235. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +34 -0
  236. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +35 -0
  237. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +33 -0
  238. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +59 -0
  239. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +47 -0
  240. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +78 -0
  241. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +121 -0
  242. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +30 -0
  243. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +65 -0
  244. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +33 -0
  245. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +164 -0
  246. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +163 -0
  247. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +165 -0
  248. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +165 -0
  249. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +270 -0
  250. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +23 -0
  251. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +18 -0
  252. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +187 -0
  253. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +35 -0
  254. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +29 -0
  255. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +193 -0
  256. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +185 -0
  257. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +37 -0
  258. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +185 -0
  259. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +16 -0
  260. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +228 -0
  261. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +185 -0
  262. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +163 -0
  263. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +188 -0
  264. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +13 -0
  265. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +232 -0
  266. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +181 -0
  267. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +197 -0
  268. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +179 -0
  269. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +276 -0
  270. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +163 -0
  271. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +218 -0
  272. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +168 -0
  273. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +268 -0
  274. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +13 -0
  275. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +288 -0
  276. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +211 -0
  277. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +170 -0
  278. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +181 -0
  279. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +232 -0
  280. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +187 -0
  281. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +176 -0
  282. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +215 -0
  283. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +13 -0
  284. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +13 -0
  285. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +173 -0
  286. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +165 -0
  287. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +172 -0
  288. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +183 -0
  289. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +170 -0
  290. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +212 -0
  291. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +13 -0
  292. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +202 -0
  293. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +23 -0
  294. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +22 -0
  295. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +28 -0
  296. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +20 -0
  297. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +25 -0
  298. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +25 -0
  299. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +26 -0
  300. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +20 -0
  301. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +27 -0
  302. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +52 -0
  303. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +51 -0
  304. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +44 -0
  305. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +98 -0
  306. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +56 -0
  307. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +292 -0
  308. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +508 -0
  309. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +56 -0
  310. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +40 -0
  311. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +94 -0
  312. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +198 -0
  313. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +129 -0
  314. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb +1021 -0
  315. data/lib/gems/activesupport-2.2.2/lib/active_support/version.rb +9 -0
  316. data/lib/gems/activesupport-2.2.2/lib/active_support/whiny_nil.rb +58 -0
  317. data/lib/gems/activesupport-2.2.2/lib/activesupport.rb +1 -0
  318. data/lib/gems/extlib-0.9.9/Rakefile +182 -0
  319. data/lib/gems/extlib-0.9.9/lib/extlib.rb +56 -0
  320. data/lib/gems/{extlib-0.9.8 → extlib-0.9.9}/lib/extlib/assertions.rb +0 -0
  321. data/lib/gems/extlib-0.9.9/lib/extlib/blank.rb +89 -0
  322. data/lib/gems/extlib-0.9.9/lib/extlib/boolean.rb +11 -0
  323. data/lib/gems/extlib-0.9.9/lib/extlib/class.rb +175 -0
  324. data/lib/gems/extlib-0.9.9/lib/extlib/datetime.rb +27 -0
  325. data/lib/gems/extlib-0.9.9/lib/extlib/dictionary.rb +433 -0
  326. data/lib/gems/extlib-0.9.9/lib/extlib/hash.rb +442 -0
  327. data/lib/gems/{extlib-0.9.8 → extlib-0.9.9}/lib/extlib/hook.rb +0 -0
  328. data/lib/gems/extlib-0.9.9/lib/extlib/inflection.rb +434 -0
  329. data/lib/gems/extlib-0.9.9/lib/extlib/lazy_array.rb +397 -0
  330. data/lib/gems/extlib-0.9.9/lib/extlib/logger.rb +202 -0
  331. data/lib/gems/extlib-0.9.9/lib/extlib/mash.rb +148 -0
  332. data/lib/gems/extlib-0.9.9/lib/extlib/module.rb +41 -0
  333. data/lib/gems/extlib-0.9.9/lib/extlib/nil.rb +5 -0
  334. data/lib/gems/extlib-0.9.9/lib/extlib/numeric.rb +5 -0
  335. data/lib/gems/extlib-0.9.9/lib/extlib/object.rb +162 -0
  336. data/lib/gems/extlib-0.9.9/lib/extlib/object_space.rb +13 -0
  337. data/lib/gems/extlib-0.9.9/lib/extlib/pathname.rb +15 -0
  338. data/lib/gems/extlib-0.9.9/lib/extlib/pooling.rb +231 -0
  339. data/lib/gems/extlib-0.9.9/lib/extlib/rubygems.rb +38 -0
  340. data/lib/gems/extlib-0.9.9/lib/extlib/simple_set.rb +66 -0
  341. data/lib/gems/extlib-0.9.9/lib/extlib/string.rb +175 -0
  342. data/lib/gems/extlib-0.9.9/lib/extlib/struct.rb +17 -0
  343. data/lib/gems/extlib-0.9.9/lib/extlib/symbol.rb +21 -0
  344. data/lib/gems/{extlib-0.9.8 → extlib-0.9.9}/lib/extlib/tasks/release.rb +0 -0
  345. data/lib/gems/extlib-0.9.9/lib/extlib/time.rb +41 -0
  346. data/lib/gems/extlib-0.9.9/lib/extlib/version.rb +3 -0
  347. data/lib/gems/extlib-0.9.9/lib/extlib/virtual_file.rb +10 -0
  348. data/lib/mack-facets.rb +11 -15
  349. data/lib/mack-facets/1_9/test/unit/error.rb +15 -0
  350. data/lib/mack-facets/extensions/array.rb +0 -5
  351. data/lib/mack-facets/extensions/date_time.rb +5 -2
  352. data/lib/mack-facets/extensions/duration.rb +85 -0
  353. data/lib/mack-facets/extensions/kernel.rb +8 -0
  354. data/lib/mack-facets/extensions/string.rb +7 -86
  355. data/lib/mack-facets/utils/method_list.rb +49 -0
  356. metadata +413 -511
  357. data/lib/gems/extlib-0.9.8/lib/extlib.rb +0 -56
  358. data/lib/gems/extlib-0.9.8/lib/extlib/blank.rb +0 -59
  359. data/lib/gems/extlib-0.9.8/lib/extlib/boolean.rb +0 -11
  360. data/lib/gems/extlib-0.9.8/lib/extlib/class.rb +0 -175
  361. data/lib/gems/extlib-0.9.8/lib/extlib/datetime.rb +0 -9
  362. data/lib/gems/extlib-0.9.8/lib/extlib/dictionary.rb +0 -433
  363. data/lib/gems/extlib-0.9.8/lib/extlib/hash.rb +0 -419
  364. data/lib/gems/extlib-0.9.8/lib/extlib/inflection.rb +0 -435
  365. data/lib/gems/extlib-0.9.8/lib/extlib/lazy_array.rb +0 -106
  366. data/lib/gems/extlib-0.9.8/lib/extlib/logger.rb +0 -202
  367. data/lib/gems/extlib-0.9.8/lib/extlib/mash.rb +0 -148
  368. data/lib/gems/extlib-0.9.8/lib/extlib/module.rb +0 -41
  369. data/lib/gems/extlib-0.9.8/lib/extlib/nil.rb +0 -5
  370. data/lib/gems/extlib-0.9.8/lib/extlib/numeric.rb +0 -5
  371. data/lib/gems/extlib-0.9.8/lib/extlib/object.rb +0 -175
  372. data/lib/gems/extlib-0.9.8/lib/extlib/object_space.rb +0 -13
  373. data/lib/gems/extlib-0.9.8/lib/extlib/pathname.rb +0 -5
  374. data/lib/gems/extlib-0.9.8/lib/extlib/pooling.rb +0 -239
  375. data/lib/gems/extlib-0.9.8/lib/extlib/rubygems.rb +0 -38
  376. data/lib/gems/extlib-0.9.8/lib/extlib/simple_set.rb +0 -39
  377. data/lib/gems/extlib-0.9.8/lib/extlib/string.rb +0 -132
  378. data/lib/gems/extlib-0.9.8/lib/extlib/struct.rb +0 -8
  379. data/lib/gems/extlib-0.9.8/lib/extlib/symbol.rb +0 -17
  380. data/lib/gems/extlib-0.9.8/lib/extlib/time.rb +0 -19
  381. data/lib/gems/extlib-0.9.8/lib/extlib/version.rb +0 -3
  382. data/lib/gems/extlib-0.9.8/lib/extlib/virtual_file.rb +0 -10
  383. data/lib/gems/facets-2.4.5/VERSION +0 -1
  384. data/lib/gems/facets-2.4.5/lib/core/facets-live.rb +0 -17
  385. data/lib/gems/facets-2.4.5/lib/core/facets-load.rb +0 -12
  386. data/lib/gems/facets-2.4.5/lib/core/facets.rb +0 -11
  387. data/lib/gems/facets-2.4.5/lib/core/facets/array.rb +0 -6
  388. data/lib/gems/facets-2.4.5/lib/core/facets/array/combination.rb +0 -59
  389. data/lib/gems/facets-2.4.5/lib/core/facets/array/conjoin.rb +0 -58
  390. data/lib/gems/facets-2.4.5/lib/core/facets/array/delete.rb +0 -61
  391. data/lib/gems/facets-2.4.5/lib/core/facets/array/index.rb +0 -48
  392. data/lib/gems/facets-2.4.5/lib/core/facets/array/indexable.rb +0 -73
  393. data/lib/gems/facets-2.4.5/lib/core/facets/array/merge.rb +0 -21
  394. data/lib/gems/facets-2.4.5/lib/core/facets/array/not_empty.rb +0 -13
  395. data/lib/gems/facets-2.4.5/lib/core/facets/array/only.rb +0 -21
  396. data/lib/gems/facets-2.4.5/lib/core/facets/array/pad.rb +0 -41
  397. data/lib/gems/facets-2.4.5/lib/core/facets/array/permutation.rb +0 -30
  398. data/lib/gems/facets-2.4.5/lib/core/facets/array/product.rb +0 -57
  399. data/lib/gems/facets-2.4.5/lib/core/facets/array/recursively.rb +0 -30
  400. data/lib/gems/facets-2.4.5/lib/core/facets/array/rotate.rb +0 -42
  401. data/lib/gems/facets-2.4.5/lib/core/facets/array/select.rb +0 -16
  402. data/lib/gems/facets-2.4.5/lib/core/facets/array/splice.rb +0 -30
  403. data/lib/gems/facets-2.4.5/lib/core/facets/array/stackable.rb +0 -33
  404. data/lib/gems/facets-2.4.5/lib/core/facets/array/traverse.rb +0 -22
  405. data/lib/gems/facets-2.4.5/lib/core/facets/binding.rb +0 -6
  406. data/lib/gems/facets-2.4.5/lib/core/facets/binding/caller.rb +0 -54
  407. data/lib/gems/facets-2.4.5/lib/core/facets/binding/defined.rb +0 -13
  408. data/lib/gems/facets-2.4.5/lib/core/facets/binding/eval.rb +0 -18
  409. data/lib/gems/facets-2.4.5/lib/core/facets/binding/local_variables.rb +0 -15
  410. data/lib/gems/facets-2.4.5/lib/core/facets/binding/self.rb +0 -12
  411. data/lib/gems/facets-2.4.5/lib/core/facets/bitmask.rb +0 -104
  412. data/lib/gems/facets-2.4.5/lib/core/facets/blank.rb +0 -60
  413. data/lib/gems/facets-2.4.5/lib/core/facets/boolean.rb +0 -156
  414. data/lib/gems/facets-2.4.5/lib/core/facets/callstack.rb +0 -52
  415. data/lib/gems/facets-2.4.5/lib/core/facets/cattr.rb +0 -2
  416. data/lib/gems/facets-2.4.5/lib/core/facets/class.rb +0 -6
  417. data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr.rb +0 -115
  418. data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr_accessor.rb +0 -1
  419. data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr_reader.rb +0 -1
  420. data/lib/gems/facets-2.4.5/lib/core/facets/class/cattr_writer.rb +0 -1
  421. data/lib/gems/facets-2.4.5/lib/core/facets/class/descendents.rb +0 -36
  422. data/lib/gems/facets-2.4.5/lib/core/facets/class/methodize.rb +0 -14
  423. data/lib/gems/facets-2.4.5/lib/core/facets/class/pathize.rb +0 -14
  424. data/lib/gems/facets-2.4.5/lib/core/facets/class/prepend.rb +0 -50
  425. data/lib/gems/facets-2.4.5/lib/core/facets/class/subclasses.rb +0 -2
  426. data/lib/gems/facets-2.4.5/lib/core/facets/class/to_proc.rb +0 -42
  427. data/lib/gems/facets-2.4.5/lib/core/facets/comparable.rb +0 -6
  428. data/lib/gems/facets-2.4.5/lib/core/facets/comparable/bound.rb +0 -65
  429. data/lib/gems/facets-2.4.5/lib/core/facets/comparable/cmp.rb +0 -38
  430. data/lib/gems/facets-2.4.5/lib/core/facets/comparable/comparable.rb +0 -42
  431. data/lib/gems/facets-2.4.5/lib/core/facets/dir.rb +0 -6
  432. data/lib/gems/facets-2.4.5/lib/core/facets/dir/ascend.rb +0 -59
  433. data/lib/gems/facets-2.4.5/lib/core/facets/dir/descend.rb +0 -1
  434. data/lib/gems/facets-2.4.5/lib/core/facets/dir/multiglob.rb +0 -92
  435. data/lib/gems/facets-2.4.5/lib/core/facets/dir/parent.rb +0 -13
  436. data/lib/gems/facets-2.4.5/lib/core/facets/dir/recurse.rb +0 -29
  437. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable.rb +0 -6
  438. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/accumulate.rb +0 -21
  439. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/cluster_by.rb +0 -21
  440. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/collect.rb +0 -54
  441. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/commonality.rb +0 -33
  442. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/count.rb +0 -26
  443. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/divide.rb +0 -33
  444. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/duplicates.rb +0 -38
  445. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/each_by.rb +0 -33
  446. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/entropy.rb +0 -37
  447. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/frequency.rb +0 -18
  448. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/group_by.rb +0 -27
  449. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/inject.rb +0 -31
  450. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/map_send.rb +0 -12
  451. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/mash.rb +0 -32
  452. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/mode.rb +0 -16
  453. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/modulate.rb +0 -22
  454. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/none.rb +0 -31
  455. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/occur.rb +0 -38
  456. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/one.rb +0 -38
  457. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/probability.rb +0 -36
  458. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/split.rb +0 -27
  459. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/sum.rb +0 -16
  460. data/lib/gems/facets-2.4.5/lib/core/facets/enumerable/uniq_by.rb +0 -18
  461. data/lib/gems/facets-2.4.5/lib/core/facets/exception.rb +0 -6
  462. data/lib/gems/facets-2.4.5/lib/core/facets/exception/detail.rb +0 -19
  463. data/lib/gems/facets-2.4.5/lib/core/facets/exception/suppress.rb +0 -21
  464. data/lib/gems/facets-2.4.5/lib/core/facets/file.rb +0 -6
  465. data/lib/gems/facets-2.4.5/lib/core/facets/file/append.rb +0 -14
  466. data/lib/gems/facets-2.4.5/lib/core/facets/file/create.rb +0 -21
  467. data/lib/gems/facets-2.4.5/lib/core/facets/file/null.rb +0 -21
  468. data/lib/gems/facets-2.4.5/lib/core/facets/file/read.rb +0 -41
  469. data/lib/gems/facets-2.4.5/lib/core/facets/file/rewrite.rb +0 -88
  470. data/lib/gems/facets-2.4.5/lib/core/facets/file/rootname.rb +0 -33
  471. data/lib/gems/facets-2.4.5/lib/core/facets/file/split_root.rb +0 -10
  472. data/lib/gems/facets-2.4.5/lib/core/facets/file/write.rb +0 -22
  473. data/lib/gems/facets-2.4.5/lib/core/facets/file/writelines.rb +0 -24
  474. data/lib/gems/facets-2.4.5/lib/core/facets/filetest.rb +0 -6
  475. data/lib/gems/facets-2.4.5/lib/core/facets/filetest/root.rb +0 -17
  476. data/lib/gems/facets-2.4.5/lib/core/facets/float.rb +0 -6
  477. data/lib/gems/facets-2.4.5/lib/core/facets/float/round.rb +0 -2
  478. data/lib/gems/facets-2.4.5/lib/core/facets/functor.rb +0 -77
  479. data/lib/gems/facets-2.4.5/lib/core/facets/hash.rb +0 -6
  480. data/lib/gems/facets-2.4.5/lib/core/facets/hash/alias.rb +0 -31
  481. data/lib/gems/facets-2.4.5/lib/core/facets/hash/argumentize.rb +0 -22
  482. data/lib/gems/facets-2.4.5/lib/core/facets/hash/at.rb +0 -8
  483. data/lib/gems/facets-2.4.5/lib/core/facets/hash/autonew.rb +0 -42
  484. data/lib/gems/facets-2.4.5/lib/core/facets/hash/collate.rb +0 -45
  485. data/lib/gems/facets-2.4.5/lib/core/facets/hash/delete.rb +0 -47
  486. data/lib/gems/facets-2.4.5/lib/core/facets/hash/diff.rb +0 -11
  487. data/lib/gems/facets-2.4.5/lib/core/facets/hash/except.rb +0 -27
  488. data/lib/gems/facets-2.4.5/lib/core/facets/hash/insert.rb +0 -19
  489. data/lib/gems/facets-2.4.5/lib/core/facets/hash/inverse.rb +0 -27
  490. data/lib/gems/facets-2.4.5/lib/core/facets/hash/join.rb +0 -14
  491. data/lib/gems/facets-2.4.5/lib/core/facets/hash/keys.rb +0 -45
  492. data/lib/gems/facets-2.4.5/lib/core/facets/hash/mash.rb +0 -18
  493. data/lib/gems/facets-2.4.5/lib/core/facets/hash/merge.rb +0 -30
  494. data/lib/gems/facets-2.4.5/lib/core/facets/hash/op.rb +0 -7
  495. data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_add.rb +0 -12
  496. data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_and.rb +0 -33
  497. data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_mul.rb +0 -18
  498. data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_or.rb +0 -12
  499. data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_push.rb +0 -17
  500. data/lib/gems/facets-2.4.5/lib/core/facets/hash/op_sub.rb +0 -26
  501. data/lib/gems/facets-2.4.5/lib/core/facets/hash/recursive_merge.rb +0 -33
  502. data/lib/gems/facets-2.4.5/lib/core/facets/hash/recursively.rb +0 -29
  503. data/lib/gems/facets-2.4.5/lib/core/facets/hash/rekey.rb +0 -59
  504. data/lib/gems/facets-2.4.5/lib/core/facets/hash/select.rb +0 -14
  505. data/lib/gems/facets-2.4.5/lib/core/facets/hash/slice.rb +0 -33
  506. data/lib/gems/facets-2.4.5/lib/core/facets/hash/swap.rb +0 -17
  507. data/lib/gems/facets-2.4.5/lib/core/facets/hash/to_h.rb +0 -1
  508. data/lib/gems/facets-2.4.5/lib/core/facets/hash/to_proc.rb +0 -41
  509. data/lib/gems/facets-2.4.5/lib/core/facets/hash/to_struct.rb +0 -17
  510. data/lib/gems/facets-2.4.5/lib/core/facets/hash/traverse.rb +0 -41
  511. data/lib/gems/facets-2.4.5/lib/core/facets/hash/update.rb +0 -81
  512. data/lib/gems/facets-2.4.5/lib/core/facets/hash/weave.rb +0 -81
  513. data/lib/gems/facets-2.4.5/lib/core/facets/hash/zipnew.rb +0 -2
  514. data/lib/gems/facets-2.4.5/lib/core/facets/indexable.rb +0 -251
  515. data/lib/gems/facets-2.4.5/lib/core/facets/integer.rb +0 -6
  516. data/lib/gems/facets-2.4.5/lib/core/facets/integer/even.rb +0 -1
  517. data/lib/gems/facets-2.4.5/lib/core/facets/integer/factorial.rb +0 -30
  518. data/lib/gems/facets-2.4.5/lib/core/facets/integer/multiple.rb +0 -15
  519. data/lib/gems/facets-2.4.5/lib/core/facets/integer/odd.rb +0 -35
  520. data/lib/gems/facets-2.4.5/lib/core/facets/integer/of.rb +0 -18
  521. data/lib/gems/facets-2.4.5/lib/core/facets/integer/ordinal.rb +0 -24
  522. data/lib/gems/facets-2.4.5/lib/core/facets/kernel.rb +0 -6
  523. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__callee__.rb +0 -1
  524. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__class__.rb +0 -9
  525. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__dir__.rb +0 -12
  526. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__get__.rb +0 -10
  527. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__method__.rb +0 -36
  528. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/__set__.rb +0 -1
  529. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/as.rb +0 -100
  530. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/ask.rb +0 -27
  531. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/attr_singleton.rb +0 -62
  532. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/complete.rb +0 -18
  533. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/constant.rb +0 -24
  534. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/d.rb +0 -26
  535. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/deep_copy.rb +0 -13
  536. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/demo.rb +0 -23
  537. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/ergo.rb +0 -42
  538. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/here.rb +0 -12
  539. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/in.rb +0 -13
  540. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance.rb +0 -19
  541. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_assign.rb +0 -41
  542. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_class.rb +0 -24
  543. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_exec.rb +0 -40
  544. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_send.rb +0 -7
  545. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/instance_variables.rb +0 -99
  546. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/maybe.rb +0 -18
  547. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/not_nil.rb +0 -17
  548. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/object_class.rb +0 -10
  549. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/object_hexid.rb +0 -12
  550. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/object_send.rb +0 -32
  551. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/p.rb +0 -24
  552. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/populate.rb +0 -73
  553. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/qua_class.rb +0 -19
  554. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/require_all.rb +0 -21
  555. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/require_local.rb +0 -24
  556. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/resc.rb +0 -16
  557. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/respond.rb +0 -23
  558. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/returning.rb +0 -23
  559. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/silence.rb +0 -75
  560. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/singleton_class.rb +0 -19
  561. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/tap.rb +0 -32
  562. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/try.rb +0 -23
  563. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/val.rb +0 -19
  564. data/lib/gems/facets-2.4.5/lib/core/facets/kernel/with.rb +0 -20
  565. data/lib/gems/facets-2.4.5/lib/core/facets/lazy.rb +0 -238
  566. data/lib/gems/facets-2.4.5/lib/core/facets/matchdata.rb +0 -6
  567. data/lib/gems/facets-2.4.5/lib/core/facets/matchdata/match.rb +0 -15
  568. data/lib/gems/facets-2.4.5/lib/core/facets/matchdata/matchset.rb +0 -44
  569. data/lib/gems/facets-2.4.5/lib/core/facets/metaid.rb +0 -94
  570. data/lib/gems/facets-2.4.5/lib/core/facets/module.rb +0 -6
  571. data/lib/gems/facets-2.4.5/lib/core/facets/module/abstract.rb +0 -21
  572. data/lib/gems/facets-2.4.5/lib/core/facets/module/alias_accessor.rb +0 -45
  573. data/lib/gems/facets-2.4.5/lib/core/facets/module/alias_method_chain.rb +0 -50
  574. data/lib/gems/facets-2.4.5/lib/core/facets/module/alias_module_function.rb +0 -30
  575. data/lib/gems/facets-2.4.5/lib/core/facets/module/ancestor.rb +0 -16
  576. data/lib/gems/facets-2.4.5/lib/core/facets/module/basename.rb +0 -31
  577. data/lib/gems/facets-2.4.5/lib/core/facets/module/can.rb +0 -14
  578. data/lib/gems/facets-2.4.5/lib/core/facets/module/class.rb +0 -12
  579. data/lib/gems/facets-2.4.5/lib/core/facets/module/conflict.rb +0 -63
  580. data/lib/gems/facets-2.4.5/lib/core/facets/module/include_function_module.rb +0 -25
  581. data/lib/gems/facets-2.4.5/lib/core/facets/module/instance_methods.rb +0 -40
  582. data/lib/gems/facets-2.4.5/lib/core/facets/module/integrate.rb +0 -2
  583. data/lib/gems/facets-2.4.5/lib/core/facets/module/is.rb +0 -57
  584. data/lib/gems/facets-2.4.5/lib/core/facets/module/methodize.rb +0 -14
  585. data/lib/gems/facets-2.4.5/lib/core/facets/module/modspace.rb +0 -22
  586. data/lib/gems/facets-2.4.5/lib/core/facets/module/module_load.rb +0 -56
  587. data/lib/gems/facets-2.4.5/lib/core/facets/module/nesting.rb +0 -18
  588. data/lib/gems/facets-2.4.5/lib/core/facets/module/op.rb +0 -95
  589. data/lib/gems/facets-2.4.5/lib/core/facets/module/pathize.rb +0 -22
  590. data/lib/gems/facets-2.4.5/lib/core/facets/module/prepend.rb +0 -26
  591. data/lib/gems/facets-2.4.5/lib/core/facets/module/redefine_method.rb +0 -35
  592. data/lib/gems/facets-2.4.5/lib/core/facets/module/redirect_method.rb +0 -45
  593. data/lib/gems/facets-2.4.5/lib/core/facets/module/rename_method.rb +0 -20
  594. data/lib/gems/facets-2.4.5/lib/core/facets/module/revise.rb +0 -62
  595. data/lib/gems/facets-2.4.5/lib/core/facets/module/spacename.rb +0 -25
  596. data/lib/gems/facets-2.4.5/lib/core/facets/module/wrap_method.rb +0 -28
  597. data/lib/gems/facets-2.4.5/lib/core/facets/nilclass.rb +0 -6
  598. data/lib/gems/facets-2.4.5/lib/core/facets/nilclass/ergo.rb +0 -1
  599. data/lib/gems/facets-2.4.5/lib/core/facets/nilclass/to_f.rb +0 -17
  600. data/lib/gems/facets-2.4.5/lib/core/facets/numeric.rb +0 -6
  601. data/lib/gems/facets-2.4.5/lib/core/facets/numeric/approx.rb +0 -15
  602. data/lib/gems/facets-2.4.5/lib/core/facets/numeric/distance.rb +0 -14
  603. data/lib/gems/facets-2.4.5/lib/core/facets/numeric/round.rb +0 -72
  604. data/lib/gems/facets-2.4.5/lib/core/facets/proc.rb +0 -6
  605. data/lib/gems/facets-2.4.5/lib/core/facets/proc/bind.rb +0 -22
  606. data/lib/gems/facets-2.4.5/lib/core/facets/proc/compose.rb +0 -42
  607. data/lib/gems/facets-2.4.5/lib/core/facets/proc/curry.rb +0 -31
  608. data/lib/gems/facets-2.4.5/lib/core/facets/proc/to_method.rb +0 -33
  609. data/lib/gems/facets-2.4.5/lib/core/facets/proc/update.rb +0 -9
  610. data/lib/gems/facets-2.4.5/lib/core/facets/range.rb +0 -6
  611. data/lib/gems/facets-2.4.5/lib/core/facets/range/combine.rb +0 -47
  612. data/lib/gems/facets-2.4.5/lib/core/facets/range/overlap.rb +0 -13
  613. data/lib/gems/facets-2.4.5/lib/core/facets/range/to_r.rb +0 -26
  614. data/lib/gems/facets-2.4.5/lib/core/facets/range/umbrella.rb +0 -1
  615. data/lib/gems/facets-2.4.5/lib/core/facets/range/within.rb +0 -66
  616. data/lib/gems/facets-2.4.5/lib/core/facets/regexp.rb +0 -6
  617. data/lib/gems/facets-2.4.5/lib/core/facets/regexp/arity.rb +0 -17
  618. data/lib/gems/facets-2.4.5/lib/core/facets/regexp/to_re.rb +0 -28
  619. data/lib/gems/facets-2.4.5/lib/core/facets/stackable.rb +0 -86
  620. data/lib/gems/facets-2.4.5/lib/core/facets/string.rb +0 -6
  621. data/lib/gems/facets-2.4.5/lib/core/facets/string/align.rb +0 -106
  622. data/lib/gems/facets-2.4.5/lib/core/facets/string/bracket.rb +0 -105
  623. data/lib/gems/facets-2.4.5/lib/core/facets/string/bytes.rb +0 -15
  624. data/lib/gems/facets-2.4.5/lib/core/facets/string/camelcase.rb +0 -26
  625. data/lib/gems/facets-2.4.5/lib/core/facets/string/capitalized.rb +0 -46
  626. data/lib/gems/facets-2.4.5/lib/core/facets/string/chars.rb +0 -16
  627. data/lib/gems/facets-2.4.5/lib/core/facets/string/chomp.rb +0 -33
  628. data/lib/gems/facets-2.4.5/lib/core/facets/string/cleave.rb +0 -36
  629. data/lib/gems/facets-2.4.5/lib/core/facets/string/divide.rb +0 -21
  630. data/lib/gems/facets-2.4.5/lib/core/facets/string/each_char.rb +0 -29
  631. data/lib/gems/facets-2.4.5/lib/core/facets/string/each_word.rb +0 -13
  632. data/lib/gems/facets-2.4.5/lib/core/facets/string/end_with.rb +0 -1
  633. data/lib/gems/facets-2.4.5/lib/core/facets/string/fold.rb +0 -39
  634. data/lib/gems/facets-2.4.5/lib/core/facets/string/interpolate.rb +0 -20
  635. data/lib/gems/facets-2.4.5/lib/core/facets/string/line_wrap.rb +0 -21
  636. data/lib/gems/facets-2.4.5/lib/core/facets/string/lines.rb +0 -16
  637. data/lib/gems/facets-2.4.5/lib/core/facets/string/methodize.rb +0 -17
  638. data/lib/gems/facets-2.4.5/lib/core/facets/string/modulize.rb +0 -21
  639. data/lib/gems/facets-2.4.5/lib/core/facets/string/mscan.rb +0 -19
  640. data/lib/gems/facets-2.4.5/lib/core/facets/string/natcmp.rb +0 -88
  641. data/lib/gems/facets-2.4.5/lib/core/facets/string/nchar.rb +0 -28
  642. data/lib/gems/facets-2.4.5/lib/core/facets/string/op_sub.rb +0 -14
  643. data/lib/gems/facets-2.4.5/lib/core/facets/string/pathize.rb +0 -16
  644. data/lib/gems/facets-2.4.5/lib/core/facets/string/range.rb +0 -77
  645. data/lib/gems/facets-2.4.5/lib/core/facets/string/rewrite.rb +0 -28
  646. data/lib/gems/facets-2.4.5/lib/core/facets/string/shatter.rb +0 -22
  647. data/lib/gems/facets-2.4.5/lib/core/facets/string/snakecase.rb +0 -21
  648. data/lib/gems/facets-2.4.5/lib/core/facets/string/splice.rb +0 -37
  649. data/lib/gems/facets-2.4.5/lib/core/facets/string/start_with.rb +0 -32
  650. data/lib/gems/facets-2.4.5/lib/core/facets/string/subtract.rb +0 -4
  651. data/lib/gems/facets-2.4.5/lib/core/facets/string/tab.rb +0 -103
  652. data/lib/gems/facets-2.4.5/lib/core/facets/string/titlecase.rb +0 -15
  653. data/lib/gems/facets-2.4.5/lib/core/facets/string/to_re.rb +0 -26
  654. data/lib/gems/facets-2.4.5/lib/core/facets/string/variablize.rb +0 -13
  655. data/lib/gems/facets-2.4.5/lib/core/facets/string/word_wrap.rb +0 -34
  656. data/lib/gems/facets-2.4.5/lib/core/facets/string/words.rb +0 -12
  657. data/lib/gems/facets-2.4.5/lib/core/facets/string/xor.rb +0 -22
  658. data/lib/gems/facets-2.4.5/lib/core/facets/symbol.rb +0 -6
  659. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/chomp.rb +0 -24
  660. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/generate.rb +0 -24
  661. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/not.rb +0 -29
  662. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/plain.rb +0 -17
  663. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/query.rb +0 -1
  664. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/re_s.rb +0 -18
  665. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/setter.rb +0 -1
  666. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/succ.rb +0 -19
  667. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/to_proc.rb +0 -38
  668. data/lib/gems/facets-2.4.5/lib/core/facets/symbol/variablize.rb +0 -12
  669. data/lib/gems/facets-2.4.5/lib/core/facets/time.rb +0 -6
  670. data/lib/gems/facets-2.4.5/lib/core/facets/time/advance.rb +0 -17
  671. data/lib/gems/facets-2.4.5/lib/core/facets/time/ago.rb +0 -1
  672. data/lib/gems/facets-2.4.5/lib/core/facets/time/change.rb +0 -41
  673. data/lib/gems/facets-2.4.5/lib/core/facets/time/elapse.rb +0 -16
  674. data/lib/gems/facets-2.4.5/lib/core/facets/time/hence.rb +0 -94
  675. data/lib/gems/facets-2.4.5/lib/core/facets/time/round.rb +0 -17
  676. data/lib/gems/facets-2.4.5/lib/core/facets/time/set.rb +0 -21
  677. data/lib/gems/facets-2.4.5/lib/core/facets/time/stamp.rb +0 -44
  678. data/lib/gems/facets-2.4.5/lib/core/facets/time/to_time.rb +0 -21
  679. data/lib/gems/facets-2.4.5/lib/core/facets/time/trunc.rb +0 -15
  680. data/lib/gems/facets-2.4.5/lib/core/facets/to_hash.rb +0 -87
  681. data/lib/gems/facets-2.4.5/lib/core/facets/unboundmethod.rb +0 -6
  682. data/lib/gems/facets-2.4.5/lib/core/facets/unboundmethod/arguments.rb +0 -44
  683. data/lib/gems/facets-2.4.5/lib/core/facets/unboundmethod/name.rb +0 -25
  684. data/lib/gems/facets-2.4.5/lib/lore/facets/basicobject.rb +0 -14
  685. data/lib/gems/facets-2.4.5/lib/lore/facets/cgi.rb +0 -50
  686. data/lib/gems/facets-2.4.5/lib/lore/facets/continuation.rb +0 -57
  687. data/lib/gems/facets-2.4.5/lib/lore/facets/date.rb +0 -396
  688. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils.rb +0 -27
  689. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/head.rb +0 -1
  690. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/safe_ln.rb +0 -28
  691. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/slice.rb +0 -141
  692. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/tail.rb +0 -1
  693. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/wc.rb +0 -114
  694. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/whereis.rb +0 -64
  695. data/lib/gems/facets-2.4.5/lib/lore/facets/fileutils/which.rb +0 -101
  696. data/lib/gems/facets-2.4.5/lib/lore/facets/getoptlong.rb +0 -71
  697. data/lib/gems/facets-2.4.5/lib/lore/facets/logger.rb +0 -291
  698. data/lib/gems/facets-2.4.5/lib/lore/facets/ostruct.rb +0 -238
  699. data/lib/gems/facets-2.4.5/lib/lore/facets/pathname.rb +0 -172
  700. data/lib/gems/facets-2.4.5/lib/lore/facets/rbconfig.rb +0 -45
  701. data/lib/gems/facets-2.4.5/lib/lore/facets/set.rb +0 -27
  702. data/lib/gems/facets-2.4.5/lib/lore/facets/shellwords.rb +0 -89
  703. data/lib/gems/facets-2.4.5/lib/lore/facets/uri.rb +0 -249
  704. data/lib/gems/facets-2.4.5/lib/lore/facets/yaml.rb +0 -75
  705. data/lib/gems/facets-2.4.5/lib/lore/facets/zlib.rb +0 -38
  706. data/lib/gems/facets-2.4.5/lib/more/facets/1stclassmethod.rb +0 -140
  707. data/lib/gems/facets-2.4.5/lib/more/facets/advisable.rb +0 -162
  708. data/lib/gems/facets-2.4.5/lib/more/facets/annotations.rb +0 -302
  709. data/lib/gems/facets-2.4.5/lib/more/facets/ansicode.rb +0 -315
  710. data/lib/gems/facets-2.4.5/lib/more/facets/arguments.rb +0 -365
  711. data/lib/gems/facets-2.4.5/lib/more/facets/argvector.rb +0 -353
  712. data/lib/gems/facets-2.4.5/lib/more/facets/association.rb +0 -194
  713. data/lib/gems/facets-2.4.5/lib/more/facets/attr.rb +0 -208
  714. data/lib/gems/facets-2.4.5/lib/more/facets/autoarray.rb +0 -62
  715. data/lib/gems/facets-2.4.5/lib/more/facets/autoreload.rb +0 -150
  716. data/lib/gems/facets-2.4.5/lib/more/facets/basex.rb +0 -37
  717. data/lib/gems/facets-2.4.5/lib/more/facets/bbcode.rb +0 -397
  718. data/lib/gems/facets-2.4.5/lib/more/facets/bicrypt.rb +0 -265
  719. data/lib/gems/facets-2.4.5/lib/more/facets/binding/opvars.rb +0 -24
  720. data/lib/gems/facets-2.4.5/lib/more/facets/binreadable.rb +0 -221
  721. data/lib/gems/facets-2.4.5/lib/more/facets/blankslate.rb +0 -66
  722. data/lib/gems/facets-2.4.5/lib/more/facets/buildable.rb +0 -344
  723. data/lib/gems/facets-2.4.5/lib/more/facets/bytes.rb +0 -175
  724. data/lib/gems/facets-2.4.5/lib/more/facets/cachedecorator.rb +0 -117
  725. data/lib/gems/facets-2.4.5/lib/more/facets/capsule.rb +0 -258
  726. data/lib/gems/facets-2.4.5/lib/more/facets/chain.rb +0 -58
  727. data/lib/gems/facets-2.4.5/lib/more/facets/class_extension.rb +0 -114
  728. data/lib/gems/facets-2.4.5/lib/more/facets/classmethods.rb +0 -199
  729. data/lib/gems/facets-2.4.5/lib/more/facets/cloneable.rb +0 -76
  730. data/lib/gems/facets-2.4.5/lib/more/facets/command.rb +0 -439
  731. data/lib/gems/facets-2.4.5/lib/more/facets/consoleutils.rb +0 -113
  732. data/lib/gems/facets-2.4.5/lib/more/facets/coroutine.rb +0 -159
  733. data/lib/gems/facets-2.4.5/lib/more/facets/crypt.rb +0 -166
  734. data/lib/gems/facets-2.4.5/lib/more/facets/cssfilter.rb +0 -254
  735. data/lib/gems/facets-2.4.5/lib/more/facets/daemonize.rb +0 -44
  736. data/lib/gems/facets-2.4.5/lib/more/facets/dependency.rb +0 -151
  737. data/lib/gems/facets-2.4.5/lib/more/facets/dictionary.rb +0 -478
  738. data/lib/gems/facets-2.4.5/lib/more/facets/dictionarymatcher.rb +0 -136
  739. data/lib/gems/facets-2.4.5/lib/more/facets/downloader.rb +0 -281
  740. data/lib/gems/facets-2.4.5/lib/more/facets/duplicable.rb +0 -43
  741. data/lib/gems/facets-2.4.5/lib/more/facets/duration.rb +0 -540
  742. data/lib/gems/facets-2.4.5/lib/more/facets/elementor.rb +0 -133
  743. data/lib/gems/facets-2.4.5/lib/more/facets/elementwise.rb +0 -61
  744. data/lib/gems/facets-2.4.5/lib/more/facets/enumerablepass.rb +0 -217
  745. data/lib/gems/facets-2.4.5/lib/more/facets/equatable.rb +0 -120
  746. data/lib/gems/facets-2.4.5/lib/more/facets/eventhook.rb +0 -132
  747. data/lib/gems/facets-2.4.5/lib/more/facets/expirable.rb +0 -82
  748. data/lib/gems/facets-2.4.5/lib/more/facets/fileable.rb +0 -162
  749. data/lib/gems/facets-2.4.5/lib/more/facets/filelist.rb +0 -497
  750. data/lib/gems/facets-2.4.5/lib/more/facets/fileshell.rb +0 -202
  751. data/lib/gems/facets-2.4.5/lib/more/facets/hash/stringify_keys.rb +0 -1
  752. data/lib/gems/facets-2.4.5/lib/more/facets/hash/symbolize_keys.rb +0 -94
  753. data/lib/gems/facets-2.4.5/lib/more/facets/heap.rb +0 -22
  754. data/lib/gems/facets-2.4.5/lib/more/facets/htmlfilter.rb +0 -595
  755. data/lib/gems/facets-2.4.5/lib/more/facets/infinity.rb +0 -193
  756. data/lib/gems/facets-2.4.5/lib/more/facets/inheritor.rb +0 -130
  757. data/lib/gems/facets-2.4.5/lib/more/facets/ini.rb +0 -264
  758. data/lib/gems/facets-2.4.5/lib/more/facets/instantiable.rb +0 -47
  759. data/lib/gems/facets-2.4.5/lib/more/facets/instantise.rb +0 -1
  760. data/lib/gems/facets-2.4.5/lib/more/facets/instantize.rb +0 -95
  761. data/lib/gems/facets-2.4.5/lib/more/facets/interval.rb +0 -282
  762. data/lib/gems/facets-2.4.5/lib/more/facets/ioredirect.rb +0 -130
  763. data/lib/gems/facets-2.4.5/lib/more/facets/iteration.rb +0 -65
  764. data/lib/gems/facets-2.4.5/lib/more/facets/kernel/meta.rb +0 -32
  765. data/lib/gems/facets-2.4.5/lib/more/facets/linkedlist.rb +0 -222
  766. data/lib/gems/facets-2.4.5/lib/more/facets/lrucache.rb +0 -157
  767. data/lib/gems/facets-2.4.5/lib/more/facets/main.rb +0 -70
  768. data/lib/gems/facets-2.4.5/lib/more/facets/memoize.rb +0 -116
  769. data/lib/gems/facets-2.4.5/lib/more/facets/methodspace.rb +0 -141
  770. data/lib/gems/facets-2.4.5/lib/more/facets/minitar.rb +0 -1063
  771. data/lib/gems/facets-2.4.5/lib/more/facets/multipliers.rb +0 -109
  772. data/lib/gems/facets-2.4.5/lib/more/facets/multiton.rb +0 -386
  773. data/lib/gems/facets-2.4.5/lib/more/facets/nackclass.rb +0 -41
  774. data/lib/gems/facets-2.4.5/lib/more/facets/net/smtp_tls.rb +0 -131
  775. data/lib/gems/facets-2.4.5/lib/more/facets/nilstatus.rb +0 -47
  776. data/lib/gems/facets-2.4.5/lib/more/facets/nullclass.rb +0 -74
  777. data/lib/gems/facets-2.4.5/lib/more/facets/opencascade.rb +0 -94
  778. data/lib/gems/facets-2.4.5/lib/more/facets/opencollection.rb +0 -43
  779. data/lib/gems/facets-2.4.5/lib/more/facets/openhash.rb +0 -39
  780. data/lib/gems/facets-2.4.5/lib/more/facets/openobject.rb +0 -267
  781. data/lib/gems/facets-2.4.5/lib/more/facets/opesc.rb +0 -60
  782. data/lib/gems/facets-2.4.5/lib/more/facets/orderedhash.rb +0 -37
  783. data/lib/gems/facets-2.4.5/lib/more/facets/overload.rb +0 -94
  784. data/lib/gems/facets-2.4.5/lib/more/facets/paramix.rb +0 -202
  785. data/lib/gems/facets-2.4.5/lib/more/facets/partial.rb +0 -37
  786. data/lib/gems/facets-2.4.5/lib/more/facets/pathlist.rb +0 -112
  787. data/lib/gems/facets-2.4.5/lib/more/facets/platform.rb +0 -192
  788. data/lib/gems/facets-2.4.5/lib/more/facets/pool.rb +0 -91
  789. data/lib/gems/facets-2.4.5/lib/more/facets/pqueue.rb +0 -449
  790. data/lib/gems/facets-2.4.5/lib/more/facets/progressbar.rb +0 -253
  791. data/lib/gems/facets-2.4.5/lib/more/facets/prototype.rb +0 -88
  792. data/lib/gems/facets-2.4.5/lib/more/facets/random.rb +0 -451
  793. data/lib/gems/facets-2.4.5/lib/more/facets/rbsystem.rb +0 -222
  794. data/lib/gems/facets-2.4.5/lib/more/facets/recorder.rb +0 -109
  795. data/lib/gems/facets-2.4.5/lib/more/facets/reference.rb +0 -99
  796. data/lib/gems/facets-2.4.5/lib/more/facets/reflection.rb +0 -145
  797. data/lib/gems/facets-2.4.5/lib/more/facets/registerable.rb +0 -35
  798. data/lib/gems/facets-2.4.5/lib/more/facets/rwdelegator.rb +0 -74
  799. data/lib/gems/facets-2.4.5/lib/more/facets/semaphore.rb +0 -92
  800. data/lib/gems/facets-2.4.5/lib/more/facets/settings.rb +0 -248
  801. data/lib/gems/facets-2.4.5/lib/more/facets/snapshot.rb +0 -209
  802. data/lib/gems/facets-2.4.5/lib/more/facets/string/mask.rb +0 -278
  803. data/lib/gems/facets-2.4.5/lib/more/facets/string/words.rb +0 -173
  804. data/lib/gems/facets-2.4.5/lib/more/facets/succ.rb +0 -44
  805. data/lib/gems/facets-2.4.5/lib/more/facets/syncarray.rb +0 -114
  806. data/lib/gems/facets-2.4.5/lib/more/facets/synchash.rb +0 -157
  807. data/lib/gems/facets-2.4.5/lib/more/facets/tagiter.rb +0 -366
  808. data/lib/gems/facets-2.4.5/lib/more/facets/thread.rb +0 -51
  809. data/lib/gems/facets-2.4.5/lib/more/facets/timer.rb +0 -274
  810. data/lib/gems/facets-2.4.5/lib/more/facets/times.rb +0 -431
  811. data/lib/gems/facets-2.4.5/lib/more/facets/tracepoint.rb +0 -209
  812. data/lib/gems/facets-2.4.5/lib/more/facets/tuple.rb +0 -325
  813. data/lib/gems/facets-2.4.5/lib/more/facets/typecast.rb +0 -261
  814. data/lib/gems/facets-2.4.5/lib/more/facets/uninheritable.rb +0 -50
  815. data/lib/gems/facets-2.4.5/lib/more/facets/uploadutils.rb +0 -464
  816. data/lib/gems/facets-2.4.5/lib/more/facets/version.rb +0 -136
  817. data/lib/gems/facets-2.4.5/lib/more/facets/xmlhash.rb +0 -112
  818. data/lib/gems/facets-2.4.5/lib/more/facets/xoxo.rb +0 -259
  819. data/lib/gems/facets-2.4.5/lib/more/facets/ziputils.rb +0 -349
  820. data/lib/mack-facets/utils/blank_slate.rb +0 -3
@@ -0,0 +1,120 @@
1
+ module ActiveSupport
2
+ module Testing
3
+ module SetupAndTeardown
4
+ # For compatibility with Ruby < 1.8.6
5
+ PASSTHROUGH_EXCEPTIONS =
6
+ if defined?(Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS)
7
+ Test::Unit::TestCase::PASSTHROUGH_EXCEPTIONS
8
+ else
9
+ [NoMemoryError, SignalException, Interrupt, SystemExit]
10
+ end
11
+
12
+ def self.included(base)
13
+ base.class_eval do
14
+ include ActiveSupport::Callbacks
15
+ define_callbacks :setup, :teardown
16
+
17
+ if defined?(::Mini)
18
+ undef_method :run
19
+ alias_method :run, :run_with_callbacks_and_miniunit
20
+ else
21
+ begin
22
+ require 'mocha'
23
+ undef_method :run
24
+ alias_method :run, :run_with_callbacks_and_mocha
25
+ rescue LoadError
26
+ undef_method :run
27
+ alias_method :run, :run_with_callbacks_and_testunit
28
+ end
29
+ end
30
+ end
31
+ end
32
+
33
+ def run_with_callbacks_and_miniunit(runner)
34
+ result = '.'
35
+ begin
36
+ run_callbacks :setup
37
+ result = super
38
+ rescue Exception => e
39
+ result = runner.puke(self.class, self.name, e)
40
+ ensure
41
+ begin
42
+ teardown
43
+ run_callbacks :teardown, :enumerator => :reverse_each
44
+ rescue Exception => e
45
+ result = runner.puke(self.class, self.name, e)
46
+ end
47
+ end
48
+ result
49
+ end
50
+
51
+ # This redefinition is unfortunate but test/unit shows us no alternative.
52
+ def run_with_callbacks_and_testunit(result) #:nodoc:
53
+ return if @method_name.to_s == "default_test"
54
+
55
+ yield(Test::Unit::TestCase::STARTED, name)
56
+ @_result = result
57
+ begin
58
+ run_callbacks :setup
59
+ setup
60
+ __send__(@method_name)
61
+ rescue Test::Unit::AssertionFailedError => e
62
+ add_failure(e.message, e.backtrace)
63
+ rescue *PASSTHROUGH_EXCEPTIONS
64
+ raise
65
+ rescue Exception
66
+ add_error($!)
67
+ ensure
68
+ begin
69
+ teardown
70
+ run_callbacks :teardown, :enumerator => :reverse_each
71
+ rescue Test::Unit::AssertionFailedError => e
72
+ add_failure(e.message, e.backtrace)
73
+ rescue *PASSTHROUGH_EXCEPTIONS
74
+ raise
75
+ rescue Exception
76
+ add_error($!)
77
+ end
78
+ end
79
+ result.add_run
80
+ yield(Test::Unit::TestCase::FINISHED, name)
81
+ end
82
+
83
+ # Doubly unfortunate: mocha does the same so we have to hax their hax.
84
+ def run_with_callbacks_and_mocha(result)
85
+ return if @method_name.to_s == "default_test"
86
+
87
+ yield(Test::Unit::TestCase::STARTED, name)
88
+ @_result = result
89
+ begin
90
+ mocha_setup
91
+ begin
92
+ run_callbacks :setup
93
+ setup
94
+ __send__(@method_name)
95
+ mocha_verify { add_assertion }
96
+ rescue Mocha::ExpectationError => e
97
+ add_failure(e.message, e.backtrace)
98
+ rescue Test::Unit::AssertionFailedError => e
99
+ add_failure(e.message, e.backtrace)
100
+ rescue StandardError, ScriptError
101
+ add_error($!)
102
+ ensure
103
+ begin
104
+ teardown
105
+ run_callbacks :teardown, :enumerator => :reverse_each
106
+ rescue Test::Unit::AssertionFailedError => e
107
+ add_failure(e.message, e.backtrace)
108
+ rescue StandardError, ScriptError
109
+ add_error($!)
110
+ end
111
+ end
112
+ ensure
113
+ mocha_teardown
114
+ end
115
+ result.add_run
116
+ yield(Test::Unit::TestCase::FINISHED, name)
117
+ end
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,328 @@
1
+ require 'tzinfo'
2
+ module ActiveSupport
3
+ # A Time-like class that can represent a time in any time zone. Necessary because standard Ruby Time instances are
4
+ # limited to UTC and the system's <tt>ENV['TZ']</tt> zone.
5
+ #
6
+ # You shouldn't ever need to create a TimeWithZone instance directly via <tt>new</tt> -- instead, Rails provides the methods
7
+ # +local+, +parse+, +at+ and +now+ on TimeZone instances, and +in_time_zone+ on Time and DateTime instances, for a more
8
+ # user-friendly syntax. Examples:
9
+ #
10
+ # Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
11
+ # Time.zone.local(2007, 2, 10, 15, 30, 45) # => Sat, 10 Feb 2007 15:30:45 EST -05:00
12
+ # Time.zone.parse('2007-02-01 15:30:45') # => Sat, 10 Feb 2007 15:30:45 EST -05:00
13
+ # Time.zone.at(1170361845) # => Sat, 10 Feb 2007 15:30:45 EST -05:00
14
+ # Time.zone.now # => Sun, 18 May 2008 13:07:55 EDT -04:00
15
+ # Time.utc(2007, 2, 10, 20, 30, 45).in_time_zone # => Sat, 10 Feb 2007 15:30:45 EST -05:00
16
+ #
17
+ # See TimeZone and ActiveSupport::CoreExtensions::Time::Zones for further documentation for these methods.
18
+ #
19
+ # TimeWithZone instances implement the same API as Ruby Time instances, so that Time and TimeWithZone instances are interchangable. Examples:
20
+ #
21
+ # t = Time.zone.now # => Sun, 18 May 2008 13:27:25 EDT -04:00
22
+ # t.hour # => 13
23
+ # t.dst? # => true
24
+ # t.utc_offset # => -14400
25
+ # t.zone # => "EDT"
26
+ # t.to_s(:rfc822) # => "Sun, 18 May 2008 13:27:25 -0400"
27
+ # t + 1.day # => Mon, 19 May 2008 13:27:25 EDT -04:00
28
+ # t.beginning_of_year # => Tue, 01 Jan 2008 00:00:00 EST -05:00
29
+ # t > Time.utc(1999) # => true
30
+ # t.is_a?(Time) # => true
31
+ # t.is_a?(ActiveSupport::TimeWithZone) # => true
32
+ class TimeWithZone
33
+ include Comparable
34
+ attr_reader :time_zone
35
+
36
+ def initialize(utc_time, time_zone, local_time = nil, period = nil)
37
+ @utc, @time_zone, @time = utc_time, time_zone, local_time
38
+ @period = @utc ? period : get_period_and_ensure_valid_local_time
39
+ end
40
+
41
+ # Returns a Time or DateTime instance that represents the time in +time_zone+.
42
+ def time
43
+ @time ||= period.to_local(@utc)
44
+ end
45
+
46
+ # Returns a Time or DateTime instance that represents the time in UTC.
47
+ def utc
48
+ @utc ||= period.to_utc(@time)
49
+ end
50
+ alias_method :comparable_time, :utc
51
+ alias_method :getgm, :utc
52
+ alias_method :getutc, :utc
53
+ alias_method :gmtime, :utc
54
+
55
+ # Returns the underlying TZInfo::TimezonePeriod.
56
+ def period
57
+ @period ||= time_zone.period_for_utc(@utc)
58
+ end
59
+
60
+ # Returns the simultaneous time in <tt>Time.zone</tt>, or the specified zone.
61
+ def in_time_zone(new_zone = ::Time.zone)
62
+ return self if time_zone == new_zone
63
+ utc.in_time_zone(new_zone)
64
+ end
65
+
66
+ # Returns a <tt>Time.local()</tt> instance of the simultaneous time in your system's <tt>ENV['TZ']</tt> zone
67
+ def localtime
68
+ utc.getlocal
69
+ end
70
+ alias_method :getlocal, :localtime
71
+
72
+ def dst?
73
+ period.dst?
74
+ end
75
+ alias_method :isdst, :dst?
76
+
77
+ def utc?
78
+ time_zone.name == 'UTC'
79
+ end
80
+ alias_method :gmt?, :utc?
81
+
82
+ def utc_offset
83
+ period.utc_total_offset
84
+ end
85
+ alias_method :gmt_offset, :utc_offset
86
+ alias_method :gmtoff, :utc_offset
87
+
88
+ def formatted_offset(colon = true, alternate_utc_string = nil)
89
+ utc? && alternate_utc_string || utc_offset.to_utc_offset_s(colon)
90
+ end
91
+
92
+ # Time uses +zone+ to display the time zone abbreviation, so we're duck-typing it.
93
+ def zone
94
+ period.zone_identifier.to_s
95
+ end
96
+
97
+ def inspect
98
+ "#{time.strftime('%a, %d %b %Y %H:%M:%S')} #{zone} #{formatted_offset}"
99
+ end
100
+
101
+ def xmlschema
102
+ "#{time.strftime("%Y-%m-%dT%H:%M:%S")}#{formatted_offset(true, 'Z')}"
103
+ end
104
+ alias_method :iso8601, :xmlschema
105
+
106
+ # Returns a JSON string representing the TimeWithZone. If ActiveSupport.use_standard_json_time_format is set to
107
+ # true, the ISO 8601 format is used.
108
+ #
109
+ # ==== Examples:
110
+ #
111
+ # # With ActiveSupport.use_standard_json_time_format = true
112
+ # Time.utc(2005,2,1,15,15,10).in_time_zone.to_json
113
+ # # => "2005-02-01T15:15:10Z"
114
+ #
115
+ # # With ActiveSupport.use_standard_json_time_format = false
116
+ # Time.utc(2005,2,1,15,15,10).in_time_zone.to_json
117
+ # # => "2005/02/01 15:15:10 +0000"
118
+ def to_json(options = nil)
119
+ if ActiveSupport.use_standard_json_time_format
120
+ xmlschema.inspect
121
+ else
122
+ %("#{time.strftime("%Y/%m/%d %H:%M:%S")} #{formatted_offset(false)}")
123
+ end
124
+ end
125
+
126
+ def to_yaml(options = {})
127
+ if options.kind_of?(YAML::Emitter)
128
+ utc.to_yaml(options)
129
+ else
130
+ time.to_yaml(options).gsub('Z', formatted_offset(true, 'Z'))
131
+ end
132
+ end
133
+
134
+ def httpdate
135
+ utc.httpdate
136
+ end
137
+
138
+ def rfc2822
139
+ to_s(:rfc822)
140
+ end
141
+ alias_method :rfc822, :rfc2822
142
+
143
+ # <tt>:db</tt> format outputs time in UTC; all others output time in local.
144
+ # Uses TimeWithZone's +strftime+, so <tt>%Z</tt> and <tt>%z</tt> work correctly.
145
+ def to_s(format = :default)
146
+ return utc.to_s(format) if format == :db
147
+ if formatter = ::Time::DATE_FORMATS[format]
148
+ formatter.respond_to?(:call) ? formatter.call(self).to_s : strftime(formatter)
149
+ else
150
+ "#{time.strftime("%Y-%m-%d %H:%M:%S")} #{formatted_offset(false, 'UTC')}" # mimicking Ruby 1.9 Time#to_s format
151
+ end
152
+ end
153
+
154
+ # Replaces <tt>%Z</tt> and <tt>%z</tt> directives with +zone+ and +formatted_offset+, respectively, before passing to
155
+ # Time#strftime, so that zone information is correct
156
+ def strftime(format)
157
+ format = format.gsub('%Z', zone).gsub('%z', formatted_offset(false))
158
+ time.strftime(format)
159
+ end
160
+
161
+ # Use the time in UTC for comparisons.
162
+ def <=>(other)
163
+ utc <=> other
164
+ end
165
+
166
+ def between?(min, max)
167
+ utc.between?(min, max)
168
+ end
169
+
170
+ def past?
171
+ utc.past?
172
+ end
173
+
174
+ def today?
175
+ time.today?
176
+ end
177
+
178
+ def future?
179
+ utc.future?
180
+ end
181
+
182
+ def eql?(other)
183
+ utc == other
184
+ end
185
+
186
+ def +(other)
187
+ # If we're adding a Duration of variable length (i.e., years, months, days), move forward from #time,
188
+ # otherwise move forward from #utc, for accuracy when moving across DST boundaries
189
+ if duration_of_variable_length?(other)
190
+ method_missing(:+, other)
191
+ else
192
+ result = utc.acts_like?(:date) ? utc.since(other) : utc + other rescue utc.since(other)
193
+ result.in_time_zone(time_zone)
194
+ end
195
+ end
196
+
197
+ def -(other)
198
+ # If we're subtracting a Duration of variable length (i.e., years, months, days), move backwards from #time,
199
+ # otherwise move backwards #utc, for accuracy when moving across DST boundaries
200
+ if other.acts_like?(:time)
201
+ utc - other
202
+ elsif duration_of_variable_length?(other)
203
+ method_missing(:-, other)
204
+ else
205
+ result = utc.acts_like?(:date) ? utc.ago(other) : utc - other rescue utc.ago(other)
206
+ result.in_time_zone(time_zone)
207
+ end
208
+ end
209
+
210
+ def since(other)
211
+ # If we're adding a Duration of variable length (i.e., years, months, days), move forward from #time,
212
+ # otherwise move forward from #utc, for accuracy when moving across DST boundaries
213
+ if duration_of_variable_length?(other)
214
+ method_missing(:since, other)
215
+ else
216
+ utc.since(other).in_time_zone(time_zone)
217
+ end
218
+ end
219
+
220
+ def ago(other)
221
+ since(-other)
222
+ end
223
+
224
+ def advance(options)
225
+ # If we're advancing a value of variable length (i.e., years, weeks, months, days), advance from #time,
226
+ # otherwise advance from #utc, for accuracy when moving across DST boundaries
227
+ if options.detect {|k,v| [:years, :weeks, :months, :days].include? k}
228
+ method_missing(:advance, options)
229
+ else
230
+ utc.advance(options).in_time_zone(time_zone)
231
+ end
232
+ end
233
+
234
+ %w(year mon month day mday wday yday hour min sec to_date).each do |method_name|
235
+ class_eval <<-EOV
236
+ def #{method_name}
237
+ time.#{method_name}
238
+ end
239
+ EOV
240
+ end
241
+
242
+ def usec
243
+ time.respond_to?(:usec) ? time.usec : 0
244
+ end
245
+
246
+ def to_a
247
+ [time.sec, time.min, time.hour, time.day, time.mon, time.year, time.wday, time.yday, dst?, zone]
248
+ end
249
+
250
+ def to_f
251
+ utc.to_f
252
+ end
253
+
254
+ def to_i
255
+ utc.to_i
256
+ end
257
+ alias_method :hash, :to_i
258
+ alias_method :tv_sec, :to_i
259
+
260
+ # A TimeWithZone acts like a Time, so just return +self+.
261
+ def to_time
262
+ self
263
+ end
264
+
265
+ def to_datetime
266
+ utc.to_datetime.new_offset(Rational(utc_offset, 86_400))
267
+ end
268
+
269
+ # So that +self+ <tt>acts_like?(:time)</tt>.
270
+ def acts_like_time?
271
+ true
272
+ end
273
+
274
+ # Say we're a Time to thwart type checking.
275
+ def is_a?(klass)
276
+ klass == ::Time || super
277
+ end
278
+ alias_method :kind_of?, :is_a?
279
+
280
+ def freeze
281
+ period; utc; time # preload instance variables before freezing
282
+ super
283
+ end
284
+
285
+ def marshal_dump
286
+ [utc, time_zone.name, time]
287
+ end
288
+
289
+ def marshal_load(variables)
290
+ initialize(variables[0].utc, ::Time.__send__(:get_zone, variables[1]), variables[2].utc)
291
+ end
292
+
293
+ # Ensure proxy class responds to all methods that underlying time instance responds to.
294
+ def respond_to?(sym, include_priv = false)
295
+ # consistently respond false to acts_like?(:date), regardless of whether #time is a Time or DateTime
296
+ return false if sym.to_s == 'acts_like_date?'
297
+ super || time.respond_to?(sym, include_priv)
298
+ end
299
+
300
+ # Send the missing method to +time+ instance, and wrap result in a new TimeWithZone with the existing +time_zone+.
301
+ def method_missing(sym, *args, &block)
302
+ result = time.__send__(sym, *args, &block)
303
+ result.acts_like?(:time) ? self.class.new(nil, time_zone, result) : result
304
+ end
305
+
306
+ private
307
+ def get_period_and_ensure_valid_local_time
308
+ # we don't want a Time.local instance enforcing its own DST rules as well,
309
+ # so transfer time values to a utc constructor if necessary
310
+ @time = transfer_time_values_to_utc_constructor(@time) unless @time.utc?
311
+ begin
312
+ @time_zone.period_for_local(@time)
313
+ rescue ::TZInfo::PeriodNotFound
314
+ # time is in the "spring forward" hour gap, so we're moving the time forward one hour and trying again
315
+ @time += 1.hour
316
+ retry
317
+ end
318
+ end
319
+
320
+ def transfer_time_values_to_utc_constructor(time)
321
+ ::Time.utc_time(time.year, time.month, time.day, time.hour, time.min, time.sec, time.respond_to?(:usec) ? time.usec : 0)
322
+ end
323
+
324
+ def duration_of_variable_length?(obj)
325
+ ActiveSupport::Duration === obj && obj.parts.flatten.detect {|p| [:years, :months, :days].include? p }
326
+ end
327
+ end
328
+ end
@@ -0,0 +1,403 @@
1
+ # The TimeZone class serves as a wrapper around TZInfo::Timezone instances. It allows us to do the following:
2
+ #
3
+ # * Limit the set of zones provided by TZInfo to a meaningful subset of 142 zones.
4
+ # * Retrieve and display zones with a friendlier name (e.g., "Eastern Time (US & Canada)" instead of "America/New_York").
5
+ # * Lazily load TZInfo::Timezone instances only when they're needed.
6
+ # * Create ActiveSupport::TimeWithZone instances via TimeZone's +local+, +parse+, +at+ and +now+ methods.
7
+ #
8
+ # If you set <tt>config.time_zone</tt> in the Rails Initializer, you can access this TimeZone object via <tt>Time.zone</tt>:
9
+ #
10
+ # # environment.rb:
11
+ # Rails::Initializer.run do |config|
12
+ # config.time_zone = "Eastern Time (US & Canada)"
13
+ # end
14
+ #
15
+ # Time.zone # => #<TimeZone:0x514834...>
16
+ # Time.zone.name # => "Eastern Time (US & Canada)"
17
+ # Time.zone.now # => Sun, 18 May 2008 14:30:44 EDT -04:00
18
+ #
19
+ # The version of TZInfo bundled with Active Support only includes the definitions necessary to support the zones
20
+ # defined by the TimeZone class. If you need to use zones that aren't defined by TimeZone, you'll need to install the TZInfo gem
21
+ # (if a recent version of the gem is installed locally, this will be used instead of the bundled version.)
22
+ module ActiveSupport
23
+ class TimeZone
24
+ unless const_defined?(:MAPPING)
25
+ # Keys are Rails TimeZone names, values are TZInfo identifiers
26
+ MAPPING = {
27
+ "International Date Line West" => "Pacific/Midway",
28
+ "Midway Island" => "Pacific/Midway",
29
+ "Samoa" => "Pacific/Pago_Pago",
30
+ "Hawaii" => "Pacific/Honolulu",
31
+ "Alaska" => "America/Juneau",
32
+ "Pacific Time (US & Canada)" => "America/Los_Angeles",
33
+ "Tijuana" => "America/Tijuana",
34
+ "Mountain Time (US & Canada)" => "America/Denver",
35
+ "Arizona" => "America/Phoenix",
36
+ "Chihuahua" => "America/Chihuahua",
37
+ "Mazatlan" => "America/Mazatlan",
38
+ "Central Time (US & Canada)" => "America/Chicago",
39
+ "Saskatchewan" => "America/Regina",
40
+ "Guadalajara" => "America/Mexico_City",
41
+ "Mexico City" => "America/Mexico_City",
42
+ "Monterrey" => "America/Monterrey",
43
+ "Central America" => "America/Guatemala",
44
+ "Eastern Time (US & Canada)" => "America/New_York",
45
+ "Indiana (East)" => "America/Indiana/Indianapolis",
46
+ "Bogota" => "America/Bogota",
47
+ "Lima" => "America/Lima",
48
+ "Quito" => "America/Lima",
49
+ "Atlantic Time (Canada)" => "America/Halifax",
50
+ "Caracas" => "America/Caracas",
51
+ "La Paz" => "America/La_Paz",
52
+ "Santiago" => "America/Santiago",
53
+ "Newfoundland" => "America/St_Johns",
54
+ "Brasilia" => "America/Sao_Paulo",
55
+ "Buenos Aires" => "America/Argentina/Buenos_Aires",
56
+ "Georgetown" => "America/Argentina/San_Juan",
57
+ "Greenland" => "America/Godthab",
58
+ "Mid-Atlantic" => "Atlantic/South_Georgia",
59
+ "Azores" => "Atlantic/Azores",
60
+ "Cape Verde Is." => "Atlantic/Cape_Verde",
61
+ "Dublin" => "Europe/Dublin",
62
+ "Edinburgh" => "Europe/Dublin",
63
+ "Lisbon" => "Europe/Lisbon",
64
+ "London" => "Europe/London",
65
+ "Casablanca" => "Africa/Casablanca",
66
+ "Monrovia" => "Africa/Monrovia",
67
+ "UTC" => "Etc/UTC",
68
+ "Belgrade" => "Europe/Belgrade",
69
+ "Bratislava" => "Europe/Bratislava",
70
+ "Budapest" => "Europe/Budapest",
71
+ "Ljubljana" => "Europe/Ljubljana",
72
+ "Prague" => "Europe/Prague",
73
+ "Sarajevo" => "Europe/Sarajevo",
74
+ "Skopje" => "Europe/Skopje",
75
+ "Warsaw" => "Europe/Warsaw",
76
+ "Zagreb" => "Europe/Zagreb",
77
+ "Brussels" => "Europe/Brussels",
78
+ "Copenhagen" => "Europe/Copenhagen",
79
+ "Madrid" => "Europe/Madrid",
80
+ "Paris" => "Europe/Paris",
81
+ "Amsterdam" => "Europe/Amsterdam",
82
+ "Berlin" => "Europe/Berlin",
83
+ "Bern" => "Europe/Berlin",
84
+ "Rome" => "Europe/Rome",
85
+ "Stockholm" => "Europe/Stockholm",
86
+ "Vienna" => "Europe/Vienna",
87
+ "West Central Africa" => "Africa/Algiers",
88
+ "Bucharest" => "Europe/Bucharest",
89
+ "Cairo" => "Africa/Cairo",
90
+ "Helsinki" => "Europe/Helsinki",
91
+ "Kyev" => "Europe/Kiev",
92
+ "Riga" => "Europe/Riga",
93
+ "Sofia" => "Europe/Sofia",
94
+ "Tallinn" => "Europe/Tallinn",
95
+ "Vilnius" => "Europe/Vilnius",
96
+ "Athens" => "Europe/Athens",
97
+ "Istanbul" => "Europe/Istanbul",
98
+ "Minsk" => "Europe/Minsk",
99
+ "Jerusalem" => "Asia/Jerusalem",
100
+ "Harare" => "Africa/Harare",
101
+ "Pretoria" => "Africa/Johannesburg",
102
+ "Moscow" => "Europe/Moscow",
103
+ "St. Petersburg" => "Europe/Moscow",
104
+ "Volgograd" => "Europe/Moscow",
105
+ "Kuwait" => "Asia/Kuwait",
106
+ "Riyadh" => "Asia/Riyadh",
107
+ "Nairobi" => "Africa/Nairobi",
108
+ "Baghdad" => "Asia/Baghdad",
109
+ "Tehran" => "Asia/Tehran",
110
+ "Abu Dhabi" => "Asia/Muscat",
111
+ "Muscat" => "Asia/Muscat",
112
+ "Baku" => "Asia/Baku",
113
+ "Tbilisi" => "Asia/Tbilisi",
114
+ "Yerevan" => "Asia/Yerevan",
115
+ "Kabul" => "Asia/Kabul",
116
+ "Ekaterinburg" => "Asia/Yekaterinburg",
117
+ "Islamabad" => "Asia/Karachi",
118
+ "Karachi" => "Asia/Karachi",
119
+ "Tashkent" => "Asia/Tashkent",
120
+ "Chennai" => "Asia/Kolkata",
121
+ "Kolkata" => "Asia/Kolkata",
122
+ "Mumbai" => "Asia/Kolkata",
123
+ "New Delhi" => "Asia/Kolkata",
124
+ "Kathmandu" => "Asia/Katmandu",
125
+ "Astana" => "Asia/Dhaka",
126
+ "Dhaka" => "Asia/Dhaka",
127
+ "Sri Jayawardenepura" => "Asia/Colombo",
128
+ "Almaty" => "Asia/Almaty",
129
+ "Novosibirsk" => "Asia/Novosibirsk",
130
+ "Rangoon" => "Asia/Rangoon",
131
+ "Bangkok" => "Asia/Bangkok",
132
+ "Hanoi" => "Asia/Bangkok",
133
+ "Jakarta" => "Asia/Jakarta",
134
+ "Krasnoyarsk" => "Asia/Krasnoyarsk",
135
+ "Beijing" => "Asia/Shanghai",
136
+ "Chongqing" => "Asia/Chongqing",
137
+ "Hong Kong" => "Asia/Hong_Kong",
138
+ "Urumqi" => "Asia/Urumqi",
139
+ "Kuala Lumpur" => "Asia/Kuala_Lumpur",
140
+ "Singapore" => "Asia/Singapore",
141
+ "Taipei" => "Asia/Taipei",
142
+ "Perth" => "Australia/Perth",
143
+ "Irkutsk" => "Asia/Irkutsk",
144
+ "Ulaan Bataar" => "Asia/Ulaanbaatar",
145
+ "Seoul" => "Asia/Seoul",
146
+ "Osaka" => "Asia/Tokyo",
147
+ "Sapporo" => "Asia/Tokyo",
148
+ "Tokyo" => "Asia/Tokyo",
149
+ "Yakutsk" => "Asia/Yakutsk",
150
+ "Darwin" => "Australia/Darwin",
151
+ "Adelaide" => "Australia/Adelaide",
152
+ "Canberra" => "Australia/Melbourne",
153
+ "Melbourne" => "Australia/Melbourne",
154
+ "Sydney" => "Australia/Sydney",
155
+ "Brisbane" => "Australia/Brisbane",
156
+ "Hobart" => "Australia/Hobart",
157
+ "Vladivostok" => "Asia/Vladivostok",
158
+ "Guam" => "Pacific/Guam",
159
+ "Port Moresby" => "Pacific/Port_Moresby",
160
+ "Magadan" => "Asia/Magadan",
161
+ "Solomon Is." => "Asia/Magadan",
162
+ "New Caledonia" => "Pacific/Noumea",
163
+ "Fiji" => "Pacific/Fiji",
164
+ "Kamchatka" => "Asia/Kamchatka",
165
+ "Marshall Is." => "Pacific/Majuro",
166
+ "Auckland" => "Pacific/Auckland",
167
+ "Wellington" => "Pacific/Auckland",
168
+ "Nuku'alofa" => "Pacific/Tongatapu"
169
+ }.each { |name, zone| name.freeze; zone.freeze }
170
+ MAPPING.freeze
171
+ end
172
+
173
+ include Comparable
174
+ attr_reader :name
175
+
176
+ # Create a new TimeZone object with the given name and offset. The
177
+ # offset is the number of seconds that this time zone is offset from UTC
178
+ # (GMT). Seconds were chosen as the offset unit because that is the unit that
179
+ # Ruby uses to represent time zone offsets (see Time#utc_offset).
180
+ def initialize(name, utc_offset, tzinfo = nil)
181
+ @name = name
182
+ @utc_offset = utc_offset
183
+ @tzinfo = tzinfo
184
+ end
185
+
186
+ def utc_offset
187
+ @utc_offset ||= tzinfo.current_period.utc_offset
188
+ end
189
+
190
+ # Returns the offset of this time zone as a formatted string, of the
191
+ # format "+HH:MM".
192
+ def formatted_offset(colon=true, alternate_utc_string = nil)
193
+ utc_offset == 0 && alternate_utc_string || utc_offset.to_utc_offset_s(colon)
194
+ end
195
+
196
+ # Compare this time zone to the parameter. The two are comapred first on
197
+ # their offsets, and then by name.
198
+ def <=>(zone)
199
+ result = (utc_offset <=> zone.utc_offset)
200
+ result = (name <=> zone.name) if result == 0
201
+ result
202
+ end
203
+
204
+ # Compare #name and TZInfo identifier to a supplied regexp, returning true
205
+ # if a match is found.
206
+ def =~(re)
207
+ return true if name =~ re || MAPPING[name] =~ re
208
+ end
209
+
210
+ # Returns a textual representation of this time zone.
211
+ def to_s
212
+ "(GMT#{formatted_offset}) #{name}"
213
+ end
214
+
215
+ # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from given values. Example:
216
+ #
217
+ # Time.zone = "Hawaii" # => "Hawaii"
218
+ # Time.zone.local(2007, 2, 1, 15, 30, 45) # => Thu, 01 Feb 2007 15:30:45 HST -10:00
219
+ def local(*args)
220
+ time = Time.utc_time(*args)
221
+ ActiveSupport::TimeWithZone.new(nil, self, time)
222
+ end
223
+
224
+ # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from number of seconds since the Unix epoch. Example:
225
+ #
226
+ # Time.zone = "Hawaii" # => "Hawaii"
227
+ # Time.utc(2000).to_f # => 946684800.0
228
+ # Time.zone.at(946684800.0) # => Fri, 31 Dec 1999 14:00:00 HST -10:00
229
+ def at(secs)
230
+ utc = Time.at(secs).utc rescue DateTime.civil(1970).since(secs)
231
+ utc.in_time_zone(self)
232
+ end
233
+
234
+ # Method for creating new ActiveSupport::TimeWithZone instance in time zone of +self+ from parsed string. Example:
235
+ #
236
+ # Time.zone = "Hawaii" # => "Hawaii"
237
+ # Time.zone.parse('1999-12-31 14:00:00') # => Fri, 31 Dec 1999 14:00:00 HST -10:00
238
+ #
239
+ # If upper components are missing from the string, they are supplied from TimeZone#now:
240
+ #
241
+ # Time.zone.now # => Fri, 31 Dec 1999 14:00:00 HST -10:00
242
+ # Time.zone.parse('22:30:00') # => Fri, 31 Dec 1999 22:30:00 HST -10:00
243
+ def parse(str, now=now)
244
+ date_parts = Date._parse(str)
245
+ return if date_parts.blank?
246
+ time = Time.parse(str, now) rescue DateTime.parse(str)
247
+ if date_parts[:offset].nil?
248
+ ActiveSupport::TimeWithZone.new(nil, self, time)
249
+ else
250
+ time.in_time_zone(self)
251
+ end
252
+ end
253
+
254
+ # Returns an ActiveSupport::TimeWithZone instance representing the current time
255
+ # in the time zone represented by +self+. Example:
256
+ #
257
+ # Time.zone = 'Hawaii' # => "Hawaii"
258
+ # Time.zone.now # => Wed, 23 Jan 2008 20:24:27 HST -10:00
259
+ def now
260
+ Time.now.utc.in_time_zone(self)
261
+ end
262
+
263
+ # Return the current date in this time zone.
264
+ def today
265
+ tzinfo.now.to_date
266
+ end
267
+
268
+ # Adjust the given time to the simultaneous time in the time zone represented by +self+. Returns a
269
+ # Time.utc() instance -- if you want an ActiveSupport::TimeWithZone instance, use Time#in_time_zone() instead.
270
+ def utc_to_local(time)
271
+ tzinfo.utc_to_local(time)
272
+ end
273
+
274
+ # Adjust the given time to the simultaneous time in UTC. Returns a Time.utc() instance.
275
+ def local_to_utc(time, dst=true)
276
+ tzinfo.local_to_utc(time, dst)
277
+ end
278
+
279
+ # Available so that TimeZone instances respond like TZInfo::Timezone instances
280
+ def period_for_utc(time)
281
+ tzinfo.period_for_utc(time)
282
+ end
283
+
284
+ # Available so that TimeZone instances respond like TZInfo::Timezone instances
285
+ def period_for_local(time, dst=true)
286
+ tzinfo.period_for_local(time, dst)
287
+ end
288
+
289
+ # TODO: Preload instead of lazy load for thread safety
290
+ def tzinfo
291
+ @tzinfo ||= TZInfo::Timezone.get(MAPPING[name])
292
+ end
293
+
294
+ unless const_defined?(:ZONES)
295
+ ZONES = []
296
+ ZONES_MAP = {}
297
+ [[-39_600, "International Date Line West", "Midway Island", "Samoa" ],
298
+ [-36_000, "Hawaii" ],
299
+ [-32_400, "Alaska" ],
300
+ [-28_800, "Pacific Time (US & Canada)", "Tijuana" ],
301
+ [-25_200, "Mountain Time (US & Canada)", "Chihuahua", "Mazatlan",
302
+ "Arizona" ],
303
+ [-21_600, "Central Time (US & Canada)", "Saskatchewan", "Guadalajara",
304
+ "Mexico City", "Monterrey", "Central America" ],
305
+ [-18_000, "Eastern Time (US & Canada)", "Indiana (East)", "Bogota",
306
+ "Lima", "Quito" ],
307
+ [-16_200, "Caracas" ],
308
+ [-14_400, "Atlantic Time (Canada)", "La Paz", "Santiago" ],
309
+ [-12_600, "Newfoundland" ],
310
+ [-10_800, "Brasilia", "Buenos Aires", "Georgetown", "Greenland" ],
311
+ [ -7_200, "Mid-Atlantic" ],
312
+ [ -3_600, "Azores", "Cape Verde Is." ],
313
+ [ 0, "Dublin", "Edinburgh", "Lisbon", "London", "Casablanca",
314
+ "Monrovia", "UTC" ],
315
+ [ 3_600, "Belgrade", "Bratislava", "Budapest", "Ljubljana", "Prague",
316
+ "Sarajevo", "Skopje", "Warsaw", "Zagreb", "Brussels",
317
+ "Copenhagen", "Madrid", "Paris", "Amsterdam", "Berlin",
318
+ "Bern", "Rome", "Stockholm", "Vienna",
319
+ "West Central Africa" ],
320
+ [ 7_200, "Bucharest", "Cairo", "Helsinki", "Kyev", "Riga", "Sofia",
321
+ "Tallinn", "Vilnius", "Athens", "Istanbul", "Minsk",
322
+ "Jerusalem", "Harare", "Pretoria" ],
323
+ [ 10_800, "Moscow", "St. Petersburg", "Volgograd", "Kuwait", "Riyadh",
324
+ "Nairobi", "Baghdad" ],
325
+ [ 12_600, "Tehran" ],
326
+ [ 14_400, "Abu Dhabi", "Muscat", "Baku", "Tbilisi", "Yerevan" ],
327
+ [ 16_200, "Kabul" ],
328
+ [ 18_000, "Ekaterinburg", "Islamabad", "Karachi", "Tashkent" ],
329
+ [ 19_800, "Chennai", "Kolkata", "Mumbai", "New Delhi", "Sri Jayawardenepura" ],
330
+ [ 20_700, "Kathmandu" ],
331
+ [ 21_600, "Astana", "Dhaka", "Almaty",
332
+ "Novosibirsk" ],
333
+ [ 23_400, "Rangoon" ],
334
+ [ 25_200, "Bangkok", "Hanoi", "Jakarta", "Krasnoyarsk" ],
335
+ [ 28_800, "Beijing", "Chongqing", "Hong Kong", "Urumqi",
336
+ "Kuala Lumpur", "Singapore", "Taipei", "Perth", "Irkutsk",
337
+ "Ulaan Bataar" ],
338
+ [ 32_400, "Seoul", "Osaka", "Sapporo", "Tokyo", "Yakutsk" ],
339
+ [ 34_200, "Darwin", "Adelaide" ],
340
+ [ 36_000, "Canberra", "Melbourne", "Sydney", "Brisbane", "Hobart",
341
+ "Vladivostok", "Guam", "Port Moresby" ],
342
+ [ 39_600, "Magadan", "Solomon Is.", "New Caledonia" ],
343
+ [ 43_200, "Fiji", "Kamchatka", "Marshall Is.", "Auckland",
344
+ "Wellington" ],
345
+ [ 46_800, "Nuku'alofa" ]].
346
+ each do |offset, *places|
347
+ places.each do |place|
348
+ place.freeze
349
+ zone = new(place, offset)
350
+ ZONES << zone
351
+ ZONES_MAP[place] = zone
352
+ end
353
+ end
354
+ ZONES.sort!
355
+ ZONES.freeze
356
+ ZONES_MAP.freeze
357
+
358
+ US_ZONES = ZONES.find_all { |z| z.name =~ /US|Arizona|Indiana|Hawaii|Alaska/ }
359
+ US_ZONES.freeze
360
+ end
361
+
362
+ class << self
363
+ alias_method :create, :new
364
+
365
+ # Return a TimeZone instance with the given name, or +nil+ if no
366
+ # such TimeZone instance exists. (This exists to support the use of
367
+ # this class with the +composed_of+ macro.)
368
+ def new(name)
369
+ self[name]
370
+ end
371
+
372
+ # Return an array of all TimeZone objects. There are multiple
373
+ # TimeZone objects per time zone, in many cases, to make it easier
374
+ # for users to find their own time zone.
375
+ def all
376
+ ZONES
377
+ end
378
+
379
+ # Locate a specific time zone object. If the argument is a string, it
380
+ # is interpreted to mean the name of the timezone to locate. If it is a
381
+ # numeric value it is either the hour offset, or the second offset, of the
382
+ # timezone to find. (The first one with that offset will be returned.)
383
+ # Returns +nil+ if no such time zone is known to the system.
384
+ def [](arg)
385
+ case arg
386
+ when String
387
+ ZONES_MAP[arg]
388
+ when Numeric, ActiveSupport::Duration
389
+ arg *= 3600 if arg.abs <= 13
390
+ all.find { |z| z.utc_offset == arg.to_i }
391
+ else
392
+ raise ArgumentError, "invalid argument to TimeZone[]: #{arg.inspect}"
393
+ end
394
+ end
395
+
396
+ # A convenience method for returning a collection of TimeZone objects
397
+ # for time zones in the USA.
398
+ def us_zones
399
+ US_ZONES
400
+ end
401
+ end
402
+ end
403
+ end