Module: Modis::Persistence

Defined in:
lib/modis/persistence.rb

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
# File 'lib/modis/persistence.rb', line 3

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#destroyObject



88
89
90
91
92
93
94
95
# File 'lib/modis/persistence.rb', line 88

def destroy
  self.class.transaction do |redis|
    run_callbacks :destroy do
      redis.del(key)
      untrack(id, redis)
    end
  end
end

#keyObject



68
69
70
# File 'lib/modis/persistence.rb', line 68

def key
  new_record? ? nil : self.class.key_for(id)
end

#new_record?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/modis/persistence.rb', line 72

def new_record?
  defined?(@new_record) ? @new_record : true
end

#persisted?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/modis/persistence.rb', line 64

def persisted?
  true
end

#reloadObject



97
98
99
100
101
# File 'lib/modis/persistence.rb', line 97

def reload
  new_attributes = self.class.attributes_for(id)
  initialize(new_attributes)
  self
end

#save(args = {}) ⇒ Object



76
77
78
79
80
81
82
# File 'lib/modis/persistence.rb', line 76

def save(args={})
  begin
    create_or_update(args)
  rescue Modis::RecordInvalid
    false
  end
end

#save!(args = {}) ⇒ Object



84
85
86
# File 'lib/modis/persistence.rb', line 84

def save!(args={})
  create_or_update(args) || (raise RecordNotSaved)
end

#update_attribute(name, value) ⇒ Object



103
104
105
106
# File 'lib/modis/persistence.rb', line 103

def update_attribute(name, value)
  assign_attributes(name => value)
  save(validate: false)
end

#update_attributes(attrs) ⇒ Object



108
109
110
111
# File 'lib/modis/persistence.rb', line 108

def update_attributes(attrs)
  assign_attributes(attrs)
  save
end

#update_attributes!(attrs) ⇒ Object



113
114
115
116
# File 'lib/modis/persistence.rb', line 113

def update_attributes!(attrs)
  assign_attributes(attrs)
  save!
end