activesupport 2.3.5 → 3.0.0.beta3

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 (391) hide show
  1. data/CHANGELOG +66 -9
  2. data/lib/active_support/all.rb +2 -7
  3. data/lib/active_support/backtrace_cleaner.rb +31 -9
  4. data/lib/active_support/base64.rb +9 -0
  5. data/lib/active_support/basic_object.rb +7 -10
  6. data/lib/active_support/benchmarkable.rb +60 -0
  7. data/lib/active_support/buffered_logger.rb +14 -9
  8. data/lib/active_support/cache/compressed_mem_cache_store.rb +2 -0
  9. data/lib/active_support/cache/file_store.rb +35 -17
  10. data/lib/active_support/cache/mem_cache_store.rb +32 -23
  11. data/lib/active_support/cache/memory_store.rb +17 -10
  12. data/lib/active_support/cache/strategy/local_cache.rb +9 -1
  13. data/lib/active_support/cache.rb +75 -55
  14. data/lib/active_support/callbacks.rb +490 -169
  15. data/lib/active_support/concern.rb +29 -0
  16. data/lib/active_support/configurable.rb +35 -0
  17. data/lib/active_support/core_ext/array/access.rb +39 -46
  18. data/lib/active_support/core_ext/array/conversions.rb +145 -182
  19. data/lib/active_support/core_ext/array/extract_options.rb +26 -17
  20. data/lib/active_support/core_ext/array/grouping.rb +87 -93
  21. data/lib/active_support/core_ext/array/random_access.rb +4 -10
  22. data/lib/active_support/core_ext/array/uniq_by.rb +17 -0
  23. data/lib/active_support/core_ext/array/wrap.rb +22 -0
  24. data/lib/active_support/core_ext/array.rb +2 -10
  25. data/lib/active_support/core_ext/big_decimal/conversions.rb +27 -0
  26. data/lib/active_support/core_ext/big_decimal.rb +1 -0
  27. data/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +16 -20
  28. data/lib/active_support/core_ext/cgi.rb +0 -4
  29. data/lib/active_support/core_ext/class/attribute.rb +70 -0
  30. data/lib/active_support/core_ext/class/attribute_accessors.rb +40 -31
  31. data/lib/active_support/core_ext/class/delegating_attributes.rb +37 -40
  32. data/lib/active_support/core_ext/class/inheritable_attributes.rb +100 -11
  33. data/lib/active_support/core_ext/class/subclasses.rb +55 -0
  34. data/lib/active_support/core_ext/class.rb +1 -1
  35. data/lib/active_support/core_ext/date/acts_like.rb +8 -0
  36. data/lib/active_support/core_ext/date/calculations.rb +218 -228
  37. data/lib/active_support/core_ext/date/conversions.rb +87 -96
  38. data/lib/active_support/core_ext/date/freeze.rb +31 -0
  39. data/lib/active_support/core_ext/date_time/acts_like.rb +13 -0
  40. data/lib/active_support/core_ext/date_time/calculations.rb +97 -110
  41. data/lib/active_support/core_ext/date_time/conversions.rb +85 -85
  42. data/lib/active_support/core_ext/date_time/zones.rb +17 -0
  43. data/lib/active_support/core_ext/enumerable.rb +18 -13
  44. data/lib/active_support/core_ext/exception.rb +1 -43
  45. data/lib/active_support/core_ext/file/atomic.rb +35 -40
  46. data/lib/active_support/core_ext/file/path.rb +5 -0
  47. data/lib/active_support/core_ext/file.rb +0 -4
  48. data/lib/active_support/core_ext/float/rounding.rb +15 -20
  49. data/lib/active_support/core_ext/float.rb +0 -6
  50. data/lib/active_support/core_ext/hash/conversions.rb +255 -229
  51. data/lib/active_support/core_ext/hash/deep_merge.rb +12 -19
  52. data/lib/active_support/core_ext/hash/diff.rb +11 -17
  53. data/lib/active_support/core_ext/hash/except.rb +21 -22
  54. data/lib/active_support/core_ext/hash/indifferent_access.rb +8 -137
  55. data/lib/active_support/core_ext/hash/keys.rb +38 -45
  56. data/lib/active_support/core_ext/hash/reverse_merge.rb +25 -32
  57. data/lib/active_support/core_ext/hash/slice.rb +35 -37
  58. data/lib/active_support/core_ext/hash.rb +8 -14
  59. data/lib/active_support/core_ext/integer/inflections.rb +10 -16
  60. data/lib/active_support/core_ext/integer/multiple.rb +6 -0
  61. data/lib/active_support/core_ext/integer/time.rb +36 -42
  62. data/lib/active_support/core_ext/integer.rb +1 -7
  63. data/lib/active_support/core_ext/kernel/debugger.rb +1 -1
  64. data/lib/active_support/core_ext/kernel/reporting.rb +9 -7
  65. data/lib/active_support/core_ext/kernel/requires.rb +3 -1
  66. data/lib/active_support/core_ext/kernel/singleton_class.rb +13 -0
  67. data/lib/active_support/core_ext/kernel.rb +1 -1
  68. data/lib/active_support/core_ext/load_error.rb +16 -32
  69. data/lib/active_support/core_ext/logger.rb +3 -2
  70. data/lib/active_support/core_ext/module/aliasing.rb +64 -68
  71. data/lib/active_support/core_ext/module/anonymous.rb +24 -0
  72. data/lib/active_support/core_ext/module/attr_accessor_with_default.rb +1 -1
  73. data/lib/active_support/core_ext/module/attr_internal.rb +4 -4
  74. data/lib/active_support/core_ext/module/attribute_accessors.rb +48 -42
  75. data/lib/active_support/core_ext/module/delegation.rb +22 -11
  76. data/lib/active_support/core_ext/module/deprecation.rb +9 -0
  77. data/lib/active_support/core_ext/module/introspection.rb +77 -79
  78. data/lib/active_support/core_ext/module/method_names.rb +14 -0
  79. data/lib/active_support/core_ext/module/reachable.rb +10 -0
  80. data/lib/active_support/core_ext/module/remove_method.rb +6 -0
  81. data/lib/active_support/core_ext/module/synchronization.rb +4 -1
  82. data/lib/active_support/core_ext/module.rb +7 -18
  83. data/lib/active_support/core_ext/name_error.rb +3 -4
  84. data/lib/active_support/core_ext/numeric/bytes.rb +35 -41
  85. data/lib/active_support/core_ext/numeric/time.rb +70 -74
  86. data/lib/active_support/core_ext/numeric.rb +1 -8
  87. data/lib/active_support/core_ext/object/acts_like.rb +10 -0
  88. data/lib/active_support/core_ext/object/blank.rb +20 -2
  89. data/lib/active_support/core_ext/object/conversions.rb +4 -15
  90. data/lib/active_support/core_ext/object/duplicable.rb +65 -0
  91. data/lib/active_support/core_ext/object/extending.rb +8 -77
  92. data/lib/active_support/core_ext/object/instance_variables.rb +0 -7
  93. data/lib/active_support/core_ext/object/misc.rb +2 -90
  94. data/lib/active_support/core_ext/object/returning.rb +42 -0
  95. data/lib/active_support/core_ext/object/to_param.rb +49 -0
  96. data/lib/active_support/core_ext/object/to_query.rb +27 -0
  97. data/lib/active_support/core_ext/{try.rb → object/try.rb} +4 -4
  98. data/lib/active_support/core_ext/object/with_options.rb +24 -0
  99. data/lib/active_support/core_ext/object.rb +10 -2
  100. data/lib/active_support/core_ext/proc.rb +3 -1
  101. data/lib/active_support/core_ext/process/daemon.rb +17 -19
  102. data/lib/active_support/core_ext/range/blockless_step.rb +24 -27
  103. data/lib/active_support/core_ext/range/conversions.rb +17 -23
  104. data/lib/active_support/core_ext/range/include_range.rb +18 -27
  105. data/lib/active_support/core_ext/range/overlaps.rb +6 -13
  106. data/lib/active_support/core_ext/range.rb +2 -9
  107. data/lib/active_support/core_ext/regexp.rb +5 -0
  108. data/lib/active_support/core_ext/rexml.rb +12 -7
  109. data/lib/active_support/core_ext/string/access.rb +88 -95
  110. data/lib/active_support/core_ext/string/behavior.rb +6 -12
  111. data/lib/active_support/core_ext/string/conversions.rb +20 -21
  112. data/lib/active_support/core_ext/string/exclude.rb +6 -0
  113. data/lib/active_support/core_ext/string/filters.rb +17 -23
  114. data/lib/active_support/core_ext/string/inflections.rb +147 -154
  115. data/lib/active_support/core_ext/string/interpolation.rb +1 -0
  116. data/lib/active_support/core_ext/string/multibyte.rb +68 -74
  117. data/lib/active_support/core_ext/string/output_safety.rb +105 -44
  118. data/lib/active_support/core_ext/string/starts_ends_with.rb +3 -34
  119. data/lib/active_support/core_ext/string/xchar.rb +10 -3
  120. data/lib/active_support/core_ext/string.rb +6 -20
  121. data/lib/active_support/core_ext/time/acts_like.rb +8 -0
  122. data/lib/active_support/core_ext/time/calculations.rb +276 -299
  123. data/lib/active_support/core_ext/time/conversions.rb +79 -84
  124. data/lib/active_support/core_ext/time/marshal.rb +56 -0
  125. data/lib/active_support/core_ext/time/publicize_conversion_methods.rb +10 -0
  126. data/lib/active_support/core_ext/time/zones.rb +73 -81
  127. data/lib/active_support/core_ext/uri.rb +2 -1
  128. data/lib/active_support/core_ext.rb +2 -7
  129. data/lib/active_support/dependencies/autoload.rb +50 -0
  130. data/lib/active_support/dependencies.rb +168 -197
  131. data/lib/active_support/deprecation/behaviors.rb +38 -0
  132. data/lib/active_support/deprecation/method_wrappers.rb +29 -0
  133. data/lib/active_support/deprecation/proxy_wrappers.rb +74 -0
  134. data/lib/active_support/deprecation/reporting.rb +56 -0
  135. data/lib/active_support/deprecation.rb +9 -187
  136. data/lib/active_support/duration.rb +6 -2
  137. data/lib/active_support/hash_with_indifferent_access.rb +141 -0
  138. data/lib/active_support/i18n.rb +3 -0
  139. data/lib/active_support/inflections.rb +1 -1
  140. data/lib/active_support/inflector/inflections.rb +211 -0
  141. data/lib/active_support/inflector/methods.rb +141 -0
  142. data/lib/active_support/inflector/transliterate.rb +77 -0
  143. data/lib/active_support/inflector.rb +4 -403
  144. data/lib/active_support/json/backends/jsongem.rb +16 -10
  145. data/lib/active_support/json/backends/yajl.rb +40 -0
  146. data/lib/active_support/json/backends/yaml.rb +14 -8
  147. data/lib/active_support/json/decoding.rb +17 -1
  148. data/lib/active_support/json/encoding.rb +164 -35
  149. data/lib/active_support/json/variable.rb +4 -3
  150. data/lib/active_support/lazy_load_hooks.rb +17 -0
  151. data/lib/active_support/memoizable.rb +8 -5
  152. data/lib/active_support/message_encryptor.rb +1 -0
  153. data/lib/active_support/message_verifier.rb +12 -29
  154. data/lib/active_support/multibyte/chars.rb +88 -31
  155. data/lib/active_support/multibyte/unicode_database.rb +5 -5
  156. data/lib/active_support/multibyte/utils.rb +6 -7
  157. data/lib/active_support/multibyte.rb +11 -6
  158. data/lib/active_support/notifications/fanout.rb +83 -0
  159. data/lib/active_support/notifications/instrumenter.rb +50 -0
  160. data/lib/active_support/notifications.rb +81 -0
  161. data/lib/active_support/option_merger.rb +2 -0
  162. data/lib/active_support/ordered_hash.rb +28 -11
  163. data/lib/active_support/ordered_options.rb +9 -1
  164. data/lib/active_support/railtie.rb +64 -0
  165. data/lib/active_support/rescuable.rb +11 -6
  166. data/lib/active_support/ruby/shim.rb +21 -0
  167. data/lib/active_support/test_case.rb +10 -8
  168. data/lib/active_support/testing/assertions.rb +17 -0
  169. data/lib/active_support/testing/declarative.rb +31 -12
  170. data/lib/active_support/testing/deprecation.rb +8 -10
  171. data/lib/active_support/testing/isolation.rb +153 -0
  172. data/lib/active_support/testing/pending.rb +48 -0
  173. data/lib/active_support/testing/performance.rb +342 -339
  174. data/lib/active_support/testing/setup_and_teardown.rb +48 -31
  175. data/lib/active_support/time/autoload.rb +5 -0
  176. data/lib/active_support/time.rb +34 -0
  177. data/lib/active_support/time_with_zone.rb +18 -12
  178. data/lib/active_support/values/time_zone.rb +51 -68
  179. data/lib/active_support/version.rb +5 -4
  180. data/lib/active_support/whiny_nil.rb +5 -9
  181. data/lib/active_support/xml_mini/jdom.rb +13 -7
  182. data/lib/active_support/xml_mini/libxml.rb +38 -91
  183. data/lib/active_support/xml_mini/libxmlsax.rb +85 -0
  184. data/lib/active_support/xml_mini/nokogiri.rb +40 -31
  185. data/lib/active_support/xml_mini/nokogirisax.rb +83 -0
  186. data/lib/active_support/xml_mini/rexml.rb +30 -9
  187. data/lib/active_support/xml_mini.rb +2 -0
  188. data/lib/active_support.rb +46 -30
  189. metadata +136 -215
  190. data/lib/active_support/cache/drb_store.rb +0 -14
  191. data/lib/active_support/core_ext/array/wrapper.rb +0 -24
  192. data/lib/active_support/core_ext/base64/encoding.rb +0 -16
  193. data/lib/active_support/core_ext/base64.rb +0 -4
  194. data/lib/active_support/core_ext/bigdecimal/conversions.rb +0 -37
  195. data/lib/active_support/core_ext/bigdecimal.rb +0 -6
  196. data/lib/active_support/core_ext/blank.rb +0 -2
  197. data/lib/active_support/core_ext/class/removal.rb +0 -50
  198. data/lib/active_support/core_ext/date/behavior.rb +0 -42
  199. data/lib/active_support/core_ext/date.rb +0 -10
  200. data/lib/active_support/core_ext/date_time.rb +0 -12
  201. data/lib/active_support/core_ext/duplicable.rb +0 -43
  202. data/lib/active_support/core_ext/float/time.rb +0 -27
  203. data/lib/active_support/core_ext/integer/even_odd.rb +0 -29
  204. data/lib/active_support/core_ext/kernel/daemonizing.rb +0 -7
  205. data/lib/active_support/core_ext/module/inclusion.rb +0 -30
  206. data/lib/active_support/core_ext/module/loading.rb +0 -23
  207. data/lib/active_support/core_ext/module/model_naming.rb +0 -25
  208. data/lib/active_support/core_ext/numeric/conversions.rb +0 -19
  209. data/lib/active_support/core_ext/object/metaclass.rb +0 -13
  210. data/lib/active_support/core_ext/pathname/clean_within.rb +0 -14
  211. data/lib/active_support/core_ext/pathname.rb +0 -7
  212. data/lib/active_support/core_ext/string/bytesize.rb +0 -5
  213. data/lib/active_support/core_ext/string/iterators.rb +0 -23
  214. data/lib/active_support/core_ext/symbol.rb +0 -14
  215. data/lib/active_support/core_ext/time/behavior.rb +0 -13
  216. data/lib/active_support/core_ext/time.rb +0 -42
  217. data/lib/active_support/json/encoders/date.rb +0 -22
  218. data/lib/active_support/json/encoders/date_time.rb +0 -22
  219. data/lib/active_support/json/encoders/enumerable.rb +0 -17
  220. data/lib/active_support/json/encoders/false_class.rb +0 -7
  221. data/lib/active_support/json/encoders/hash.rb +0 -56
  222. data/lib/active_support/json/encoders/nil_class.rb +0 -7
  223. data/lib/active_support/json/encoders/numeric.rb +0 -21
  224. data/lib/active_support/json/encoders/object.rb +0 -10
  225. data/lib/active_support/json/encoders/regexp.rb +0 -9
  226. data/lib/active_support/json/encoders/string.rb +0 -9
  227. data/lib/active_support/json/encoders/symbol.rb +0 -5
  228. data/lib/active_support/json/encoders/time.rb +0 -22
  229. data/lib/active_support/json/encoders/true_class.rb +0 -7
  230. data/lib/active_support/vendor/builder-2.1.2/blankslate.rb +0 -113
  231. data/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +0 -20
  232. data/lib/active_support/vendor/builder-2.1.2/builder/css.rb +0 -250
  233. data/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +0 -115
  234. data/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +0 -139
  235. data/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +0 -63
  236. data/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +0 -328
  237. data/lib/active_support/vendor/builder-2.1.2/builder.rb +0 -13
  238. data/lib/active_support/vendor/i18n-0.1.3/MIT-LICENSE +0 -20
  239. data/lib/active_support/vendor/i18n-0.1.3/README.textile +0 -20
  240. data/lib/active_support/vendor/i18n-0.1.3/Rakefile +0 -5
  241. data/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec +0 -27
  242. data/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +0 -214
  243. data/lib/active_support/vendor/i18n-0.1.3/lib/i18n/exceptions.rb +0 -53
  244. data/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb +0 -199
  245. data/lib/active_support/vendor/i18n-0.1.3/test/all.rb +0 -5
  246. data/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +0 -99
  247. data/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +0 -124
  248. data/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb +0 -1
  249. data/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml +0 -3
  250. data/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +0 -567
  251. data/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb +0 -1107
  252. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +0 -47
  253. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +0 -228
  254. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +0 -55
  255. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +0 -219
  256. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +0 -40
  257. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +0 -18
  258. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +0 -25
  259. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +0 -22
  260. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +0 -23
  261. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -166
  262. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -86
  263. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +0 -23
  264. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +0 -23
  265. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +0 -283
  266. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +0 -136
  267. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +0 -204
  268. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +0 -161
  269. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +0 -27
  270. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +0 -274
  271. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -149
  272. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +0 -194
  273. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +0 -22
  274. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +0 -35
  275. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +0 -232
  276. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +0 -139
  277. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +0 -144
  278. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +0 -131
  279. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +0 -282
  280. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +0 -30
  281. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +0 -74
  282. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +0 -205
  283. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +0 -171
  284. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +0 -288
  285. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +0 -196
  286. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +0 -67
  287. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +0 -73
  288. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +0 -161
  289. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +0 -20
  290. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +0 -33
  291. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +0 -30
  292. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +0 -27
  293. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +0 -87
  294. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +0 -165
  295. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +0 -30
  296. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +0 -163
  297. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +0 -20
  298. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +0 -163
  299. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +0 -30
  300. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +0 -20
  301. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +0 -25
  302. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -163
  303. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -31
  304. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +0 -18
  305. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +0 -163
  306. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +0 -18
  307. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +0 -164
  308. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +0 -24
  309. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +0 -18
  310. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +0 -34
  311. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +0 -35
  312. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +0 -33
  313. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +0 -59
  314. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +0 -47
  315. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +0 -78
  316. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +0 -121
  317. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +0 -30
  318. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -65
  319. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +0 -33
  320. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +0 -164
  321. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +0 -163
  322. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -165
  323. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +0 -165
  324. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +0 -270
  325. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -23
  326. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -18
  327. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +0 -187
  328. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +0 -35
  329. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +0 -29
  330. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +0 -193
  331. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +0 -185
  332. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +0 -37
  333. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +0 -185
  334. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +0 -16
  335. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +0 -228
  336. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +0 -185
  337. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +0 -163
  338. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +0 -188
  339. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +0 -13
  340. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +0 -232
  341. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +0 -181
  342. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +0 -197
  343. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +0 -179
  344. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +0 -276
  345. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +0 -163
  346. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +0 -218
  347. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +0 -168
  348. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +0 -268
  349. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +0 -13
  350. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +0 -288
  351. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +0 -211
  352. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +0 -170
  353. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +0 -181
  354. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +0 -232
  355. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +0 -187
  356. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +0 -176
  357. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +0 -215
  358. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +0 -13
  359. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +0 -13
  360. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +0 -173
  361. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +0 -165
  362. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +0 -172
  363. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +0 -183
  364. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +0 -170
  365. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +0 -212
  366. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +0 -13
  367. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +0 -202
  368. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +0 -23
  369. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +0 -22
  370. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +0 -28
  371. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +0 -20
  372. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +0 -25
  373. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +0 -25
  374. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -26
  375. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -20
  376. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +0 -27
  377. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +0 -52
  378. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +0 -51
  379. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +0 -44
  380. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +0 -98
  381. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +0 -56
  382. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +0 -292
  383. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +0 -508
  384. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +0 -56
  385. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +0 -40
  386. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +0 -94
  387. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +0 -198
  388. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +0 -129
  389. data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +0 -33
  390. data/lib/active_support/vendor.rb +0 -28
  391. data/lib/activesupport.rb +0 -2
