class JsonPath::Proxy
Attributes
obj[R]
to_hash[R]
Public Class Methods
new(obj)
click to toggle source
# File lib/jsonpath/proxy.rb, line 8 def initialize(obj) @obj = obj end
Public Instance Methods
compact(path = JsonPath::PATH_ALL)
click to toggle source
# File lib/jsonpath/proxy.rb, line 28 def compact(path = JsonPath::PATH_ALL) _compact(_deep_copy, path) end
compact!(path = JsonPath::PATH_ALL)
click to toggle source
# File lib/jsonpath/proxy.rb, line 32 def compact!(path = JsonPath::PATH_ALL) _compact(@obj, path) end
delete(path = JsonPath::PATH_ALL)
click to toggle source
# File lib/jsonpath/proxy.rb, line 20 def delete(path = JsonPath::PATH_ALL) _delete(_deep_copy, path) end
delete!(path = JsonPath::PATH_ALL)
click to toggle source
# File lib/jsonpath/proxy.rb, line 24 def delete!(path = JsonPath::PATH_ALL) _delete(@obj, path) end
gsub(path, replacement = nil, &replacement_block)
click to toggle source
# File lib/jsonpath/proxy.rb, line 12 def gsub(path, replacement = nil, &replacement_block) _gsub(_deep_copy, path, replacement ? proc(&method(:replacement)) : replacement_block) end
gsub!(path, replacement = nil, &replacement_block)
click to toggle source
# File lib/jsonpath/proxy.rb, line 16 def gsub!(path, replacement = nil, &replacement_block) _gsub(@obj, path, replacement ? proc(&method(:replacement)) : replacement_block) end
Private Instance Methods
_compact(obj, path)
click to toggle source
# File lib/jsonpath/proxy.rb, line 62 def _compact(obj, path) JsonPath.new(path)[obj, :compact].each Proxy.new(obj) end
_deep_copy()
click to toggle source
# File lib/jsonpath/proxy.rb, line 38 def _deep_copy Marshal.load(Marshal.dump(@obj)) end
_delete(obj, path)
click to toggle source
# File lib/jsonpath/proxy.rb, line 47 def _delete(obj, path) JsonPath.new(path)[obj, :delete].each obj = _remove(obj) Proxy.new(obj) end
_gsub(obj, path, replacement)
click to toggle source
# File lib/jsonpath/proxy.rb, line 42 def _gsub(obj, path, replacement) JsonPath.new(path)[obj, :substitute].each(&replacement) Proxy.new(obj) end
_remove(obj)
click to toggle source
# File lib/jsonpath/proxy.rb, line 53 def _remove(obj) obj.each do |o| if o.is_a?(Hash) || o.is_a?(Array) _remove(o) o.delete({}) end end end