mack-active_record 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 (318) hide show
  1. data/lib/mack-active_record/test_extensions.rb +0 -3
  2. metadata +3 -374
  3. data/lib/gems/activesupport-2.2.2/lib/active_support/base64.rb +0 -33
  4. data/lib/gems/activesupport-2.2.2/lib/active_support/basic_object.rb +0 -24
  5. data/lib/gems/activesupport-2.2.2/lib/active_support/buffered_logger.rb +0 -122
  6. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/compressed_mem_cache_store.rb +0 -20
  7. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/drb_store.rb +0 -15
  8. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/file_store.rb +0 -72
  9. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/mem_cache_store.rb +0 -127
  10. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/memory_store.rb +0 -52
  11. data/lib/gems/activesupport-2.2.2/lib/active_support/cache/synchronized_memory_store.rb +0 -47
  12. data/lib/gems/activesupport-2.2.2/lib/active_support/cache.rb +0 -223
  13. data/lib/gems/activesupport-2.2.2/lib/active_support/callbacks.rb +0 -280
  14. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/access.rb +0 -53
  15. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/conversions.rb +0 -183
  16. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/extract_options.rb +0 -20
  17. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/grouping.rb +0 -106
  18. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/random_access.rb +0 -12
  19. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array.rb +0 -13
  20. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64/encoding.rb +0 -16
  21. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64.rb +0 -4
  22. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb +0 -12
  23. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal/conversions.rb +0 -37
  24. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal.rb +0 -6
  25. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/blank.rb +0 -58
  26. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +0 -14
  27. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi.rb +0 -5
  28. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/attribute_accessors.rb +0 -54
  29. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/delegating_attributes.rb +0 -46
  30. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/inheritable_attributes.rb +0 -140
  31. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/removal.rb +0 -50
  32. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class.rb +0 -4
  33. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/behavior.rb +0 -42
  34. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/calculations.rb +0 -230
  35. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/conversions.rb +0 -107
  36. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date.rb +0 -10
  37. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/calculations.rb +0 -126
  38. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/conversions.rb +0 -96
  39. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time.rb +0 -12
  40. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/duplicable.rb +0 -43
  41. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/enumerable.rb +0 -107
  42. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/exception.rb +0 -41
  43. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file/atomic.rb +0 -46
  44. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file.rb +0 -5
  45. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/rounding.rb +0 -24
  46. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/time.rb +0 -27
  47. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float.rb +0 -7
  48. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/conversions.rb +0 -259
  49. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/deep_merge.rb +0 -23
  50. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/diff.rb +0 -19
  51. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/except.rb +0 -25
  52. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/indifferent_access.rb +0 -137
  53. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/keys.rb +0 -52
  54. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/reverse_merge.rb +0 -35
  55. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/slice.rb +0 -33
  56. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash.rb +0 -14
  57. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/even_odd.rb +0 -29
  58. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/inflections.rb +0 -20
  59. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/time.rb +0 -45
  60. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer.rb +0 -9
  61. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/agnostics.rb +0 -11
  62. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/daemonizing.rb +0 -7
  63. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/debugger.rb +0 -13
  64. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb +0 -59
  65. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/requires.rb +0 -24
  66. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel.rb +0 -5
  67. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/load_error.rb +0 -38
  68. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/logger.rb +0 -143
  69. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/aliasing.rb +0 -74
  70. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_accessor_with_default.rb +0 -31
  71. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_internal.rb +0 -32
  72. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attribute_accessors.rb +0 -58
  73. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/delegation.rb +0 -95
  74. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/inclusion.rb +0 -30
  75. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/introspection.rb +0 -90
  76. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/loading.rb +0 -23
  77. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/model_naming.rb +0 -23
  78. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/synchronization.rb +0 -39
  79. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module.rb +0 -23
  80. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/name_error.rb +0 -17
  81. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/bytes.rb +0 -44
  82. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/conversions.rb +0 -19
  83. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/time.rb +0 -81
  84. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric.rb +0 -9
  85. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/conversions.rb +0 -14
  86. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/extending.rb +0 -80
  87. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/instance_variables.rb +0 -74
  88. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/metaclass.rb +0 -13
  89. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/misc.rb +0 -74
  90. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object.rb +0 -5
  91. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname/clean_within.rb +0 -14
  92. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname.rb +0 -7
  93. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/proc.rb +0 -12
  94. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process/daemon.rb +0 -25
  95. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process.rb +0 -1
  96. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/blockless_step.rb +0 -32
  97. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/conversions.rb +0 -27
  98. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/include_range.rb +0 -30
  99. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/overlaps.rb +0 -15
  100. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range.rb +0 -11
  101. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/rexml.rb +0 -36
  102. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/access.rb +0 -82
  103. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/behavior.rb +0 -13
  104. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/conversions.rb +0 -28
  105. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/filters.rb +0 -26
  106. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/inflections.rb +0 -167
  107. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/iterators.rb +0 -21
  108. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/multibyte.rb +0 -81
  109. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/starts_ends_with.rb +0 -35
  110. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/xchar.rb +0 -11
  111. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string.rb +0 -22
  112. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/symbol.rb +0 -14
  113. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/behavior.rb +0 -13
  114. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/calculations.rb +0 -303
  115. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/conversions.rb +0 -90
  116. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/zones.rb +0 -86
  117. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time.rb +0 -42
  118. data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext.rb +0 -4
  119. data/lib/gems/activesupport-2.2.2/lib/active_support/dependencies.rb +0 -621
  120. data/lib/gems/activesupport-2.2.2/lib/active_support/deprecation.rb +0 -243
  121. data/lib/gems/activesupport-2.2.2/lib/active_support/duration.rb +0 -96
  122. data/lib/gems/activesupport-2.2.2/lib/active_support/gzip.rb +0 -25
  123. data/lib/gems/activesupport-2.2.2/lib/active_support/inflections.rb +0 -55
  124. data/lib/gems/activesupport-2.2.2/lib/active_support/inflector.rb +0 -397
  125. data/lib/gems/activesupport-2.2.2/lib/active_support/json/decoding.rb +0 -63
  126. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date.rb +0 -21
  127. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date_time.rb +0 -21
  128. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/enumerable.rb +0 -12
  129. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/false_class.rb +0 -5
  130. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/hash.rb +0 -47
  131. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/nil_class.rb +0 -5
  132. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/numeric.rb +0 -5
  133. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/object.rb +0 -6
  134. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/regexp.rb +0 -5
  135. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/string.rb +0 -36
  136. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/symbol.rb +0 -5
  137. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/time.rb +0 -21
  138. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/true_class.rb +0 -5
  139. data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoding.rb +0 -37
  140. data/lib/gems/activesupport-2.2.2/lib/active_support/json/variable.rb +0 -10
  141. data/lib/gems/activesupport-2.2.2/lib/active_support/json.rb +0 -23
  142. data/lib/gems/activesupport-2.2.2/lib/active_support/locale/en.yml +0 -32
  143. data/lib/gems/activesupport-2.2.2/lib/active_support/memoizable.rb +0 -82
  144. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/chars.rb +0 -679
  145. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/exceptions.rb +0 -8
  146. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/unicode_database.rb +0 -71
  147. data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte.rb +0 -33
  148. data/lib/gems/activesupport-2.2.2/lib/active_support/option_merger.rb +0 -17
  149. data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_hash.rb +0 -58
  150. data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_options.rb +0 -19
  151. data/lib/gems/activesupport-2.2.2/lib/active_support/rescuable.rb +0 -108
  152. data/lib/gems/activesupport-2.2.2/lib/active_support/secure_random.rb +0 -197
  153. data/lib/gems/activesupport-2.2.2/lib/active_support/string_inquirer.rb +0 -21
  154. data/lib/gems/activesupport-2.2.2/lib/active_support/test_case.rb +0 -24
  155. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test/unit/assertions.rb +0 -72
  156. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test.rb +0 -6
  157. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/default.rb +0 -9
  158. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/performance.rb +0 -452
  159. data/lib/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb +0 -120
  160. data/lib/gems/activesupport-2.2.2/lib/active_support/time_with_zone.rb +0 -328
  161. data/lib/gems/activesupport-2.2.2/lib/active_support/values/time_zone.rb +0 -403
  162. data/lib/gems/activesupport-2.2.2/lib/active_support/values/unicode_tables.dat +0 -0
  163. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/blankslate.rb +0 -113
  164. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +0 -20
  165. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/css.rb +0 -250
  166. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +0 -115
  167. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +0 -139
  168. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +0 -63
  169. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +0 -328
  170. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder.rb +0 -13
  171. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb +0 -216
  172. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/exceptions.rb +0 -53
  173. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n.rb +0 -194
  174. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/memcache-client-1.5.1/memcache.rb +0 -849
  175. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +0 -47
  176. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +0 -228
  177. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +0 -55
  178. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +0 -219
  179. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +0 -40
  180. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +0 -18
  181. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +0 -25
  182. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +0 -22
  183. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +0 -23
  184. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -166
  185. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -86
  186. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +0 -23
  187. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +0 -23
  188. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +0 -283
  189. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +0 -136
  190. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +0 -204
  191. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +0 -161
  192. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +0 -27
  193. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +0 -274
  194. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -149
  195. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +0 -194
  196. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +0 -22
  197. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +0 -35
  198. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +0 -232
  199. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +0 -139
  200. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +0 -144
  201. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +0 -131
  202. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +0 -282
  203. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +0 -30
  204. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +0 -74
  205. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +0 -205
  206. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +0 -171
  207. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +0 -288
  208. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +0 -196
  209. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +0 -67
  210. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +0 -73
  211. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +0 -161
  212. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +0 -20
  213. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +0 -33
  214. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +0 -30
  215. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +0 -27
  216. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +0 -87
  217. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +0 -165
  218. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +0 -30
  219. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +0 -163
  220. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +0 -20
  221. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +0 -163
  222. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +0 -30
  223. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +0 -20
  224. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +0 -25
  225. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -163
  226. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -31
  227. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +0 -18
  228. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +0 -163
  229. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +0 -18
  230. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +0 -164
  231. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +0 -24
  232. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +0 -18
  233. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +0 -34
  234. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +0 -35
  235. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +0 -33
  236. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +0 -59
  237. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +0 -47
  238. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +0 -78
  239. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +0 -121
  240. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +0 -30
  241. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -65
  242. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +0 -33
  243. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +0 -164
  244. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +0 -163
  245. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -165
  246. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +0 -165
  247. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +0 -270
  248. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -23
  249. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -18
  250. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +0 -187
  251. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +0 -35
  252. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +0 -29
  253. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +0 -193
  254. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +0 -185
  255. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +0 -37
  256. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +0 -185
  257. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +0 -16
  258. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +0 -228
  259. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +0 -185
  260. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +0 -163
  261. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +0 -188
  262. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +0 -13
  263. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +0 -232
  264. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +0 -181
  265. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +0 -197
  266. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +0 -179
  267. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +0 -276
  268. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +0 -163
  269. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +0 -218
  270. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +0 -168
  271. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +0 -268
  272. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +0 -13
  273. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +0 -288
  274. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +0 -211
  275. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +0 -170
  276. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +0 -181
  277. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +0 -232
  278. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +0 -187
  279. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +0 -176
  280. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +0 -215
  281. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +0 -13
  282. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +0 -13
  283. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +0 -173
  284. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +0 -165
  285. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +0 -172
  286. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +0 -183
  287. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +0 -170
  288. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +0 -212
  289. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +0 -13
  290. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +0 -202
  291. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +0 -23
  292. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +0 -22
  293. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +0 -28
  294. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +0 -20
  295. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +0 -25
  296. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +0 -25
  297. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -26
  298. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -20
  299. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +0 -27
  300. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +0 -52
  301. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +0 -51
  302. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +0 -44
  303. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +0 -98
  304. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +0 -56
  305. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +0 -292
  306. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +0 -508
  307. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +0 -56
  308. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +0 -40
  309. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +0 -94
  310. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +0 -198
  311. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +0 -129
  312. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +0 -33
  313. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb +0 -1021
  314. data/lib/gems/activesupport-2.2.2/lib/active_support/vendor.rb +0 -34
  315. data/lib/gems/activesupport-2.2.2/lib/active_support/version.rb +0 -9
  316. data/lib/gems/activesupport-2.2.2/lib/active_support/whiny_nil.rb +0 -58
  317. data/lib/gems/activesupport-2.2.2/lib/active_support.rb +0 -61
  318. data/lib/gems/activesupport-2.2.2/lib/activesupport.rb +0 -1
