1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
require 'jbuilder/jbuilder'
require 'active_support/core_ext/array'
class Jbuilder
class KeyFormatter
def initialize(*args)
@format = {}
@cache = {}
options = args.extract_options!
args.each do |name|
@format[name] = []
end
options.each do |name, parameters|
@format[name] = parameters
end
end
def initialize_copy(original)
@cache = {}
end
def format(key)
@cache[key] ||= @format.inject(key.to_s) do |result, args|
func, args = args
if ::Proc === func
func.call result, *args
else
result.send func, *args
end
end
end
end
end
|