module MemModel::Base

Attributes

created_at[R]
guid[RW]
guid=[RW]
id[RW]
updated_at[R]

Public Class Methods

new(attributes = {}) click to toggle source
# File lib/mem_model/base.rb, line 119
def initialize(attributes = {})
  @persisted = false unless maglev?
  @id = self.class.generate_id
  load_attributes(attributes)
end

Public Instance Methods

abort() click to toggle source
# File lib/mem_model/base.rb, line 157
def abort
  self.class.abort
end
class_committed?() click to toggle source
# File lib/mem_model/base.rb, line 131
def class_committed?
  self.class.committed?
end
commit() click to toggle source
# File lib/mem_model/base.rb, line 161
def commit
  self.class.commit
end
committed?() click to toggle source
# File lib/mem_model/base.rb, line 128
def committed?; @persisted == true; end
create() click to toggle source
# File lib/mem_model/base.rb, line 173
def create
  persistent{ create_without_commit }
  self.id
end
create_without_commit() click to toggle source

This can be used when bulk loading

# File lib/mem_model/base.rb, line 179
def create_without_commit
  @created_at = @updated_at = Time.now
  @persisted = true if !class_committed?
  self.class.store << self
end
delete() click to toggle source
# File lib/mem_model/base.rb, line 199
def delete
  self.class.delete(self)
  self
end
errors() click to toggle source
# File lib/mem_model/base.rb, line 151
def errors; @errors ||= Errors.new(self); end
exists?()
Alias for: persisted?
maglev?() click to toggle source
# File lib/mem_model/base.rb, line 153
def maglev?
  self.class.maglev?
end
model_name() click to toggle source
# File lib/mem_model/base.rb, line 125
def model_name; self.class.model_name; end
new?() click to toggle source
# File lib/mem_model/base.rb, line 142
def new?
  !persisted?
end
Also aliased as: new_record?
new_record?()
Alias for: new?
persisted?() click to toggle source
# File lib/mem_model/base.rb, line 135
def persisted?
  class_committed? ?
    committed? :
    @persisted == true
end
Also aliased as: exists?
persistent(&block) click to toggle source
# File lib/mem_model/base.rb, line 165
def persistent(&block)
  self.class.persistent(&block)
end
save() click to toggle source
# File lib/mem_model/base.rb, line 169
def save
  new? ? create : update
end
to_hash() click to toggle source
# File lib/mem_model/base.rb, line 208
def to_hash
  {
    id: id,
    created_at: created_at,
    updated_at: updated_at
  }
end
to_key() click to toggle source
# File lib/mem_model/base.rb, line 147
def to_key; end
to_model() click to toggle source
# File lib/mem_model/base.rb, line 204
def to_model
  return self
end
to_param() click to toggle source
# File lib/mem_model/base.rb, line 148
def to_param; end
to_partial_path() click to toggle source
# File lib/mem_model/base.rb, line 149
def to_partial_path; 'something'; end
update() click to toggle source
# File lib/mem_model/base.rb, line 185
def update
  persistent{ update_without_commit }
  true
end
update_attributes(attributes) click to toggle source
# File lib/mem_model/base.rb, line 194
def update_attributes(attributes)
  load_attributes(attributes)
  save
end
update_without_commit() click to toggle source
# File lib/mem_model/base.rb, line 190
def update_without_commit
  @updated_at = Time.now
end

Private Instance Methods

load_attributes(attributes) click to toggle source
# File lib/mem_model/base.rb, line 218
def load_attributes(attributes)
  return unless attributes
  attributes.each do |(name, value)|
    self.send("#{name}=".to_sym, value)
  end
end