Class: Rmodel::Repository
Instance Method Summary
collapse
injector
#delete_all, #destroy_all, #fetch, #find_all, included
#find!, #insert, #save
Constructor Details
#initialize(source, mapper) ⇒ Repository
Returns a new instance of Repository.
13
14
15
16
|
# File 'lib/rmodel/repository.rb', line 13
def initialize(source, mapper)
@source = source or raise ArgumentError, 'Source is not set up'
@mapper = mapper or raise ArgumentError, 'Mapper is not set up'
end
|
Instance Method Details
#destroy(object) ⇒ Object
34
35
36
|
# File 'lib/rmodel/repository.rb', line 34
def destroy(object)
@source.delete(object.id)
end
|
#find(id) ⇒ Object
18
19
20
21
|
# File 'lib/rmodel/repository.rb', line 18
def find(id)
record = @source.find(id)
@mapper.deserialize(record)
end
|
#insert_one(object) ⇒ Object
23
24
25
26
27
|
# File 'lib/rmodel/repository.rb', line 23
def insert_one(object)
record = @mapper.serialize(object, true)
id = @source.insert(record)
object.id ||= id
end
|
#update(object) ⇒ Object
29
30
31
32
|
# File 'lib/rmodel/repository.rb', line 29
def update(object)
record = @mapper.serialize(object, false)
@source.update(object.id, record)
end
|