Module: ActiveCampaign::Attributes::ClassMethods
- Defined in:
- lib/active_campaign/api_attributes.rb
Overview
:nodoc:
Instance Method Summary collapse
- #define_attributes(*attrs) ⇒ Object
- #endpoint ⇒ Object
- #instantiate_record(klass, data) ⇒ Object
- #instantiate_records(klass, records_data) ⇒ Object
- #new_record(data) ⇒ Object
- #new_records(data) ⇒ Object
- #root_element ⇒ Object
- #root_elements ⇒ Object
Instance Method Details
#define_attributes(*attrs) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/active_campaign/api_attributes.rb', line 26 def define_attributes(*attrs) attrs.each do |attr| # ActiveModel's define_attribute_methods define_attribute_methods attr class_eval <<-RUBY, __FILE__, __LINE__ + 1 def #{attr} @#{attr} end def #{attr}=(val) #{attr}_will_change! unless val == @#{attr} @#{attr} = val end RUBY end end |
#endpoint ⇒ Object
66 67 68 |
# File 'lib/active_campaign/api_attributes.rb', line 66 def endpoint name.demodulize.camelize(:lower).pluralize end |
#instantiate_record(klass, data) ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/active_campaign/api_attributes.rb', line 52 def instantiate_record(klass, data) define_attributes(*data.keys) record = klass.new data record.clear_changes_information record end |
#instantiate_records(klass, records_data) ⇒ Object
60 61 62 63 64 |
# File 'lib/active_campaign/api_attributes.rb', line 60 def instantiate_records(klass, records_data) records_data.map do |record_data| instantiate_record klass, record_data end end |
#new_record(data) ⇒ Object
48 49 50 |
# File 'lib/active_campaign/api_attributes.rb', line 48 def new_record(data) instantiate_record self, data end |
#new_records(data) ⇒ Object
44 45 46 |
# File 'lib/active_campaign/api_attributes.rb', line 44 def new_records(data) instantiate_records self, data end |
#root_element ⇒ Object
70 71 72 |
# File 'lib/active_campaign/api_attributes.rb', line 70 def root_element name.demodulize.camelize(:lower).to_sym end |
#root_elements ⇒ Object
74 75 76 |
# File 'lib/active_campaign/api_attributes.rb', line 74 def root_elements root_element.to_s.pluralize.to_sym end |