module Mor::Model
Public Instance Methods
attributes()
click to toggle source
# File lib/mor/model.rb, line 98 def attributes @attributes ||= ActiveSupport::HashWithIndifferentAccess.new end
attributes=(attributes)
click to toggle source
# File lib/mor/model.rb, line 102 def attributes= attributes @attributes = ActiveSupport::HashWithIndifferentAccess.new(attributes) end
destroy()
click to toggle source
# File lib/mor/model.rb, line 131 def destroy run_callbacks :destroy do Mor.cache.delete(self.key) end end
id()
click to toggle source
# File lib/mor/model.rb, line 110 def id self.attributes[self.class.primary_key] end
id=(val)
click to toggle source
# File lib/mor/model.rb, line 114 def id=val self.attributes[self.class.primary_key]=val end
key()
click to toggle source
# File lib/mor/model.rb, line 106 def key self.class.key(self.id) end
persisted?()
click to toggle source
# File lib/mor/model.rb, line 92 def persisted? self.id.nil? ? false : self.class.index.include?(self.id) end
save()
click to toggle source
# File lib/mor/model.rb, line 125 def save if self.valid? save_or_update end end
update(attributes = {})
click to toggle source
CRUD
# File lib/mor/model.rb, line 120 def update attributes = {} self.attributes.update attributes self.save end
Private Instance Methods
add_to_index()
click to toggle source
# File lib/mor/model.rb, line 155 def add_to_index self.class.index = self.class.index.push(self.id) end
remove_from_index()
click to toggle source
# File lib/mor/model.rb, line 159 def remove_from_index self.class.index = self.class.index.tap{ |ids| ids.delete(self.id) } end
save_or_update()
click to toggle source
# File lib/mor/model.rb, line 143 def save_or_update if self.persisted? run_callbacks :update do save_to_cache end else run_callbacks :create do save_to_cache end end end
save_to_cache()
click to toggle source
# File lib/mor/model.rb, line 163 def save_to_cache run_callbacks :save do Mor.cache.set(self.key,self.class.serialize(self)) end end
validate_uniqueness_of_primary_key()
click to toggle source
# File lib/mor/model.rb, line 139 def validate_uniqueness_of_primary_key errors.add(self.class.primary_key, :taken) if self.class.index.include?(self.id) end