Class: Desiru::Persistence::Repositories::BaseRepository
- Inherits:
-
Object
- Object
- Desiru::Persistence::Repositories::BaseRepository
show all
- Defined in:
- lib/desiru/persistence/repositories/base_repository.rb
Overview
Base repository with common CRUD operations
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of BaseRepository.
10
11
12
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 10
def initialize(model_class)
@model_class = model_class
end
|
Instance Attribute Details
#model_class ⇒ Object
Returns the value of attribute model_class.
8
9
10
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 8
def model_class
@model_class
end
|
Instance Method Details
#all ⇒ Object
14
15
16
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 14
def all
dataset.all
end
|
#count ⇒ Object
50
51
52
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 50
def count
dataset.count
end
|
#create(attributes) ⇒ Object
30
31
32
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 30
def create(attributes)
model_class.create(attributes)
end
|
#delete?(id) ⇒ Boolean
42
43
44
45
46
47
48
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 42
def delete?(id)
record = find(id)
return false unless record
record.destroy
true
end
|
#exists?(conditions) ⇒ Boolean
54
55
56
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 54
def exists?(conditions)
dataset.where(conditions).any?
end
|
#find(id) ⇒ Object
18
19
20
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 18
def find(id)
dataset.first(id: id)
end
|
#find_by(conditions) ⇒ Object
22
23
24
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 22
def find_by(conditions)
dataset.where(conditions).first
end
|
#paginate(page: 1, per_page: 20) ⇒ Object
58
59
60
61
62
63
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 58
def paginate(page: 1, per_page: 20)
dataset
.limit(per_page)
.offset((page - 1) * per_page)
.all
end
|
#update(id, attributes) ⇒ Object
34
35
36
37
38
39
40
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 34
def update(id, attributes)
record = find(id)
return nil unless record
record.update(attributes)
record
end
|
#where(conditions) ⇒ Object
26
27
28
|
# File 'lib/desiru/persistence/repositories/base_repository.rb', line 26
def where(conditions)
dataset.where(conditions).all
end
|