activesupport 3.0.pre → 3.0.0.rc
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activesupport might be problematic. Click here for more details.
- data/CHANGELOG +121 -1
- data/README.rdoc +33 -0
- data/lib/active_support.rb +42 -4
- data/lib/active_support/backtrace_cleaner.rb +31 -9
- data/lib/active_support/benchmarkable.rb +1 -0
- data/lib/active_support/buffered_logger.rb +5 -2
- data/lib/active_support/builder.rb +6 -0
- data/lib/active_support/cache.rb +454 -84
- data/lib/active_support/cache/compressed_mem_cache_store.rb +6 -13
- data/lib/active_support/cache/file_store.rb +140 -41
- data/lib/active_support/cache/mem_cache_store.rb +121 -76
- data/lib/active_support/cache/memory_store.rb +127 -27
- data/lib/active_support/cache/strategy/local_cache.rb +111 -58
- data/lib/active_support/cache/synchronized_memory_store.rb +2 -38
- data/lib/active_support/callbacks.rb +105 -76
- data/lib/active_support/configurable.rb +19 -18
- data/lib/active_support/core_ext/array.rb +1 -0
- data/lib/active_support/core_ext/array/access.rb +1 -1
- data/lib/active_support/core_ext/array/conversions.rb +29 -54
- data/lib/active_support/core_ext/array/extract_options.rb +16 -1
- data/lib/active_support/core_ext/array/grouping.rb +1 -1
- data/lib/active_support/core_ext/array/random_access.rb +26 -5
- data/lib/active_support/core_ext/array/uniq_by.rb +17 -0
- data/lib/active_support/core_ext/array/wrap.rb +13 -9
- data/lib/active_support/core_ext/benchmark.rb +0 -12
- data/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +2 -0
- data/lib/active_support/core_ext/class.rb +2 -1
- data/lib/active_support/core_ext/class/attribute.rb +67 -0
- data/lib/active_support/core_ext/class/attribute_accessors.rb +33 -27
- data/lib/active_support/core_ext/class/delegating_attributes.rb +35 -41
- data/lib/active_support/core_ext/class/inheritable_attributes.rb +23 -14
- data/lib/active_support/core_ext/class/subclasses.rb +50 -0
- data/lib/active_support/core_ext/date/calculations.rb +35 -12
- data/lib/active_support/core_ext/date/conversions.rb +5 -5
- data/lib/active_support/core_ext/date/zones.rb +14 -0
- data/lib/active_support/core_ext/date_time/calculations.rb +3 -1
- data/lib/active_support/core_ext/date_time/conversions.rb +24 -5
- data/lib/active_support/core_ext/date_time/zones.rb +4 -0
- data/lib/active_support/core_ext/enumerable.rb +5 -9
- data/lib/active_support/core_ext/exception.rb +0 -47
- data/lib/active_support/core_ext/file.rb +1 -0
- data/lib/active_support/core_ext/file/atomic.rb +3 -2
- data/lib/active_support/core_ext/file/path.rb +5 -0
- data/lib/active_support/core_ext/float/rounding.rb +3 -2
- data/lib/active_support/core_ext/hash/conversions.rb +65 -145
- data/lib/active_support/core_ext/hash/deep_merge.rb +6 -7
- data/lib/active_support/core_ext/hash/except.rb +8 -1
- data/lib/active_support/core_ext/hash/indifferent_access.rb +5 -0
- data/lib/active_support/core_ext/hash/keys.rb +10 -11
- data/lib/active_support/core_ext/hash/slice.rb +6 -0
- data/lib/active_support/core_ext/integer.rb +1 -1
- data/lib/active_support/core_ext/integer/multiple.rb +6 -0
- data/lib/active_support/core_ext/kernel.rb +1 -1
- data/lib/active_support/core_ext/kernel/debugger.rb +3 -2
- data/lib/active_support/core_ext/kernel/reporting.rb +2 -1
- data/lib/active_support/core_ext/kernel/requires.rb +2 -2
- data/lib/active_support/core_ext/kernel/singleton_class.rb +13 -0
- data/lib/active_support/core_ext/load_error.rb +17 -30
- data/lib/active_support/core_ext/logger.rb +2 -40
- data/lib/active_support/core_ext/module.rb +5 -3
- data/lib/active_support/core_ext/module/aliasing.rb +1 -1
- 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 +2 -2
- data/lib/active_support/core_ext/module/attribute_accessors.rb +20 -22
- data/lib/active_support/core_ext/module/delegation.rb +21 -10
- data/lib/active_support/core_ext/module/introspection.rb +8 -8
- 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 +11 -0
- data/lib/active_support/core_ext/module/synchronization.rb +2 -1
- data/lib/active_support/core_ext/name_error.rb +3 -1
- data/lib/active_support/core_ext/object.rb +5 -3
- data/lib/active_support/core_ext/object/blank.rb +20 -2
- data/lib/active_support/core_ext/object/conversions.rb +2 -16
- data/lib/active_support/core_ext/object/duplicable.rb +23 -1
- data/lib/active_support/core_ext/object/instance_variables.rb +0 -7
- data/lib/active_support/core_ext/object/to_json.rb +19 -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/object/with_options.rb +2 -0
- data/lib/active_support/core_ext/proc.rb +4 -4
- data/lib/active_support/core_ext/range/overlaps.rb +1 -1
- data/lib/active_support/core_ext/regexp.rb +0 -22
- data/lib/active_support/core_ext/rexml.rb +4 -1
- data/lib/active_support/core_ext/string.rb +3 -2
- data/lib/active_support/core_ext/string/access.rb +4 -2
- data/lib/active_support/core_ext/string/conversions.rb +28 -1
- data/lib/active_support/core_ext/string/encoding.rb +11 -0
- data/lib/active_support/core_ext/string/exclude.rb +6 -0
- data/lib/active_support/core_ext/string/filters.rb +29 -0
- data/lib/active_support/core_ext/string/inflections.rb +12 -12
- data/lib/active_support/core_ext/string/interpolation.rb +2 -92
- data/lib/active_support/core_ext/string/multibyte.rb +16 -19
- data/lib/active_support/core_ext/string/output_safety.rb +101 -35
- data/lib/active_support/core_ext/string/starts_ends_with.rb +0 -14
- data/lib/active_support/core_ext/string/xchar.rb +1 -1
- data/lib/active_support/core_ext/time/calculations.rb +14 -7
- data/lib/active_support/core_ext/time/conversions.rb +1 -0
- data/lib/active_support/core_ext/time/marshal.rb +56 -0
- data/lib/active_support/core_ext/time/zones.rb +2 -5
- data/lib/active_support/core_ext/uri.rb +10 -4
- data/lib/active_support/dependencies.rb +200 -197
- data/lib/active_support/dependencies/autoload.rb +50 -0
- data/lib/active_support/deprecation/behaviors.rb +13 -9
- data/lib/active_support/deprecation/method_wrappers.rb +10 -9
- data/lib/active_support/deprecation/proxy_wrappers.rb +7 -0
- data/lib/active_support/deprecation/reporting.rb +5 -3
- data/lib/active_support/descendants_tracker.rb +43 -0
- data/lib/active_support/duration.rb +8 -4
- data/lib/active_support/file_update_checker.rb +36 -0
- data/lib/active_support/hash_with_indifferent_access.rb +9 -1
- data/lib/active_support/i18n.rb +9 -0
- data/lib/active_support/i18n_railtie.rb +81 -0
- data/lib/active_support/inflections.rb +1 -1
- data/lib/active_support/inflector.rb +4 -407
- data/lib/active_support/inflector/inflections.rb +211 -0
- data/lib/active_support/inflector/methods.rb +151 -0
- data/lib/active_support/inflector/transliterate.rb +97 -0
- data/lib/active_support/json/backends/jsongem.rb +12 -9
- data/lib/active_support/json/backends/yajl.rb +40 -0
- data/lib/active_support/json/backends/yaml.rb +1 -1
- data/lib/active_support/json/decoding.rb +17 -2
- data/lib/active_support/json/encoding.rb +48 -31
- data/lib/active_support/json/variable.rb +2 -4
- data/lib/active_support/lazy_load_hooks.rb +27 -0
- data/lib/active_support/locale/en.yml +5 -2
- data/lib/active_support/log_subscriber.rb +123 -0
- data/lib/active_support/log_subscriber/test_helper.rb +99 -0
- data/lib/active_support/memoizable.rb +1 -1
- data/lib/active_support/message_encryptor.rb +1 -0
- data/lib/active_support/message_verifier.rb +2 -1
- data/lib/active_support/multibyte.rb +8 -23
- data/lib/active_support/multibyte/chars.rb +213 -446
- data/lib/active_support/multibyte/unicode.rb +392 -0
- data/lib/active_support/multibyte/utils.rb +6 -7
- data/lib/active_support/notifications.rb +29 -122
- data/lib/active_support/notifications/fanout.rb +61 -0
- data/lib/active_support/notifications/instrumenter.rb +54 -0
- data/lib/active_support/ordered_hash.rb +59 -14
- data/lib/active_support/ordered_options.rb +6 -0
- data/lib/active_support/railtie.rb +60 -0
- data/lib/active_support/rescuable.rb +7 -4
- data/lib/active_support/ruby/shim.rb +4 -6
- data/lib/active_support/test_case.rb +2 -7
- data/lib/active_support/testing/assertions.rb +15 -0
- data/lib/active_support/testing/declarative.rb +1 -1
- data/lib/active_support/testing/isolation.rb +64 -17
- data/lib/active_support/testing/performance.rb +306 -335
- data/lib/active_support/testing/setup_and_teardown.rb +51 -29
- data/lib/active_support/time.rb +24 -3
- data/lib/active_support/time_with_zone.rb +10 -14
- data/lib/active_support/values/time_zone.rb +192 -234
- data/lib/active_support/values/unicode_tables.dat +0 -0
- data/lib/active_support/version.rb +3 -2
- data/lib/active_support/whiny_nil.rb +9 -7
- data/lib/active_support/xml_mini.rb +130 -1
- data/lib/active_support/xml_mini/jdom.rb +2 -0
- data/lib/active_support/xml_mini/libxml.rb +23 -86
- data/lib/active_support/xml_mini/libxmlsax.rb +85 -0
- data/lib/active_support/xml_mini/nokogiri.rb +27 -24
- data/lib/active_support/xml_mini/nokogirisax.rb +83 -0
- data/lib/active_support/xml_mini/rexml.rb +8 -2
- metadata +62 -195
- data/README +0 -43
- data/lib/active_support/autoload.rb +0 -28
- data/lib/active_support/core_ext/boolean.rb +0 -1
- data/lib/active_support/core_ext/boolean/conversions.rb +0 -11
- data/lib/active_support/core_ext/class/removal.rb +0 -53
- data/lib/active_support/core_ext/date.rb +0 -7
- data/lib/active_support/core_ext/date_time.rb +0 -5
- data/lib/active_support/core_ext/integer/even_odd.rb +0 -16
- 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/nil.rb +0 -1
- data/lib/active_support/core_ext/nil/conversions.rb +0 -5
- data/lib/active_support/core_ext/object/extending.rb +0 -80
- data/lib/active_support/core_ext/object/metaclass.rb +0 -13
- data/lib/active_support/core_ext/object/misc.rb +0 -3
- data/lib/active_support/core_ext/object/returning.rb +0 -42
- data/lib/active_support/core_ext/object/tap.rb +0 -16
- data/lib/active_support/core_ext/string/bytesize.rb +0 -5
- data/lib/active_support/core_ext/string/iterators.rb +0 -13
- data/lib/active_support/core_ext/symbol.rb +0 -1
- data/lib/active_support/core_ext/symbol/to_proc.rb +0 -14
- data/lib/active_support/core_ext/time.rb +0 -10
- data/lib/active_support/core_ext/time/marshal_with_utc_flag.rb +0 -22
- data/lib/active_support/deprecated_callbacks.rb +0 -283
- data/lib/active_support/multibyte/unicode_database.rb +0 -71
- data/lib/active_support/vendor.rb +0 -16
- data/lib/active_support/vendor/builder-2.1.2/lib/blankslate.rb +0 -113
- data/lib/active_support/vendor/builder-2.1.2/lib/builder.rb +0 -13
- data/lib/active_support/vendor/builder-2.1.2/lib/builder/blankslate.rb +0 -20
- data/lib/active_support/vendor/builder-2.1.2/lib/builder/css.rb +0 -250
- data/lib/active_support/vendor/builder-2.1.2/lib/builder/xchar.rb +0 -115
- data/lib/active_support/vendor/builder-2.1.2/lib/builder/xmlbase.rb +0 -139
- data/lib/active_support/vendor/builder-2.1.2/lib/builder/xmlevents.rb +0 -63
- data/lib/active_support/vendor/builder-2.1.2/lib/builder/xmlmarkup.rb +0 -328
- 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.rb +0 -204
- data/lib/active_support/vendor/i18n-0.1.3/lib/i18n/backend/simple.rb +0 -215
- data/lib/active_support/vendor/i18n-0.1.3/lib/i18n/exceptions.rb +0 -53
- 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.5/lib/memcache.rb +0 -1133
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo.rb +0 -33
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/data_timezone.rb +0 -47
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/data_timezone_info.rb +0 -228
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Africa/Algiers.rb +0 -55
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Africa/Cairo.rb +0 -219
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Africa/Casablanca.rb +0 -42
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Africa/Harare.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Africa/Johannesburg.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Africa/Monrovia.rb +0 -22
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Africa/Nairobi.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -166
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -86
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Bogota.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Caracas.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Chicago.rb +0 -283
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Chihuahua.rb +0 -136
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Denver.rb +0 -204
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Godthab.rb +0 -161
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Guatemala.rb +0 -27
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Halifax.rb +0 -274
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -149
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Juneau.rb +0 -194
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/La_Paz.rb +0 -22
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Lima.rb +0 -35
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Los_Angeles.rb +0 -232
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Mazatlan.rb +0 -139
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Mexico_City.rb +0 -144
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Monterrey.rb +0 -131
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/New_York.rb +0 -282
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Phoenix.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Regina.rb +0 -74
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Santiago.rb +0 -205
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Sao_Paulo.rb +0 -171
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/St_Johns.rb +0 -288
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/America/Tijuana.rb +0 -196
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Almaty.rb +0 -67
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Baghdad.rb +0 -73
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Baku.rb +0 -161
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Bangkok.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Chongqing.rb +0 -33
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Colombo.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Dhaka.rb +0 -27
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Hong_Kong.rb +0 -87
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Irkutsk.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Jakarta.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Jerusalem.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Kabul.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Kamchatka.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Karachi.rb +0 -32
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Kathmandu.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Kolkata.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -31
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Kuwait.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Magadan.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Muscat.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Novosibirsk.rb +0 -164
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Rangoon.rb +0 -24
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Riyadh.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Seoul.rb +0 -34
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Shanghai.rb +0 -35
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Singapore.rb +0 -33
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Taipei.rb +0 -59
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Tashkent.rb +0 -47
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Tbilisi.rb +0 -78
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Tehran.rb +0 -121
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Tokyo.rb +0 -30
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -65
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Urumqi.rb +0 -33
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Vladivostok.rb +0 -164
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Yakutsk.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Asia/Yerevan.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Atlantic/Azores.rb +0 -270
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -18
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Australia/Adelaide.rb +0 -187
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Australia/Brisbane.rb +0 -35
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Australia/Darwin.rb +0 -29
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Australia/Hobart.rb +0 -193
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Australia/Melbourne.rb +0 -185
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Australia/Perth.rb +0 -37
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Australia/Sydney.rb +0 -185
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Etc/UTC.rb +0 -16
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Amsterdam.rb +0 -228
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Athens.rb +0 -185
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Belgrade.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Berlin.rb +0 -188
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Bratislava.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Brussels.rb +0 -232
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Bucharest.rb +0 -181
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Budapest.rb +0 -197
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Copenhagen.rb +0 -179
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Dublin.rb +0 -276
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Helsinki.rb +0 -163
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Istanbul.rb +0 -218
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Kiev.rb +0 -168
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Lisbon.rb +0 -268
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Ljubljana.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/London.rb +0 -288
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Madrid.rb +0 -211
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Minsk.rb +0 -170
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Moscow.rb +0 -181
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Paris.rb +0 -232
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Prague.rb +0 -187
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Riga.rb +0 -176
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Rome.rb +0 -215
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Sarajevo.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Skopje.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Sofia.rb +0 -173
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Stockholm.rb +0 -165
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Tallinn.rb +0 -172
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Vienna.rb +0 -183
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Vilnius.rb +0 -170
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Warsaw.rb +0 -212
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Europe/Zagreb.rb +0 -13
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Auckland.rb +0 -202
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Fiji.rb +0 -23
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Guam.rb +0 -22
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Honolulu.rb +0 -28
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Majuro.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Midway.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Noumea.rb +0 -25
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -26
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -20
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/definitions/Pacific/Tongatapu.rb +0 -27
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/info_timezone.rb +0 -52
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/linked_timezone.rb +0 -51
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/linked_timezone_info.rb +0 -44
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/offset_rationals.rb +0 -98
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/ruby_core_support.rb +0 -56
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/time_or_datetime.rb +0 -292
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/timezone.rb +0 -508
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/timezone_definition.rb +0 -56
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/timezone_info.rb +0 -40
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/timezone_offset_info.rb +0 -94
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/timezone_period.rb +0 -198
- data/lib/active_support/vendor/tzinfo-0.3.13/lib/tzinfo/timezone_transition_info.rb +0 -129
@@ -1,10 +0,0 @@
|
|
1
|
-
require 'date'
|
2
|
-
require 'time'
|
3
|
-
|
4
|
-
require 'active_support/core_ext/time/publicize_conversion_methods'
|
5
|
-
require 'active_support/core_ext/time/marshal_with_utc_flag'
|
6
|
-
|
7
|
-
require 'active_support/core_ext/time/acts_like'
|
8
|
-
require 'active_support/core_ext/time/calculations'
|
9
|
-
require 'active_support/core_ext/time/conversions'
|
10
|
-
require 'active_support/core_ext/time/zones'
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# Pre-1.9 versions of Ruby have a bug with marshaling Time instances, where utc instances are
|
2
|
-
# unmarshalled in the local zone, instead of utc. We're layering behavior on the _dump and _load
|
3
|
-
# methods so that utc instances can be flagged on dump, and coerced back to utc on load.
|
4
|
-
if RUBY_VERSION < '1.9'
|
5
|
-
class Time
|
6
|
-
class << self
|
7
|
-
alias_method :_original_load, :_load
|
8
|
-
def _load(marshaled_time)
|
9
|
-
time = _original_load(marshaled_time)
|
10
|
-
utc = time.instance_variable_get('@marshal_with_utc_coercion')
|
11
|
-
utc ? time.utc : time
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
alias_method :_original_dump, :_dump
|
16
|
-
def _dump(*args)
|
17
|
-
obj = frozen? ? dup : self
|
18
|
-
obj.instance_variable_set('@marshal_with_utc_coercion', utc?)
|
19
|
-
obj._original_dump(*args)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,283 +0,0 @@
|
|
1
|
-
require 'active_support/core_ext/array/extract_options'
|
2
|
-
|
3
|
-
module ActiveSupport
|
4
|
-
# Callbacks are hooks into the lifecycle of an object that allow you to trigger logic
|
5
|
-
# before or after an alteration of the object state.
|
6
|
-
#
|
7
|
-
# Mixing in this module allows you to define callbacks in your class.
|
8
|
-
#
|
9
|
-
# Example:
|
10
|
-
# class Storage
|
11
|
-
# include ActiveSupport::DeprecatedCallbacks
|
12
|
-
#
|
13
|
-
# define_callbacks :before_save, :after_save
|
14
|
-
# end
|
15
|
-
#
|
16
|
-
# class ConfigStorage < Storage
|
17
|
-
# before_save :saving_message
|
18
|
-
# def saving_message
|
19
|
-
# puts "saving..."
|
20
|
-
# end
|
21
|
-
#
|
22
|
-
# after_save do |object|
|
23
|
-
# puts "saved"
|
24
|
-
# end
|
25
|
-
#
|
26
|
-
# def save
|
27
|
-
# run_callbacks(:before_save)
|
28
|
-
# puts "- save"
|
29
|
-
# run_callbacks(:after_save)
|
30
|
-
# end
|
31
|
-
# end
|
32
|
-
#
|
33
|
-
# config = ConfigStorage.new
|
34
|
-
# config.save
|
35
|
-
#
|
36
|
-
# Output:
|
37
|
-
# saving...
|
38
|
-
# - save
|
39
|
-
# saved
|
40
|
-
#
|
41
|
-
# Callbacks from parent classes are inherited.
|
42
|
-
#
|
43
|
-
# Example:
|
44
|
-
# class Storage
|
45
|
-
# include ActiveSupport::DeprecatedCallbacks
|
46
|
-
#
|
47
|
-
# define_callbacks :before_save, :after_save
|
48
|
-
#
|
49
|
-
# before_save :prepare
|
50
|
-
# def prepare
|
51
|
-
# puts "preparing save"
|
52
|
-
# end
|
53
|
-
# end
|
54
|
-
#
|
55
|
-
# class ConfigStorage < Storage
|
56
|
-
# before_save :saving_message
|
57
|
-
# def saving_message
|
58
|
-
# puts "saving..."
|
59
|
-
# end
|
60
|
-
#
|
61
|
-
# after_save do |object|
|
62
|
-
# puts "saved"
|
63
|
-
# end
|
64
|
-
#
|
65
|
-
# def save
|
66
|
-
# run_callbacks(:before_save)
|
67
|
-
# puts "- save"
|
68
|
-
# run_callbacks(:after_save)
|
69
|
-
# end
|
70
|
-
# end
|
71
|
-
#
|
72
|
-
# config = ConfigStorage.new
|
73
|
-
# config.save
|
74
|
-
#
|
75
|
-
# Output:
|
76
|
-
# preparing save
|
77
|
-
# saving...
|
78
|
-
# - save
|
79
|
-
# saved
|
80
|
-
module DeprecatedCallbacks
|
81
|
-
class CallbackChain < Array
|
82
|
-
def self.build(kind, *methods, &block)
|
83
|
-
methods, options = extract_options(*methods, &block)
|
84
|
-
methods.map! { |method| Callback.new(kind, method, options) }
|
85
|
-
new(methods)
|
86
|
-
end
|
87
|
-
|
88
|
-
def run(object, options = {}, &terminator)
|
89
|
-
enumerator = options[:enumerator] || :each
|
90
|
-
|
91
|
-
unless block_given?
|
92
|
-
send(enumerator) { |callback| callback.call(object) }
|
93
|
-
else
|
94
|
-
send(enumerator) do |callback|
|
95
|
-
result = callback.call(object)
|
96
|
-
break result if terminator.call(result, object)
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
# TODO: Decompose into more Array like behavior
|
102
|
-
def replace_or_append!(chain)
|
103
|
-
if index = index(chain)
|
104
|
-
self[index] = chain
|
105
|
-
else
|
106
|
-
self << chain
|
107
|
-
end
|
108
|
-
self
|
109
|
-
end
|
110
|
-
|
111
|
-
def find(callback, &block)
|
112
|
-
select { |c| c == callback && (!block_given? || yield(c)) }.first
|
113
|
-
end
|
114
|
-
|
115
|
-
def delete(callback)
|
116
|
-
super(callback.is_a?(Callback) ? callback : find(callback))
|
117
|
-
end
|
118
|
-
|
119
|
-
private
|
120
|
-
def self.extract_options(*methods, &block)
|
121
|
-
methods.flatten!
|
122
|
-
options = methods.extract_options!
|
123
|
-
methods << block if block_given?
|
124
|
-
return methods, options
|
125
|
-
end
|
126
|
-
|
127
|
-
def extract_options(*methods, &block)
|
128
|
-
self.class.extract_options(*methods, &block)
|
129
|
-
end
|
130
|
-
end
|
131
|
-
|
132
|
-
class Callback
|
133
|
-
attr_reader :kind, :method, :identifier, :options
|
134
|
-
|
135
|
-
def initialize(kind, method, options = {})
|
136
|
-
@kind = kind
|
137
|
-
@method = method
|
138
|
-
@identifier = options[:identifier]
|
139
|
-
@options = options
|
140
|
-
end
|
141
|
-
|
142
|
-
def ==(other)
|
143
|
-
case other
|
144
|
-
when Callback
|
145
|
-
(self.identifier && self.identifier == other.identifier) || self.method == other.method
|
146
|
-
else
|
147
|
-
(self.identifier && self.identifier == other) || self.method == other
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
def eql?(other)
|
152
|
-
self == other
|
153
|
-
end
|
154
|
-
|
155
|
-
def dup
|
156
|
-
self.class.new(@kind, @method, @options.dup)
|
157
|
-
end
|
158
|
-
|
159
|
-
def hash
|
160
|
-
if @identifier
|
161
|
-
@identifier.hash
|
162
|
-
else
|
163
|
-
@method.hash
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
|
-
def call(*args, &block)
|
168
|
-
evaluate_method(method, *args, &block) if should_run_callback?(*args)
|
169
|
-
rescue LocalJumpError
|
170
|
-
raise ArgumentError,
|
171
|
-
"Cannot yield from a Proc type filter. The Proc must take two " +
|
172
|
-
"arguments and execute #call on the second argument."
|
173
|
-
end
|
174
|
-
|
175
|
-
private
|
176
|
-
def evaluate_method(method, *args, &block)
|
177
|
-
case method
|
178
|
-
when Symbol
|
179
|
-
object = args.shift
|
180
|
-
object.send(method, *args, &block)
|
181
|
-
when String
|
182
|
-
eval(method, args.first.instance_eval { binding })
|
183
|
-
when Proc, Method
|
184
|
-
method.call(*args, &block)
|
185
|
-
else
|
186
|
-
if method.respond_to?(kind)
|
187
|
-
method.send(kind, *args, &block)
|
188
|
-
else
|
189
|
-
raise ArgumentError,
|
190
|
-
"Callbacks must be a symbol denoting the method to call, a string to be evaluated, " +
|
191
|
-
"a block to be invoked, or an object responding to the callback method."
|
192
|
-
end
|
193
|
-
end
|
194
|
-
end
|
195
|
-
|
196
|
-
def should_run_callback?(*args)
|
197
|
-
[options[:if]].flatten.compact.all? { |a| evaluate_method(a, *args) } &&
|
198
|
-
![options[:unless]].flatten.compact.any? { |a| evaluate_method(a, *args) }
|
199
|
-
end
|
200
|
-
end
|
201
|
-
|
202
|
-
def self.included(base)
|
203
|
-
base.extend ClassMethods
|
204
|
-
end
|
205
|
-
|
206
|
-
module ClassMethods
|
207
|
-
def define_callbacks(*callbacks)
|
208
|
-
ActiveSupport::Deprecation.warn('ActiveSupport::DeprecatedCallbacks has been deprecated in favor of ActiveSupport::Callbacks', caller)
|
209
|
-
|
210
|
-
callbacks.each do |callback|
|
211
|
-
class_eval <<-"end_eval", __FILE__, __LINE__ + 1
|
212
|
-
def self.#{callback}(*methods, &block) # def self.before_save(*methods, &block)
|
213
|
-
callbacks = CallbackChain.build(:#{callback}, *methods, &block) # callbacks = CallbackChain.build(:before_save, *methods, &block)
|
214
|
-
@#{callback}_callbacks ||= CallbackChain.new # @before_save_callbacks ||= CallbackChain.new
|
215
|
-
@#{callback}_callbacks.concat callbacks # @before_save_callbacks.concat callbacks
|
216
|
-
end # end
|
217
|
-
#
|
218
|
-
def self.#{callback}_callback_chain # def self.before_save_callback_chain
|
219
|
-
@#{callback}_callbacks ||= CallbackChain.new # @before_save_callbacks ||= CallbackChain.new
|
220
|
-
#
|
221
|
-
if superclass.respond_to?(:#{callback}_callback_chain) # if superclass.respond_to?(:before_save_callback_chain)
|
222
|
-
CallbackChain.new( # CallbackChain.new(
|
223
|
-
superclass.#{callback}_callback_chain + # superclass.before_save_callback_chain +
|
224
|
-
@#{callback}_callbacks # @before_save_callbacks
|
225
|
-
) # )
|
226
|
-
else # else
|
227
|
-
@#{callback}_callbacks # @before_save_callbacks
|
228
|
-
end # end
|
229
|
-
end # end
|
230
|
-
end_eval
|
231
|
-
end
|
232
|
-
end
|
233
|
-
end
|
234
|
-
|
235
|
-
# Runs all the callbacks defined for the given options.
|
236
|
-
#
|
237
|
-
# If a block is given it will be called after each callback receiving as arguments:
|
238
|
-
#
|
239
|
-
# * the result from the callback
|
240
|
-
# * the object which has the callback
|
241
|
-
#
|
242
|
-
# If the result from the block evaluates to +true+, the callback chain is stopped.
|
243
|
-
#
|
244
|
-
# Example:
|
245
|
-
# class Storage
|
246
|
-
# include ActiveSupport::DeprecatedCallbacks
|
247
|
-
#
|
248
|
-
# define_callbacks :before_save, :after_save
|
249
|
-
# end
|
250
|
-
#
|
251
|
-
# class ConfigStorage < Storage
|
252
|
-
# before_save :pass
|
253
|
-
# before_save :pass
|
254
|
-
# before_save :stop
|
255
|
-
# before_save :pass
|
256
|
-
#
|
257
|
-
# def pass
|
258
|
-
# puts "pass"
|
259
|
-
# end
|
260
|
-
#
|
261
|
-
# def stop
|
262
|
-
# puts "stop"
|
263
|
-
# return false
|
264
|
-
# end
|
265
|
-
#
|
266
|
-
# def save
|
267
|
-
# result = run_callbacks(:before_save) { |result, object| result == false }
|
268
|
-
# puts "- save" if result
|
269
|
-
# end
|
270
|
-
# end
|
271
|
-
#
|
272
|
-
# config = ConfigStorage.new
|
273
|
-
# config.save
|
274
|
-
#
|
275
|
-
# Output:
|
276
|
-
# pass
|
277
|
-
# pass
|
278
|
-
# stop
|
279
|
-
def run_callbacks(kind, options = {}, &block)
|
280
|
-
self.class.send("#{kind}_callback_chain").run(self, options, &block)
|
281
|
-
end
|
282
|
-
end
|
283
|
-
end
|
@@ -1,71 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
module ActiveSupport #:nodoc:
|
4
|
-
module Multibyte #:nodoc:
|
5
|
-
# Holds data about a codepoint in the Unicode database
|
6
|
-
class Codepoint
|
7
|
-
attr_accessor :code, :combining_class, :decomp_type, :decomp_mapping, :uppercase_mapping, :lowercase_mapping
|
8
|
-
end
|
9
|
-
|
10
|
-
# Holds static data from the Unicode database
|
11
|
-
class UnicodeDatabase
|
12
|
-
ATTRIBUTES = :codepoints, :composition_exclusion, :composition_map, :boundary, :cp1252
|
13
|
-
|
14
|
-
attr_writer(*ATTRIBUTES)
|
15
|
-
|
16
|
-
def initialize
|
17
|
-
@codepoints = Hash.new(Codepoint.new)
|
18
|
-
@composition_exclusion = []
|
19
|
-
@composition_map = {}
|
20
|
-
@boundary = {}
|
21
|
-
@cp1252 = {}
|
22
|
-
end
|
23
|
-
|
24
|
-
# Lazy load the Unicode database so it's only loaded when it's actually used
|
25
|
-
ATTRIBUTES.each do |attr_name|
|
26
|
-
class_eval(<<-EOS, __FILE__, __LINE__ + 1)
|
27
|
-
def #{attr_name} # def codepoints
|
28
|
-
load # load
|
29
|
-
@#{attr_name} # @codepoints
|
30
|
-
end # end
|
31
|
-
EOS
|
32
|
-
end
|
33
|
-
|
34
|
-
# Loads the Unicode database and returns all the internal objects of UnicodeDatabase.
|
35
|
-
def load
|
36
|
-
begin
|
37
|
-
@codepoints, @composition_exclusion, @composition_map, @boundary, @cp1252 = File.open(self.class.filename, 'rb') { |f| Marshal.load f.read }
|
38
|
-
rescue Exception => e
|
39
|
-
raise IOError.new("Couldn't load the Unicode tables for UTF8Handler (#{e.message}), ActiveSupport::Multibyte is unusable")
|
40
|
-
end
|
41
|
-
|
42
|
-
# Redefine the === method so we can write shorter rules for grapheme cluster breaks
|
43
|
-
@boundary.each do |k,_|
|
44
|
-
@boundary[k].instance_eval do
|
45
|
-
def ===(other)
|
46
|
-
detect { |i| i === other } ? true : false
|
47
|
-
end
|
48
|
-
end if @boundary[k].kind_of?(Array)
|
49
|
-
end
|
50
|
-
|
51
|
-
# define attr_reader methods for the instance variables
|
52
|
-
class << self
|
53
|
-
attr_reader(*ATTRIBUTES)
|
54
|
-
end
|
55
|
-
end
|
56
|
-
|
57
|
-
# Returns the directory in which the data files are stored
|
58
|
-
def self.dirname
|
59
|
-
File.dirname(__FILE__) + '/../values/'
|
60
|
-
end
|
61
|
-
|
62
|
-
# Returns the filename for the data file for this version
|
63
|
-
def self.filename
|
64
|
-
File.expand_path File.join(dirname, "unicode_tables.dat")
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
# UniCode Database
|
69
|
-
UCD = UnicodeDatabase.new
|
70
|
-
end
|
71
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
def ActiveSupport.requirable?(file)
|
2
|
-
$LOAD_PATH.any? { |p| Dir.glob("#{p}/#{file}.*").any? }
|
3
|
-
end
|
4
|
-
|
5
|
-
[%w(builder 2.1.2), %w(i18n 0.1.3), %w(memcache-client 1.7.5), %w(tzinfo 0.3.13)].each do |lib, version|
|
6
|
-
# If the lib is not already requirable
|
7
|
-
unless ActiveSupport.requirable? lib
|
8
|
-
# Try to activate a gem ~> satisfying the requested version first.
|
9
|
-
begin
|
10
|
-
gem lib, "~> #{version}"
|
11
|
-
# Use the vendored lib if the gem's missing or we aren't using RubyGems.
|
12
|
-
rescue LoadError, NoMethodError
|
13
|
-
$LOAD_PATH.unshift File.expand_path("#{File.dirname(__FILE__)}/vendor/#{lib}-#{version}/lib")
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,113 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#--
|
3
|
-
# Copyright 2004, 2006 by Jim Weirich (jim@weirichhouse.org).
|
4
|
-
# All rights reserved.
|
5
|
-
|
6
|
-
# Permission is granted for use, copying, modification, distribution,
|
7
|
-
# and distribution of modified versions of this work as long as the
|
8
|
-
# above copyright notice is included.
|
9
|
-
#++
|
10
|
-
|
11
|
-
######################################################################
|
12
|
-
# BlankSlate provides an abstract base class with no predefined
|
13
|
-
# methods (except for <tt>\_\_send__</tt> and <tt>\_\_id__</tt>).
|
14
|
-
# BlankSlate is useful as a base class when writing classes that
|
15
|
-
# depend upon <tt>method_missing</tt> (e.g. dynamic proxies).
|
16
|
-
#
|
17
|
-
class BlankSlate
|
18
|
-
class << self
|
19
|
-
|
20
|
-
# Hide the method named +name+ in the BlankSlate class. Don't
|
21
|
-
# hide +instance_eval+ or any method beginning with "__".
|
22
|
-
def hide(name)
|
23
|
-
if instance_methods.include?(name.to_s) and
|
24
|
-
name !~ /^(__|instance_eval)/
|
25
|
-
@hidden_methods ||= {}
|
26
|
-
@hidden_methods[name.to_sym] = instance_method(name)
|
27
|
-
undef_method name
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
def find_hidden_method(name)
|
32
|
-
@hidden_methods ||= {}
|
33
|
-
@hidden_methods[name] || superclass.find_hidden_method(name)
|
34
|
-
end
|
35
|
-
|
36
|
-
# Redefine a previously hidden method so that it may be called on a blank
|
37
|
-
# slate object.
|
38
|
-
def reveal(name)
|
39
|
-
bound_method = nil
|
40
|
-
unbound_method = find_hidden_method(name)
|
41
|
-
fail "Don't know how to reveal method '#{name}'" unless unbound_method
|
42
|
-
define_method(name) do |*args|
|
43
|
-
bound_method ||= unbound_method.bind(self)
|
44
|
-
bound_method.call(*args)
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
instance_methods.each { |m| hide(m) }
|
50
|
-
end
|
51
|
-
|
52
|
-
######################################################################
|
53
|
-
# Since Ruby is very dynamic, methods added to the ancestors of
|
54
|
-
# BlankSlate <em>after BlankSlate is defined</em> will show up in the
|
55
|
-
# list of available BlankSlate methods. We handle this by defining a
|
56
|
-
# hook in the Object and Kernel classes that will hide any method
|
57
|
-
# defined after BlankSlate has been loaded.
|
58
|
-
#
|
59
|
-
module Kernel
|
60
|
-
class << self
|
61
|
-
alias_method :blank_slate_method_added, :method_added
|
62
|
-
|
63
|
-
# Detect method additions to Kernel and remove them in the
|
64
|
-
# BlankSlate class.
|
65
|
-
def method_added(name)
|
66
|
-
result = blank_slate_method_added(name)
|
67
|
-
return result if self != Kernel
|
68
|
-
BlankSlate.hide(name)
|
69
|
-
result
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
######################################################################
|
75
|
-
# Same as above, except in Object.
|
76
|
-
#
|
77
|
-
class Object
|
78
|
-
class << self
|
79
|
-
alias_method :blank_slate_method_added, :method_added
|
80
|
-
|
81
|
-
# Detect method additions to Object and remove them in the
|
82
|
-
# BlankSlate class.
|
83
|
-
def method_added(name)
|
84
|
-
result = blank_slate_method_added(name)
|
85
|
-
return result if self != Object
|
86
|
-
BlankSlate.hide(name)
|
87
|
-
result
|
88
|
-
end
|
89
|
-
|
90
|
-
def find_hidden_method(name)
|
91
|
-
nil
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
######################################################################
|
97
|
-
# Also, modules included into Object need to be scanned and have their
|
98
|
-
# instance methods removed from blank slate. In theory, modules
|
99
|
-
# included into Kernel would have to be removed as well, but a
|
100
|
-
# "feature" of Ruby prevents late includes into modules from being
|
101
|
-
# exposed in the first place.
|
102
|
-
#
|
103
|
-
class Module
|
104
|
-
alias blankslate_original_append_features append_features
|
105
|
-
def append_features(mod)
|
106
|
-
result = blankslate_original_append_features(mod)
|
107
|
-
return result if mod != Object
|
108
|
-
instance_methods.each do |name|
|
109
|
-
BlankSlate.hide(name)
|
110
|
-
end
|
111
|
-
result
|
112
|
-
end
|
113
|
-
end
|