Module: MemModel::Base

Extended by:
Concern
Defined in:
lib/mem_model/base.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Methods included from Concern

append_features, extended, included

Instance Method Details

#abortObject



157
158
159
# File 'lib/mem_model/base.rb', line 157

def abort
  self.class.abort
end

#class_committed?Boolean

Returns:

  • (Boolean)


131
132
133
# File 'lib/mem_model/base.rb', line 131

def class_committed?
  self.class.committed?
end

#commitObject



161
162
163
# File 'lib/mem_model/base.rb', line 161

def commit
  self.class.commit
end

#committed?Boolean

Returns:

  • (Boolean)


128
# File 'lib/mem_model/base.rb', line 128

def committed?; @persisted == true; end

#createObject



173
174
175
176
177
178
179
180
# File 'lib/mem_model/base.rb', line 173

def create
  persistent do
    @created_at = @updated_at = Time.now
    @persisted = true if !class_committed?
    self.class.store << self
  end
  self.id
end

#deleteObject



193
194
195
196
# File 'lib/mem_model/base.rb', line 193

def delete
  self.class.delete(self)
  self
end

#errorsObject



151
# File 'lib/mem_model/base.rb', line 151

def errors; @errors ||= Errors.new(self); end

#initialize(attributes = {}) ⇒ Object



119
120
121
122
123
# File 'lib/mem_model/base.rb', line 119

def initialize(attributes = {})
  @persisted = false unless maglev?
  @id = self.class.generate_id
  load_attributes(attributes)
end

#maglev?Boolean

Returns:

  • (Boolean)


153
154
155
# File 'lib/mem_model/base.rb', line 153

def maglev?
  self.class.maglev?
end

#model_nameObject



125
# File 'lib/mem_model/base.rb', line 125

def model_name; self.class.model_name; end

#new?Boolean Also known as: new_record?

Returns:

  • (Boolean)


142
143
144
# File 'lib/mem_model/base.rb', line 142

def new?
  !persisted?
end

#persisted?Boolean Also known as: exists?

Returns:

  • (Boolean)


135
136
137
138
139
# File 'lib/mem_model/base.rb', line 135

def persisted?
  class_committed? ?
    committed? :
    @persisted == true
end

#persistent(&block) ⇒ Object



165
166
167
# File 'lib/mem_model/base.rb', line 165

def persistent(&block)
  self.class.persistent(&block)
end

#saveObject



169
170
171
# File 'lib/mem_model/base.rb', line 169

def save
  new? ? create : update
end

#to_hashObject



202
203
204
205
206
207
208
# File 'lib/mem_model/base.rb', line 202

def to_hash
  {
    id: id,
    created_at: created_at,
    updated_at: updated_at
  }
end

#to_keyObject



147
# File 'lib/mem_model/base.rb', line 147

def to_key; end

#to_modelObject



198
199
200
# File 'lib/mem_model/base.rb', line 198

def to_model
  return self
end

#to_paramObject



148
# File 'lib/mem_model/base.rb', line 148

def to_param; end

#to_partial_pathObject



149
# File 'lib/mem_model/base.rb', line 149

def to_partial_path; 'something'; end

#updateObject



182
183
184
185
186
# File 'lib/mem_model/base.rb', line 182

def update
  @updated_at = Time.now
  commit
  true
end

#update_attributes(attributes) ⇒ Object



188
189
190
191
# File 'lib/mem_model/base.rb', line 188

def update_attributes(attributes)
  load_attributes(attributes)
  save
end