Class: EasyPost::EasyPostObject
- Inherits:
-
Object
- Object
- EasyPost::EasyPostObject
- Includes:
- Enumerable
- Defined in:
- lib/easypost/object.rb
Direct Known Subclasses
Constant Summary collapse
- @@immutable_values =
Set.new([:api_key, :id])
Instance Attribute Summary collapse
-
#api_key ⇒ Object
Returns the value of attribute api_key.
Class Method Summary collapse
Instance Method Summary collapse
- #[](k) ⇒ Object
- #[]=(k, v) ⇒ Object
- #as_json(options = {}) ⇒ Object
- #each(&blk) ⇒ Object
- #id ⇒ Object
- #id=(id) ⇒ Object
-
#initialize(id = nil, api_key = nil) ⇒ EasyPostObject
constructor
A new instance of EasyPostObject.
- #inspect ⇒ Object
- #keys ⇒ Object
- #refresh_from(values, api_key, partial = false) ⇒ Object
- #to_hash ⇒ Object
- #to_json(options = {}) ⇒ Object
- #to_s(*args) ⇒ Object
- #values ⇒ Object
Constructor Details
#initialize(id = nil, api_key = nil) ⇒ EasyPostObject
Returns a new instance of EasyPostObject.
8 9 10 11 12 13 14 |
# File 'lib/easypost/object.rb', line 8 def initialize(id=nil, api_key=nil) @api_key = api_key @values = {} @unsaved_values = Set.new @transient_values = Set.new self.id = id if id end |
Instance Attribute Details
#api_key ⇒ Object
Returns the value of attribute api_key.
5 6 7 |
# File 'lib/easypost/object.rb', line 5 def api_key @api_key end |
Class Method Details
.construct_from(values, api_key = nil) ⇒ Object
16 17 18 19 20 |
# File 'lib/easypost/object.rb', line 16 def self.construct_from(values, api_key=nil) obj = self.new(values[:id], api_key) obj.refresh_from(values, api_key) obj end |
Instance Method Details
#[](k) ⇒ Object
47 48 49 50 |
# File 'lib/easypost/object.rb', line 47 def [](k) k = k.to_sym if k.is_a?(String) @values[k] end |
#[]=(k, v) ⇒ Object
52 53 54 |
# File 'lib/easypost/object.rb', line 52 def []=(k, v) send(:"#{k}=", v) end |
#as_json(options = {}) ⇒ Object
68 69 70 |
# File 'lib/easypost/object.rb', line 68 def as_json( = {}) @values.as_json end |
#each(&blk) ⇒ Object
76 77 78 |
# File 'lib/easypost/object.rb', line 76 def each(&blk) @values.each(&blk) end |
#id ⇒ Object
84 85 86 |
# File 'lib/easypost/object.rb', line 84 def id @values[:id] end |
#id=(id) ⇒ Object
80 81 82 |
# File 'lib/easypost/object.rb', line 80 def id=(id) @values[:id] = id end |
#inspect ⇒ Object
26 27 28 29 |
# File 'lib/easypost/object.rb', line 26 def inspect() id_string = (self.respond_to?(:id) && !self.id.nil?) ? " id=#{self.id}" : "" "#<#{self.class}:#{id_string}> JSON: " + MultiJson.dump(@values, :pretty => true) end |
#keys ⇒ Object
56 57 58 |
# File 'lib/easypost/object.rb', line 56 def keys @values.keys end |
#refresh_from(values, api_key, partial = false) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/easypost/object.rb', line 31 def refresh_from(values, api_key, partial=false) @api_key = api_key added = Set.new(values.keys - @values.keys) instance_eval do add_accessors(added) end values.each do |k, v| @values[k] = Util.convert_to_easypost_object(v, api_key) @transient_values.delete(k) @unsaved_values.delete(k) end end |
#to_hash ⇒ Object
72 73 74 |
# File 'lib/easypost/object.rb', line 72 def to_hash @values end |
#to_json(options = {}) ⇒ Object
64 65 66 |
# File 'lib/easypost/object.rb', line 64 def to_json( = {}) MultiJson.dump(@values) end |
#to_s(*args) ⇒ Object
22 23 24 |
# File 'lib/easypost/object.rb', line 22 def to_s(*args) MultiJson.dump(@values, :pretty => true) end |
#values ⇒ Object
60 61 62 |
# File 'lib/easypost/object.rb', line 60 def values @values.values end |