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