module Connectwise::Model

Public Class Methods

included(klass) click to toggle source
# File lib/connectwise/model.rb, line 80
def self.included(klass)
  klass.extend ClassMethods
end
new(**attributes) click to toggle source
# File lib/connectwise/connectwise.rb, line 76
def initialize(**attributes)
  attributes.each do |attr, value|
    public_send "#{attr}=", value
  end
end

Public Instance Methods

defined_attributes() click to toggle source
# File lib/connectwise/model.rb, line 113
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() click to toggle source
# File lib/connectwise/model.rb, line 96
def destroy
  connection.call self.class.cw_api_name, "delete_#{self.class.cw_model_name}".to_sym, {id: id}
  self
end
persisted?() click to toggle source
# File lib/connectwise/model.rb, line 101
def persisted?
  !!id
end
save() click to toggle source
# File lib/connectwise/model.rb, line 91
def save
  attrs = connection.call self.class.cw_api_name, "add_or_update_#{self.class.cw_model_name}".to_sym, {self.class.cw_model_name => to_cw_h}
  self.class.new(connection, self.class.save_transform(attrs))
end
to_cw_h() click to toggle source
# File lib/connectwise/model.rb, line 109
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() click to toggle source
# File lib/connectwise/model.rb, line 105
def to_h
  defined_attributes.each_with_object({}) {|name, memo| memo[name] = public_send(name)}
end

Protected Instance Methods

connection() click to toggle source
# File lib/connectwise/model.rb, line 119
def connection
  @connection
end