class Pakyow::Data::Object
Wraps values for a data object returned by a source.
Attributes
name[R]
originating_source[RW]
@api private
values[R]
Public Class Methods
make(name, state: nil, parent: nil, **kwargs, &block)
click to toggle source
@api private
Calls superclass method
# File lib/pakyow/data/object.rb, line 89 def make(name, state: nil, parent: nil, **kwargs, &block) super(name, state: state, parent: parent, **kwargs, &block) end
new(values)
click to toggle source
# File lib/pakyow/data/object.rb, line 25 def initialize(values) @values = Support::IndifferentHash.new(values).freeze end
serialize(*methods)
click to toggle source
# File lib/pakyow/data/object.rb, line 93 def serialize(*methods) @__serialized_methods.concat(methods.map(&:to_sym)).uniq! end
Public Instance Methods
==(other)
click to toggle source
# File lib/pakyow/data/object.rb, line 72 def ==(other) comparator = case other when self.class other when Result other.__getobj__ else nil end comparator && comparator.class == self.class && comparator.values == @values end
[](key)
click to toggle source
# File lib/pakyow/data/object.rb, line 38 def [](key) key = key.to_s.to_sym if respond_to?(key) public_send(key) else @values[key] end end
include?(key)
click to toggle source
# File lib/pakyow/data/object.rb, line 33 def include?(key) respond_to?(key) end
Also aliased as: key?
method_missing(name, *_args)
click to toggle source
Calls superclass method
# File lib/pakyow/data/object.rb, line 47 def method_missing(name, *_args) if include?(name) @values[name] else super end end
respond_to_missing?(name, *)
click to toggle source
Calls superclass method
# File lib/pakyow/data/object.rb, line 55 def respond_to_missing?(name, *) @values.include?(name) || super end
source()
click to toggle source
# File lib/pakyow/data/object.rb, line 29 def source @originating_source.__object_name.name end
to_h()
click to toggle source
# File lib/pakyow/data/object.rb, line 59 def to_h hash = @values.dup self.class.__serialized_methods.each do |method| hash[method] = public_send(method) end hash end
to_json(*)
click to toggle source
# File lib/pakyow/data/object.rb, line 68 def to_json(*) @values.to_json end