Class: Payload::ARMObject
- Inherits:
-
Object
- Object
- Payload::ARMObject
show all
- Defined in:
- lib/payload/arm/object.rb
Direct Known Subclasses
AccessToken, Account, BankAccount, BillingCharge, BillingSchedule, Card, ChargeItem, ClientToken, Customer, Invoice, Ledger, LineItem, OAuthToken, Org, Payment, PaymentActivation, PaymentItem, PaymentLink, PaymentMethod, ProcessingAccount, Refund, Transaction, Webhook
Constant Summary
collapse
- @@cache =
{}
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(data, session = nil) ⇒ ARMObject
Returns a new instance of ARMObject.
45
46
47
|
# File 'lib/payload/arm/object.rb', line 45
def initialize(data, session = nil)
self.set_data(data)
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(name, *args) ⇒ Object
92
93
94
95
96
97
98
99
|
# File 'lib/payload/arm/object.rb', line 92
def method_missing(name, *args)
attr = name.to_s
if @data.key?(attr)
return @data[attr]
else
super
end
end
|
Class Attribute Details
.data ⇒ Object
Returns the value of attribute data.
42
43
44
|
# File 'lib/payload/arm/object.rb', line 42
def data
@data
end
|
.poly ⇒ Object
Returns the value of attribute poly.
42
43
44
|
# File 'lib/payload/arm/object.rb', line 42
def poly
@poly
end
|
.session ⇒ Object
Returns the value of attribute session.
42
43
44
|
# File 'lib/payload/arm/object.rb', line 42
def session
@session
end
|
.spec ⇒ Object
Returns the value of attribute spec.
42
43
44
|
# File 'lib/payload/arm/object.rb', line 42
def spec
@spec
end
|
Class Method Details
._get_request(session = nil) ⇒ Object
109
110
111
|
# File 'lib/payload/arm/object.rb', line 109
def self._get_request(session=nil)
return Payload::ARMRequest.new(self, session)
end
|
.all(session: nil) ⇒ Object
141
142
143
|
# File 'lib/payload/arm/object.rb', line 141
def self.all(session: nil)
return self._get_request(session).all()
end
|
.create(*args, **data) ⇒ Object
123
124
125
126
127
128
129
130
131
|
# File 'lib/payload/arm/object.rb', line 123
def self.create(*args, **data)
session = data[:session]
data.delete(:session)
if args.length != 0
return self._get_request(session).create(args[0])
else
return self._get_request(session).create(data)
end
end
|
.delete(objects) ⇒ Object
137
138
139
|
# File 'lib/payload/arm/object.rb', line 137
def self.delete(objects)
return self._get_request().delete_all(objects)
end
|
.filter_by(*args, **data) ⇒ Object
117
118
119
120
121
|
# File 'lib/payload/arm/object.rb', line 117
def self.filter_by(*args, **data)
session = data[:session]
data.delete(:session)
return self._get_request(session).filter_by(*args, **data)
end
|
.get(id, session: nil) ⇒ Object
133
134
135
|
# File 'lib/payload/arm/object.rb', line 133
def self.get(id, session: nil)
return self._get_request(session).get(id)
end
|
.new(data, session = nil) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
# File 'lib/payload/arm/object.rb', line 49
def self.new(data, session = nil)
session = session || Payload::Session.new(Payload::api_key, Payload::api_url)
session_key = session.object_id
if !@@cache.key?(session_key)
@@cache[session_key] = {}
end
session_cache = @@cache[session_key]
id = data.key?(:id) ? data[:id] : data.key?('id') ? data['id'] : nil
if id && session_cache.key?(id)
session_cache[id].set_data(data)
return session_cache[id]
else
inst = super
inst.set_session(session)
inst.set_data(data)
if id
session_cache[id] = inst
end
return inst
end
end
|
.select(*args, **data) ⇒ Object
113
114
115
|
# File 'lib/payload/arm/object.rb', line 113
def self.select(*args, **data)
return self._get_request().select(*args, **data)
end
|
Instance Method Details
#[](key) ⇒ Object
101
102
103
|
# File 'lib/payload/arm/object.rb', line 101
def [](key)
return @data[key]
end
|
#_get_request ⇒ Object
105
106
107
|
# File 'lib/payload/arm/object.rb', line 105
def _get_request()
return Payload::ARMRequest.new(self.class, @session)
end
|
#data ⇒ Object
84
85
86
|
# File 'lib/payload/arm/object.rb', line 84
def data
@data
end
|
#delete ⇒ Object
149
150
151
|
# File 'lib/payload/arm/object.rb', line 149
def delete()
return _get_request()._request('Delete', id: self.id)
end
|
#session ⇒ Object
76
77
78
|
# File 'lib/payload/arm/object.rb', line 76
def session
@session
end
|
#set_data(data) ⇒ Object
88
89
90
|
# File 'lib/payload/arm/object.rb', line 88
def set_data(data)
@data = data.transform_keys { |key| key.to_s }
end
|
#set_session(session) ⇒ Object
80
81
82
|
# File 'lib/payload/arm/object.rb', line 80
def set_session(session)
@session = session
end
|
#to_json(*args) ⇒ Object
153
154
155
156
157
158
159
160
|
# File 'lib/payload/arm/object.rb', line 153
def to_json(*args)
serialized = {}
if self.class.poly
serialized.merge!(self.class.poly)
end
serialized.merge!(@data)
return serialized.to_json(*args)
end
|
#update(**update) ⇒ Object
145
146
147
|
# File 'lib/payload/arm/object.rb', line 145
def update(**update)
return _get_request()._request('Put', id: self.id, json: update)
end
|