@@ -1,280 +0,0 @@
1
- module ActiveSupport
2
- # Callbacks are hooks into the lifecycle of an object that allow you to trigger logic
3
- # before or after an alteration of the object state.
4
- #
5
- # Mixing in this module allows you to define callbacks in your class.
6
- #
7
- # Example:
8
- # class Storage
9
- # include ActiveSupport::Callbacks
10
- #
11
- # define_callbacks :before_save, :after_save
12
- # end
13
- #
14
- # class ConfigStorage < Storage
15
- # before_save :saving_message
16
- # def saving_message
17
- # puts "saving..."
18
- # end
19
- #
20
- # after_save do |object|
21
- # puts "saved"
22
- # end
23
- #
24
- # def save
25
- # run_callbacks(:before_save)
26
- # puts "- save"
27
- # run_callbacks(:after_save)
28
- # end
29
- # end
30
- #
31
- # config = ConfigStorage.new
32
- # config.save
33
- #
34
- # Output:
35
- # saving...
36
- # - save
37
- # saved
38
- #
39
- # Callbacks from parent classes are inherited.
40
- #
41
- # Example:
42
- # class Storage
43
- # include ActiveSupport::Callbacks
44
- #
45
- # define_callbacks :before_save, :after_save
46
- #
47
- # before_save :prepare
48
- # def prepare
49
- # puts "preparing save"
50
- # end
51
- # end
52
- #
53
- # class ConfigStorage < Storage
54
- # before_save :saving_message
55
- # def saving_message
56
- # puts "saving..."
57
- # end
58
- #
59
- # after_save do |object|
60
- # puts "saved"
61
- # end
62
- #
63
- # def save
64
- # run_callbacks(:before_save)
65
- # puts "- save"
66
- # run_callbacks(:after_save)
67
- # end
68
- # end
69
- #
70
- # config = ConfigStorage.new
71
- # config.save
72
- #
73
- # Output:
74
- # preparing save
75
- # saving...
76
- # - save
77
- # saved
78
- module Callbacks
79
- class CallbackChain < Array
80
- def self.build(kind, *methods, &block)
81
- methods, options = extract_options(*methods, &block)
82
- methods.map! { |method| Callback.new(kind, method, options) }
83
- new(methods)
84
- end
85
-
86
- def run(object, options = {}, &terminator)
87
- enumerator = options[:enumerator] || :each
88
-
89
- unless block_given?
90
- send(enumerator) { |callback| callback.call(object) }
91
- else
92
- send(enumerator) do |callback|
93
- result = callback.call(object)
94
- break result if terminator.call(result, object)
95
- end
96
- end
97
- end
98
-
99
- # TODO: Decompose into more Array like behavior
100
- def replace_or_append!(chain)
101
- if index = index(chain)
102
- self[index] = chain
103
- else
104
- self << chain
105
- end
106
- self
107
- end
108
-
109
- def find(callback, &block)
110
- select { |c| c == callback && (!block_given? || yield(c)) }.first
111
- end
112
-
113
- def delete(callback)
114
- super(callback.is_a?(Callback) ? callback : find(callback))
115
- end
116
-
117
- private
118
- def self.extract_options(*methods, &block)
119
- methods.flatten!
120
- options = methods.extract_options!
121
- methods << block if block_given?
122
- return methods, options
123
- end
124
-
125
- def extract_options(*methods, &block)
126
- self.class.extract_options(*methods, &block)
127
- end
128
- end
129
-
130
- class Callback
131
- attr_reader :kind, :method, :identifier, :options
132
-
133
- def initialize(kind, method, options = {})
134
- @kind = kind
135
- @method = method
136
- @identifier = options[:identifier]
137
- @options = options
138
- end
139
-
140
- def ==(other)
141
- case other
142
- when Callback
143
- (self.identifier && self.identifier == other.identifier) || self.method == other.method
144
- else
145
- (self.identifier && self.identifier == other) || self.method == other
146
- end
147
- end
148
-
149
- def eql?(other)
150
- self == other
151
- end
152
-
153
- def dup
154
- self.class.new(@kind, @method, @options.dup)
155
- end
156
-
157
- def hash
158
- if @identifier
159
- @identifier.hash
160
- else
161
- @method.hash
162
- end
163
- end
164
-
165
- def call(*args, &block)
166
- evaluate_method(method, *args, &block) if should_run_callback?(*args)
167
- rescue LocalJumpError
168
- raise ArgumentError,
169
- "Cannot yield from a Proc type filter. The Proc must take two " +
170
- "arguments and execute #call on the second argument."
171
- end
172
-
173
- private
174
- def evaluate_method(method, *args, &block)
175
- case method
176
- when Symbol
177
- object = args.shift
178
- object.send(method, *args, &block)
179
- when String
180
- eval(method, args.first.instance_eval { binding })
181
- when Proc, Method
182
- method.call(*args, &block)
183
- else
184
- if method.respond_to?(kind)
185
- method.send(kind, *args, &block)
186
- else
187
- raise ArgumentError,
188
- "Callbacks must be a symbol denoting the method to call, a string to be evaluated, " +
189
- "a block to be invoked, or an object responding to the callback method."
190
- end
191
- end
192
- end
193
-
194
- def should_run_callback?(*args)
195
- if options[:if]
196
- evaluate_method(options[:if], *args)
197
- elsif options[:unless]
198
- !evaluate_method(options[:unless], *args)
199
- else
200
- true
201
- end
202
- end
203
- end
204
-
205
- def self.included(base)
206
- base.extend ClassMethods
207
- end
208
-
209
- module ClassMethods
210
- def define_callbacks(*callbacks)
211
- callbacks.each do |callback|
212
- class_eval <<-"end_eval"
213
- def self.#{callback}(*methods, &block)
214
- callbacks = CallbackChain.build(:#{callback}, *methods, &block)
215
- (@#{callback}_callbacks ||= CallbackChain.new).concat callbacks
216
- end
217
-
218
- def self.#{callback}_callback_chain
219
- @#{callback}_callbacks ||= CallbackChain.new
220
-
221
- if superclass.respond_to?(:#{callback}_callback_chain)
222
- CallbackChain.new(superclass.#{callback}_callback_chain + @#{callback}_callbacks)
223
- else
224
- @#{callback}_callbacks
225
- end
226
- end
227
- end_eval
228
- end
229
- end
230
- end
231
-
232
- # Runs all the callbacks defined for the given options.
233
- #
234
- # If a block is given it will be called after each callback receiving as arguments:
235
- #
236
- # * the result from the callback
237
- # * the object which has the callback
238
- #
239
- # If the result from the block evaluates to false, the callback chain is stopped.
240
- #
241
- # Example:
242
- # class Storage
243
- # include ActiveSupport::Callbacks
244
- #
245
- # define_callbacks :before_save, :after_save
246
- # end
247
- #
248
- # class ConfigStorage < Storage
249
- # before_save :pass
250
- # before_save :pass
251
- # before_save :stop
252
- # before_save :pass
253
- #
254
- # def pass
255
- # puts "pass"
256
- # end
257
- #
258
- # def stop
259
- # puts "stop"
260
- # return false
261
- # end
262
- #
263
- # def save
264
- # result = run_callbacks(:before_save) { |result, object| result == false }
265
- # puts "- save" if result
266
- # end
267
- # end
268
- #
269
- # config = ConfigStorage.new
270
- # config.save
271
- #
272
- # Output:
273
- # pass
274
- # pass
275
- # stop
276
- def run_callbacks(kind, options = {}, &block)
277
- self.class.send("#{kind}_callback_chain").run(self, options, &block)
278
- end
279
- end
280
- end
@@ -1,53 +0,0 @@
1
- module ActiveSupport #:nodoc:
2
- module CoreExtensions #:nodoc:
3
- module Array #:nodoc:
4
- # Makes it easier to access parts of an array.
5
- module Access
6
- # Returns the tail of the array from +position+.
7
- #
8
- # %w( a b c d ).from(0) # => %w( a b c d )
9
- # %w( a b c d ).from(2) # => %w( c d )
10
- # %w( a b c d ).from(10) # => nil
11
- # %w().from(0) # => nil
12
- def from(position)
13
- self[position..-1]
14
- end
15
-
16
- # Returns the beginning of the array up to +position+.
17
- #
18
- # %w( a b c d ).to(0) # => %w( a )
19
- # %w( a b c d ).to(2) # => %w( a b c )
20
- # %w( a b c d ).to(10) # => %w( a b c d )
21
- # %w().to(0) # => %w()
22
- def to(position)
23
- self[0..position]
24
- end
25
-
26
- # Equal to <tt>self[1]</tt>.
27
- def second
28
- self[1]
29
- end
30
-
31
- # Equal to <tt>self[2]</tt>.
32
- def third
33
- self[2]
34
- end
35
-
36
- # Equal to <tt>self[3]</tt>.
37
- def fourth
38
- self[3]
39
- end
40
-
41
- # Equal to <tt>self[4]</tt>.
42
- def fifth
43
- self[4]
44
- end
45
-
46
- # Equal to <tt>self[41]</tt>. Also known as accessing "the reddit".
47
- def forty_two
48
- self[41]
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,183 +0,0 @@
1
- require 'builder'
2
-
3
- module ActiveSupport #:nodoc:
4
- module CoreExtensions #:nodoc:
5
- module Array #:nodoc:
6
- module Conversions
7
- # Converts the array to a comma-separated sentence where the last element is joined by the connector word. Options:
8
- # * <tt>:connector</tt> - The word used to join the last element in arrays with two or more elements (default: "and")
9
- # * <tt>:skip_last_comma</tt> - Set to true to return "a, b and c" instead of "a, b, and c".
10
- def to_sentence(options = {})
11
- options.assert_valid_keys(:connector, :skip_last_comma, :locale)
12
-
13
- default = I18n.translate(:'support.array.sentence_connector', :locale => options[:locale])
14
- default_skip_last_comma = I18n.translate(:'support.array.skip_last_comma', :locale => options[:locale])
15
- options.reverse_merge! :connector => default, :skip_last_comma => default_skip_last_comma
16
- options[:connector] = "#{options[:connector]} " unless options[:connector].nil? || options[:connector].strip == ''
17
-
18
- case length
19
- when 0
20
- ""
21
- when 1
22
- self[0].to_s
23
- when 2
24
- "#{self[0]} #{options[:connector]}#{self[1]}"
25
- else
26
- "#{self[0...-1].join(', ')}#{options[:skip_last_comma] ? '' : ','} #{options[:connector]}#{self[-1]}"
27
- end
28
- end
29
-
30
-
31
- # Calls <tt>to_param</tt> on all its elements and joins the result with
32
- # slashes. This is used by <tt>url_for</tt> in Action Pack.
33
- def to_param
34
- collect { |e| e.to_param }.join '/'
35
- end
36
-
37
- # Converts an array into a string suitable for use as a URL query string,
38
- # using the given +key+ as the param name.
39
- #
40
- # ['Rails', 'coding'].to_query('hobbies') # => "hobbies%5B%5D=Rails&hobbies%5B%5D=coding"
41
- def to_query(key)
42
- prefix = "#{key}[]"
43
- collect { |value| value.to_query(prefix) }.join '&'
44
- end
45
-
46
- def self.included(base) #:nodoc:
47
- base.class_eval do
48
- alias_method :to_default_s, :to_s
49
- alias_method :to_s, :to_formatted_s
50
- end
51
- end
52
-
53
- # Converts a collection of elements into a formatted string by calling
54
- # <tt>to_s</tt> on all elements and joining them:
55
- #
56
- # Blog.find(:all).to_formatted_s # => "First PostSecond PostThird Post"
57
- #
58
- # Adding in the <tt>:db</tt> argument as the format yields a prettier
59
- # output:
60
- #
61
- # Blog.find(:all).to_formatted_s(:db) # => "First Post,Second Post,Third Post"
62
- def to_formatted_s(format = :default)
63
- case format
64
- when :db
65
- if respond_to?(:empty?) && self.empty?
66
- "null"
67
- else
68
- collect { |element| element.id }.join(",")
69
- end
70
- else
71
- to_default_s
72
- end
73
- end
74
-
75
- # Returns a string that represents this array in XML by sending +to_xml+
76
- # to each element. Active Record collections delegate their representation
77
- # in XML to this method.
78
- #
79
- # All elements are expected to respond to +to_xml+, if any of them does
80
- # not an exception is raised.
81
- #
82
- # The root node reflects the class name of the first element in plural
83
- # if all elements belong to the same type and that's not Hash:
84
- #
85
- # customer.projects.to_xml
86
- #
87
- # <?xml version="1.0" encoding="UTF-8"?>
88
- # <projects type="array">
89
- # <project>
90
- # <amount type="decimal">20000.0</amount>
91
- # <customer-id type="integer">1567</customer-id>
92
- # <deal-date type="date">2008-04-09</deal-date>
93
- # ...
94
- # </project>
95
- # <project>
96
- # <amount type="decimal">57230.0</amount>
97
- # <customer-id type="integer">1567</customer-id>
98
- # <deal-date type="date">2008-04-15</deal-date>
99
- # ...
100
- # </project>
101
- # </projects>
102
- #
103
- # Otherwise the root element is "records":
104
- #
105
- # [{:foo => 1, :bar => 2}, {:baz => 3}].to_xml
106
- #
107
- # <?xml version="1.0" encoding="UTF-8"?>
108
- # <records type="array">
109
- # <record>
110
- # <bar type="integer">2</bar>
111
- # <foo type="integer">1</foo>
112
- # </record>
113
- # <record>
114
- # <baz type="integer">3</baz>
115
- # </record>
116
- # </records>
117
- #
118
- # If the collection is empty the root element is "nil-classes" by default:
119
- #
120
- # [].to_xml
121
- #
122
- # <?xml version="1.0" encoding="UTF-8"?>
123
- # <nil-classes type="array"/>
124
- #
125
- # To ensure a meaningful root element use the <tt>:root</tt> option:
126
- #
127
- # customer_with_no_projects.projects.to_xml(:root => "projects")
128
- #
129
- # <?xml version="1.0" encoding="UTF-8"?>
130
- # <projects type="array"/>
131
- #
132
- # By default root children have as node name the one of the root
133
- # singularized. You can change it with the <tt>:children</tt> option.
134
- #
135
- # The +options+ hash is passed downwards:
136
- #
137
- # Message.all.to_xml(:skip_types => true)
138
- #
139
- # <?xml version="1.0" encoding="UTF-8"?>
140
- # <messages>
141
- # <message>
142
- # <created-at>2008-03-07T09:58:18+01:00</created-at>
143
- # <id>1</id>
144
- # <name>1</name>
145
- # <updated-at>2008-03-07T09:58:18+01:00</updated-at>
146
- # <user-id>1</user-id>
147
- # </message>
148
- # </messages>
149
- #
150
- def to_xml(options = {})
151
- raise "Not all elements respond to to_xml" unless all? { |e| e.respond_to? :to_xml }
152
-
153
- options[:root] ||= all? { |e| e.is_a?(first.class) && first.class.to_s != "Hash" } ? first.class.to_s.underscore.pluralize : "records"
154
- options[:children] ||= options[:root].singularize
155
- options[:indent] ||= 2
156
- options[:builder] ||= Builder::XmlMarkup.new(:indent => options[:indent])
157
-
158
- root = options.delete(:root).to_s
159
- children = options.delete(:children)
160
-
161
- if !options.has_key?(:dasherize) || options[:dasherize]
162
- root = root.dasherize
163
- end
164
-
165
- options[:builder].instruct! unless options.delete(:skip_instruct)
166
-
167
- opts = options.merge({ :root => children })
168
-
169
- xml = options[:builder]
170
- if empty?
171
- xml.tag!(root, options[:skip_types] ? {} : {:type => "array"})
172
- else
173
- xml.tag!(root, options[:skip_types] ? {} : {:type => "array"}) {
174
- yield xml if block_given?
175
- each { |e| e.to_xml(opts.merge({ :skip_instruct => true })) }
176
- }
177
- end
178
- end
179
-
180
- end
181
- end
182
- end
183
- end
@@ -1,20 +0,0 @@
1
- module ActiveSupport #:nodoc:
2
- module CoreExtensions #:nodoc:
3
- module Array #:nodoc:
4
- module ExtractOptions
5
- # Extracts options from a set of arguments. Removes and returns the last
6
- # element in the array if it's a hash, otherwise returns a blank hash.
7
- #
8
- # def options(*args)
9
- # args.extract_options!
10
- # end
11
- #
12
- # options(1, 2) # => {}
13
- # options(1, 2, :a => :b) # => {:a=>:b}
14
- def extract_options!
15
- last.is_a?(::Hash) ? pop : {}
16
- end
17
- end
18
- end
19
- end
20
- end
@@ -1,106 +0,0 @@
1
- require 'enumerator'
2
-
3
- module ActiveSupport #:nodoc:
4
- module CoreExtensions #:nodoc:
5
- module Array #:nodoc:
6
- module Grouping
7
- # Splits or iterates over the array in groups of size +number+,
8
- # padding any remaining slots with +fill_with+ unless it is +false+.
9
- #
10
- # %w(1 2 3 4 5 6 7).in_groups_of(3) {|group| p group}
11
- # ["1", "2", "3"]
12
- # ["4", "5", "6"]
13
- # ["7", nil, nil]
14
- #
15
- # %w(1 2 3).in_groups_of(2, '&nbsp;') {|group| p group}
16
- # ["1", "2"]
17
- # ["3", "&nbsp;"]
18
- #
19
- # %w(1 2 3).in_groups_of(2, false) {|group| p group}
20
- # ["1", "2"]
21
- # ["3"]
22
- def in_groups_of(number, fill_with = nil)
23
- if fill_with == false
24
- collection = self
25
- else
26
- # size % number gives how many extra we have;
27
- # subtracting from number gives how many to add;
28
- # modulo number ensures we don't add group of just fill.
29
- padding = (number - size % number) % number
30
- collection = dup.concat([fill_with] * padding)
31
- end
32
-
33
- if block_given?
34
- collection.each_slice(number) { |slice| yield(slice) }
35
- else
36
- returning [] do |groups|
37
- collection.each_slice(number) { |group| groups << group }
38
- end
39
- end
40
- end
41
-
42
- # Splits or iterates over the array in +number+ of groups, padding any
43
- # remaining slots with +fill_with+ unless it is +false+.
44
- #
45
- # %w(1 2 3 4 5 6 7 8 9 10).in_groups(3) {|group| p group}
46
- # ["1", "2", "3", "4"]
47
- # ["5", "6", "7", nil]
48
- # ["8", "9", "10", nil]
49
- #
50
- # %w(1 2 3 4 5 6 7).in_groups(3, '&nbsp;') {|group| p group}
51
- # ["1", "2", "3"]
52
- # ["4", "5", "&nbsp;"]
53
- # ["6", "7", "&nbsp;"]
54
- #
55
- # %w(1 2 3 4 5 6 7).in_groups(3, false) {|group| p group}
56
- # ["1", "2", "3"]
57
- # ["4", "5"]
58
- # ["6", "7"]
59
- def in_groups(number, fill_with = nil)
60
- # size / number gives minor group size;
61
- # size % number gives how many objects need extra accomodation;
62
- # each group hold either division or division + 1 items.
63
- division = size / number
64
- modulo = size % number
65
-
66
- # create a new array avoiding dup
67
- groups = []
68
- start = 0
69
-
70
- number.times do |index|
71
- length = division + (modulo > 0 && modulo > index ? 1 : 0)
72
- padding = fill_with != false &&
73
- modulo > 0 && length == division ? 1 : 0
74
- groups << slice(start, length).concat([fill_with] * padding)
75
- start += length
76
- end
77
-
78
- if block_given?
79
- groups.each{|g| yield(g) }
80
- else
81
- groups
82
- end
83
- end
84
-
85
- # Divides the array into one or more subarrays based on a delimiting +value+
86
- # or the result of an optional block.
87
- #
88
- # [1, 2, 3, 4, 5].split(3) # => [[1, 2], [4, 5]]
89
- # (1..10).to_a.split { |i| i % 3 == 0 } # => [[1, 2], [4, 5], [7, 8], [10]]
90
- def split(value = nil)
91
- using_block = block_given?
92
-
93
- inject([[]]) do |results, element|
94
- if (using_block && yield(element)) || (value == element)
95
- results << []
96
- else
97
- results.last << element
98
- end
99
-
100
- results
101
- end
102
- end
103
- end
104
- end
105
- end
106
- end
@@ -1,12 +0,0 @@
1
- module ActiveSupport #:nodoc:
2
- module CoreExtensions #:nodoc:
3
- module Array #:nodoc:
4
- module RandomAccess
5
- # Returns a random element from the array.
6
- def rand
7
- self[Kernel.rand(length)]
8
- end
9
- end
10
- end
11
- end
12
- end
@@ -1,13 +0,0 @@
1
- require 'active_support/core_ext/array/access'
2
- require 'active_support/core_ext/array/conversions'
3
- require 'active_support/core_ext/array/extract_options'
4
- require 'active_support/core_ext/array/grouping'
5
- require 'active_support/core_ext/array/random_access'
6
-
7
- class Array #:nodoc:
8
- include ActiveSupport::CoreExtensions::Array::Access
9
- include ActiveSupport::CoreExtensions::Array::Conversions
10
- include ActiveSupport::CoreExtensions::Array::ExtractOptions
11
- include ActiveSupport::CoreExtensions::Array::Grouping
12
- include ActiveSupport::CoreExtensions::Array::RandomAccess
13
- end
@@ -1,16 +0,0 @@
1
- module ActiveSupport #:nodoc:
2
- module CoreExtensions #:nodoc:
3
- module Base64 #:nodoc:
4
- module Encoding
5
- # Encodes the value as base64 without the newline breaks. This makes the base64 encoding readily usable as URL parameters
6
- # or memcache keys without further processing.
7
- #
8
- # ActiveSupport::Base64.encode64s("Original unencoded string")
9
- # # => "T3JpZ2luYWwgdW5lbmNvZGVkIHN0cmluZw=="
10
- def encode64s(value)
11
- encode64(value).gsub(/\n/, '')
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,4 +0,0 @@
1
- require 'active_support/base64'
2
- require 'active_support/core_ext/base64/encoding'
3
-
4
- ActiveSupport::Base64.extend ActiveSupport::CoreExtensions::Base64::Encoding