class PBShipping::ApiObject
Public Class Methods
convert_to_api_object(values)
click to toggle source
# File lib/pbshipping/api_object.rb, line 30 def self.convert_to_api_object(values) case values when Array values.map { |v| self.convert_to_api_object(v) } when Hash self.new(values) else values end end
new(values=nil)
click to toggle source
# File lib/pbshipping/api_object.rb, line 23 def initialize(values=nil) @values = {} if values != nil self.update(values) end end
Public Instance Methods
[](k)
click to toggle source
# File lib/pbshipping/api_object.rb, line 55 def [](k) @values[k.to_sym] end
[]=(k, v)
click to toggle source
# File lib/pbshipping/api_object.rb, line 59 def []=(k, v) update({k => v}) end
add_accessors(keys)
click to toggle source
# File lib/pbshipping/api_object.rb, line 114 def add_accessors(keys) keys.each do |k| orig_k = k while respond_to?(k) do k = "_#{k}".to_sym end create_accessor(k, orig_k) end end
as_json(*a)
click to toggle source
# File lib/pbshipping/api_object.rb, line 79 def as_json(*a) @values.as_json(*a) end
create_accessor(k_name, k_index)
click to toggle source
# File lib/pbshipping/api_object.rb, line 105 def create_accessor(k_name, k_index) metaclass.instance_eval do define_method(k_name) { @values[k_index] } define_method(:"#{k_name}=") do |v| @values[k_index] = v unless k_index == '' end end end
each(&blk)
click to toggle source
# File lib/pbshipping/api_object.rb, line 87 def each(&blk) @values.each(&blk) end
inspect()
click to toggle source
# File lib/pbshipping/api_object.rb, line 101 def inspect() "#<#{self.class}:0x#{self.object_id.to_s(16)}}> json: " + self.to_s end
key?(k)
click to toggle source
# File lib/pbshipping/api_object.rb, line 91 def key?(k) @values.key?(k) end
keys()
click to toggle source
# File lib/pbshipping/api_object.rb, line 63 def keys @values.keys end
metaclass()
click to toggle source
# File lib/pbshipping/api_object.rb, line 124 def metaclass class << self self end end
respond_to?(symbol)
click to toggle source
Calls superclass method
# File lib/pbshipping/api_object.rb, line 96 def respond_to?(symbol) @values.has_key?(symbol) || super end
to_hash()
click to toggle source
# File lib/pbshipping/api_object.rb, line 83 def to_hash @values end
to_json(*a)
click to toggle source
# File lib/pbshipping/api_object.rb, line 75 def to_json(*a) JSON.dump(@values) end
to_s(*args)
click to toggle source
# File lib/pbshipping/api_object.rb, line 71 def to_s(*args) JSON.pretty_generate @values end
update(values)
click to toggle source
# File lib/pbshipping/api_object.rb, line 41 def update(values) values.each do |k, v| if v.is_a?(Array) || v.is_a?(Hash) new_v = self.class.convert_to_api_object(v) else new_v = v end @values[k.to_sym] = new_v end instance_eval do add_accessors(@values.keys) end end
values()
click to toggle source
# File lib/pbshipping/api_object.rb, line 67 def values @values.values end