Module: Connectwise::Model
- Included in:
- Client, Company, Contact, Member, Opportunity, ServiceTicket, Ticket
- Defined in:
- lib/connectwise/model.rb,
lib/connectwise/connectwise.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
- #defined_attributes ⇒ Object
- #destroy ⇒ Object
- #initialize(**attributes) ⇒ Object
- #persisted? ⇒ Boolean
- #save ⇒ Object
- #to_cw_h ⇒ Object
- #to_h ⇒ Object
Class Method Details
.included(klass) ⇒ Object
67 68 69 |
# File 'lib/connectwise/model.rb', line 67 def self.included(klass) klass.extend ClassMethods end |
Instance Method Details
#defined_attributes ⇒ Object
100 101 102 103 |
# File 'lib/connectwise/model.rb', line 100 def defined_attributes instance_vars = instance_variables.map {|name| name.to_s.gsub(/@/, '').to_sym} public_methods.select{|method| instance_vars.include?(method) } end |
#destroy ⇒ Object
83 84 85 86 |
# File 'lib/connectwise/model.rb', line 83 def destroy connection.call self.class.cw_api_name, "delete_#{self.class.cw_api_name}".to_sym, {id: id} self end |
#initialize(**attributes) ⇒ Object
71 72 73 74 75 76 |
# File 'lib/connectwise/model.rb', line 71 def initialize(connection, **attributes) @connection = connection self.class.transform(attributes).each do |attr, value| public_send("#{attr}=", value) if respond_to?("#{attr}=") end end |
#persisted? ⇒ Boolean
88 89 90 |
# File 'lib/connectwise/model.rb', line 88 def persisted? !!id end |
#save ⇒ Object
78 79 80 81 |
# File 'lib/connectwise/model.rb', line 78 def save attrs = connection.call self.class.cw_api_name, "add_or_update_#{self.class.cw_api_name}".to_sym, {self.class.cw_api_name => to_cw_h} self.class.new(connection, self.class.save_transform(attrs)) end |
#to_cw_h ⇒ Object
96 97 98 |
# File 'lib/connectwise/model.rb', line 96 def to_cw_h defined_attributes.each_with_object({}) {|name, memo| key = name.to_s.extend(Extensions::String); memo[key.camelize] = public_send(name)} end |
#to_h ⇒ Object
92 93 94 |
# File 'lib/connectwise/model.rb', line 92 def to_h defined_attributes.each_with_object({}) {|name, memo| memo[name] = public_send(name)} end |