Module: Hari::Entity::Repository
- Extended by:
- ActiveSupport::Concern
- Included in:
- Hari::Entity
- Defined in:
- lib/hari/entity/repository.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #create ⇒ Object
- #create_or_update ⇒ Object (also: #save)
- #delete ⇒ Object (also: #destroy)
- #persist ⇒ Object
- #update ⇒ Object
Instance Method Details
#create ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/hari/entity/repository.rb', line 14 def create run_callbacks :create do fail Hari::ValidationsFailed, self unless valid? @id ||= generate_id @created_at ||= Time.now self.updated_at = Time.now persist end self end |
#create_or_update ⇒ Object Also known as: save
6 7 8 9 10 |
# File 'lib/hari/entity/repository.rb', line 6 def create_or_update run_callbacks(:save) { new? ? create : update }.tap do @changed_attributes.clear end end |
#delete ⇒ Object Also known as: destroy
44 45 46 47 48 49 50 51 |
# File 'lib/hari/entity/repository.rb', line 44 def delete run_callbacks :destroy do Hari.redis.del id @destroyed = true end self end |
#persist ⇒ Object
38 39 40 41 42 |
# File 'lib/hari/entity/repository.rb', line 38 def persist source = to_json @previously_changed = changes Hari.redis.set id, source end |
#update ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/hari/entity/repository.rb', line 27 def update run_callbacks :update do fail Hari::ValidationsFailed, self unless valid? self.updated_at = Time.now.utc.iso8601 persist end self end |