Class: HotsApi::Repositories::Repository
- Inherits:
-
Object
- Object
- HotsApi::Repositories::Repository
- Includes:
- Enumerable
- Defined in:
- lib/hots_api/repositories/repository.rb
Direct Known Subclasses
Instance Method Summary collapse
- #each(&block) ⇒ Object
- #find(id) ⇒ Object
- #find_each(&block) ⇒ Object
-
#initialize(where_values: {}) ⇒ Repository
constructor
A new instance of Repository.
- #last(n = nil) ⇒ Object
- #length ⇒ Object
- #next_page ⇒ Object
- #size ⇒ Object
- #where(conditions = {}) ⇒ Object
Constructor Details
#initialize(where_values: {}) ⇒ Repository
Returns a new instance of Repository.
8 9 10 |
# File 'lib/hots_api/repositories/repository.rb', line 8 def initialize(where_values: {}) @where_values = where_values end |
Instance Method Details
#each(&block) ⇒ Object
36 37 38 |
# File 'lib/hots_api/repositories/repository.rb', line 36 def each(&block) fetch { @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("#{collection_path}/#{id}") if response.status.ok? instantiate_record_with(response.parse) end end |
#find_each(&block) ⇒ Object
40 41 42 |
# File 'lib/hots_api/repositories/repository.rb', line 40 def find_each(&block) find_each_enum.each(&block) end |
#last(n = nil) ⇒ Object
44 45 46 |
# File 'lib/hots_api/repositories/repository.rb', line 44 def last(n = nil) fetch { n ? @records.last(n) : @records.last } end |
#length ⇒ Object
52 53 54 |
# File 'lib/hots_api/repositories/repository.rb', line 52 def length fetch { @records.length } end |
#next_page ⇒ Object
32 33 34 |
# File 'lib/hots_api/repositories/repository.rb', line 32 def next_page fetch { where(min_id: @records.last.id + 1) if @records.any? } end |
#size ⇒ Object
48 49 50 |
# File 'lib/hots_api/repositories/repository.rb', line 48 def size fetch { @records.size } 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 = {}) copy do conditions.each do |attribute, value| if respond_to?("#{attribute}=", true) send("#{attribute}=", value) else raise "Unknown attribute: #{attribute}" end end end end |