Class: Apress::Moysklad::Readers::Assortment
- Inherits:
-
Object
- Object
- Apress::Moysklad::Readers::Assortment
- Defined in:
- lib/apress/moysklad/readers/assortment.rb
Overview
Сервис загрузки ассортимента из акаунта МойСклад
Constant Summary collapse
- RETRY_ATTEMPTS =
5- RETRY_CODES =
[500, 502, 503, 504, 1999].freeze
- ROWS_BATCH =
100
Instance Attribute Summary collapse
-
#client ⇒ Object
readonly
Returns the value of attribute client.
Class Method Summary collapse
Instance Method Summary collapse
- #each_row ⇒ Object
-
#initialize(options) ⇒ Assortment
constructor
A new instance of Assortment.
Constructor Details
#initialize(options) ⇒ Assortment
26 27 28 29 30 31 |
# File 'lib/apress/moysklad/readers/assortment.rb', line 26 def initialize() login = .fetch(:login) password = .fetch(:password) @client = Api::Client.new(login, password) end |
Instance Attribute Details
#client ⇒ Object (readonly)
Returns the value of attribute client.
24 25 26 |
# File 'lib/apress/moysklad/readers/assortment.rb', line 24 def client @client end |
Class Method Details
.allowed_options ⇒ Object
19 20 21 |
# File 'lib/apress/moysklad/readers/assortment.rb', line 19 def i[login password] end |
Instance Method Details
#each_row ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/apress/moysklad/readers/assortment.rb', line 33 def each_row offset = 0 presenter = Presenters::Assortment.new(client) loop do data = with_retry do client.get(:assortment, limit: ROWS_BATCH, offset: offset, scope: :product, archived: :All) end check_rows_size! data, offset data[:rows].each { |row| yield presenter.expose(row) } break if (offset += ROWS_BATCH) >= data[:meta][:size] end end |