class JsonAccessor
Attributes
access_methods[RW]
code[RW]
mutator[RW]
Public Class Methods
new(code, mutator)
click to toggle source
# File lib/random_api/json_accessor.rb, line 4 def initialize(code, mutator) self.code = code self.access_methods = [] self.mutator = mutator build end
Public Instance Methods
build()
click to toggle source
# File lib/random_api/json_accessor.rb, line 19 def build keys = code.split(".") if keys.first == "$" access_methods << gen_root_access_lambda keys.shift end keys.each do |key| access_methods << gen_access_key_lambda(key) end end
call(json)
click to toggle source
# File lib/random_api/json_accessor.rb, line 30 def call(json) ret = json access_methods.each do |method| ret = method.(ret) end mutate(ret) end
gen_access_key_lambda(key)
click to toggle source
# File lib/random_api/json_accessor.rb, line 15 def gen_access_key_lambda(key) ->(json) { json[key] } end
gen_root_access_lambda()
click to toggle source
# File lib/random_api/json_accessor.rb, line 11 def gen_root_access_lambda ->(json) { json } end
mutate(value)
click to toggle source
# File lib/random_api/json_accessor.rb, line 38 def mutate(value) unless mutator.nil? mutator.(value) else value end end