Class: ActiveCampaign::Webhooks::Request::BaseRecord
- Inherits:
-
Object
- Object
- ActiveCampaign::Webhooks::Request::BaseRecord
- Defined in:
- lib/active_campaign/webhooks/request/base_record.rb
Overview
Base Record
Direct Known Subclasses
Account, AccountContact, AccountContactRemoved, BaseRequest, Campaign, ClickRequest, Contact, Deal, Fields, Form, Forward, Link, List, Pipeline, Share, Stage, Task, Tasktype, Unsubscribe, UpdatedFields
Constant Summary collapse
- PARSE_MAP =
{ Integer: -> (value) { value&.to_i }, Float: -> (value) { value&.to_f }, Date: -> (value) { value.nil? ? nil : Date.parse(value) }, DateTime: -> (value) { value.nil? ? nil : DateTime.parse(value) } }
Class Attribute Summary collapse
-
.attribute_map ⇒ Object
Returns the value of attribute attribute_map.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(hash = {}) ⇒ BaseRecord
constructor
A new instance of BaseRecord.
- #slice(attributes = []) ⇒ Object
Constructor Details
#initialize(hash = {}) ⇒ BaseRecord
Returns a new instance of BaseRecord.
28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/active_campaign/webhooks/request/base_record.rb', line 28 def initialize(hash = {}) hash.each do |k, v| unless self.class.attribute_map[k.to_sym].nil? class_name = self.class.attribute_map[k.to_sym] unless PARSE_MAP[class_name].nil? v = PARSE_MAP[class_name][v] else class_obj = ActiveCampaign::Webhooks::Request.const_get(class_name) v = class_obj.new(v.as_json) end end public_send("#{k}=", v) if respond_to? "#{k}=" end end |
Class Attribute Details
.attribute_map ⇒ Object
Returns the value of attribute attribute_map.
17 18 19 |
# File 'lib/active_campaign/webhooks/request/base_record.rb', line 17 def attribute_map @attribute_map end |
Class Method Details
.attribute(name, classname = nil) ⇒ Object
19 20 21 22 23 |
# File 'lib/active_campaign/webhooks/request/base_record.rb', line 19 def attribute name, classname = nil attr_accessor name self.attribute_map = {} if self.attribute_map.nil? self.attribute_map[name] = classname unless classname.nil? end |
Instance Method Details
#slice(attributes = []) ⇒ Object
43 44 45 |
# File 'lib/active_campaign/webhooks/request/base_record.rb', line 43 def slice attributes = [] as_json.slice(*attributes.map(&:to_s)) end |