8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/asset_trip/memoizable.rb', line 8
def memoize(symbol)
original_method = :"_unmemoized_#{symbol}"
memoized_ivar = AssetTrip::Memoizable.memoized_ivar_for(symbol)
raise "Already memoized #{symbol}" if method_defined?(original_method)
alias_method original_method, symbol
class_eval " def \#{symbol}(*args) # def mime_type(*args)\n if !defined?(\#{memoized_ivar}) # if !defined?(@_memoized_mime_type)\n \#{memoized_ivar} = \#{original_method}(*args) # @_memoized_mime_type = _unmemoized_mime_type(*args)\n end # end\n \#{memoized_ivar} # @_memoized_mime_type\n end # end\n EOS\n\n private symbol if private_method_defined?(original_method)\nend\n", __FILE__, __LINE__
|