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.
- data/CHANGELOG +66 -9
- data/lib/active_support/all.rb +2 -7
- data/lib/active_support/backtrace_cleaner.rb +31 -9
- data/lib/active_support/base64.rb +9 -0
- data/lib/active_support/basic_object.rb +7 -10
- data/lib/active_support/benchmarkable.rb +60 -0
- data/lib/active_support/buffered_logger.rb +14 -9
- data/lib/active_support/cache/compressed_mem_cache_store.rb +2 -0
- data/lib/active_support/cache/file_store.rb +35 -17
- data/lib/active_support/cache/mem_cache_store.rb +32 -23
- data/lib/active_support/cache/memory_store.rb +17 -10
- data/lib/active_support/cache/strategy/local_cache.rb +9 -1
- data/lib/active_support/cache.rb +75 -55
- data/lib/active_support/callbacks.rb +490 -169
- data/lib/active_support/concern.rb +29 -0
- data/lib/active_support/configurable.rb +35 -0
- data/lib/active_support/core_ext/array/access.rb +39 -46
- data/lib/active_support/core_ext/array/conversions.rb +145 -182
- data/lib/active_support/core_ext/array/extract_options.rb +26 -17
- data/lib/active_support/core_ext/array/grouping.rb +87 -93
- data/lib/active_support/core_ext/array/random_access.rb +4 -10
- data/lib/active_support/core_ext/array/uniq_by.rb +17 -0
- data/lib/active_support/core_ext/array/wrap.rb +22 -0
- data/lib/active_support/core_ext/array.rb +2 -10
- data/lib/active_support/core_ext/big_decimal/conversions.rb +27 -0
- data/lib/active_support/core_ext/big_decimal.rb +1 -0
- data/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +16 -20
- data/lib/active_support/core_ext/cgi.rb +0 -4
- data/lib/active_support/core_ext/class/attribute.rb +70 -0
- data/lib/active_support/core_ext/class/attribute_accessors.rb +40 -31
- data/lib/active_support/core_ext/class/delegating_attributes.rb +37 -40
- data/lib/active_support/core_ext/class/inheritable_attributes.rb +100 -11
- data/lib/active_support/core_ext/class/subclasses.rb +55 -0
- data/lib/active_support/core_ext/class.rb +1 -1
- data/lib/active_support/core_ext/date/acts_like.rb +8 -0
- data/lib/active_support/core_ext/date/calculations.rb +218 -228
- data/lib/active_support/core_ext/date/conversions.rb +87 -96
- data/lib/active_support/core_ext/date/freeze.rb +31 -0
- data/lib/active_support/core_ext/date_time/acts_like.rb +13 -0
- data/lib/active_support/core_ext/date_time/calculations.rb +97 -110
- data/lib/active_support/core_ext/date_time/conversions.rb +85 -85
- data/lib/active_support/core_ext/date_time/zones.rb +17 -0
- data/lib/active_support/core_ext/enumerable.rb +18 -13
- data/lib/active_support/core_ext/exception.rb +1 -43
- data/lib/active_support/core_ext/file/atomic.rb +35 -40
- data/lib/active_support/core_ext/file/path.rb +5 -0
- data/lib/active_support/core_ext/file.rb +0 -4
- data/lib/active_support/core_ext/float/rounding.rb +15 -20
- data/lib/active_support/core_ext/float.rb +0 -6
- data/lib/active_support/core_ext/hash/conversions.rb +255 -229
- data/lib/active_support/core_ext/hash/deep_merge.rb +12 -19
- data/lib/active_support/core_ext/hash/diff.rb +11 -17
- data/lib/active_support/core_ext/hash/except.rb +21 -22
- data/lib/active_support/core_ext/hash/indifferent_access.rb +8 -137
- data/lib/active_support/core_ext/hash/keys.rb +38 -45
- data/lib/active_support/core_ext/hash/reverse_merge.rb +25 -32
- data/lib/active_support/core_ext/hash/slice.rb +35 -37
- data/lib/active_support/core_ext/hash.rb +8 -14
- data/lib/active_support/core_ext/integer/inflections.rb +10 -16
- data/lib/active_support/core_ext/integer/multiple.rb +6 -0
- data/lib/active_support/core_ext/integer/time.rb +36 -42
- data/lib/active_support/core_ext/integer.rb +1 -7
- data/lib/active_support/core_ext/kernel/debugger.rb +1 -1
- data/lib/active_support/core_ext/kernel/reporting.rb +9 -7
- data/lib/active_support/core_ext/kernel/requires.rb +3 -1
- data/lib/active_support/core_ext/kernel/singleton_class.rb +13 -0
- data/lib/active_support/core_ext/kernel.rb +1 -1
- data/lib/active_support/core_ext/load_error.rb +16 -32
- data/lib/active_support/core_ext/logger.rb +3 -2
- data/lib/active_support/core_ext/module/aliasing.rb +64 -68
- data/lib/active_support/core_ext/module/anonymous.rb +24 -0
- data/lib/active_support/core_ext/module/attr_accessor_with_default.rb +1 -1
- data/lib/active_support/core_ext/module/attr_internal.rb +4 -4
- data/lib/active_support/core_ext/module/attribute_accessors.rb +48 -42
- data/lib/active_support/core_ext/module/delegation.rb +22 -11
- data/lib/active_support/core_ext/module/deprecation.rb +9 -0
- data/lib/active_support/core_ext/module/introspection.rb +77 -79
- data/lib/active_support/core_ext/module/method_names.rb +14 -0
- data/lib/active_support/core_ext/module/reachable.rb +10 -0
- data/lib/active_support/core_ext/module/remove_method.rb +6 -0
- data/lib/active_support/core_ext/module/synchronization.rb +4 -1
- data/lib/active_support/core_ext/module.rb +7 -18
- data/lib/active_support/core_ext/name_error.rb +3 -4
- data/lib/active_support/core_ext/numeric/bytes.rb +35 -41
- data/lib/active_support/core_ext/numeric/time.rb +70 -74
- data/lib/active_support/core_ext/numeric.rb +1 -8
- data/lib/active_support/core_ext/object/acts_like.rb +10 -0
- data/lib/active_support/core_ext/object/blank.rb +20 -2
- data/lib/active_support/core_ext/object/conversions.rb +4 -15
- data/lib/active_support/core_ext/object/duplicable.rb +65 -0
- data/lib/active_support/core_ext/object/extending.rb +8 -77
- data/lib/active_support/core_ext/object/instance_variables.rb +0 -7
- data/lib/active_support/core_ext/object/misc.rb +2 -90
- data/lib/active_support/core_ext/object/returning.rb +42 -0
- data/lib/active_support/core_ext/object/to_param.rb +49 -0
- data/lib/active_support/core_ext/object/to_query.rb +27 -0
- data/lib/active_support/core_ext/{try.rb → object/try.rb} +4 -4
- data/lib/active_support/core_ext/object/with_options.rb +24 -0
- data/lib/active_support/core_ext/object.rb +10 -2
- data/lib/active_support/core_ext/proc.rb +3 -1
- data/lib/active_support/core_ext/process/daemon.rb +17 -19
- data/lib/active_support/core_ext/range/blockless_step.rb +24 -27
- data/lib/active_support/core_ext/range/conversions.rb +17 -23
- data/lib/active_support/core_ext/range/include_range.rb +18 -27
- data/lib/active_support/core_ext/range/overlaps.rb +6 -13
- data/lib/active_support/core_ext/range.rb +2 -9
- data/lib/active_support/core_ext/regexp.rb +5 -0
- data/lib/active_support/core_ext/rexml.rb +12 -7
- data/lib/active_support/core_ext/string/access.rb +88 -95
- data/lib/active_support/core_ext/string/behavior.rb +6 -12
- data/lib/active_support/core_ext/string/conversions.rb +20 -21
- data/lib/active_support/core_ext/string/exclude.rb +6 -0
- data/lib/active_support/core_ext/string/filters.rb +17 -23
- data/lib/active_support/core_ext/string/inflections.rb +147 -154
- data/lib/active_support/core_ext/string/interpolation.rb +1 -0
- data/lib/active_support/core_ext/string/multibyte.rb +68 -74
- data/lib/active_support/core_ext/string/output_safety.rb +105 -44
- data/lib/active_support/core_ext/string/starts_ends_with.rb +3 -34
- data/lib/active_support/core_ext/string/xchar.rb +10 -3
- data/lib/active_support/core_ext/string.rb +6 -20
- data/lib/active_support/core_ext/time/acts_like.rb +8 -0
- data/lib/active_support/core_ext/time/calculations.rb +276 -299
- data/lib/active_support/core_ext/time/conversions.rb +79 -84
- data/lib/active_support/core_ext/time/marshal.rb +56 -0
- data/lib/active_support/core_ext/time/publicize_conversion_methods.rb +10 -0
- data/lib/active_support/core_ext/time/zones.rb +73 -81
- data/lib/active_support/core_ext/uri.rb +2 -1
- data/lib/active_support/core_ext.rb +2 -7
- data/lib/active_support/dependencies/autoload.rb +50 -0
- data/lib/active_support/dependencies.rb +168 -197
- data/lib/active_support/deprecation/behaviors.rb +38 -0
- data/lib/active_support/deprecation/method_wrappers.rb +29 -0
- data/lib/active_support/deprecation/proxy_wrappers.rb +74 -0
- data/lib/active_support/deprecation/reporting.rb +56 -0
- data/lib/active_support/deprecation.rb +9 -187
- data/lib/active_support/duration.rb +6 -2
- data/lib/active_support/hash_with_indifferent_access.rb +141 -0
- data/lib/active_support/i18n.rb +3 -0
- data/lib/active_support/inflections.rb +1 -1
- data/lib/active_support/inflector/inflections.rb +211 -0
- data/lib/active_support/inflector/methods.rb +141 -0
- data/lib/active_support/inflector/transliterate.rb +77 -0
- data/lib/active_support/inflector.rb +4 -403
- data/lib/active_support/json/backends/jsongem.rb +16 -10
- data/lib/active_support/json/backends/yajl.rb +40 -0
- data/lib/active_support/json/backends/yaml.rb +14 -8
- data/lib/active_support/json/decoding.rb +17 -1
- data/lib/active_support/json/encoding.rb +164 -35
- data/lib/active_support/json/variable.rb +4 -3
- data/lib/active_support/lazy_load_hooks.rb +17 -0
- data/lib/active_support/memoizable.rb +8 -5
- data/lib/active_support/message_encryptor.rb +1 -0
- data/lib/active_support/message_verifier.rb +12 -29
- data/lib/active_support/multibyte/chars.rb +88 -31
- data/lib/active_support/multibyte/unicode_database.rb +5 -5
- data/lib/active_support/multibyte/utils.rb +6 -7
- data/lib/active_support/multibyte.rb +11 -6
- data/lib/active_support/notifications/fanout.rb +83 -0
- data/lib/active_support/notifications/instrumenter.rb +50 -0
- data/lib/active_support/notifications.rb +81 -0
- data/lib/active_support/option_merger.rb +2 -0
- data/lib/active_support/ordered_hash.rb +28 -11
- data/lib/active_support/ordered_options.rb +9 -1
- data/lib/active_support/railtie.rb +64 -0
- data/lib/active_support/rescuable.rb +11 -6
- data/lib/active_support/ruby/shim.rb +21 -0
- data/lib/active_support/test_case.rb +10 -8
- data/lib/active_support/testing/assertions.rb +17 -0
- data/lib/active_support/testing/declarative.rb +31 -12
- data/lib/active_support/testing/deprecation.rb +8 -10
- data/lib/active_support/testing/isolation.rb +153 -0
- data/lib/active_support/testing/pending.rb +48 -0
- data/lib/active_support/testing/performance.rb +342 -339
- data/lib/active_support/testing/setup_and_teardown.rb +48 -31
- data/lib/active_support/time/autoload.rb +5 -0
- data/lib/active_support/time.rb +34 -0
- data/lib/active_support/time_with_zone.rb +18 -12
- data/lib/active_support/values/time_zone.rb +51 -68
- data/lib/active_support/version.rb +5 -4
- data/lib/active_support/whiny_nil.rb +5 -9
- data/lib/active_support/xml_mini/jdom.rb +13 -7
- data/lib/active_support/xml_mini/libxml.rb +38 -91
- data/lib/active_support/xml_mini/libxmlsax.rb +85 -0
- data/lib/active_support/xml_mini/nokogiri.rb +40 -31
- data/lib/active_support/xml_mini/nokogirisax.rb +83 -0
- data/lib/active_support/xml_mini/rexml.rb +30 -9
- data/lib/active_support/xml_mini.rb +2 -0
- data/lib/active_support.rb +46 -30
- metadata +136 -215
- data/lib/active_support/cache/drb_store.rb +0 -14
- data/lib/active_support/core_ext/array/wrapper.rb +0 -24
- data/lib/active_support/core_ext/base64/encoding.rb +0 -16
- data/lib/active_support/core_ext/base64.rb +0 -4
- data/lib/active_support/core_ext/bigdecimal/conversions.rb +0 -37
- data/lib/active_support/core_ext/bigdecimal.rb +0 -6
- data/lib/active_support/core_ext/blank.rb +0 -2
- data/lib/active_support/core_ext/class/removal.rb +0 -50
- data/lib/active_support/core_ext/date/behavior.rb +0 -42
- data/lib/active_support/core_ext/date.rb +0 -10
- data/lib/active_support/core_ext/date_time.rb +0 -12
- data/lib/active_support/core_ext/duplicable.rb +0 -43
- data/lib/active_support/core_ext/float/time.rb +0 -27
- data/lib/active_support/core_ext/integer/even_odd.rb +0 -29
- data/lib/active_support/core_ext/kernel/daemonizing.rb +0 -7
- data/lib/active_support/core_ext/module/inclusion.rb +0 -30
- data/lib/active_support/core_ext/module/loading.rb +0 -23
- data/lib/active_support/core_ext/module/model_naming.rb +0 -25
- data/lib/active_support/core_ext/numeric/conversions.rb +0 -19
- data/lib/active_support/core_ext/object/metaclass.rb +0 -13
- data/lib/active_support/core_ext/pathname/clean_within.rb +0 -14
- data/lib/active_support/core_ext/pathname.rb +0 -7
- data/lib/active_support/core_ext/string/bytesize.rb +0 -5
- data/lib/active_support/core_ext/string/iterators.rb +0 -23
- data/lib/active_support/core_ext/symbol.rb +0 -14
- data/lib/active_support/core_ext/time/behavior.rb +0 -13
- data/lib/active_support/core_ext/time.rb +0 -42
- data/lib/active_support/json/encoders/date.rb +0 -22
- data/lib/active_support/json/encoders/date_time.rb +0 -22
- data/lib/active_support/json/encoders/enumerable.rb +0 -17
- data/lib/active_support/json/encoders/false_class.rb +0 -7
- data/lib/active_support/json/encoders/hash.rb +0 -56
- data/lib/active_support/json/encoders/nil_class.rb +0 -7
- data/lib/active_support/json/encoders/numeric.rb +0 -21
- data/lib/active_support/json/encoders/object.rb +0 -10
- data/lib/active_support/json/encoders/regexp.rb +0 -9
- data/lib/active_support/json/encoders/string.rb +0 -9
- data/lib/active_support/json/encoders/symbol.rb +0 -5
- data/lib/active_support/json/encoders/time.rb +0 -22
- data/lib/active_support/json/encoders/true_class.rb +0 -7
- data/lib/active_support/vendor/builder-2.1.2/blankslate.rb +0 -113
- data/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +0 -20
- data/lib/active_support/vendor/builder-2.1.2/builder/css.rb +0 -250
- data/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +0 -115
- data/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +0 -139
- data/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +0 -63
- data/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +0 -328
- data/lib/active_support/vendor/builder-2.1.2/builder.rb +0 -13
- data/lib/active_support/vendor/i18n-0.1.3/MIT-LICENSE +0 -20
- data/lib/active_support/vendor/i18n-0.1.3/README.textile +0 -20
- data/lib/active_support/vendor/i18n-0.1.3/Rakefile +0 -5
- data/lib/active_support/vendor/i18n-0.1.3/i18n.gemspec +0 -27
- data/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +0 -214
- data/lib/active_support/vendor/i18n-0.1.3/lib/i18n/exceptions.rb +0 -53
- data/lib/active_support/vendor/i18n-0.1.3/lib/i18n.rb +0 -199
- data/lib/active_support/vendor/i18n-0.1.3/test/all.rb +0 -5
- data/lib/active_support/vendor/i18n-0.1.3/test/i18n_exceptions_test.rb +0 -99
- data/lib/active_support/vendor/i18n-0.1.3/test/i18n_test.rb +0 -124
- data/lib/active_support/vendor/i18n-0.1.3/test/locale/en.rb +0 -1
- data/lib/active_support/vendor/i18n-0.1.3/test/locale/en.yml +0 -3
- data/lib/active_support/vendor/i18n-0.1.3/test/simple_backend_test.rb +0 -567
- data/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb +0 -1107
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +0 -47
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +0 -228
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +0 -55
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +0 -219
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +0 -40
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +0 -22
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -166
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -86
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +0 -283
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +0 -136
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +0 -204
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +0 -161
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +0 -27
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +0 -274
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -149
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +0 -194
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +0 -22
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +0 -35
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +0 -232
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +0 -139
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +0 -144
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +0 -131
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +0 -282
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +0 -74
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +0 -205
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +0 -171
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +0 -288
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +0 -196
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +0 -67
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +0 -73
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +0 -161
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +0 -33
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +0 -27
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +0 -87
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -31
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +0 -164
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +0 -24
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +0 -34
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +0 -35
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +0 -33
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +0 -59
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +0 -47
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +0 -78
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +0 -121
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -65
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +0 -33
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +0 -164
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +0 -270
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +0 -187
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +0 -35
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +0 -29
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +0 -193
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +0 -185
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +0 -37
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +0 -185
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +0 -16
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +0 -228
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +0 -185
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +0 -188
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +0 -232
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +0 -181
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +0 -197
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +0 -179
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +0 -276
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +0 -218
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +0 -168
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +0 -268
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +0 -288
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +0 -211
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +0 -170
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +0 -181
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +0 -232
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +0 -187
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +0 -176
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +0 -215
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +0 -173
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +0 -172
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +0 -183
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +0 -170
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +0 -212
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +0 -202
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +0 -22
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +0 -28
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -26
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +0 -27
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +0 -52
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +0 -51
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +0 -44
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +0 -98
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +0 -56
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +0 -292
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +0 -508
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +0 -56
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +0 -40
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +0 -94
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +0 -198
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +0 -129
- data/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +0 -33
- data/lib/active_support/vendor.rb +0 -28
- data/lib/activesupport.rb +0 -2
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
class Class #:nodoc:
|
|
2
|
-
|
|
3
|
-
# Unassociates the class with its subclasses and removes the subclasses
|
|
4
|
-
# themselves.
|
|
5
|
-
#
|
|
6
|
-
# Integer.remove_subclasses # => [Bignum, Fixnum]
|
|
7
|
-
# Fixnum # => NameError: uninitialized constant Fixnum
|
|
8
|
-
def remove_subclasses
|
|
9
|
-
Object.remove_subclasses_of(self)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# Returns an array with the names of the subclasses of +self+ as strings.
|
|
13
|
-
#
|
|
14
|
-
# Integer.subclasses # => ["Bignum", "Fixnum"]
|
|
15
|
-
def subclasses
|
|
16
|
-
Object.subclasses_of(self).map { |o| o.to_s }
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
# Removes the classes in +klasses+ from their parent module.
|
|
20
|
-
#
|
|
21
|
-
# Ordinary classes belong to some module via a constant. This method computes
|
|
22
|
-
# that constant name from the class name and removes it from the module it
|
|
23
|
-
# belongs to.
|
|
24
|
-
#
|
|
25
|
-
# Object.remove_class(Integer) # => [Integer]
|
|
26
|
-
# Integer # => NameError: uninitialized constant Integer
|
|
27
|
-
#
|
|
28
|
-
# Take into account that in general the class object could be still stored
|
|
29
|
-
# somewhere else.
|
|
30
|
-
#
|
|
31
|
-
# i = Integer # => Integer
|
|
32
|
-
# Object.remove_class(Integer) # => [Integer]
|
|
33
|
-
# Integer # => NameError: uninitialized constant Integer
|
|
34
|
-
# i.subclasses # => ["Bignum", "Fixnum"]
|
|
35
|
-
# Fixnum.superclass # => Integer
|
|
36
|
-
def remove_class(*klasses)
|
|
37
|
-
klasses.flatten.each do |klass|
|
|
38
|
-
# Skip this class if there is nothing bound to this name
|
|
39
|
-
next unless defined?(klass.name)
|
|
40
|
-
|
|
41
|
-
basename = klass.to_s.split("::").last
|
|
42
|
-
parent = klass.parent
|
|
43
|
-
|
|
44
|
-
# Skip this class if it does not match the current one bound to this name
|
|
45
|
-
next unless parent.const_defined?(basename) && klass = parent.const_get(basename)
|
|
46
|
-
|
|
47
|
-
parent.instance_eval { remove_const basename } unless parent == klass
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
require 'date'
|
|
2
|
-
|
|
3
|
-
module ActiveSupport #:nodoc:
|
|
4
|
-
module CoreExtensions #:nodoc:
|
|
5
|
-
module Date #:nodoc:
|
|
6
|
-
module Behavior
|
|
7
|
-
# Enable more predictable duck-typing on Date-like classes. See
|
|
8
|
-
# Object#acts_like?.
|
|
9
|
-
def acts_like_date?
|
|
10
|
-
true
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
# Date memoizes some instance methods using metaprogramming to wrap
|
|
14
|
-
# the methods with one that caches the result in an instance variable.
|
|
15
|
-
#
|
|
16
|
-
# If a Date is frozen but the memoized method hasn't been called, the
|
|
17
|
-
# first call will result in a frozen object error since the memo
|
|
18
|
-
# instance variable is uninitialized.
|
|
19
|
-
#
|
|
20
|
-
# Work around by eagerly memoizing before freezing.
|
|
21
|
-
#
|
|
22
|
-
# Ruby 1.9 uses a preinitialized instance variable so it's unaffected.
|
|
23
|
-
# This hack is as close as we can get to feature detection:
|
|
24
|
-
begin
|
|
25
|
-
::Date.today.freeze.jd
|
|
26
|
-
rescue => frozen_object_error
|
|
27
|
-
if frozen_object_error.message =~ /frozen/
|
|
28
|
-
def freeze #:nodoc:
|
|
29
|
-
self.class.private_instance_methods(false).each do |m|
|
|
30
|
-
if m.to_s =~ /\A__\d+__\Z/
|
|
31
|
-
instance_variable_set(:"@#{m}", [send(m)])
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
super
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
require 'date'
|
|
2
|
-
require 'active_support/core_ext/date/behavior'
|
|
3
|
-
require 'active_support/core_ext/date/calculations'
|
|
4
|
-
require 'active_support/core_ext/date/conversions'
|
|
5
|
-
|
|
6
|
-
class Date#:nodoc:
|
|
7
|
-
include ActiveSupport::CoreExtensions::Date::Behavior
|
|
8
|
-
include ActiveSupport::CoreExtensions::Date::Calculations
|
|
9
|
-
include ActiveSupport::CoreExtensions::Date::Conversions
|
|
10
|
-
end
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
require 'date'
|
|
2
|
-
require 'active_support/core_ext/time/behavior'
|
|
3
|
-
require 'active_support/core_ext/time/zones'
|
|
4
|
-
require 'active_support/core_ext/date_time/calculations'
|
|
5
|
-
require 'active_support/core_ext/date_time/conversions'
|
|
6
|
-
|
|
7
|
-
class DateTime
|
|
8
|
-
include ActiveSupport::CoreExtensions::Time::Behavior
|
|
9
|
-
include ActiveSupport::CoreExtensions::Time::Zones
|
|
10
|
-
include ActiveSupport::CoreExtensions::DateTime::Calculations
|
|
11
|
-
include ActiveSupport::CoreExtensions::DateTime::Conversions
|
|
12
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
class Object
|
|
2
|
-
# Can you safely .dup this object?
|
|
3
|
-
# False for nil, false, true, symbols, and numbers; true otherwise.
|
|
4
|
-
def duplicable?
|
|
5
|
-
true
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
class NilClass #:nodoc:
|
|
10
|
-
def duplicable?
|
|
11
|
-
false
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
class FalseClass #:nodoc:
|
|
16
|
-
def duplicable?
|
|
17
|
-
false
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
class TrueClass #:nodoc:
|
|
22
|
-
def duplicable?
|
|
23
|
-
false
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
class Symbol #:nodoc:
|
|
28
|
-
def duplicable?
|
|
29
|
-
false
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
class Numeric #:nodoc:
|
|
34
|
-
def duplicable?
|
|
35
|
-
false
|
|
36
|
-
end
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
class Class #:nodoc:
|
|
40
|
-
def duplicable?
|
|
41
|
-
false
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
module ActiveSupport #:nodoc:
|
|
2
|
-
module CoreExtensions #:nodoc:
|
|
3
|
-
module Float #:nodoc:
|
|
4
|
-
module Time
|
|
5
|
-
# Deprication helper methods not available as core_ext is loaded first.
|
|
6
|
-
def years
|
|
7
|
-
::ActiveSupport::Deprecation.warn(self.class.deprecated_method_warning(:years, "Fractional years are not respected. Convert value to integer before calling #years."), caller)
|
|
8
|
-
years_without_deprecation
|
|
9
|
-
end
|
|
10
|
-
def months
|
|
11
|
-
::ActiveSupport::Deprecation.warn(self.class.deprecated_method_warning(:months, "Fractional months are not respected. Convert value to integer before calling #months."), caller)
|
|
12
|
-
months_without_deprecation
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def months_without_deprecation
|
|
16
|
-
ActiveSupport::Duration.new(self * 30.days, [[:months, self]])
|
|
17
|
-
end
|
|
18
|
-
alias :month :months
|
|
19
|
-
|
|
20
|
-
def years_without_deprecation
|
|
21
|
-
ActiveSupport::Duration.new(self * 365.25.days, [[:years, self]])
|
|
22
|
-
end
|
|
23
|
-
alias :year :years
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
module ActiveSupport #:nodoc:
|
|
2
|
-
module CoreExtensions #:nodoc:
|
|
3
|
-
module Integer #:nodoc:
|
|
4
|
-
# For checking if a fixnum is even or odd.
|
|
5
|
-
#
|
|
6
|
-
# 2.even? # => true
|
|
7
|
-
# 2.odd? # => false
|
|
8
|
-
# 1.even? # => false
|
|
9
|
-
# 1.odd? # => true
|
|
10
|
-
# 0.even? # => true
|
|
11
|
-
# 0.odd? # => false
|
|
12
|
-
# -1.even? # => false
|
|
13
|
-
# -1.odd? # => true
|
|
14
|
-
module EvenOdd
|
|
15
|
-
def multiple_of?(number)
|
|
16
|
-
self % number == 0
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def even?
|
|
20
|
-
multiple_of? 2
|
|
21
|
-
end if RUBY_VERSION < '1.9'
|
|
22
|
-
|
|
23
|
-
def odd?
|
|
24
|
-
!even?
|
|
25
|
-
end if RUBY_VERSION < '1.9'
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
class Module
|
|
2
|
-
# Returns the classes in the current ObjectSpace where this module has been
|
|
3
|
-
# mixed in according to Module#included_modules.
|
|
4
|
-
#
|
|
5
|
-
# module M
|
|
6
|
-
# end
|
|
7
|
-
#
|
|
8
|
-
# module N
|
|
9
|
-
# include M
|
|
10
|
-
# end
|
|
11
|
-
#
|
|
12
|
-
# class C
|
|
13
|
-
# include M
|
|
14
|
-
# end
|
|
15
|
-
#
|
|
16
|
-
# class D < C
|
|
17
|
-
# end
|
|
18
|
-
#
|
|
19
|
-
# p M.included_in_classes # => [C, D]
|
|
20
|
-
#
|
|
21
|
-
def included_in_classes
|
|
22
|
-
classes = []
|
|
23
|
-
ObjectSpace.each_object(Class) { |k| classes << k if k.included_modules.include?(self) }
|
|
24
|
-
|
|
25
|
-
classes.reverse.inject([]) do |unique_classes, klass|
|
|
26
|
-
unique_classes << klass unless unique_classes.collect { |k| k.to_s }.include?(klass.to_s)
|
|
27
|
-
unique_classes
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
class Module
|
|
2
|
-
# Returns String#underscore applied to the module name minus trailing classes.
|
|
3
|
-
#
|
|
4
|
-
# ActiveRecord.as_load_path # => "active_record"
|
|
5
|
-
# ActiveRecord::Associations.as_load_path # => "active_record/associations"
|
|
6
|
-
# ActiveRecord::Base.as_load_path # => "active_record" (Base is a class)
|
|
7
|
-
#
|
|
8
|
-
# The Kernel module gives an empty string by definition.
|
|
9
|
-
#
|
|
10
|
-
# Kernel.as_load_path # => ""
|
|
11
|
-
# Math.as_load_path # => "math"
|
|
12
|
-
def as_load_path
|
|
13
|
-
if self == Object || self == Kernel
|
|
14
|
-
''
|
|
15
|
-
elsif is_a? Class
|
|
16
|
-
parent == self ? '' : parent.as_load_path
|
|
17
|
-
else
|
|
18
|
-
name.split('::').collect do |word|
|
|
19
|
-
word.underscore
|
|
20
|
-
end * '/'
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
module ActiveSupport
|
|
2
|
-
class ModelName < String
|
|
3
|
-
attr_reader :singular, :plural, :element, :collection, :partial_path
|
|
4
|
-
alias_method :cache_key, :collection
|
|
5
|
-
|
|
6
|
-
def initialize(name)
|
|
7
|
-
super
|
|
8
|
-
@singular = ActiveSupport::Inflector.underscore(self).tr('/', '_').freeze
|
|
9
|
-
@plural = ActiveSupport::Inflector.pluralize(@singular).freeze
|
|
10
|
-
@element = ActiveSupport::Inflector.underscore(ActiveSupport::Inflector.demodulize(self)).freeze
|
|
11
|
-
@collection = ActiveSupport::Inflector.tableize(self).freeze
|
|
12
|
-
@partial_path = "#{@collection}/#{@element}".freeze
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
module CoreExtensions
|
|
17
|
-
module Module
|
|
18
|
-
# Returns an ActiveSupport::ModelName object for module. It can be
|
|
19
|
-
# used to retrieve all kinds of naming-related information.
|
|
20
|
-
def model_name
|
|
21
|
-
@model_name ||= ::ActiveSupport::ModelName.new(name)
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
module ActiveSupport #:nodoc:
|
|
2
|
-
module CoreExtensions #:nodoc:
|
|
3
|
-
module Numeric #:nodoc:
|
|
4
|
-
module Conversions
|
|
5
|
-
# Assumes self represents an offset from UTC in seconds (as returned from Time#utc_offset)
|
|
6
|
-
# and turns this into an +HH:MM formatted string. Example:
|
|
7
|
-
#
|
|
8
|
-
# -21_600.to_utc_offset_s # => "-06:00"
|
|
9
|
-
def to_utc_offset_s(colon=true)
|
|
10
|
-
seconds = self
|
|
11
|
-
sign = (seconds < 0 ? -1 : 1)
|
|
12
|
-
hours = seconds.abs / 3600
|
|
13
|
-
minutes = (seconds.abs % 3600) / 60
|
|
14
|
-
"%+03d%s%02d" % [ hours * sign, colon ? ":" : "", minutes ]
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
class Object
|
|
2
|
-
# Get object's meta (ghost, eigenclass, singleton) class
|
|
3
|
-
def metaclass
|
|
4
|
-
class << self
|
|
5
|
-
self
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
# If class_eval is called on an object, add those methods to its metaclass
|
|
10
|
-
def class_eval(*args, &block)
|
|
11
|
-
metaclass.class_eval(*args, &block)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
module ActiveSupport #:nodoc:
|
|
2
|
-
module CoreExtensions #:nodoc:
|
|
3
|
-
module Pathname #:nodoc:
|
|
4
|
-
module CleanWithin
|
|
5
|
-
# Clean the paths contained in the provided string.
|
|
6
|
-
def clean_within(string)
|
|
7
|
-
string.gsub(%r{[\w. ]+(/[\w. ]+)+(\.rb)?(\b|$)}) do |path|
|
|
8
|
-
new(path).cleanpath
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
require 'strscan'
|
|
2
|
-
|
|
3
|
-
module ActiveSupport #:nodoc:
|
|
4
|
-
module CoreExtensions #:nodoc:
|
|
5
|
-
module String #:nodoc:
|
|
6
|
-
# Custom string iterators
|
|
7
|
-
module Iterators
|
|
8
|
-
def self.append_features(base)
|
|
9
|
-
super unless '1.9'.respond_to?(:each_char)
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
# Yields a single-character string for each character in the string.
|
|
13
|
-
# When $KCODE = 'UTF8', multi-byte characters are yielded appropriately.
|
|
14
|
-
def each_char
|
|
15
|
-
scanner, char = StringScanner.new(self), /./mu
|
|
16
|
-
while c = scanner.scan(char)
|
|
17
|
-
yield c
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
unless :to_proc.respond_to?(:to_proc)
|
|
2
|
-
class Symbol
|
|
3
|
-
# Turns the symbol into a simple proc, which is especially useful for enumerations. Examples:
|
|
4
|
-
#
|
|
5
|
-
# # The same as people.collect { |p| p.name }
|
|
6
|
-
# people.collect(&:name)
|
|
7
|
-
#
|
|
8
|
-
# # The same as people.select { |p| p.manager? }.collect { |p| p.salary }
|
|
9
|
-
# people.select(&:manager?).collect(&:salary)
|
|
10
|
-
def to_proc
|
|
11
|
-
Proc.new { |*args| args.shift.__send__(self, *args) }
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module ActiveSupport #:nodoc:
|
|
2
|
-
module CoreExtensions #:nodoc:
|
|
3
|
-
module Time #:nodoc:
|
|
4
|
-
module Behavior
|
|
5
|
-
# Enable more predictable duck-typing on Time-like classes. See
|
|
6
|
-
# Object#acts_like?.
|
|
7
|
-
def acts_like_time?
|
|
8
|
-
true
|
|
9
|
-
end
|
|
10
|
-
end
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
require 'date'
|
|
2
|
-
require 'time'
|
|
3
|
-
|
|
4
|
-
class Time
|
|
5
|
-
# Ruby 1.8-cvs and 1.9 define private Time#to_date
|
|
6
|
-
%w(to_date to_datetime).each do |method|
|
|
7
|
-
public method if private_instance_methods.include?(method)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
# Pre-1.9 versions of Ruby have a bug with marshaling Time instances, where utc instances are
|
|
11
|
-
# unmarshaled in the local zone, instead of utc. We're layering behavior on the _dump and _load
|
|
12
|
-
# methods so that utc instances can be flagged on dump, and coerced back to utc on load.
|
|
13
|
-
if RUBY_VERSION < '1.9'
|
|
14
|
-
class << self
|
|
15
|
-
alias_method :_original_load, :_load
|
|
16
|
-
def _load(marshaled_time)
|
|
17
|
-
time = _original_load(marshaled_time)
|
|
18
|
-
utc = time.instance_variable_get('@marshal_with_utc_coercion')
|
|
19
|
-
utc ? time.utc : time
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
alias_method :_original_dump, :_dump
|
|
24
|
-
def _dump(*args)
|
|
25
|
-
obj = self.frozen? ? self.dup : self
|
|
26
|
-
obj.instance_variable_set('@marshal_with_utc_coercion', utc?)
|
|
27
|
-
obj._original_dump(*args)
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
require 'active_support/core_ext/time/behavior'
|
|
33
|
-
require 'active_support/core_ext/time/calculations'
|
|
34
|
-
require 'active_support/core_ext/time/conversions'
|
|
35
|
-
require 'active_support/core_ext/time/zones'
|
|
36
|
-
|
|
37
|
-
class Time#:nodoc:
|
|
38
|
-
include ActiveSupport::CoreExtensions::Time::Behavior
|
|
39
|
-
include ActiveSupport::CoreExtensions::Time::Calculations
|
|
40
|
-
include ActiveSupport::CoreExtensions::Time::Conversions
|
|
41
|
-
include ActiveSupport::CoreExtensions::Time::Zones
|
|
42
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
class Date
|
|
2
|
-
# Coerces the date to a string for JSON encoding.
|
|
3
|
-
#
|
|
4
|
-
# ISO 8601 format is used if ActiveSupport::JSON::Encoding.use_standard_json_time_format is set.
|
|
5
|
-
#
|
|
6
|
-
# ==== Examples
|
|
7
|
-
#
|
|
8
|
-
# # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = true
|
|
9
|
-
# Date.new(2005,2,1).to_json
|
|
10
|
-
# # => "2005-02-01"
|
|
11
|
-
#
|
|
12
|
-
# # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = false
|
|
13
|
-
# Date.new(2005,2,1).to_json
|
|
14
|
-
# # => "2005/02/01"
|
|
15
|
-
def as_json(options = nil)
|
|
16
|
-
if ActiveSupport::JSON::Encoding.use_standard_json_time_format
|
|
17
|
-
strftime("%Y-%m-%d")
|
|
18
|
-
else
|
|
19
|
-
strftime("%Y/%m/%d")
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
class DateTime
|
|
2
|
-
# Coerces the datetime to a string for JSON encoding.
|
|
3
|
-
#
|
|
4
|
-
# ISO 8601 format is used if ActiveSupport::JSON::Encoding.use_standard_json_time_format is set.
|
|
5
|
-
#
|
|
6
|
-
# ==== Examples
|
|
7
|
-
#
|
|
8
|
-
# # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = true
|
|
9
|
-
# DateTime.civil(2005,2,1,15,15,10).to_json
|
|
10
|
-
# # => "2005-02-01T15:15:10+00:00"
|
|
11
|
-
#
|
|
12
|
-
# # With ActiveSupport::JSON::Encoding.use_standard_json_time_format = false
|
|
13
|
-
# DateTime.civil(2005,2,1,15,15,10).to_json
|
|
14
|
-
# # => "2005/02/01 15:15:10 +0000"
|
|
15
|
-
def as_json(options = nil)
|
|
16
|
-
if ActiveSupport::JSON::Encoding.use_standard_json_time_format
|
|
17
|
-
xmlschema
|
|
18
|
-
else
|
|
19
|
-
strftime('%Y/%m/%d %H:%M:%S %z')
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
module Enumerable
|
|
2
|
-
# Coerces the enumerable to an array for JSON encoding.
|
|
3
|
-
def as_json(options = nil) #:nodoc:
|
|
4
|
-
to_a
|
|
5
|
-
end
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
class Array
|
|
9
|
-
# Returns a JSON string representing the Array. +options+ are passed to each element.
|
|
10
|
-
def to_json(options = nil) #:nodoc:
|
|
11
|
-
"[#{map { |value| ActiveSupport::JSON.encode(value, options) } * ','}]"
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def as_json(options = nil) #:nodoc:
|
|
15
|
-
self
|
|
16
|
-
end
|
|
17
|
-
end
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
require 'active_support/core_ext/array/wrapper'
|
|
2
|
-
|
|
3
|
-
class Hash
|
|
4
|
-
# Returns a JSON string representing the hash.
|
|
5
|
-
#
|
|
6
|
-
# Without any +options+, the returned JSON string will include all
|
|
7
|
-
# the hash keys. For example:
|
|
8
|
-
#
|
|
9
|
-
# { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json
|
|
10
|
-
# # => {"name": "Konata Izumi", "1": 2, "age": 16}
|
|
11
|
-
#
|
|
12
|
-
# The keys in the JSON string are unordered due to the nature of hashes.
|
|
13
|
-
#
|
|
14
|
-
# The <tt>:only</tt> and <tt>:except</tt> options can be used to limit the
|
|
15
|
-
# attributes included, and will accept 1 or more hash keys to include/exclude.
|
|
16
|
-
#
|
|
17
|
-
# { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json(:only => [:name, 'age'])
|
|
18
|
-
# # => {"name": "Konata Izumi", "age": 16}
|
|
19
|
-
#
|
|
20
|
-
# { :name => "Konata Izumi", 'age' => 16, 1 => 2 }.to_json(:except => 1)
|
|
21
|
-
# # => {"name": "Konata Izumi", "age": 16}
|
|
22
|
-
#
|
|
23
|
-
# The +options+ also filter down to any hash values. This is particularly
|
|
24
|
-
# useful for converting hashes containing ActiveRecord objects or any object
|
|
25
|
-
# that responds to options in their <tt>to_json</tt> method. For example:
|
|
26
|
-
#
|
|
27
|
-
# users = User.find(:all)
|
|
28
|
-
# { :users => users, :count => users.size }.to_json(:include => :posts)
|
|
29
|
-
#
|
|
30
|
-
# would pass the <tt>:include => :posts</tt> option to <tt>users</tt>,
|
|
31
|
-
# allowing the posts association in the User model to be converted to JSON
|
|
32
|
-
# as well.
|
|
33
|
-
def to_json(options = nil) #:nodoc:
|
|
34
|
-
hash = as_json(options)
|
|
35
|
-
|
|
36
|
-
result = '{'
|
|
37
|
-
result << hash.map do |key, value|
|
|
38
|
-
"#{ActiveSupport::JSON.encode(key.to_s)}:#{ActiveSupport::JSON.encode(value, options)}"
|
|
39
|
-
end * ','
|
|
40
|
-
result << '}'
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def as_json(options = nil) #:nodoc:
|
|
44
|
-
if options
|
|
45
|
-
if attrs = options[:except]
|
|
46
|
-
except(*Array.wrap(attrs))
|
|
47
|
-
elsif attrs = options[:only]
|
|
48
|
-
slice(*Array.wrap(attrs))
|
|
49
|
-
else
|
|
50
|
-
self
|
|
51
|
-
end
|
|
52
|
-
else
|
|
53
|
-
self
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
class Numeric
|
|
2
|
-
def to_json(options = nil) #:nodoc:
|
|
3
|
-
to_s
|
|
4
|
-
end
|
|
5
|
-
|
|
6
|
-
def as_json(options = nil) #:nodoc:
|
|
7
|
-
self
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
class Float
|
|
12
|
-
def to_json(options = nil) #:nodoc:
|
|
13
|
-
to_s
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
class Integer
|
|
18
|
-
def to_json(options = nil) #:nodoc:
|
|
19
|
-
to_s
|
|
20
|
-
end
|
|
21
|
-
end
|