mack-active_record 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/mack-active_record/test_extensions.rb +0 -3
- metadata +3 -374
- data/lib/gems/activesupport-2.2.2/lib/active_support/base64.rb +0 -33
- data/lib/gems/activesupport-2.2.2/lib/active_support/basic_object.rb +0 -24
- data/lib/gems/activesupport-2.2.2/lib/active_support/buffered_logger.rb +0 -122
- data/lib/gems/activesupport-2.2.2/lib/active_support/cache/compressed_mem_cache_store.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/cache/drb_store.rb +0 -15
- data/lib/gems/activesupport-2.2.2/lib/active_support/cache/file_store.rb +0 -72
- data/lib/gems/activesupport-2.2.2/lib/active_support/cache/mem_cache_store.rb +0 -127
- data/lib/gems/activesupport-2.2.2/lib/active_support/cache/memory_store.rb +0 -52
- data/lib/gems/activesupport-2.2.2/lib/active_support/cache/synchronized_memory_store.rb +0 -47
- data/lib/gems/activesupport-2.2.2/lib/active_support/cache.rb +0 -223
- data/lib/gems/activesupport-2.2.2/lib/active_support/callbacks.rb +0 -280
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/access.rb +0 -53
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/conversions.rb +0 -183
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/extract_options.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/grouping.rb +0 -106
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array/random_access.rb +0 -12
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/array.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64/encoding.rb +0 -16
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/base64.rb +0 -4
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/benchmark.rb +0 -12
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal/conversions.rb +0 -37
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/bigdecimal.rb +0 -6
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/blank.rb +0 -58
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi/escape_skipping_slashes.rb +0 -14
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/cgi.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/attribute_accessors.rb +0 -54
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/delegating_attributes.rb +0 -46
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/inheritable_attributes.rb +0 -140
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class/removal.rb +0 -50
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/class.rb +0 -4
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/behavior.rb +0 -42
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/calculations.rb +0 -230
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date/conversions.rb +0 -107
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date.rb +0 -10
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/calculations.rb +0 -126
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time/conversions.rb +0 -96
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/date_time.rb +0 -12
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/duplicable.rb +0 -43
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/enumerable.rb +0 -107
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/exception.rb +0 -41
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file/atomic.rb +0 -46
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/file.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/rounding.rb +0 -24
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float/time.rb +0 -27
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/float.rb +0 -7
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/conversions.rb +0 -259
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/deep_merge.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/diff.rb +0 -19
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/except.rb +0 -25
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/indifferent_access.rb +0 -137
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/keys.rb +0 -52
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/reverse_merge.rb +0 -35
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash/slice.rb +0 -33
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/hash.rb +0 -14
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/even_odd.rb +0 -29
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/inflections.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer/time.rb +0 -45
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/integer.rb +0 -9
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/agnostics.rb +0 -11
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/daemonizing.rb +0 -7
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/debugger.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/reporting.rb +0 -59
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel/requires.rb +0 -24
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/kernel.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/load_error.rb +0 -38
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/logger.rb +0 -143
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/aliasing.rb +0 -74
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_accessor_with_default.rb +0 -31
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attr_internal.rb +0 -32
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/attribute_accessors.rb +0 -58
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/delegation.rb +0 -95
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/inclusion.rb +0 -30
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/introspection.rb +0 -90
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/loading.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/model_naming.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module/synchronization.rb +0 -39
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/module.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/name_error.rb +0 -17
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/bytes.rb +0 -44
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/conversions.rb +0 -19
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric/time.rb +0 -81
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/numeric.rb +0 -9
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/conversions.rb +0 -14
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/extending.rb +0 -80
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/instance_variables.rb +0 -74
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/metaclass.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object/misc.rb +0 -74
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/object.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname/clean_within.rb +0 -14
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/pathname.rb +0 -7
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/proc.rb +0 -12
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process/daemon.rb +0 -25
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/process.rb +0 -1
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/blockless_step.rb +0 -32
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/conversions.rb +0 -27
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/include_range.rb +0 -30
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range/overlaps.rb +0 -15
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/range.rb +0 -11
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/rexml.rb +0 -36
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/access.rb +0 -82
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/behavior.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/conversions.rb +0 -28
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/filters.rb +0 -26
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/inflections.rb +0 -167
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/iterators.rb +0 -21
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/multibyte.rb +0 -81
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/starts_ends_with.rb +0 -35
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string/xchar.rb +0 -11
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/string.rb +0 -22
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/symbol.rb +0 -14
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/behavior.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/calculations.rb +0 -303
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/conversions.rb +0 -90
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time/zones.rb +0 -86
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext/time.rb +0 -42
- data/lib/gems/activesupport-2.2.2/lib/active_support/core_ext.rb +0 -4
- data/lib/gems/activesupport-2.2.2/lib/active_support/dependencies.rb +0 -621
- data/lib/gems/activesupport-2.2.2/lib/active_support/deprecation.rb +0 -243
- data/lib/gems/activesupport-2.2.2/lib/active_support/duration.rb +0 -96
- data/lib/gems/activesupport-2.2.2/lib/active_support/gzip.rb +0 -25
- data/lib/gems/activesupport-2.2.2/lib/active_support/inflections.rb +0 -55
- data/lib/gems/activesupport-2.2.2/lib/active_support/inflector.rb +0 -397
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/decoding.rb +0 -63
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date.rb +0 -21
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/date_time.rb +0 -21
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/enumerable.rb +0 -12
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/false_class.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/hash.rb +0 -47
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/nil_class.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/numeric.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/object.rb +0 -6
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/regexp.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/string.rb +0 -36
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/symbol.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/time.rb +0 -21
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoders/true_class.rb +0 -5
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/encoding.rb +0 -37
- data/lib/gems/activesupport-2.2.2/lib/active_support/json/variable.rb +0 -10
- data/lib/gems/activesupport-2.2.2/lib/active_support/json.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/locale/en.yml +0 -32
- data/lib/gems/activesupport-2.2.2/lib/active_support/memoizable.rb +0 -82
- data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/chars.rb +0 -679
- data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/exceptions.rb +0 -8
- data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte/unicode_database.rb +0 -71
- data/lib/gems/activesupport-2.2.2/lib/active_support/multibyte.rb +0 -33
- data/lib/gems/activesupport-2.2.2/lib/active_support/option_merger.rb +0 -17
- data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_hash.rb +0 -58
- data/lib/gems/activesupport-2.2.2/lib/active_support/ordered_options.rb +0 -19
- data/lib/gems/activesupport-2.2.2/lib/active_support/rescuable.rb +0 -108
- data/lib/gems/activesupport-2.2.2/lib/active_support/secure_random.rb +0 -197
- data/lib/gems/activesupport-2.2.2/lib/active_support/string_inquirer.rb +0 -21
- data/lib/gems/activesupport-2.2.2/lib/active_support/test_case.rb +0 -24
- data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test/unit/assertions.rb +0 -72
- data/lib/gems/activesupport-2.2.2/lib/active_support/testing/core_ext/test.rb +0 -6
- data/lib/gems/activesupport-2.2.2/lib/active_support/testing/default.rb +0 -9
- data/lib/gems/activesupport-2.2.2/lib/active_support/testing/performance.rb +0 -452
- data/lib/gems/activesupport-2.2.2/lib/active_support/testing/setup_and_teardown.rb +0 -120
- data/lib/gems/activesupport-2.2.2/lib/active_support/time_with_zone.rb +0 -328
- data/lib/gems/activesupport-2.2.2/lib/active_support/values/time_zone.rb +0 -403
- data/lib/gems/activesupport-2.2.2/lib/active_support/values/unicode_tables.dat +0 -0
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/blankslate.rb +0 -113
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/blankslate.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/css.rb +0 -250
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xchar.rb +0 -115
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlbase.rb +0 -139
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlevents.rb +0 -63
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder/xmlmarkup.rb +0 -328
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/builder-2.1.2/builder.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/backend/simple.rb +0 -216
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n/exceptions.rb +0 -53
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/i18n-0.0.1/i18n.rb +0 -194
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/memcache-client-1.5.1/memcache.rb +0 -849
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone.rb +0 -47
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/data_timezone_info.rb +0 -228
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Algiers.rb +0 -55
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Cairo.rb +0 -219
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Casablanca.rb +0 -40
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Harare.rb +0 -18
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Johannesburg.rb +0 -25
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Monrovia.rb +0 -22
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Africa/Nairobi.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/Buenos_Aires.rb +0 -166
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Argentina/San_Juan.rb +0 -86
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Bogota.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Caracas.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chicago.rb +0 -283
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Chihuahua.rb +0 -136
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Denver.rb +0 -204
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Godthab.rb +0 -161
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Guatemala.rb +0 -27
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Halifax.rb +0 -274
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Indiana/Indianapolis.rb +0 -149
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Juneau.rb +0 -194
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/La_Paz.rb +0 -22
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Lima.rb +0 -35
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Los_Angeles.rb +0 -232
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mazatlan.rb +0 -139
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Mexico_City.rb +0 -144
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Monterrey.rb +0 -131
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/New_York.rb +0 -282
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Phoenix.rb +0 -30
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Regina.rb +0 -74
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Santiago.rb +0 -205
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Sao_Paulo.rb +0 -171
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/St_Johns.rb +0 -288
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/America/Tijuana.rb +0 -196
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Almaty.rb +0 -67
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baghdad.rb +0 -73
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Baku.rb +0 -161
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Bangkok.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Chongqing.rb +0 -33
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Colombo.rb +0 -30
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Dhaka.rb +0 -27
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Hong_Kong.rb +0 -87
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Irkutsk.rb +0 -165
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jakarta.rb +0 -30
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Jerusalem.rb +0 -163
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kabul.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kamchatka.rb +0 -163
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Karachi.rb +0 -30
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Katmandu.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kolkata.rb +0 -25
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Krasnoyarsk.rb +0 -163
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuala_Lumpur.rb +0 -31
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Kuwait.rb +0 -18
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Magadan.rb +0 -163
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Muscat.rb +0 -18
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Novosibirsk.rb +0 -164
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Rangoon.rb +0 -24
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Riyadh.rb +0 -18
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Seoul.rb +0 -34
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Shanghai.rb +0 -35
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Singapore.rb +0 -33
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Taipei.rb +0 -59
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tashkent.rb +0 -47
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tbilisi.rb +0 -78
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tehran.rb +0 -121
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Tokyo.rb +0 -30
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Ulaanbaatar.rb +0 -65
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Urumqi.rb +0 -33
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Vladivostok.rb +0 -164
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yakutsk.rb +0 -163
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yekaterinburg.rb +0 -165
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Asia/Yerevan.rb +0 -165
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Azores.rb +0 -270
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/Cape_Verde.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Atlantic/South_Georgia.rb +0 -18
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Adelaide.rb +0 -187
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Brisbane.rb +0 -35
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Darwin.rb +0 -29
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Hobart.rb +0 -193
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Melbourne.rb +0 -185
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Perth.rb +0 -37
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Australia/Sydney.rb +0 -185
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Etc/UTC.rb +0 -16
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Amsterdam.rb +0 -228
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Athens.rb +0 -185
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Belgrade.rb +0 -163
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Berlin.rb +0 -188
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bratislava.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Brussels.rb +0 -232
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Bucharest.rb +0 -181
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Budapest.rb +0 -197
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Copenhagen.rb +0 -179
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Dublin.rb +0 -276
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Helsinki.rb +0 -163
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Istanbul.rb +0 -218
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Kiev.rb +0 -168
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Lisbon.rb +0 -268
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Ljubljana.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/London.rb +0 -288
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Madrid.rb +0 -211
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Minsk.rb +0 -170
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Moscow.rb +0 -181
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Paris.rb +0 -232
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Prague.rb +0 -187
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Riga.rb +0 -176
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Rome.rb +0 -215
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sarajevo.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Skopje.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Sofia.rb +0 -173
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Stockholm.rb +0 -165
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Tallinn.rb +0 -172
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vienna.rb +0 -183
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Vilnius.rb +0 -170
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Warsaw.rb +0 -212
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Europe/Zagreb.rb +0 -13
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Auckland.rb +0 -202
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Fiji.rb +0 -23
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Guam.rb +0 -22
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Honolulu.rb +0 -28
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Majuro.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Midway.rb +0 -25
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Noumea.rb +0 -25
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Pago_Pago.rb +0 -26
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Port_Moresby.rb +0 -20
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/definitions/Pacific/Tongatapu.rb +0 -27
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/info_timezone.rb +0 -52
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone.rb +0 -51
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/linked_timezone_info.rb +0 -44
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/offset_rationals.rb +0 -98
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/ruby_core_support.rb +0 -56
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/time_or_datetime.rb +0 -292
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone.rb +0 -508
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_definition.rb +0 -56
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_info.rb +0 -40
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_offset_info.rb +0 -94
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_period.rb +0 -198
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo/timezone_transition_info.rb +0 -129
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/tzinfo-0.3.12/tzinfo.rb +0 -33
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor/xml-simple-1.0.11/xmlsimple.rb +0 -1021
- data/lib/gems/activesupport-2.2.2/lib/active_support/vendor.rb +0 -34
- data/lib/gems/activesupport-2.2.2/lib/active_support/version.rb +0 -9
- data/lib/gems/activesupport-2.2.2/lib/active_support/whiny_nil.rb +0 -58
- data/lib/gems/activesupport-2.2.2/lib/active_support.rb +0 -61
- data/lib/gems/activesupport-2.2.2/lib/activesupport.rb +0 -1
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
require 'drb'
|
|
2
|
-
|
|
3
|
-
module ActiveSupport
|
|
4
|
-
module Cache
|
|
5
|
-
class DRbStore < MemoryStore #:nodoc:
|
|
6
|
-
attr_reader :address
|
|
7
|
-
|
|
8
|
-
def initialize(address = 'druby://localhost:9192')
|
|
9
|
-
super()
|
|
10
|
-
@address = address
|
|
11
|
-
@data = DRbObject.new(nil, address)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
module ActiveSupport
|
|
2
|
-
module Cache
|
|
3
|
-
# A cache store implementation which stores everything on the filesystem.
|
|
4
|
-
class FileStore < Store
|
|
5
|
-
attr_reader :cache_path
|
|
6
|
-
|
|
7
|
-
def initialize(cache_path)
|
|
8
|
-
@cache_path = cache_path
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
def read(name, options = nil)
|
|
12
|
-
super
|
|
13
|
-
File.open(real_file_path(name), 'rb') { |f| Marshal.load(f) } rescue nil
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def write(name, value, options = nil)
|
|
17
|
-
super
|
|
18
|
-
ensure_cache_path(File.dirname(real_file_path(name)))
|
|
19
|
-
File.atomic_write(real_file_path(name), cache_path) { |f| Marshal.dump(value, f) }
|
|
20
|
-
value
|
|
21
|
-
rescue => e
|
|
22
|
-
logger.error "Couldn't create cache directory: #{name} (#{e.message})" if logger
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def delete(name, options = nil)
|
|
26
|
-
super
|
|
27
|
-
File.delete(real_file_path(name))
|
|
28
|
-
rescue SystemCallError => e
|
|
29
|
-
# If there's no cache, then there's nothing to complain about
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def delete_matched(matcher, options = nil)
|
|
33
|
-
super
|
|
34
|
-
search_dir(@cache_path) do |f|
|
|
35
|
-
if f =~ matcher
|
|
36
|
-
begin
|
|
37
|
-
File.delete(f)
|
|
38
|
-
rescue SystemCallError => e
|
|
39
|
-
# If there's no cache, then there's nothing to complain about
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def exist?(name, options = nil)
|
|
46
|
-
super
|
|
47
|
-
File.exist?(real_file_path(name))
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
private
|
|
51
|
-
def real_file_path(name)
|
|
52
|
-
'%s/%s.cache' % [@cache_path, name.gsub('?', '.').gsub(':', '.')]
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def ensure_cache_path(path)
|
|
56
|
-
FileUtils.makedirs(path) unless File.exist?(path)
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def search_dir(dir, &callback)
|
|
60
|
-
Dir.foreach(dir) do |d|
|
|
61
|
-
next if d == "." || d == ".."
|
|
62
|
-
name = File.join(dir, d)
|
|
63
|
-
if File.directory?(name)
|
|
64
|
-
search_dir(name, &callback)
|
|
65
|
-
else
|
|
66
|
-
callback.call name
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
end
|
|
71
|
-
end
|
|
72
|
-
end
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
require 'memcache'
|
|
2
|
-
|
|
3
|
-
module ActiveSupport
|
|
4
|
-
module Cache
|
|
5
|
-
# A cache store implementation which stores data in Memcached:
|
|
6
|
-
# http://www.danga.com/memcached/
|
|
7
|
-
#
|
|
8
|
-
# This is currently the most popular cache store for production websites.
|
|
9
|
-
#
|
|
10
|
-
# Special features:
|
|
11
|
-
# - Clustering and load balancing. One can specify multiple memcached servers,
|
|
12
|
-
# and MemCacheStore will load balance between all available servers. If a
|
|
13
|
-
# server goes down, then MemCacheStore will ignore it until it goes back
|
|
14
|
-
# online.
|
|
15
|
-
# - Time-based expiry support. See #write and the +:expires_in+ option.
|
|
16
|
-
class MemCacheStore < Store
|
|
17
|
-
module Response # :nodoc:
|
|
18
|
-
STORED = "STORED\r\n"
|
|
19
|
-
NOT_STORED = "NOT_STORED\r\n"
|
|
20
|
-
EXISTS = "EXISTS\r\n"
|
|
21
|
-
NOT_FOUND = "NOT_FOUND\r\n"
|
|
22
|
-
DELETED = "DELETED\r\n"
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
attr_reader :addresses
|
|
26
|
-
|
|
27
|
-
# Creates a new MemCacheStore object, with the given memcached server
|
|
28
|
-
# addresses. Each address is either a host name, or a host-with-port string
|
|
29
|
-
# in the form of "host_name:port". For example:
|
|
30
|
-
#
|
|
31
|
-
# ActiveSupport::Cache::MemCacheStore.new("localhost", "server-downstairs.localnetwork:8229")
|
|
32
|
-
#
|
|
33
|
-
# If no addresses are specified, then MemCacheStore will connect to
|
|
34
|
-
# localhost port 11211 (the default memcached port).
|
|
35
|
-
def initialize(*addresses)
|
|
36
|
-
addresses = addresses.flatten
|
|
37
|
-
options = addresses.extract_options!
|
|
38
|
-
addresses = ["localhost"] if addresses.empty?
|
|
39
|
-
@addresses = addresses
|
|
40
|
-
@data = MemCache.new(addresses, options)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def read(key, options = nil) # :nodoc:
|
|
44
|
-
super
|
|
45
|
-
@data.get(key, raw?(options))
|
|
46
|
-
rescue MemCache::MemCacheError => e
|
|
47
|
-
logger.error("MemCacheError (#{e}): #{e.message}")
|
|
48
|
-
nil
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
# Writes a value to the cache.
|
|
52
|
-
#
|
|
53
|
-
# Possible options:
|
|
54
|
-
# - +:unless_exist+ - set to true if you don't want to update the cache
|
|
55
|
-
# if the key is already set.
|
|
56
|
-
# - +:expires_in+ - the number of seconds that this value may stay in
|
|
57
|
-
# the cache. See ActiveSupport::Cache::Store#write for an example.
|
|
58
|
-
def write(key, value, options = nil)
|
|
59
|
-
super
|
|
60
|
-
method = options && options[:unless_exist] ? :add : :set
|
|
61
|
-
# memcache-client will break the connection if you send it an integer
|
|
62
|
-
# in raw mode, so we convert it to a string to be sure it continues working.
|
|
63
|
-
value = value.to_s if raw?(options)
|
|
64
|
-
response = @data.send(method, key, value, expires_in(options), raw?(options))
|
|
65
|
-
response == Response::STORED
|
|
66
|
-
rescue MemCache::MemCacheError => e
|
|
67
|
-
logger.error("MemCacheError (#{e}): #{e.message}")
|
|
68
|
-
false
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def delete(key, options = nil) # :nodoc:
|
|
72
|
-
super
|
|
73
|
-
response = @data.delete(key, expires_in(options))
|
|
74
|
-
response == Response::DELETED
|
|
75
|
-
rescue MemCache::MemCacheError => e
|
|
76
|
-
logger.error("MemCacheError (#{e}): #{e.message}")
|
|
77
|
-
false
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def exist?(key, options = nil) # :nodoc:
|
|
81
|
-
# Doesn't call super, cause exist? in memcache is in fact a read
|
|
82
|
-
# But who cares? Reading is very fast anyway
|
|
83
|
-
!read(key, options).nil?
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
def increment(key, amount = 1) # :nodoc:
|
|
87
|
-
log("incrementing", key, amount)
|
|
88
|
-
|
|
89
|
-
response = @data.incr(key, amount)
|
|
90
|
-
response == Response::NOT_FOUND ? nil : response
|
|
91
|
-
rescue MemCache::MemCacheError
|
|
92
|
-
nil
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def decrement(key, amount = 1) # :nodoc:
|
|
96
|
-
log("decrement", key, amount)
|
|
97
|
-
|
|
98
|
-
response = @data.decr(key, amount)
|
|
99
|
-
response == Response::NOT_FOUND ? nil : response
|
|
100
|
-
rescue MemCache::MemCacheError
|
|
101
|
-
nil
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def delete_matched(matcher, options = nil) # :nodoc:
|
|
105
|
-
super
|
|
106
|
-
raise "Not supported by Memcache"
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
def clear
|
|
110
|
-
@data.flush_all
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
def stats
|
|
114
|
-
@data.stats
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
private
|
|
118
|
-
def expires_in(options)
|
|
119
|
-
(options && options[:expires_in]) || 0
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def raw?(options)
|
|
123
|
-
options && options[:raw]
|
|
124
|
-
end
|
|
125
|
-
end
|
|
126
|
-
end
|
|
127
|
-
end
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
module ActiveSupport
|
|
2
|
-
module Cache
|
|
3
|
-
# A cache store implementation which stores everything into memory in the
|
|
4
|
-
# same process. If you're running multiple Ruby on Rails server processes
|
|
5
|
-
# (which is the case if you're using mongrel_cluster or Phusion Passenger),
|
|
6
|
-
# then this means that your Rails server process instances won't be able
|
|
7
|
-
# to share cache data with each other. If your application never performs
|
|
8
|
-
# manual cache item expiry (e.g. when you're using generational cache keys),
|
|
9
|
-
# then using MemoryStore is ok. Otherwise, consider carefully whether you
|
|
10
|
-
# should be using this cache store.
|
|
11
|
-
#
|
|
12
|
-
# MemoryStore is not only able to store strings, but also arbitrary Ruby
|
|
13
|
-
# objects.
|
|
14
|
-
#
|
|
15
|
-
# MemoryStore is not thread-safe. Use SynchronizedMemoryStore instead
|
|
16
|
-
# if you need thread-safety.
|
|
17
|
-
class MemoryStore < Store
|
|
18
|
-
def initialize
|
|
19
|
-
@data = {}
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def read(name, options = nil)
|
|
23
|
-
super
|
|
24
|
-
@data[name]
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def write(name, value, options = nil)
|
|
28
|
-
super
|
|
29
|
-
@data[name] = value.freeze
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def delete(name, options = nil)
|
|
33
|
-
super
|
|
34
|
-
@data.delete(name)
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def delete_matched(matcher, options = nil)
|
|
38
|
-
super
|
|
39
|
-
@data.delete_if { |k,v| k =~ matcher }
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def exist?(name,options = nil)
|
|
43
|
-
super
|
|
44
|
-
@data.has_key?(name)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def clear
|
|
48
|
-
@data.clear
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
module ActiveSupport
|
|
2
|
-
module Cache
|
|
3
|
-
# Like MemoryStore, but thread-safe.
|
|
4
|
-
class SynchronizedMemoryStore < MemoryStore
|
|
5
|
-
def initialize
|
|
6
|
-
super
|
|
7
|
-
@guard = Monitor.new
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def fetch(key, options = {})
|
|
11
|
-
@guard.synchronize { super }
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def read(name, options = nil)
|
|
15
|
-
@guard.synchronize { super }
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
def write(name, value, options = nil)
|
|
19
|
-
@guard.synchronize { super }
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
def delete(name, options = nil)
|
|
23
|
-
@guard.synchronize { super }
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def delete_matched(matcher, options = nil)
|
|
27
|
-
@guard.synchronize { super }
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def exist?(name,options = nil)
|
|
31
|
-
@guard.synchronize { super }
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def increment(key, amount = 1)
|
|
35
|
-
@guard.synchronize { super }
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
def decrement(key, amount = 1)
|
|
39
|
-
@guard.synchronize { super }
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def clear
|
|
43
|
-
@guard.synchronize { super }
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
@@ -1,223 +0,0 @@
|
|
|
1
|
-
require 'benchmark'
|
|
2
|
-
|
|
3
|
-
module ActiveSupport
|
|
4
|
-
# See ActiveSupport::Cache::Store for documentation.
|
|
5
|
-
module Cache
|
|
6
|
-
# Creates a new CacheStore object according to the given options.
|
|
7
|
-
#
|
|
8
|
-
# If no arguments are passed to this method, then a new
|
|
9
|
-
# ActiveSupport::Cache::MemoryStore object will be returned.
|
|
10
|
-
#
|
|
11
|
-
# If you pass a Symbol as the first argument, then a corresponding cache
|
|
12
|
-
# store class under the ActiveSupport::Cache namespace will be created.
|
|
13
|
-
# For example:
|
|
14
|
-
#
|
|
15
|
-
# ActiveSupport::Cache.lookup_store(:memory_store)
|
|
16
|
-
# # => returns a new ActiveSupport::Cache::MemoryStore object
|
|
17
|
-
#
|
|
18
|
-
# ActiveSupport::Cache.lookup_store(:drb_store)
|
|
19
|
-
# # => returns a new ActiveSupport::Cache::DRbStore object
|
|
20
|
-
#
|
|
21
|
-
# Any additional arguments will be passed to the corresponding cache store
|
|
22
|
-
# class's constructor:
|
|
23
|
-
#
|
|
24
|
-
# ActiveSupport::Cache.lookup_store(:file_store, "/tmp/cache")
|
|
25
|
-
# # => same as: ActiveSupport::Cache::FileStore.new("/tmp/cache")
|
|
26
|
-
#
|
|
27
|
-
# If the first argument is not a Symbol, then it will simply be returned:
|
|
28
|
-
#
|
|
29
|
-
# ActiveSupport::Cache.lookup_store(MyOwnCacheStore.new)
|
|
30
|
-
# # => returns MyOwnCacheStore.new
|
|
31
|
-
def self.lookup_store(*store_option)
|
|
32
|
-
store, *parameters = *([ store_option ].flatten)
|
|
33
|
-
|
|
34
|
-
case store
|
|
35
|
-
when Symbol
|
|
36
|
-
store_class_name = (store == :drb_store ? "DRbStore" : store.to_s.camelize)
|
|
37
|
-
store_class = ActiveSupport::Cache.const_get(store_class_name)
|
|
38
|
-
store_class.new(*parameters)
|
|
39
|
-
when nil
|
|
40
|
-
ActiveSupport::Cache::MemoryStore.new
|
|
41
|
-
else
|
|
42
|
-
store
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def self.expand_cache_key(key, namespace = nil)
|
|
47
|
-
expanded_cache_key = namespace ? "#{namespace}/" : ""
|
|
48
|
-
|
|
49
|
-
if ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"]
|
|
50
|
-
expanded_cache_key << "#{ENV["RAILS_CACHE_ID"] || ENV["RAILS_APP_VERSION"]}/"
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
expanded_cache_key << case
|
|
54
|
-
when key.respond_to?(:cache_key)
|
|
55
|
-
key.cache_key
|
|
56
|
-
when key.is_a?(Array)
|
|
57
|
-
key.collect { |element| expand_cache_key(element) }.to_param
|
|
58
|
-
when key
|
|
59
|
-
key.to_param
|
|
60
|
-
end.to_s
|
|
61
|
-
|
|
62
|
-
expanded_cache_key
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# An abstract cache store class. There are multiple cache store
|
|
66
|
-
# implementations, each having its own additional features. See the classes
|
|
67
|
-
# under the ActiveSupport::Cache module, e.g.
|
|
68
|
-
# ActiveSupport::Cache::MemCacheStore. MemCacheStore is currently the most
|
|
69
|
-
# popular cache store for large production websites.
|
|
70
|
-
#
|
|
71
|
-
# ActiveSupport::Cache::Store is meant for caching strings. Some cache
|
|
72
|
-
# store implementations, like MemoryStore, are able to cache arbitrary
|
|
73
|
-
# Ruby objects, but don't count on every cache store to be able to do that.
|
|
74
|
-
#
|
|
75
|
-
# cache = ActiveSupport::Cache::MemoryStore.new
|
|
76
|
-
#
|
|
77
|
-
# cache.read("city") # => nil
|
|
78
|
-
# cache.write("city", "Duckburgh")
|
|
79
|
-
# cache.read("city") # => "Duckburgh"
|
|
80
|
-
class Store
|
|
81
|
-
cattr_accessor :logger
|
|
82
|
-
|
|
83
|
-
def silence!
|
|
84
|
-
@silence = true
|
|
85
|
-
self
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
# Fetches data from the cache, using the given key. If there is data in
|
|
89
|
-
# the cache with the given key, then that data is returned.
|
|
90
|
-
#
|
|
91
|
-
# If there is no such data in the cache (a cache miss occurred), then
|
|
92
|
-
# then nil will be returned. However, if a block has been passed, then
|
|
93
|
-
# that block will be run in the event of a cache miss. The return value
|
|
94
|
-
# of the block will be written to the cache under the given cache key,
|
|
95
|
-
# and that return value will be returned.
|
|
96
|
-
#
|
|
97
|
-
# cache.write("today", "Monday")
|
|
98
|
-
# cache.fetch("today") # => "Monday"
|
|
99
|
-
#
|
|
100
|
-
# cache.fetch("city") # => nil
|
|
101
|
-
# cache.fetch("city") do
|
|
102
|
-
# "Duckburgh"
|
|
103
|
-
# end
|
|
104
|
-
# cache.fetch("city") # => "Duckburgh"
|
|
105
|
-
#
|
|
106
|
-
# You may also specify additional options via the +options+ argument.
|
|
107
|
-
# Setting <tt>:force => true</tt> will force a cache miss:
|
|
108
|
-
#
|
|
109
|
-
# cache.write("today", "Monday")
|
|
110
|
-
# cache.fetch("today", :force => true) # => nil
|
|
111
|
-
#
|
|
112
|
-
# Other options will be handled by the specific cache store implementation.
|
|
113
|
-
# Internally, #fetch calls #read, and calls #write on a cache miss.
|
|
114
|
-
# +options+ will be passed to the #read and #write calls.
|
|
115
|
-
#
|
|
116
|
-
# For example, MemCacheStore's #write method supports the +:expires_in+
|
|
117
|
-
# option, which tells the memcached server to automatically expire the
|
|
118
|
-
# cache item after a certain period. We can use this option with #fetch
|
|
119
|
-
# too:
|
|
120
|
-
#
|
|
121
|
-
# cache = ActiveSupport::Cache::MemCacheStore.new
|
|
122
|
-
# cache.fetch("foo", :force => true, :expires_in => 5.seconds) do
|
|
123
|
-
# "bar"
|
|
124
|
-
# end
|
|
125
|
-
# cache.fetch("foo") # => "bar"
|
|
126
|
-
# sleep(6)
|
|
127
|
-
# cache.fetch("foo") # => nil
|
|
128
|
-
def fetch(key, options = {})
|
|
129
|
-
@logger_off = true
|
|
130
|
-
if !options[:force] && value = read(key, options)
|
|
131
|
-
@logger_off = false
|
|
132
|
-
log("hit", key, options)
|
|
133
|
-
value
|
|
134
|
-
elsif block_given?
|
|
135
|
-
@logger_off = false
|
|
136
|
-
log("miss", key, options)
|
|
137
|
-
|
|
138
|
-
value = nil
|
|
139
|
-
seconds = Benchmark.realtime { value = yield }
|
|
140
|
-
|
|
141
|
-
@logger_off = true
|
|
142
|
-
write(key, value, options)
|
|
143
|
-
@logger_off = false
|
|
144
|
-
|
|
145
|
-
log("write (will save #{'%.2f' % (seconds * 1000)}ms)", key, nil)
|
|
146
|
-
|
|
147
|
-
value
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
|
|
151
|
-
# Fetches data from the cache, using the given key. If there is data in
|
|
152
|
-
# the cache with the given key, then that data is returned. Otherwise,
|
|
153
|
-
# nil is returned.
|
|
154
|
-
#
|
|
155
|
-
# You may also specify additional options via the +options+ argument.
|
|
156
|
-
# The specific cache store implementation will decide what to do with
|
|
157
|
-
# +options+.
|
|
158
|
-
def read(key, options = nil)
|
|
159
|
-
log("read", key, options)
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
# Writes the given value to the cache, with the given key.
|
|
163
|
-
#
|
|
164
|
-
# You may also specify additional options via the +options+ argument.
|
|
165
|
-
# The specific cache store implementation will decide what to do with
|
|
166
|
-
# +options+.
|
|
167
|
-
#
|
|
168
|
-
# For example, MemCacheStore supports the +:expires_in+ option, which
|
|
169
|
-
# tells the memcached server to automatically expire the cache item after
|
|
170
|
-
# a certain period:
|
|
171
|
-
#
|
|
172
|
-
# cache = ActiveSupport::Cache::MemCacheStore.new
|
|
173
|
-
# cache.write("foo", "bar", :expires_in => 5.seconds)
|
|
174
|
-
# cache.read("foo") # => "bar"
|
|
175
|
-
# sleep(6)
|
|
176
|
-
# cache.read("foo") # => nil
|
|
177
|
-
def write(key, value, options = nil)
|
|
178
|
-
log("write", key, options)
|
|
179
|
-
end
|
|
180
|
-
|
|
181
|
-
def delete(key, options = nil)
|
|
182
|
-
log("delete", key, options)
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
def delete_matched(matcher, options = nil)
|
|
186
|
-
log("delete matched", matcher.inspect, options)
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
def exist?(key, options = nil)
|
|
190
|
-
log("exist?", key, options)
|
|
191
|
-
end
|
|
192
|
-
|
|
193
|
-
def increment(key, amount = 1)
|
|
194
|
-
log("incrementing", key, amount)
|
|
195
|
-
if num = read(key)
|
|
196
|
-
write(key, num + amount)
|
|
197
|
-
else
|
|
198
|
-
nil
|
|
199
|
-
end
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
def decrement(key, amount = 1)
|
|
203
|
-
log("decrementing", key, amount)
|
|
204
|
-
if num = read(key)
|
|
205
|
-
write(key, num - amount)
|
|
206
|
-
else
|
|
207
|
-
nil
|
|
208
|
-
end
|
|
209
|
-
end
|
|
210
|
-
|
|
211
|
-
private
|
|
212
|
-
def log(operation, key, options)
|
|
213
|
-
logger.debug("Cache #{operation}: #{key}#{options ? " (#{options.inspect})" : ""}") if logger && !@silence && !@logger_off
|
|
214
|
-
end
|
|
215
|
-
end
|
|
216
|
-
end
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
require 'active_support/cache/file_store'
|
|
220
|
-
require 'active_support/cache/memory_store'
|
|
221
|
-
require 'active_support/cache/drb_store'
|
|
222
|
-
require 'active_support/cache/mem_cache_store'
|
|
223
|
-
require 'active_support/cache/compressed_mem_cache_store'
|