activesupport 1.2.4 → 8.1.2

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 (309) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +505 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README.rdoc +40 -0
  5. data/lib/active_support/actionable_error.rb +50 -0
  6. data/lib/active_support/all.rb +5 -0
  7. data/lib/active_support/array_inquirer.rb +50 -0
  8. data/lib/active_support/backtrace_cleaner.rb +234 -0
  9. data/lib/active_support/benchmark.rb +21 -0
  10. data/lib/active_support/benchmarkable.rb +53 -0
  11. data/lib/active_support/broadcast_logger.rb +238 -0
  12. data/lib/active_support/builder.rb +8 -0
  13. data/lib/active_support/cache/coder.rb +153 -0
  14. data/lib/active_support/cache/entry.rb +134 -0
  15. data/lib/active_support/cache/file_store.rb +244 -0
  16. data/lib/active_support/cache/mem_cache_store.rb +288 -0
  17. data/lib/active_support/cache/memory_store.rb +264 -0
  18. data/lib/active_support/cache/null_store.rb +62 -0
  19. data/lib/active_support/cache/redis_cache_store.rb +498 -0
  20. data/lib/active_support/cache/serializer_with_fallback.rb +152 -0
  21. data/lib/active_support/cache/strategy/local_cache.rb +246 -0
  22. data/lib/active_support/cache/strategy/local_cache_middleware.rb +45 -0
  23. data/lib/active_support/cache.rb +1170 -0
  24. data/lib/active_support/callbacks.rb +960 -0
  25. data/lib/active_support/class_attribute.rb +33 -0
  26. data/lib/active_support/code_generator.rb +79 -0
  27. data/lib/active_support/concern.rb +217 -0
  28. data/lib/active_support/concurrency/load_interlock_aware_monitor.rb +18 -0
  29. data/lib/active_support/concurrency/null_lock.rb +13 -0
  30. data/lib/active_support/concurrency/share_lock.rb +225 -0
  31. data/lib/active_support/concurrency/thread_monitor.rb +55 -0
  32. data/lib/active_support/configurable.rb +193 -0
  33. data/lib/active_support/configuration_file.rb +60 -0
  34. data/lib/active_support/continuous_integration.rb +145 -0
  35. data/lib/active_support/core_ext/array/access.rb +100 -0
  36. data/lib/active_support/core_ext/array/conversions.rb +209 -26
  37. data/lib/active_support/core_ext/array/extract.rb +21 -0
  38. data/lib/active_support/core_ext/array/extract_options.rb +31 -0
  39. data/lib/active_support/core_ext/array/grouping.rb +109 -0
  40. data/lib/active_support/core_ext/array/inquiry.rb +19 -0
  41. data/lib/active_support/core_ext/array/wrap.rb +48 -0
  42. data/lib/active_support/core_ext/array.rb +8 -4
  43. data/lib/active_support/core_ext/benchmark.rb +6 -0
  44. data/lib/active_support/core_ext/big_decimal/conversions.rb +14 -0
  45. data/lib/active_support/core_ext/big_decimal.rb +3 -0
  46. data/lib/active_support/core_ext/class/attribute.rb +137 -0
  47. data/lib/active_support/core_ext/class/attribute_accessors.rb +6 -0
  48. data/lib/active_support/core_ext/class/subclasses.rb +24 -0
  49. data/lib/active_support/core_ext/class.rb +4 -0
  50. data/lib/active_support/core_ext/date/acts_like.rb +10 -0
  51. data/lib/active_support/core_ext/date/blank.rb +18 -0
  52. data/lib/active_support/core_ext/date/calculations.rb +161 -0
  53. data/lib/active_support/core_ext/date/conversions.rb +95 -28
  54. data/lib/active_support/core_ext/date/zones.rb +8 -0
  55. data/lib/active_support/core_ext/date.rb +6 -5
  56. data/lib/active_support/core_ext/date_and_time/calculations.rb +374 -0
  57. data/lib/active_support/core_ext/date_and_time/compatibility.rb +23 -0
  58. data/lib/active_support/core_ext/date_and_time/zones.rb +40 -0
  59. data/lib/active_support/core_ext/date_time/acts_like.rb +16 -0
  60. data/lib/active_support/core_ext/date_time/blank.rb +18 -0
  61. data/lib/active_support/core_ext/date_time/calculations.rb +215 -0
  62. data/lib/active_support/core_ext/date_time/compatibility.rb +16 -0
  63. data/lib/active_support/core_ext/date_time/conversions.rb +108 -0
  64. data/lib/active_support/core_ext/date_time.rb +7 -0
  65. data/lib/active_support/core_ext/digest/uuid.rb +76 -0
  66. data/lib/active_support/core_ext/digest.rb +3 -0
  67. data/lib/active_support/core_ext/enumerable.rb +277 -7
  68. data/lib/active_support/core_ext/erb/util.rb +201 -0
  69. data/lib/active_support/core_ext/file/atomic.rb +72 -0
  70. data/lib/active_support/core_ext/file.rb +3 -0
  71. data/lib/active_support/core_ext/hash/conversions.rb +262 -0
  72. data/lib/active_support/core_ext/hash/deep_merge.rb +43 -0
  73. data/lib/active_support/core_ext/hash/deep_transform_values.rb +46 -0
  74. data/lib/active_support/core_ext/hash/except.rb +12 -0
  75. data/lib/active_support/core_ext/hash/indifferent_access.rb +19 -55
  76. data/lib/active_support/core_ext/hash/keys.rb +134 -44
  77. data/lib/active_support/core_ext/hash/reverse_merge.rb +22 -22
  78. data/lib/active_support/core_ext/hash/slice.rb +27 -0
  79. data/lib/active_support/core_ext/hash.rb +9 -8
  80. data/lib/active_support/core_ext/integer/inflections.rb +29 -13
  81. data/lib/active_support/core_ext/integer/multiple.rb +12 -0
  82. data/lib/active_support/core_ext/integer/time.rb +22 -0
  83. data/lib/active_support/core_ext/integer.rb +4 -6
  84. data/lib/active_support/core_ext/kernel/concern.rb +14 -0
  85. data/lib/active_support/core_ext/kernel/reporting.rb +45 -0
  86. data/lib/active_support/core_ext/kernel/singleton_class.rb +8 -0
  87. data/lib/active_support/core_ext/kernel.rb +4 -78
  88. data/lib/active_support/core_ext/load_error.rb +6 -35
  89. data/lib/active_support/core_ext/module/aliasing.rb +31 -0
  90. data/lib/active_support/core_ext/module/anonymous.rb +30 -0
  91. data/lib/active_support/core_ext/module/attr_internal.rb +48 -0
  92. data/lib/active_support/core_ext/module/attribute_accessors.rb +214 -0
  93. data/lib/active_support/core_ext/module/attribute_accessors_per_thread.rb +175 -0
  94. data/lib/active_support/core_ext/module/concerning.rb +140 -0
  95. data/lib/active_support/core_ext/module/delegation.rb +225 -0
  96. data/lib/active_support/core_ext/module/deprecation.rb +25 -0
  97. data/lib/active_support/core_ext/module/introspection.rb +65 -0
  98. data/lib/active_support/core_ext/module/redefine_method.rb +40 -0
  99. data/lib/active_support/core_ext/module/remove_method.rb +17 -0
  100. data/lib/active_support/core_ext/module.rb +13 -0
  101. data/lib/active_support/core_ext/name_error.rb +59 -0
  102. data/lib/active_support/core_ext/numeric/bytes.rb +73 -42
  103. data/lib/active_support/core_ext/numeric/conversions.rb +145 -0
  104. data/lib/active_support/core_ext/numeric/time.rb +64 -57
  105. data/lib/active_support/core_ext/numeric.rb +4 -6
  106. data/lib/active_support/core_ext/object/acts_like.rb +45 -0
  107. data/lib/active_support/core_ext/object/blank.rb +199 -0
  108. data/lib/active_support/core_ext/object/conversions.rb +6 -0
  109. data/lib/active_support/core_ext/object/deep_dup.rb +71 -0
  110. data/lib/active_support/core_ext/object/duplicable.rb +69 -0
  111. data/lib/active_support/core_ext/object/inclusion.rb +37 -0
  112. data/lib/active_support/core_ext/object/instance_variables.rb +32 -0
  113. data/lib/active_support/core_ext/object/json.rb +267 -0
  114. data/lib/active_support/core_ext/object/to_param.rb +3 -0
  115. data/lib/active_support/core_ext/object/to_query.rb +93 -0
  116. data/lib/active_support/core_ext/object/try.rb +158 -0
  117. data/lib/active_support/core_ext/object/with.rb +46 -0
  118. data/lib/active_support/core_ext/object/with_options.rb +101 -0
  119. data/lib/active_support/core_ext/object.rb +17 -0
  120. data/lib/active_support/core_ext/pathname/blank.rb +20 -0
  121. data/lib/active_support/core_ext/pathname/existence.rb +23 -0
  122. data/lib/active_support/core_ext/pathname.rb +4 -0
  123. data/lib/active_support/core_ext/range/compare_range.rb +57 -0
  124. data/lib/active_support/core_ext/range/conversions.rb +58 -17
  125. data/lib/active_support/core_ext/range/overlap.rb +40 -0
  126. data/lib/active_support/core_ext/range/sole.rb +17 -0
  127. data/lib/active_support/core_ext/range.rb +5 -4
  128. data/lib/active_support/core_ext/regexp.rb +14 -0
  129. data/lib/active_support/core_ext/securerandom.rb +57 -0
  130. data/lib/active_support/core_ext/string/access.rb +93 -56
  131. data/lib/active_support/core_ext/string/behavior.rb +8 -0
  132. data/lib/active_support/core_ext/string/conversions.rb +57 -16
  133. data/lib/active_support/core_ext/string/exclude.rb +13 -0
  134. data/lib/active_support/core_ext/string/filters.rb +151 -0
  135. data/lib/active_support/core_ext/string/indent.rb +45 -0
  136. data/lib/active_support/core_ext/string/inflections.rb +297 -54
  137. data/lib/active_support/core_ext/string/inquiry.rb +16 -0
  138. data/lib/active_support/core_ext/string/multibyte.rb +67 -0
  139. data/lib/active_support/core_ext/string/output_safety.rb +235 -0
  140. data/lib/active_support/core_ext/string/starts_ends_with.rb +4 -18
  141. data/lib/active_support/core_ext/string/strip.rb +27 -0
  142. data/lib/active_support/core_ext/string/zones.rb +16 -0
  143. data/lib/active_support/core_ext/string.rb +14 -10
  144. data/lib/active_support/core_ext/symbol/starts_ends_with.rb +6 -0
  145. data/lib/active_support/core_ext/symbol.rb +3 -0
  146. data/lib/active_support/core_ext/thread/backtrace/location.rb +7 -0
  147. data/lib/active_support/core_ext/time/acts_like.rb +10 -0
  148. data/lib/active_support/core_ext/time/calculations.rb +358 -153
  149. data/lib/active_support/core_ext/time/compatibility.rb +15 -0
  150. data/lib/active_support/core_ext/time/conversions.rb +69 -30
  151. data/lib/active_support/core_ext/time/zones.rb +97 -0
  152. data/lib/active_support/core_ext/time.rb +6 -6
  153. data/lib/active_support/core_ext.rb +5 -1
  154. data/lib/active_support/current_attributes/test_helper.rb +13 -0
  155. data/lib/active_support/current_attributes.rb +243 -0
  156. data/lib/active_support/deep_mergeable.rb +53 -0
  157. data/lib/active_support/delegation.rb +183 -0
  158. data/lib/active_support/dependencies/autoload.rb +72 -0
  159. data/lib/active_support/dependencies/interlock.rb +55 -0
  160. data/lib/active_support/dependencies/require_dependency.rb +28 -0
  161. data/lib/active_support/dependencies.rb +84 -222
  162. data/lib/active_support/deprecation/behaviors.rb +148 -0
  163. data/lib/active_support/deprecation/constant_accessor.rb +74 -0
  164. data/lib/active_support/deprecation/deprecators.rb +104 -0
  165. data/lib/active_support/deprecation/disallowed.rb +54 -0
  166. data/lib/active_support/deprecation/method_wrappers.rb +68 -0
  167. data/lib/active_support/deprecation/proxy_wrappers.rb +189 -0
  168. data/lib/active_support/deprecation/reporting.rb +162 -0
  169. data/lib/active_support/deprecation.rb +81 -0
  170. data/lib/active_support/deprecator.rb +7 -0
  171. data/lib/active_support/descendants_tracker.rb +112 -0
  172. data/lib/active_support/digest.rb +22 -0
  173. data/lib/active_support/duration/iso8601_parser.rb +123 -0
  174. data/lib/active_support/duration/iso8601_serializer.rb +64 -0
  175. data/lib/active_support/duration.rb +524 -0
  176. data/lib/active_support/editor.rb +70 -0
  177. data/lib/active_support/encrypted_configuration.rb +126 -0
  178. data/lib/active_support/encrypted_file.rb +133 -0
  179. data/lib/active_support/environment_inquirer.rb +40 -0
  180. data/lib/active_support/error_reporter/test_helper.rb +15 -0
  181. data/lib/active_support/error_reporter.rb +318 -0
  182. data/lib/active_support/event_reporter/test_helper.rb +32 -0
  183. data/lib/active_support/event_reporter.rb +592 -0
  184. data/lib/active_support/evented_file_update_checker.rb +185 -0
  185. data/lib/active_support/execution_context/test_helper.rb +13 -0
  186. data/lib/active_support/execution_context.rb +110 -0
  187. data/lib/active_support/execution_wrapper.rb +150 -0
  188. data/lib/active_support/executor/test_helper.rb +7 -0
  189. data/lib/active_support/executor.rb +8 -0
  190. data/lib/active_support/file_update_checker.rb +166 -0
  191. data/lib/active_support/fork_tracker.rb +43 -0
  192. data/lib/active_support/gem_version.rb +17 -0
  193. data/lib/active_support/gzip.rb +41 -0
  194. data/lib/active_support/hash_with_indifferent_access.rb +464 -0
  195. data/lib/active_support/html_safe_translation.rb +56 -0
  196. data/lib/active_support/i18n.rb +17 -0
  197. data/lib/active_support/i18n_railtie.rb +140 -0
  198. data/lib/active_support/inflections.rb +68 -49
  199. data/lib/active_support/inflector/inflections.rb +290 -0
  200. data/lib/active_support/inflector/methods.rb +387 -0
  201. data/lib/active_support/inflector/transliterate.rb +147 -0
  202. data/lib/active_support/inflector.rb +7 -164
  203. data/lib/active_support/isolated_execution_state.rb +76 -0
  204. data/lib/active_support/json/decoding.rb +78 -0
  205. data/lib/active_support/json/encoding.rb +256 -0
  206. data/lib/active_support/json.rb +4 -0
  207. data/lib/active_support/key_generator.rb +66 -0
  208. data/lib/active_support/lazy_load_hooks.rb +107 -0
  209. data/lib/active_support/locale/en.rb +33 -0
  210. data/lib/active_support/locale/en.yml +141 -0
  211. data/lib/active_support/log_subscriber/test_helper.rb +106 -0
  212. data/lib/active_support/log_subscriber.rb +188 -0
  213. data/lib/active_support/logger.rb +55 -0
  214. data/lib/active_support/logger_silence.rb +21 -0
  215. data/lib/active_support/logger_thread_safe_level.rb +50 -0
  216. data/lib/active_support/message_encryptor.rb +374 -0
  217. data/lib/active_support/message_encryptors.rb +193 -0
  218. data/lib/active_support/message_pack/cache_serializer.rb +23 -0
  219. data/lib/active_support/message_pack/extensions.rb +310 -0
  220. data/lib/active_support/message_pack/serializer.rb +63 -0
  221. data/lib/active_support/message_pack.rb +50 -0
  222. data/lib/active_support/message_verifier.rb +377 -0
  223. data/lib/active_support/message_verifiers.rb +189 -0
  224. data/lib/active_support/messages/codec.rb +65 -0
  225. data/lib/active_support/messages/metadata.rb +146 -0
  226. data/lib/active_support/messages/rotation_configuration.rb +23 -0
  227. data/lib/active_support/messages/rotation_coordinator.rb +102 -0
  228. data/lib/active_support/messages/rotator.rb +69 -0
  229. data/lib/active_support/messages/serializer_with_fallback.rb +158 -0
  230. data/lib/active_support/multibyte/chars.rb +188 -0
  231. data/lib/active_support/multibyte/unicode.rb +42 -0
  232. data/lib/active_support/multibyte.rb +27 -0
  233. data/lib/active_support/notifications/fanout.rb +467 -0
  234. data/lib/active_support/notifications/instrumenter.rb +240 -0
  235. data/lib/active_support/notifications.rb +281 -0
  236. data/lib/active_support/number_helper/number_converter.rb +190 -0
  237. data/lib/active_support/number_helper/number_to_currency_converter.rb +46 -0
  238. data/lib/active_support/number_helper/number_to_delimited_converter.rb +30 -0
  239. data/lib/active_support/number_helper/number_to_human_converter.rb +69 -0
  240. data/lib/active_support/number_helper/number_to_human_size_converter.rb +60 -0
  241. data/lib/active_support/number_helper/number_to_percentage_converter.rb +16 -0
  242. data/lib/active_support/number_helper/number_to_phone_converter.rb +60 -0
  243. data/lib/active_support/number_helper/number_to_rounded_converter.rb +59 -0
  244. data/lib/active_support/number_helper/rounding_helper.rb +46 -0
  245. data/lib/active_support/number_helper.rb +479 -0
  246. data/lib/active_support/option_merger.rb +38 -0
  247. data/lib/active_support/ordered_hash.rb +50 -0
  248. data/lib/active_support/ordered_options.rb +141 -25
  249. data/lib/active_support/parameter_filter.rb +157 -0
  250. data/lib/active_support/rails.rb +26 -0
  251. data/lib/active_support/railtie.rb +180 -0
  252. data/lib/active_support/reloader.rb +138 -0
  253. data/lib/active_support/rescuable.rb +176 -0
  254. data/lib/active_support/secure_compare_rotator.rb +58 -0
  255. data/lib/active_support/security_utils.rb +38 -0
  256. data/lib/active_support/string_inquirer.rb +35 -0
  257. data/lib/active_support/structured_event_subscriber.rb +99 -0
  258. data/lib/active_support/subscriber.rb +141 -0
  259. data/lib/active_support/syntax_error_proxy.rb +67 -0
  260. data/lib/active_support/tagged_logging.rb +157 -0
  261. data/lib/active_support/test_case.rb +365 -0
  262. data/lib/active_support/testing/assertions.rb +369 -0
  263. data/lib/active_support/testing/autorun.rb +10 -0
  264. data/lib/active_support/testing/constant_lookup.rb +51 -0
  265. data/lib/active_support/testing/constant_stubbing.rb +54 -0
  266. data/lib/active_support/testing/declarative.rb +28 -0
  267. data/lib/active_support/testing/deprecation.rb +82 -0
  268. data/lib/active_support/testing/error_reporter_assertions.rb +124 -0
  269. data/lib/active_support/testing/event_reporter_assertions.rb +227 -0
  270. data/lib/active_support/testing/file_fixtures.rb +38 -0
  271. data/lib/active_support/testing/isolation.rb +121 -0
  272. data/lib/active_support/testing/method_call_assertions.rb +69 -0
  273. data/lib/active_support/testing/notification_assertions.rb +92 -0
  274. data/lib/active_support/testing/parallelization/server.rb +98 -0
  275. data/lib/active_support/testing/parallelization/worker.rb +107 -0
  276. data/lib/active_support/testing/parallelization.rb +79 -0
  277. data/lib/active_support/testing/parallelize_executor.rb +81 -0
  278. data/lib/active_support/testing/setup_and_teardown.rb +57 -0
  279. data/lib/active_support/testing/stream.rb +41 -0
  280. data/lib/active_support/testing/tagged_logging.rb +27 -0
  281. data/lib/active_support/testing/tests_without_assertions.rb +19 -0
  282. data/lib/active_support/testing/time_helpers.rb +273 -0
  283. data/lib/active_support/time.rb +20 -0
  284. data/lib/active_support/time_with_zone.rb +613 -0
  285. data/lib/active_support/values/time_zone.rb +599 -158
  286. data/lib/active_support/version.rb +7 -6
  287. data/lib/active_support/xml_mini/jdom.rb +175 -0
  288. data/lib/active_support/xml_mini/libxml.rb +80 -0
  289. data/lib/active_support/xml_mini/libxmlsax.rb +83 -0
  290. data/lib/active_support/xml_mini/nokogiri.rb +83 -0
  291. data/lib/active_support/xml_mini/nokogirisax.rb +86 -0
  292. data/lib/active_support/xml_mini/rexml.rb +137 -0
  293. data/lib/active_support/xml_mini.rb +212 -0
  294. data/lib/active_support.rb +122 -10
  295. metadata +524 -93
  296. data/CHANGELOG +0 -283
  297. data/lib/active_support/binding_of_caller.rb +0 -84
  298. data/lib/active_support/breakpoint.rb +0 -523
  299. data/lib/active_support/class_attribute_accessors.rb +0 -57
  300. data/lib/active_support/class_inheritable_attributes.rb +0 -117
  301. data/lib/active_support/clean_logger.rb +0 -36
  302. data/lib/active_support/core_ext/blank.rb +0 -38
  303. data/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +0 -14
  304. data/lib/active_support/core_ext/cgi.rb +0 -5
  305. data/lib/active_support/core_ext/exception.rb +0 -29
  306. data/lib/active_support/core_ext/integer/even_odd.rb +0 -24
  307. data/lib/active_support/core_ext/object_and_class.rb +0 -44
  308. data/lib/active_support/module_attribute_accessors.rb +0 -57
  309. data/lib/active_support/whiny_nil.rb +0 -38
