Class: HotsApi::Repositories::Repository
- Inherits:
-
Object
- Object
- HotsApi::Repositories::Repository
show all
- Includes:
- Enumerable
- Defined in:
- lib/hots_api/repositories/repository.rb
Instance Method Summary
collapse
Instance Method Details
#each(&block) ⇒ Object
38
39
40
|
# File 'lib/hots_api/repositories/repository.rb', line 38
def each(&block)
records.each(&block)
end
|
#find(id) ⇒ Object
12
13
14
15
16
17
18
|
# File 'lib/hots_api/repositories/repository.rb', line 12
def find(id)
response = HotsApi.get("#{path}/#{id}")
if response.status.ok?
model.new(response.parse)
end
end
|
#find_each(&block) ⇒ Object
42
43
44
|
# File 'lib/hots_api/repositories/repository.rb', line 42
def find_each(&block)
find_each_enum.each(&block)
end
|
#initialize_copy(_original) ⇒ Object
8
9
10
|
# File 'lib/hots_api/repositories/repository.rb', line 8
def initialize_copy(_original)
@records = nil
end
|
#last(n = nil) ⇒ Object
46
47
48
|
# File 'lib/hots_api/repositories/repository.rb', line 46
def last(n = nil)
n ? records.last(n) : records.last
end
|
#next_page ⇒ Object
32
33
34
35
36
|
# File 'lib/hots_api/repositories/repository.rb', line 32
def next_page
if records.any?
where(min_id: records.last.id + 1)
end
end
|
#spawn(&block) ⇒ Object
50
51
52
53
54
|
# File 'lib/hots_api/repositories/repository.rb', line 50
def spawn(&block)
clone.tap do |repository|
repository.instance_exec(&block)
end
end
|
#where(conditions = {}) ⇒ Object
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/hots_api/repositories/repository.rb', line 20
def where(conditions = {})
spawn do
conditions.each do |attribute, value|
if respond_to?("#{attribute}=", true)
send("#{attribute}=", value)
else
raise "Unknown attribute: #{attribute}"
end
end
end
end
|