Module: QuickbaseRecord::Model

Extended by:
ActiveSupport::Concern
Includes:
Client, Queries
Defined in:
lib/quickbase_record/model.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Methods included from Client

#qb_client

Methods included from Queries

#delete, #primary_key_field_name, #record_id_field_name, #remove_unwritable_fields, #save, #update_attributes, #writable_fields

Instance Method Details

#_assign_attribute(k, v) ⇒ Object



61
62
63
64
65
# File 'lib/quickbase_record/model.rb', line 61

def _assign_attribute(k, v)
  if respond_to?("#{k}=")
    public_send("#{k}=", v)
  end
end

#_assign_attributes(attributes) ⇒ Object



55
56
57
58
59
# File 'lib/quickbase_record/model.rb', line 55

def _assign_attributes(attributes)
  attributes.each do |k, v|
    _assign_attribute(k, v)
  end
end

#assign_attributes(new_attributes) ⇒ Object



45
46
47
48
49
50
51
52
53
# File 'lib/quickbase_record/model.rb', line 45

def assign_attributes(new_attributes)
  if !new_attributes.respond_to?(:stringify_keys)
    raise ArgumentError, "When assigning attributes, you must pass a hash as an argument."
  end
  return if new_attributes.blank?

  attributes = new_attributes.stringify_keys
  _assign_attributes(attributes)
end

#create_attr_accesssorsObject



39
40
41
42
43
# File 'lib/quickbase_record/model.rb', line 39

def create_attr_accesssors
  self.class.fields.each do |field_name, field|
    self.class.send(:attr_accessor, field_name)
  end
end

#initialize(attributes = {}) ⇒ Object



28
29
30
31
32
33
# File 'lib/quickbase_record/model.rb', line 28

def initialize(attributes={})
  create_attr_accesssors
  assign_attributes(attributes) if attributes

  super()
end

#persisted?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/quickbase_record/model.rb', line 35

def persisted?
  false
end