data/CHANGELOG DELETED
@@ -1,283 +0,0 @@
1
- *1.2.4* (December 7th, 2005)
2
-
3
- * Rename Version constant to VERSION. #2802 [Marcel Molina Jr.]
4
-
5
-
6
- *1.2.3* (November 7th, 2005)
7
-
8
- * Change Inflector#constantize to use eval instead of const_get. [Nicholas Seckar]
9
-
10
- * Fix const_missing handler to ignore the trailing '.rb' on files when comparing paths. [Nicholas Seckar]
11
-
12
- * Define kernel.rb methods in "class Object" instead of "module Kernel" to work around a Windows peculiarity [Sam Stephenson]
13
-
14
- * Fix broken tests caused by incomplete loading of active support. [Nicholas Seckar]
15
-
16
- * Fix status pluralization bug so status_codes doesn't get pluralized as statuses_code. #2758 [keithm@infused.org]
17
-
18
- * Added Kernel#silence_stderr to silence stderr for the duration of the given block [Sam Stephenson]
19
-
20
- * Changed Kernel#` to print a message to stderr (like Unix) instead of raising Errno::ENOENT on Win32 [Sam Stephenson]
21
-
22
- * Changed 0.blank? to false rather than true since it violates everyone's expectation of blankness. #2518, #2705 [rails@jeffcole.net]
23
-
24
- * When loading classes using const_missing, raise a NameError if and only if the file we tried to load was not present. [Nicholas Seckar]
25
-
26
- * Added petabytes and exebytes to numeric extensions #2397 [timct@mac.com]
27
-
28
- * Added Time#end_of_month to accompany Time#beginning_of_month #2514 [Jens-Christian Fischer]
29
-
30
-
31
- *1.2.2* (October 26th, 2005)
32
-
33
- * Set Logger.silencer = false to disable Logger#silence. Useful for debugging fixtures.
34
-
35
- * Add title case method to String to do, e.g., 'action_web_service'.titlecase # => 'Action Web Service'. [Marcel Molina Jr.]
36
-
37
-
38
- *1.2.1* (October 19th, 2005)
39
-
40
- * Classify generated routing code as framework code to avoid appearing in application traces. [Nicholas Seckar]
41
-
42
- * Show all framework frames in the framework trace. [Nicholas Seckar]
43
-
44
-
45
- *1.2.0* (October 16th, 2005)
46
-
47
- * Update Exception extension to show the first few framework frames in an application trace. [Nicholas Seckar]
48
-
49
- * Added Exception extension to provide support for clean backtraces. [Nicholas Seckar]
50
-
51
- * Updated whiny nil to be more concise and useful. [Nicholas Seckar]
52
-
53
- * Added Enumerable#first_match [Nicholas Seckar]
54
-
55
- * Fixed that Time#change should also reset usec when also resetting minutes #2459 [ikeda@dream.big.or.jp]
56
-
57
- * Fix Logger compatibility for distributions that don't keep Ruby and its standard library in sync.
58
-
59
- * Replace '%e' from long and short time formats as Windows does not support it. #2344. [Tom Ward <tom@popdog.net>]
60
-
61
- * Added to_s(:db) to Range, so you can get "BETWEEN '2005-12-10' AND '2005-12-12'" from Date.new(2005, 12, 10)..Date.new(2005, 12, 12) (and likewise with Times)
62
-
63
- * Moved require_library_or_gem into Kernel. #1992 [Michael Schuerig <michael@schuerig.de>]
64
-
65
- * Add :rfc822 as an option for Time#to_s (to get rfc822-formatted times)
66
-
67
- * Chain the const_missing hook to any previously existing hook so rails can play nicely with rake
68
-
69
- * Clean logger is compatible with both 1.8.2 and 1.8.3 Logger. #2263 [Michael Schuerig <michael@schuerig.de>]
70
-
71
- * Added native, faster implementations of .blank? for the core types #2286 [skae]
72
-
73
- * Fixed clean logger to work with Ruby 1.8.3 Logger class #2245
74
-
75
- * Fixed memory leak with Active Record classes when Dependencies.mechanism = :load #1704 [c.r.mcgrath@gmail.com]
76
-
77
- * Fixed Inflector.underscore for use with acronyms, so HTML becomes html instead of htm_l #2173 [k@v2studio.com]
78
-
79
- * Fixed dependencies related infinite recursion bug when a controller file does not contain a controller class. Closes #1760. [rcolli2@tampabay.rr.com]
80
-
81
- * Fixed inflections for status, quiz, move #2056 [deirdre@deirdre.net]
82
-
83
- * Added Hash#reverse_merge, Hash#reverse_merge!, and Hash#reverse_update to ease the use of default options
84
-
85
- * Added Array#to_sentence that'll turn ['one', 'two', 'three'] into "one, two, and three" #2157 [m.stienstra@fngtps.com]
86
-
87
- * Added Kernel#silence_warnings to turn off warnings temporarily for the passed block
88
-
89
- * Added String#starts_with? and String#ends_with? #2118 [thijs@vandervossen.net]
90
-
91
- * Added easy extendability to the inflector through Inflector.inflections (using the Inflector::Inflections singleton class). Examples:
92
-
93
- Inflector.inflections do |inflect|
94
- inflect.plural /^(ox)$/i, '\1\2en'
95
- inflect.singular /^(ox)en/i, '\1'
96
-
97
- inflect.irregular 'octopus', 'octopi'
98
-
99
- inflect.uncountable "equipment"
100
- end
101
-
102
- * Added String#at, String#from, String#to, String#first, String#last in ActiveSupport::CoreExtensions::String::Access to ease access to individual characters and substrings in a string serving basically as human names for range access.
103
-
104
- * Make Time#last_month work when invoked on the 31st of a month.
105
-
106
- * Add Time.days_in_month, and make Time#next_month work when invoked on the 31st of a month
107
-
108
- * Fixed that Time#midnight would have a non-zero usec on some platforms #1836
109
-
110
- * Fixed inflections of "index/indices" #1766 [damn_pepe@gmail.com]
111
-
112
- * Added stripping of _id to String#humanize, so "employee_id" becomes "Employee" #1574 [Justin French]
113
-
114
- * Factor Fixnum and Bignum extensions into Integer extensions [Nicholas Seckar]
115
-
116
- * Hooked #ordinalize into Fixnum and Bignum classes. [Nicholas Seckar, danp]
117
-
118
- * Added Fixnum#ordinalize to turn 1.ordinalize to "1st", 3.ordinalize to "3rd", and 10.ordinalize to "10th" and so on #1724 [paul@cnt.org]
119
-
120
-
121
- *1.1.1* (11 July, 2005)
122
-
123
- * Added more efficient implementation of the development mode reset of classes #1638 [Chris McGrath]
124
-
125
-
126
- *1.1.0* (6 July, 2005)
127
-
128
- * Fixed conflict with Glue gem #1606 [Rick Olson]
129
-
130
- * Added new rules to the Inflector to deal with more unusual plurals mouse/louse => mice/lice, information => information, ox => oxen, virus => viri, archive => archives #1571, #1583, #1490, #1599, #1608 [foamdino@gmail.com/others]
131
-
132
- * Fixed memory leak with Object#remove_subclasses_of, which inflicted a Rails application running in development mode with a ~20KB leak per request #1289 [c.r.mcgrath@gmail.com]
133
-
134
- * Made 1.year == 365.25.days to account for leap years. This allows you to do User.find(:all, :conditions => ['birthday > ?', 50.years.ago]) without losing a lot of days. #1488 [tuxie@dekadance.se]
135
-
136
- * Added an exception if calling id on nil to WhinyNil #584 [kevin-temp@writesoon.com]
137
-
138
- * Added Fix/Bignum#multiple_of? which returns true on 14.multiple_of?(7) and false on 16.multiple_of?(7) #1464 [Thomas Fuchs]
139
-
140
- * Added even? and odd? to work with Bignums in addition to Fixnums #1464 [Thomas Fuchs]
141
-
142
- * Fixed Time#at_beginning_of_week returned the next Monday instead of the previous one when called on a Sunday #1403 [jean.helou@gmail.com]
143
-
144
- * Increased the speed of indifferent hash access by using Hash#default. #1436 [Nicholas Seckar]
145
-
146
- * Added that " " is now also blank? (using strip if available)
147
-
148
- * Fixed Dependencies so all modules are able to load missing constants #1173 [Nicholas Seckar]
149
-
150
- * Fixed the Inflector to underscore strings containing numbers, so Area51Controller becomes area51_controller #1176 [Nicholas Seckar]
151
-
152
- * Fixed that HashWithIndifferentAccess stringified all keys including symbols, ints, objects, and arrays #1162 [Nicholas Seckar]
153
-
154
- * Fixed Time#last_year to go back in time, not forward #1278 [fabien@odilat.com]
155
-
156
- * Fixed the pluralization of analysis to analyses #1295 [seattle@rootimage.msu.edu]
157
-
158
- * Fixed that Time.local(2005,12).months_since(1) would raise "ArgumentError: argument out of range" #1311 [jhahn@niveon.com]
159
-
160
- * Added silencing to the default Logger class
161
-
162
-
163
- *1.0.4* (19th April, 2005)
164
-
165
- * Fixed that in some circumstances controllers outside of modules may have hidden ones inside modules. For example, admin/content might have been hidden by /content. #1075 [Nicholas Seckar]
166
-
167
- * Fixed inflection of perspectives and similar words #1045 [thijs@vandervossen.net]
168
-
169
- * Added Fixnum#even? and Fixnum#odd?
170
-
171
- * Fixed problem with classes being required twice. Object#const_missing now uses require_dependency to load files. It used to use require_or_load which would cause models to be loaded twice, which was not good for validations and other class methods #971 [Nicholas Seckar]
172
-
173
-
174
- *1.0.3* (27th March, 2005)
175
-
176
- * Fixed Inflector.pluralize to handle capitalized words #932 [Jeremy Kemper]
177
-
178
- * Added Object#suppress which allows you to make a saner choice around with exceptions to swallow #980. Example:
179
-
180
- suppress(ZeroDivisionError) { 1/0 }
181
-
182
- ...instead of:
183
-
184
- 1/0 rescue nil # BAD, EVIL, DIRTY.
185
-
186
-
187
- *1.0.2* (22th March, 2005)
188
-
189
- * Added Kernel#returning -- a Ruby-ized realization of the K combinator, courtesy of Mikael Brockman.
190
-
191
- def foo
192
- returning values = [] do
193
- values << 'bar'
194
- values << 'baz'
195
- end
196
- end
197
-
198
- foo # => ['bar', 'baz']
199
-
200
-
201
- *1.0.1* (7th March, 2005)
202
-
203
- * Fixed Hash#indifferent_access to also deal with include? and fetch and nested hashes #726 [Nicholas Seckar]
204
-
205
- * Added Object#blank? -- see http://redhanded.hobix.com/inspect/objectBlank.html #783 [_why the lucky stiff]
206
-
207
- * Added inflection rules for "sh" words, like "wish" and "fish" #755 [phillip@pjbsoftware.com]
208
-
209
- * Fixed an exception when using Ajax based requests from Safari because Safari appends a \000 to the post body. Symbols can't have \000 in them so indifferent access would throw an exception in the constructor. Indifferent hashes now use strings internally instead. #746 [Tobias Luetke]
210
-
211
- * Added String#to_time and String#to_date for wrapping ParseDate
212
-
213
-
214
- *1.0.0* (24th February, 2005)
215
-
216
- * Added TimeZone as the first of a number of value objects that among others Active Record can use rich value objects using composed_of #688 [Jamis Buck]
217
-
218
- * Added Date::Conversions for getting dates in different convenient string representations and other objects
219
-
220
- * Added Time::Conversions for getting times in different convenient string representations and other objects
221
-
222
- * Added Time::Calculations to ask for things like Time.now.tomorrow, Time.now.yesterday, Time.now.months_ago(4) #580 [DP|Flurin]. Examples:
223
-
224
- "Later today" => now.in(3.hours),
225
- "Tomorrow morning" => now.tomorrow.change(:hour => 9),
226
- "Tomorrow afternoon" => now.tomorrow.change(:hour => 14),
227
- "In a couple of days" => now.tomorrow.tomorrow.change(:hour => 9),
228
- "Next monday" => now.next_week.change(:hour => 9),
229
- "In a month" => now.next_month.change(:hour => 9),
230
- "In 6 months" => now.months_since(6).change(:hour => 9),
231
- "In a year" => now.in(1.year).change(:hour => 9)
232
-
233
- * Upgraded to breakpoint 92 which fixes:
234
-
235
- * overload IRB.parse_opts(), fixes #443
236
- => breakpoints in tests work even when running them via rake
237
- * untaint handlers, might fix an issue discussed on the Rails ML
238
- * added verbose mode to breakpoint_client
239
- * less noise caused by breakpoint_client by default
240
- * ignored TerminateLineInput exception in signal handler
241
- => quiet exit on Ctrl-C
242
-
243
- * Fixed Inflector for words like "news" and "series" that are the same in plural and singular #603 [echion], #615 [marcenuc]
244
-
245
- * Added Hash#stringify_keys and Hash#stringify_keys!
246
-
247
- * Added IndifferentAccess as a way to wrap a hash by a symbol-based store that also can be accessed by string keys
248
-
249
- * Added Inflector.constantize to turn "Admin::User" into a reference for the constant Admin::User
250
-
251
- * Added that Inflector.camelize and Inflector.underscore can deal with modules like turning "Admin::User" into "admin/user" and back
252
-
253
- * Added Inflector.humanize to turn attribute names like employee_salary into "Employee salary". Used by automated error reporting in AR.
254
-
255
- * Added availability of class inheritable attributes to the masses #477 [Jeremy Kemper]
256
-
257
- class Foo
258
- class_inheritable_reader :read_me
259
- class_inheritable_writer :write_me
260
- class_inheritable_accessor :read_and_write_me
261
- class_inheritable_array :read_and_concat_me
262
- class_inheritable_hash :read_and_update_me
263
- end
264
-
265
- # Bar gets a clone of (not a reference to) Foo's attributes.
266
- class Bar < Foo
267
- end
268
-
269
- Bar.read_and_write_me == Foo.read_and_write_me
270
- Bar.read_and_write_me = 'bar'
271
- Bar.read_and_write_me != Foo.read_and_write_me
272
-
273
- * Added Inflections as an extension on String, so Inflector.pluralize(Inflector.classify(name)) becomes name.classify.pluralize #476 [Jeremy Kemper]
274
-
275
- * Added Byte operations to Numeric, so 5.5.megabytes + 200.kilobytes #461 [Marcel Molina]
276
-
277
- * Fixed that Dependencies.reload can't load the same file twice #420 [Kent Sibilev]
278
-
279
- * Added Fixnum#ago/until, Fixnum#since/from_now #450 [Jeremy Kemper]
280
-
281
- * Added that Inflector now accepts Symbols and Classes by calling .to_s on the word supplied
282
-
283
- * Added time unit extensions to Fixnum that'll return the period in seconds, like 2.days + 4.hours.
@@ -1,84 +0,0 @@
1
- begin
2
- require 'simplecc'
3
- rescue LoadError
4
- class Continuation # :nodoc: # for RDoc
5
- end
6
- def Continuation.create(*args, &block) # :nodoc:
7
- cc = nil; result = callcc {|c| cc = c; block.call(cc) if block and args.empty?}
8
- result ||= args
9
- return *[cc, *result]
10
- end
11
- end
12
-
13
- class Binding; end # for RDoc
14
- # This method returns the binding of the method that called your
15
- # method. It will raise an Exception when you're not inside a method.
16
- #
17
- # It's used like this:
18
- # def inc_counter(amount = 1)
19
- # Binding.of_caller do |binding|
20
- # # Create a lambda that will increase the variable 'counter'
21
- # # in the caller of this method when called.
22
- # inc = eval("lambda { |arg| counter += arg }", binding)
23
- # # We can refer to amount from inside this block safely.
24
- # inc.call(amount)
25
- # end
26
- # # No other statements can go here. Put them inside the block.
27
- # end
28
- # counter = 0
29
- # 2.times { inc_counter }
30
- # counter # => 2
31
- #
32
- # Binding.of_caller must be the last statement in the method.
33
- # This means that you will have to put everything you want to
34
- # do after the call to Binding.of_caller into the block of it.
35
- # This should be no problem however, because Ruby has closures.
36
- # If you don't do this an Exception will be raised. Because of
37
- # the way that Binding.of_caller is implemented it has to be
38
- # done this way.
39
- def Binding.of_caller(&block)
40
- old_critical = Thread.critical
41
- Thread.critical = true
42
- count = 0
43
- cc, result, error, extra_data = Continuation.create(nil, nil)
44
- error.call if error
45
-
46
- tracer = lambda do |*args|
47
- type, context, extra_data = args[0], args[4], args
48
- if type == "return"
49
- count += 1
50
- # First this method and then calling one will return --
51
- # the trace event of the second event gets the context
52
- # of the method which called the method that called this
53
- # method.
54
- if count == 2
55
- # It would be nice if we could restore the trace_func
56
- # that was set before we swapped in our own one, but
57
- # this is impossible without overloading set_trace_func
58
- # in current Ruby.
59
- set_trace_func(nil)
60
- cc.call(eval("binding", context), nil, extra_data)
61
- end
62
- elsif type == "line" then
63
- nil
64
- elsif type == "c-return" and extra_data[3] == :set_trace_func then
65
- nil
66
- else
67
- set_trace_func(nil)
68
- error_msg = "Binding.of_caller used in non-method context or " +
69
- "trailing statements of method using it aren't in the block."
70
- cc.call(nil, lambda { raise(ArgumentError, error_msg) }, nil)
71
- end
72
- end
73
-
74
- unless result
75
- set_trace_func(tracer)
76
- return nil
77
- else
78
- Thread.critical = old_critical
79
- case block.arity
80
- when 1 then yield(result)
81
- else yield(result, extra_data)
82
- end
83
- end
84
- end