class MasterLeague::Repository
Attributes
path[RW]
limit_value[RW]
order_value[RW]
page_value[RW]
Public Instance Methods
all()
click to toggle source
# File lib/master_league/repository.rb, line 24 def all clone end
each(&block)
click to toggle source
# File lib/master_league/repository.rb, line 11 def each(&block) records.each(&block) end
find(id)
click to toggle source
# File lib/master_league/repository.rb, line 19 def find(id) response = MasterLeague.fetch("#{self.class.path}#{id}/") instantiate_record(response) end
inspect()
click to toggle source
# File lib/master_league/repository.rb, line 56 def inspect entries = records.first(11).map!(&:inspect) entries[10] = '...' if entries.size == 11 "#<#{self.class.name} [#{entries.join(', ')}]>" end
last()
click to toggle source
# File lib/master_league/repository.rb, line 15 def last records.last end
limit(limit)
click to toggle source
# File lib/master_league/repository.rb, line 42 def limit(limit) clone.tap do |repository| unload repository.limit_value = limit end end
order(order)
click to toggle source
# File lib/master_league/repository.rb, line 28 def order(order) clone.tap do |repository| unload repository.order_value = order end end
page(page)
click to toggle source
# File lib/master_league/repository.rb, line 35 def page(page) clone.tap do |repository| unload repository.page_value = page end end
where(filters)
click to toggle source
# File lib/master_league/repository.rb, line 49 def where(filters) clone.tap do |repository| unload repository.where_values.merge!(filters) end end
Private Instance Methods
fetch()
click to toggle source
# File lib/master_league/repository.rb, line 87 def fetch response = MasterLeague.fetch(self.class.path, where_values.merge(params)) instantiate_records(response) end
instantiate_record(record_json)
click to toggle source
# File lib/master_league/repository.rb, line 96 def instantiate_record(record_json) raise NotImplementedError end
instantiate_records(records_json)
click to toggle source
# File lib/master_league/repository.rb, line 92 def instantiate_records(records_json) raise NotImplementedError end
load()
click to toggle source
# File lib/master_league/repository.rb, line 69 def load unless loaded? @records = fetch @loaded = true end self end
loaded?()
click to toggle source
# File lib/master_league/repository.rb, line 83 def loaded? !!@loaded end
params()
click to toggle source
# File lib/master_league/repository.rb, line 100 def params {}.tap do |params| params[:ordering] = @order_value if @order_value params[:page] = @page_value if @page_value params[:page_size] = @limit_value if @limit_value end end
records()
click to toggle source
# File lib/master_league/repository.rb, line 108 def records load @records end
unload()
click to toggle source
# File lib/master_league/repository.rb, line 78 def unload @loaded = false @records = nil end
where_values()
click to toggle source
# File lib/master_league/repository.rb, line 65 def where_values @where_values ||= {} end