Class: ActiveCampaign::Webhooks::Request::BaseRecord

Inherits:
Object
  • Object
show all
Defined in:
lib/active_campaign/webhooks/request/base_record.rb

Overview

Base Record

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

Class Method Summary collapse

Instance Method Summary collapse

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_mapObject

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