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

Instance Method Details

#createObject



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/hari/entity/repository.rb', line 12

def create
  run_callbacks :create do
    fail Hari::ValidationsFailed, self unless valid?

    @id ||= generate_id
    self.created_at = Time.now
    self.updated_at = Time.now
    persist
  end

  self
end

#create_or_updateObject Also known as: save



6
7
8
# File 'lib/hari/entity/repository.rb', line 6

def create_or_update
  run_callbacks(:save) { new? ? create : update }
end

#deleteObject Also known as: destroy



40
41
42
43
44
45
46
47
# File 'lib/hari/entity/repository.rb', line 40

def delete
  run_callbacks :destroy do
    Hari.redis.del id
    @destroyed = true
  end

  self
end

#persistObject



36
37
38
# File 'lib/hari/entity/repository.rb', line 36

def persist
  Hari.redis.set id, to_json
end

#updateObject



25
26
27
28
29
30
31
32
33
34
# File 'lib/hari/entity/repository.rb', line 25

def update
  run_callbacks :update do
    fail Hari::ValidationsFailed, self unless valid?

    self.updated_at = Time.now.utc.iso8601
    persist
  end

  self
end