diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2007-09-11 21:49:35 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2007-09-11 21:49:35 +0000 |
commit | c70fd5df7fd8af3a50539d6edf9c3453d2f892e8 (patch) | |
tree | 1a4784b105084ce26a9f57b6cb15af4d4a28696a /activesupport/lib/active_support | |
parent | 9807b55c6b4bd1d366aa8a2ea5c4fdffbce800fa (diff) | |
download | rails-c70fd5df7fd8af3a50539d6edf9c3453d2f892e8.tar.gz rails-c70fd5df7fd8af3a50539d6edf9c3453d2f892e8.tar.bz2 rails-c70fd5df7fd8af3a50539d6edf9c3453d2f892e8.zip |
Remove unused HashCaching
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7467 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activesupport/lib/active_support')
-rw-r--r-- | activesupport/lib/active_support/caching_tools.rb | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/activesupport/lib/active_support/caching_tools.rb b/activesupport/lib/active_support/caching_tools.rb deleted file mode 100644 index c889c148b4..0000000000 --- a/activesupport/lib/active_support/caching_tools.rb +++ /dev/null @@ -1,62 +0,0 @@ -module ActiveSupport - module CachingTools #:nodoc: - - # Provide shortcuts to simply the creation of nested default hashes. This - # pattern is useful, common practice, and unsightly when done manually. - module HashCaching - # Dynamically create a nested hash structure used to cache calls to +method_name+ - # The cache method is named +#{method_name}_cache+ unless :as => :alternate_name - # is given. - # - # The hash structure is created using nested Hash.new. For example: - # - # def slow_method(a, b) a ** b end - # - # can be cached using hash_cache :slow_method, which will define the method - # slow_method_cache. We can then find the result of a ** b using: - # - # slow_method_cache[a][b] - # - # The hash structure returned by slow_method_cache would look like this: - # - # Hash.new do |as, a| - # as[a] = Hash.new do |bs, b| - # bs[b] = slow_method(a, b) - # end - # end - # - # The generated code is actually compressed onto a single line to maintain - # sensible backtrace signatures. - # - def hash_cache(method_name, options = {}) - selector = options[:as] || "#{method_name}_cache" - method = self.instance_method(method_name) - - args = [] - code = "def #{selector}(); @#{selector} ||= " - - (1..method.arity).each do |n| - args << "v#{n}" - code << "Hash.new {|h#{n}, v#{n}| h#{n}[v#{n}] = " - end - - # Add the method call with arguments, followed by closing braces and end. - code << "#{method_name}(#{args * ', '}) #{'}' * method.arity} end" - - # Extract the line number information from the caller. Exceptions arising - # in the generated code should point to the +hash_cache :...+ line. - if caller[0] && /^(.*):(\d+)$/ =~ caller[0] - file, line_number = $1, $2.to_i - else # We can't give good trackback info; fallback to this line: - file, line_number = __FILE__, __LINE__ - end - - # We use eval rather than building proc's because it allows us to avoid - # linking the Hash's to this method's binding. Experience has shown that - # doing so can cause obtuse memory leaks. - class_eval code, file, line_number - end - end - - end -end |