Sha256: 6073a88b7ed5d0ffa3ed543cb929fa6e2b9d2baa5c94ffa2f5ce539285858382
Contents?: true
Size: 1.16 KB
Versions: 3
Compression:
Stored size: 1.16 KB
Contents
class JsonPath class Proxy attr_reader :obj alias_method :to_hash, :obj def initialize(obj) @obj = obj end def gsub(path, replacement = nil, &replacement_block) _gsub(_deep_copy, path, replacement ? proc { replacement } : replacement_block) end def gsub!(path, replacement = nil, &replacement_block) _gsub(@obj, path, replacement ? proc { replacement } : replacement_block) end def delete(path = JsonPath::PATH_ALL) _delete(_deep_copy, path) end def delete!(path = JsonPath::PATH_ALL) _delete(@obj, path) end def compact(path = JsonPath::PATH_ALL) _compact(_deep_copy, path) end def compact!(path = JsonPath::PATH_ALL) _compact(@obj, path) end private def _deep_copy Marshal.load(Marshal.dump(@obj)) end def _gsub(obj, path, replacement) JsonPath.new(path)[obj, :substitute].each(&replacement) Proxy.new(obj) end def _delete(obj, path) JsonPath.new(path)[obj, :delete].each Proxy.new(obj) end def _compact(obj, path) JsonPath.new(path)[obj, :compact].each Proxy.new(obj) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
jsonpathv2-0.0.4 | lib/jsonpathv2/proxy.rb |
jsonpathv2-0.0.3 | lib/jsonpathv2/proxy.rb |
jsonpathv2-0.0.2 | lib/jsonpathv2/proxy.rb |