mack-facets 0.8.2 → 0.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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