class ActiveMocker::Records

Attributes

records[R]

Public Class Methods

new(records = []) click to toggle source
# File lib/active_mocker/mock/records.rb, line 10
def initialize(records = [])
  @records = records
end

Public Instance Methods

delete(record) click to toggle source
# File lib/active_mocker/mock/records.rb, line 18
def delete(record)
  raise RecordNotFound, "Record has not been created." unless records.delete(record)
end
exists?(record) click to toggle source
# File lib/active_mocker/mock/records.rb, line 22
def exists?(record)
  records.include?(record)
end
insert(record) click to toggle source
# File lib/active_mocker/mock/records.rb, line 14
def insert(record)
  records << validate_id((record.id ||= next_id), record)
end
new_record?(record) click to toggle source
# File lib/active_mocker/mock/records.rb, line 26
def new_record?(record)
  !exists?(record)
end
persisted?(id) click to toggle source
# File lib/active_mocker/mock/records.rb, line 30
def persisted?(id)
  ids.include?(id)
end
reset() click to toggle source
# File lib/active_mocker/mock/records.rb, line 34
def reset
  records.clear
end

Private Instance Methods

ids() click to toggle source
# File lib/active_mocker/mock/records.rb, line 40
def ids
  records.map(&:id)
end
max_record() click to toggle source
# File lib/active_mocker/mock/records.rb, line 50
def max_record
  ids.max
end
next_id() click to toggle source
# File lib/active_mocker/mock/records.rb, line 44
def next_id
  max_record.succ
rescue NoMethodError
  1
end
validate_id(id, record) click to toggle source
# File lib/active_mocker/mock/records.rb, line 54
def validate_id(id, record)
  record.id = id.to_i
  validate_unique_id(id, record)
end
validate_unique_id(id, record) click to toggle source
# File lib/active_mocker/mock/records.rb, line 59
def validate_unique_id(id, record)
  raise IdError, "Duplicate ID found for record #{record.inspect}" if persisted?(id)
  record
end