Module: MR::FakeRecord::Persistence::InstanceMethods

Defined in:
lib/mr/fake_record/persistence.rb

Instance Method Summary collapse

Instance Method Details

#destroyObject



67
68
69
# File 'lib/mr/fake_record/persistence.rb', line 67

def destroy
  @destroyed = true
end

#destroyed?Boolean

Returns:

  • (Boolean)


79
80
81
# File 'lib/mr/fake_record/persistence.rb', line 79

def destroyed?
  !!@destroyed
end

#errorsObject



83
84
85
# File 'lib/mr/fake_record/persistence.rb', line 83

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

#new_record?Boolean

Returns:

  • (Boolean)


75
76
77
# File 'lib/mr/fake_record/persistence.rb', line 75

def new_record?
  !self.id
end

#reset_save_calledObject



98
99
100
# File 'lib/mr/fake_record/persistence.rb', line 98

def reset_save_called
  @save_called = false
end

#save!Object

ActiveRecord methods

Raises:

  • (ActiveRecord::RecordInvalid)


55
56
57
58
59
60
61
62
63
64
65
# File 'lib/mr/fake_record/persistence.rb', line 55

def save!
  raise ActiveRecord::RecordInvalid.new(self) unless self.valid?
  self.id ||= MR::Factory.primary_key(self.class)
  current_time = CurrentTime.new
  self.created_at ||= current_time if self.respond_to?(:created_at=)
  if self.respond_to?(:updated_at=) && !self.updated_at_changed?
    self.updated_at = current_time
  end
  self.saved_attributes = self.attributes.dup
  @save_called = true
end

#save_calledObject

Non-ActiveRecord methods



93
94
95
96
# File 'lib/mr/fake_record/persistence.rb', line 93

def save_called
  @save_called = false if @save_called.nil?
  @save_called
end

#transaction(&block) ⇒ Object



71
72
73
# File 'lib/mr/fake_record/persistence.rb', line 71

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

#valid?Boolean

Returns:

  • (Boolean)


87
88
89
# File 'lib/mr/fake_record/persistence.rb', line 87

def valid?
  self.errors.empty?
end