@@ -1,53 +0,0 @@
1
- module I18n
2
- class ArgumentError < ::ArgumentError; end
3
-
4
- class InvalidLocale < ArgumentError
5
- attr_reader :locale
6
- def initialize(locale)
7
- @locale = locale
8
- super "#{locale.inspect} is not a valid locale"
9
- end
10
- end
11
-
12
- class MissingTranslationData < ArgumentError
13
- attr_reader :locale, :key, :options
14
- def initialize(locale, key, options)
15
- @key, @locale, @options = key, locale, options
16
- keys = I18n.send(:normalize_translation_keys, locale, key, options[:scope])
17
- keys << 'no key' if keys.size < 2
18
- super "translation missing: #{keys.join(', ')}"
19
- end
20
- end
21
-
22
- class InvalidPluralizationData < ArgumentError
23
- attr_reader :entry, :count
24
- def initialize(entry, count)
25
- @entry, @count = entry, count
26
- super "translation data #{entry.inspect} can not be used with :count => #{count}"
27
- end
28
- end
29
-
30
- class MissingInterpolationArgument < ArgumentError
31
- attr_reader :key, :string
32
- def initialize(key, string)
33
- @key, @string = key, string
34
- super "interpolation argument #{key} missing in #{string.inspect}"
35
- end
36
- end
37
-
38
- class ReservedInterpolationKey < ArgumentError
39
- attr_reader :key, :string
40
- def initialize(key, string)
41
- @key, @string = key, string
42
- super "reserved key #{key.inspect} used in #{string.inspect}"
43
- end
44
- end
45
-
46
- class UnknownFileType < ArgumentError
47
- attr_reader :type, :filename
48
- def initialize(type, filename)
49
- @type, @filename = type, filename
50
- super "can not load translations from #{filename}, the file type #{type} is not known"
51
- end
52
- end
53
- end
@@ -1,199 +0,0 @@
1
- # Authors:: Matt Aimonetti (http://railsontherun.com/),
2
- # Sven Fuchs (http://www.artweb-design.de),
3
- # Joshua Harvey (http://www.workingwithrails.com/person/759-joshua-harvey),
4
- # Saimon Moore (http://saimonmoore.net),
5
- # Stephan Soller (http://www.arkanis-development.de/)
6
- # Copyright:: Copyright (c) 2008 The Ruby i18n Team
7
- # License:: MIT
8
- require 'i18n/backend/simple'
9
- require 'i18n/exceptions'
10
-
11
- module I18n
12
- @@backend = nil
13
- @@load_path = nil
14
- @@default_locale = :'en'
15
- @@exception_handler = :default_exception_handler
16
-
17
- class << self
18
- # Returns the current backend. Defaults to +Backend::Simple+.
19
- def backend
20
- @@backend ||= Backend::Simple.new
21
- end
22
-
23
- # Sets the current backend. Used to set a custom backend.
24
- def backend=(backend)
25
- @@backend = backend
26
- end
27
-
28
- # Returns the current default locale. Defaults to :'en'
29
- def default_locale
30
- @@default_locale
31
- end
32
-
33
- # Sets the current default locale. Used to set a custom default locale.
34
- def default_locale=(locale)
35
- @@default_locale = locale
36
- end
37
-
38
- # Returns the current locale. Defaults to I18n.default_locale.
39
- def locale
40
- Thread.current[:locale] ||= default_locale
41
- end
42
-
43
- # Sets the current locale pseudo-globally, i.e. in the Thread.current hash.
44
- def locale=(locale)
45
- Thread.current[:locale] = locale
46
- end
47
-
48
- # Returns an array of locales for which translations are available
49
- def available_locales
50
- backend.available_locales
51
- end
52
-
53
- # Sets the exception handler.
54
- def exception_handler=(exception_handler)
55
- @@exception_handler = exception_handler
56
- end
57
-
58
- # Allow clients to register paths providing translation data sources. The
59
- # backend defines acceptable sources.
60
- #
61
- # E.g. the provided SimpleBackend accepts a list of paths to translation
62
- # files which are either named *.rb and contain plain Ruby Hashes or are
63
- # named *.yml and contain YAML data. So for the SimpleBackend clients may
64
- # register translation files like this:
65
- # I18n.load_path << 'path/to/locale/en.yml'
66
- def load_path
67
- @@load_path ||= []
68
- end
69
-
70
- # Sets the load path instance. Custom implementations are expected to
71
- # behave like a Ruby Array.
72
- def load_path=(load_path)
73
- @@load_path = load_path
74
- end
75
-
76
- # Tells the backend to reload translations. Used in situations like the
77
- # Rails development environment. Backends can implement whatever strategy
78
- # is useful.
79
- def reload!
80
- backend.reload!
81
- end
82
-
83
- # Translates, pluralizes and interpolates a given key using a given locale,
84
- # scope, and default, as well as interpolation values.
85
- #
86
- # *LOOKUP*
87
- #
88
- # Translation data is organized as a nested hash using the upper-level keys
89
- # as namespaces. <em>E.g.</em>, ActionView ships with the translation:
90
- # <tt>:date => {:formats => {:short => "%b %d"}}</tt>.
91
- #
92
- # Translations can be looked up at any level of this hash using the key argument
93
- # and the scope option. <em>E.g.</em>, in this example <tt>I18n.t :date</tt>
94
- # returns the whole translations hash <tt>{:formats => {:short => "%b %d"}}</tt>.
95
- #
96
- # Key can be either a single key or a dot-separated key (both Strings and Symbols
97
- # work). <em>E.g.</em>, the short format can be looked up using both:
98
- # I18n.t 'date.formats.short'
99
- # I18n.t :'date.formats.short'
100
- #
101
- # Scope can be either a single key, a dot-separated key or an array of keys
102
- # or dot-separated keys. Keys and scopes can be combined freely. So these
103
- # examples will all look up the same short date format:
104
- # I18n.t 'date.formats.short'
105
- # I18n.t 'formats.short', :scope => 'date'
106
- # I18n.t 'short', :scope => 'date.formats'
107
- # I18n.t 'short', :scope => %w(date formats)
108
- #
109
- # *INTERPOLATION*
110
- #
111
- # Translations can contain interpolation variables which will be replaced by
112
- # values passed to #translate as part of the options hash, with the keys matching
113
- # the interpolation variable names.
114
- #
115
- # <em>E.g.</em>, with a translation <tt>:foo => "foo {{bar}}"</tt> the option
116
- # value for the key +bar+ will be interpolated into the translation:
117
- # I18n.t :foo, :bar => 'baz' # => 'foo baz'
118
- #
119
- # *PLURALIZATION*
120
- #
121
- # Translation data can contain pluralized translations. Pluralized translations
122
- # are arrays of singluar/plural versions of translations like <tt>['Foo', 'Foos']</tt>.
123
- #
124
- # Note that <tt>I18n::Backend::Simple</tt> only supports an algorithm for English
125
- # pluralization rules. Other algorithms can be supported by custom backends.
126
- #
127
- # This returns the singular version of a pluralized translation:
128
- # I18n.t :foo, :count => 1 # => 'Foo'
129
- #
130
- # These both return the plural version of a pluralized translation:
131
- # I18n.t :foo, :count => 0 # => 'Foos'
132
- # I18n.t :foo, :count => 2 # => 'Foos'
133
- #
134
- # The <tt>:count</tt> option can be used both for pluralization and interpolation.
135
- # <em>E.g.</em>, with the translation
136
- # <tt>:foo => ['{{count}} foo', '{{count}} foos']</tt>, count will
137
- # be interpolated to the pluralized translation:
138
- # I18n.t :foo, :count => 1 # => '1 foo'
139
- #
140
- # *DEFAULTS*
141
- #
142
- # This returns the translation for <tt>:foo</tt> or <tt>default</tt> if no translation was found:
143
- # I18n.t :foo, :default => 'default'
144
- #
145
- # This returns the translation for <tt>:foo</tt> or the translation for <tt>:bar</tt> if no
146
- # translation for <tt>:foo</tt> was found:
147
- # I18n.t :foo, :default => :bar
148
- #
149
- # Returns the translation for <tt>:foo</tt> or the translation for <tt>:bar</tt>
150
- # or <tt>default</tt> if no translations for <tt>:foo</tt> and <tt>:bar</tt> were found.
151
- # I18n.t :foo, :default => [:bar, 'default']
152
- #
153
- # <b>BULK LOOKUP</b>
154
- #
155
- # This returns an array with the translations for <tt>:foo</tt> and <tt>:bar</tt>.
156
- # I18n.t [:foo, :bar]
157
- #
158
- # Can be used with dot-separated nested keys:
159
- # I18n.t [:'baz.foo', :'baz.bar']
160
- #
161
- # Which is the same as using a scope option:
162
- # I18n.t [:foo, :bar], :scope => :baz
163
- def translate(key, options = {})
164
- locale = options.delete(:locale) || I18n.locale
165
- backend.translate(locale, key, options)
166
- rescue I18n::ArgumentError => e
167
- raise e if options[:raise]
168
- send(@@exception_handler, e, locale, key, options)
169
- end
170
- alias :t :translate
171
-
172
- # Localizes certain objects, such as dates and numbers to local formatting.
173
- def localize(object, options = {})
174
- locale = options[:locale] || I18n.locale
175
- format = options[:format] || :default
176
- backend.localize(locale, object, format)
177
- end
178
- alias :l :localize
179
-
180
- protected
181
- # Handles exceptions raised in the backend. All exceptions except for
182
- # MissingTranslationData exceptions are re-raised. When a MissingTranslationData
183
- # was caught and the option :raise is not set the handler returns an error
184
- # message string containing the key/scope.
185
- def default_exception_handler(exception, locale, key, options)
186
- return exception.message if MissingTranslationData === exception
187
- raise exception
188
- end
189
-
190
- # Merges the given locale, key and scope into a single array of keys.
191
- # Splits keys that contain dots into multiple keys. Makes sure all
192
- # keys are Symbols.
193
- def normalize_translation_keys(locale, key, scope)
194
- keys = [locale] + Array(scope) + [key]
195
- keys = keys.map { |k| k.to_s.split(/\./) }
196
- keys.flatten.map { |k| k.to_sym }
197
- end
198
- end
199
- end
@@ -1,5 +0,0 @@
1
- dir = File.dirname(__FILE__)
2
- require dir + '/i18n_test.rb'
3
- require dir + '/simple_backend_test.rb'
4
- require dir + '/i18n_exceptions_test.rb'
5
- # *require* dir + '/custom_backend_test.rb'
@@ -1,99 +0,0 @@
1
- $:.unshift "lib"
2
-
3
- require 'rubygems'
4
- require 'test/unit'
5
- require 'i18n'
6
- require 'active_support'
7
-
8
- class I18nExceptionsTest < Test::Unit::TestCase
9
- def test_invalid_locale_stores_locale
10
- force_invalid_locale
11
- rescue I18n::ArgumentError => e
12
- assert_nil e.locale
13
- end
14
-
15
- def test_invalid_locale_message
16
- force_invalid_locale
17
- rescue I18n::ArgumentError => e
18
- assert_equal 'nil is not a valid locale', e.message
19
- end
20
-
21
- def test_missing_translation_data_stores_locale_key_and_options
22
- force_missing_translation_data
23
- rescue I18n::ArgumentError => e
24
- options = {:scope => :bar}
25
- assert_equal 'de', e.locale
26
- assert_equal :foo, e.key
27
- assert_equal options, e.options
28
- end
29
-
30
- def test_missing_translation_data_message
31
- force_missing_translation_data
32
- rescue I18n::ArgumentError => e
33
- assert_equal 'translation missing: de, bar, foo', e.message
34
- end
35
-
36
- def test_invalid_pluralization_data_stores_entry_and_count
37
- force_invalid_pluralization_data
38
- rescue I18n::ArgumentError => e
39
- assert_equal [:bar], e.entry
40
- assert_equal 1, e.count
41
- end
42
-
43
- def test_invalid_pluralization_data_message
44
- force_invalid_pluralization_data
45
- rescue I18n::ArgumentError => e
46
- assert_equal 'translation data [:bar] can not be used with :count => 1', e.message
47
- end
48
-
49
- def test_missing_interpolation_argument_stores_key_and_string
50
- force_missing_interpolation_argument
51
- rescue I18n::ArgumentError => e
52
- assert_equal 'bar', e.key
53
- assert_equal "{{bar}}", e.string
54
- end
55
-
56
- def test_missing_interpolation_argument_message
57
- force_missing_interpolation_argument
58
- rescue I18n::ArgumentError => e
59
- assert_equal 'interpolation argument bar missing in "{{bar}}"', e.message
60
- end
61
-
62
- def test_reserved_interpolation_key_stores_key_and_string
63
- force_reserved_interpolation_key
64
- rescue I18n::ArgumentError => e
65
- assert_equal 'scope', e.key
66
- assert_equal "{{scope}}", e.string
67
- end
68
-
69
- def test_reserved_interpolation_key_message
70
- force_reserved_interpolation_key
71
- rescue I18n::ArgumentError => e
72
- assert_equal 'reserved key "scope" used in "{{scope}}"', e.message
73
- end
74
-
75
- private
76
- def force_invalid_locale
77
- I18n.backend.translate nil, :foo
78
- end
79
-
80
- def force_missing_translation_data
81
- I18n.backend.store_translations 'de', :bar => nil
82
- I18n.backend.translate 'de', :foo, :scope => :bar
83
- end
84
-
85
- def force_invalid_pluralization_data
86
- I18n.backend.store_translations 'de', :foo => [:bar]
87
- I18n.backend.translate 'de', :foo, :count => 1
88
- end
89
-
90
- def force_missing_interpolation_argument
91
- I18n.backend.store_translations 'de', :foo => "{{bar}}"
92
- I18n.backend.translate 'de', :foo, :baz => 'baz'
93
- end
94
-
95
- def force_reserved_interpolation_key
96
- I18n.backend.store_translations 'de', :foo => "{{scope}}"
97
- I18n.backend.translate 'de', :foo, :baz => 'baz'
98
- end
99
- end
@@ -1,124 +0,0 @@
1
- $:.unshift "lib"
2
-
3
- require 'rubygems'
4
- require 'test/unit'
5
- require 'i18n'
6
- require 'active_support'
7
-
8
- class I18nTest < Test::Unit::TestCase
9
- def setup
10
- I18n.backend.store_translations :'en', {
11
- :currency => {
12
- :format => {
13
- :separator => '.',
14
- :delimiter => ',',
15
- }
16
- }
17
- }
18
- end
19
-
20
- def test_uses_simple_backend_set_by_default
21
- assert I18n.backend.is_a?(I18n::Backend::Simple)
22
- end
23
-
24
- def test_can_set_backend
25
- assert_nothing_raised{ I18n.backend = self }
26
- assert_equal self, I18n.backend
27
- I18n.backend = I18n::Backend::Simple.new
28
- end
29
-
30
- def test_uses_en_us_as_default_locale_by_default
31
- assert_equal 'en', I18n.default_locale
32
- end
33
-
34
- def test_can_set_default_locale
35
- assert_nothing_raised{ I18n.default_locale = 'de' }
36
- assert_equal 'de', I18n.default_locale
37
- I18n.default_locale = 'en'
38
- end
39
-
40
- def test_uses_default_locale_as_locale_by_default
41
- assert_equal I18n.default_locale, I18n.locale
42
- end
43
-
44
- def test_can_set_locale_to_thread_current
45
- assert_nothing_raised{ I18n.locale = 'de' }
46
- assert_equal 'de', I18n.locale
47
- assert_equal 'de', Thread.current[:locale]
48
- I18n.locale = 'en'
49
- end
50
-
51
- def test_can_set_exception_handler
52
- assert_nothing_raised{ I18n.exception_handler = :custom_exception_handler }
53
- I18n.exception_handler = :default_exception_handler # revert it
54
- end
55
-
56
- def test_uses_custom_exception_handler
57
- I18n.exception_handler = :custom_exception_handler
58
- I18n.expects(:custom_exception_handler)
59
- I18n.translate :bogus
60
- I18n.exception_handler = :default_exception_handler # revert it
61
- end
62
-
63
- def test_delegates_translate_to_backend
64
- I18n.backend.expects(:translate).with 'de', :foo, {}
65
- I18n.translate :foo, :locale => 'de'
66
- end
67
-
68
- def test_delegates_localize_to_backend
69
- I18n.backend.expects(:localize).with 'de', :whatever, :default
70
- I18n.localize :whatever, :locale => 'de'
71
- end
72
-
73
- def test_translate_given_no_locale_uses_i18n_locale
74
- I18n.backend.expects(:translate).with 'en', :foo, {}
75
- I18n.translate :foo
76
- end
77
-
78
- def test_translate_on_nested_symbol_keys_works
79
- assert_equal ".", I18n.t(:'currency.format.separator')
80
- end
81
-
82
- def test_translate_with_nested_string_keys_works
83
- assert_equal ".", I18n.t('currency.format.separator')
84
- end
85
-
86
- def test_translate_with_array_as_scope_works
87
- assert_equal ".", I18n.t(:separator, :scope => ['currency.format'])
88
- end
89
-
90
- def test_translate_with_array_containing_dot_separated_strings_as_scope_works
91
- assert_equal ".", I18n.t(:separator, :scope => ['currency.format'])
92
- end
93
-
94
- def test_translate_with_key_array_and_dot_separated_scope_works
95
- assert_equal [".", ","], I18n.t(%w(separator delimiter), :scope => 'currency.format')
96
- end
97
-
98
- def test_translate_with_dot_separated_key_array_and_scope_works
99
- assert_equal [".", ","], I18n.t(%w(format.separator format.delimiter), :scope => 'currency')
100
- end
101
-
102
- def test_translate_with_options_using_scope_works
103
- I18n.backend.expects(:translate).with('de', :precision, :scope => :"currency.format")
104
- I18n.with_options :locale => 'de', :scope => :'currency.format' do |locale|
105
- locale.t :precision
106
- end
107
- end
108
-
109
- # def test_translate_given_no_args_raises_missing_translation_data
110
- # assert_equal "translation missing: en, no key", I18n.t
111
- # end
112
-
113
- def test_translate_given_a_bogus_key_raises_missing_translation_data
114
- assert_equal "translation missing: en, bogus", I18n.t(:bogus)
115
- end
116
-
117
- def test_localize_nil_raises_argument_error
118
- assert_raise(I18n::ArgumentError) { I18n.l nil }
119
- end
120
-
121
- def test_localize_object_raises_argument_error
122
- assert_raise(I18n::ArgumentError) { I18n.l Object.new }
123
- end
124
- end
@@ -1 +0,0 @@
1
- {:'en-Ruby' => {:foo => {:bar => "baz"}}}
@@ -1,3 +0,0 @@
1
- en-Yaml:
2
- foo:
3
- bar: baz