Class: AppleStoreInventoryChecker::ResultsList

Inherits:
APIRequest
  • Object
show all
Includes:
Enumerable
Defined in:
lib/apple_store_inventory_checker/results_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(product_id, zip:, max_distance: 15.0) ⇒ ResultsList

Returns a new instance of ResultsList.



10
11
12
13
14
# File 'lib/apple_store_inventory_checker/results_list.rb', line 10

def initialize(product_id, zip:, max_distance: 15.0)
  @product_id = product_id
  @zip = zip
  @max_distance = max_distance
end

Instance Attribute Details

#max_distanceObject

Returns the value of attribute max_distance.



5
6
7
# File 'lib/apple_store_inventory_checker/results_list.rb', line 5

def max_distance
  @max_distance
end

#product_idObject

Returns the value of attribute product_id.



6
7
8
# File 'lib/apple_store_inventory_checker/results_list.rb', line 6

def product_id
  @product_id
end

#resultsObject

Returns the value of attribute results.



7
8
9
# File 'lib/apple_store_inventory_checker/results_list.rb', line 7

def results
  @results
end

#zipObject

Returns the value of attribute zip.



8
9
10
# File 'lib/apple_store_inventory_checker/results_list.rb', line 8

def zip
  @zip
end

Instance Method Details

#eachObject



23
24
25
26
27
# File 'lib/apple_store_inventory_checker/results_list.rb', line 23

def each
  results.each do |result|
    yield(result)
  end
end

#refreshObject



16
17
18
19
20
21
# File 'lib/apple_store_inventory_checker/results_list.rb', line 16

def refresh
  response = request(:get, query: { "parts.0" => @product_id, location: @zip })
  raw_results = response.dig(:body, :stores)
  self.results = refresh_list_objects(raw_results, max_distance: @max_distance)
  self
end