torg_mailru_api 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,7 +45,6 @@ module TorgMailruApi
45
45
 
46
46
  module APIRequest
47
47
 
48
-
49
48
  class DeepOpenStruct < OpenStruct
50
49
 
51
50
  def to_h
@@ -89,6 +88,7 @@ module TorgMailruApi
89
88
  end
90
89
  end
91
90
 
91
+ # Рекурсивная декамелизация ключей хеша
92
92
  def decamelize_hash_keys value
93
93
  case value
94
94
  when Array
@@ -102,12 +102,24 @@ module TorgMailruApi
102
102
  end
103
103
  end
104
104
 
105
+ # Запрос к API
106
+ # @param [String] resource Ресурс API, к которому осуществляется запрос
107
+ # @param [Hash] params Хеш параметров
108
+ # @return [DeepOpenStruct] Результат запроса
105
109
  def get resource, params=nil
106
110
  response = super
107
111
  hash = decamelize_hash_keys response[response.keys.first]
108
112
  DeepOpenStruct.load hash
109
113
  end
110
114
 
115
+ # Вспомогательная функция для преобразования ответа API в листинг
116
+ # @param [String] resource Ресурс API, к которому осуществляется запрос
117
+ # @param [Hash] params Хеш параметров
118
+ # @return [Listing] Листинг
119
+ def listing resource, params=nil
120
+ Listing.new resource, params
121
+ end
122
+
111
123
  end
112
124
 
113
125
  class Listing
@@ -142,313 +154,310 @@ module TorgMailruApi
142
154
  end
143
155
 
144
156
  module APIMethods
145
- def listing resource, params=nil
146
- Listing.new resource, params
147
- end
148
-
149
- ### Товарные категории
150
157
 
151
- ## Список категорий
152
- # Получение списка товарных категорий верхнего уровня.
153
- # Ресурс является геозависимым и в ответе возвращает листинг.
154
- # Входные параметры:
155
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
156
- # geo_id Число Идентификатор региона. Нет Да
157
- # page Число Номер страницы. 1 Нет
158
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. выводятся все результаты Нет
158
+ # @!macro api_method
159
+ # @param [Hash] params Хеш параметров
160
+ # @!macro geodependent
161
+ # @note Ресурс является геозависимым.
162
+ # @option params [Integer] :geo_id Идентификатор региона (обязательно!)
163
+ # @!macro returns_listing
164
+ # @note Ресурс в ответе возвращает листинг.
165
+ # @return [Listing] Листинг
166
+ # @!macro returns_object
167
+ # @return [DeepOpenStruct] Объект
168
+ # @!macro paginated
169
+ # @option params [Integer] :page (1) Номер страницы
170
+ # @option params [Integer] :results_per_page (10) Количество результатов на страницу (max: 30)
171
+ # @!macro default_sort_order
172
+ # @option params [Symbol] :sort_order (:desc) Направление сортировки (:asc — по возрастанию; :desc — по убыванию)
173
+ # @!macro user_location
174
+ # @option params [Float] :latitude Широта точки нахождения пользователя
175
+ # @option params [Float] :longitude Долгота точки нахождения пользователя
176
+ # @!macro category_id
177
+ # @param [Integer] category_id Идентификатор товарной категории
178
+ # @!macro model_id
179
+ # @param [Integer] model_id Идентификатор модели
180
+ # @!macro offer_id
181
+ # @param [Integer] offer_id Идентификатор товарного предложения
182
+ # @!macro seller_id
183
+ # @param [Integer] seller_id Идентификатор магазина
184
+ # @!macro region_id
185
+ # @param [Integer] region_id Идентификатор региона
186
+ # @!macro vendor_id
187
+ # @param [Integer] vendor_id Идентификатор производителя
188
+
189
+ # @!group Товарные категории
190
+
191
+ # Список категорий: получение списка товарных категорий верхнего уровня.
192
+ # @macro api_method
193
+ # @macro geodependent
194
+ # @macro paginated
195
+ # @macro returns_listing
159
196
  def categories params
160
197
  listing "category", params
161
198
  end
162
199
 
163
-
164
- ## Список подкатегорий
165
- # Получение списка подкатегорий для товарной категории.
166
- # Ресурс является геозависимым и в ответе возвращает листинг.
167
- # Входные параметры:
168
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
169
- # geo_id Число Идентификатор региона. Да
170
- # type Строка Фильтрация выходных данных по типу товарной категории: all | model | parameterized | general all Нет
171
- # page Число Номер страницы. 1 Нет
172
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. выводятся все результаты Нет
200
+ # Список подкатегорий: получение списка подкатегорий для товарной категории.
201
+ # @macro api_method
202
+ # @macro geodependent
203
+ # @macro category_id
204
+ # @option params [Symbol] :type (:all) Фильтрация выходных данных по типу товарной категории (:all | :model | :parameterized | :general)
205
+ # @option params [Integer] :page (1) Номер страницы
206
+ # @option params [Integer] :results_per_page (выводятся все результаты) Количество результатов на страницу (max: 30)
207
+ # @macro returns_listing
173
208
  def category_children category_id, params
174
209
  listing "category/#{category_id}/children", params
175
210
  end
176
211
 
177
- ## Информация о категории
178
- # Получение информации о товарной категории.
179
- # Ресурс является геозависимым.
180
- # Входные параметры:
181
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
182
- # geo_id Число Идентификатор региона. Да
212
+ # Информация о категории: получение информации о товарной категории.
213
+ # @macro api_method
214
+ # @macro geodependent
215
+ # @macro category_id
216
+ # @macro returns_object
183
217
  def category category_id, params
184
218
  get "category/#{category_id}", params
185
219
  end
186
220
 
187
- ## Список параметров категории
188
- # Получение списка параметров товарной категории
189
- # Входные параметры:
190
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
191
- # parameter_set Строка Тип набора параметров категории. popular | all popular Нет
221
+ # Список параметров категории: получение списка параметров товарной категории.
222
+ # @macro api_method
223
+ # @macro category_id
224
+ # @option params [Symbol] :parameter_set (:popular) Тип набора параметров категории (:popular популярные; :all — все)
225
+ # @macro returns_object
192
226
  def category_parameters category_id, params=nil
193
227
  get "category/#{category_id}/parameters", params
194
228
  end
195
229
 
196
- ## Список моделей категории
197
- # Получение списка моделей в модельной товарной категории. Для обычных категорий ресурс возвращает ошибку.
198
- # Ресурс является геозависимым и в ответе возвращает листинг.
199
- # Входные параметры:
200
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
201
- # geo_id Число Идентификатор региона. Да
202
- # vendor_id Число Идентификатор производителя. Нет
203
- # sort Строка Тип сортировки моделей. date - сортировка по новизне; popular - сортировка по популярности; price - сортировка по цене. popular Нет
204
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
205
- # page Число Номер страницы. 1 Нет
206
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
230
+ # Список моделей категории: получение списка моделей в модельной товарной категории.
231
+ # @note Для обычных категорий ресурс возвращает ошибку.
232
+ # @macro api_method
233
+ # @macro geodependent
234
+ # @macro category_id
235
+ # @option params [Integer] :vendor_id Идентификатор производителя
236
+ # @option params [Symbol] :sort (:popular) Тип сортировки моделей (:date — сортировка по новизне; :popular — сортировка по популярности; :price — сортировка по цене)
237
+ # @macro default_sort_order
238
+ # @macro returns_listing
207
239
  def category_models category_id, params
208
240
  listing "category/#{category_id}/models", params
209
241
  end
210
242
 
211
- ## Список товарных предложений категории
212
- # Получение списка товарных предложений в обычной товарной категории. Для модельных и параметризированных категорий ресурс возвращает ошибку.
213
- # Ресурс является геозависимым и в ответе возвращает листинг.
214
- # Входные параметры:
215
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
216
- # geo_id Число Идентификатор региона. Да
217
- # category_id Число Идентификатор товарной категории. Да
218
- # sort Строка Тип сортировки предложений. auction - по убыванию ставки; price - сортировка по цене. auction Нет
219
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
220
- # page Число Номер страницы. 1 Нет
221
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
243
+ # Список товарных предложений категории: получение списка товарных предложений в обычной товарной категории.
244
+ # @note Для модельных и параметризированных категорий ресурс возвращает ошибку.
245
+ # @macro api_method
246
+ # @macro category_id
247
+ # @macro geodependent
248
+ # @option params [Symbol] :sort (:auction) Тип сортировки предложений (:auction — по убыванию ставки; :price — сортировка по цене)
249
+ # @macro default_sort_order
250
+ # @macro paginated
251
+ # @macro returns_listing
222
252
  def category_offers category_id, params
223
253
  listing "category/#{category_id}/offers", params
224
254
  end
225
255
 
226
- ## Список хитов продаж категории
227
- # Получение списка 50 моделей - хитов продаж модельной товарной категории. Для обычных категорий ресурс возвращает ошибку.
228
- # Список отсортирован по степени убывания популярности у покупателей.
229
- # Ресурс является геозависимым.
230
- # Входные параметры:
231
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
232
- # geo_id Число Идентификатор региона. Да
256
+ # Список хитов продаж категории: получение списка 50 моделей-хитов продаж модельной товарной категории.
257
+ # @note Список отсортирован по степени убывания популярности у покупателей.
258
+ # @note Для обычных категорий ресурс возвращает ошибку.
259
+ # @macro api_method
260
+ # @macro category_id
261
+ # @macro geodependent
262
+ # @macro returns_object
233
263
  def category_hits category_id, params
234
- listing "category/#{category_id}/hits", params
235
- end
236
-
237
- # Список новинок категории
238
- # Получение списка моделей в модельной товарной категории. Для обычных категорий ресурс возвращает ошибку.
239
- # Ресурс является геозависимым и в ответе возвращает листинг.
240
- # Входные параметры:
241
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
242
- # geo_id Число Идентификатор региона. Да
243
- # sort Строка Тип сортировки моделей. popular - сортировка по популярности; price - сортировка по цене. popular Нет
244
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
245
- # page Число Номер страницы. 1 Нет
246
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
264
+ get "category/#{category_id}/hits", params
265
+ end
266
+
267
+ # Список новинок категории: получение списка моделей в модельной товарной категории.
268
+ # @note Для обычных категорий ресурс возвращает ошибку.
269
+ # @macro api_method
270
+ # @macro category_id
271
+ # @macro geodependent
272
+ # @option params [Symbol] :sort (:popular) Тип сортировки моделей (:popular — сортировка по популярности; :price — сортировка по цене)
273
+ # @macro default_sort_order
274
+ # @macro paginated
275
+ # @macro returns_listing
247
276
  def category_newmodels category_id, params
248
277
  listing "category/#{category_id}/newmodels", params
249
278
  end
250
279
 
280
+ # @!group Модели товаров
251
281
 
252
- ### Модели товаров
253
-
254
- ## Информация о модели
255
- # Получение информации об указанной модели.
256
- # Ресурс является геозависимым.
257
- # Входные параметры:
258
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
259
- # geo_id Число Идентификатор региона Да
282
+ # Информация о модели: получение информации об указанной модели.
283
+ # @macro api_method
284
+ # @macro model_id
285
+ # @macro geodependent
286
+ # @macro returns_object
260
287
  def model model_id, params
261
288
  get "model/#{model_id}", params
262
289
  end
263
290
 
264
- ## Список характеристик модели
265
- # Получение списка характеристик указанной модели.
266
- # Входные параметры:
267
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
268
- # parameter_set Строка popular|all popular Нет
291
+ # Список характеристик модели: получение списка характеристик указанной модели.
292
+ # @macro api_method
293
+ # @macro model_id
294
+ # @option params :parameter_set [Symbol] (:popular) Тип набора параметров категории (:popular популярные, :all — все)
295
+ # @macro returns_object
269
296
  def model_parameters model_id, params=nil
270
297
  get "model/#{model_id}/parameters", params
271
298
  end
272
299
 
273
- # Список предложений модели
274
- # Получение списка товарных предложений указанной модели.
275
- # Ресурс является геозависимым и в ответе возвращает листинг.
276
- # Входные параметры:
277
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
278
- # geo_id Число Идентификатор региона. Да
279
- # sort Строка Тип сортировки предложений.
280
- # price - по цене;
281
- # rating - по рейтингу магазина + цене;
282
- # range - по расстоянию до ближайшей точки продаж (при указании местоположения пользователя);
283
- # auction - по убыванию ставки.
284
- # auction Нет
285
- # sort_order Строка Направление сортировки. Задается только в том случае, если у параметра sort_order указано значение price.
286
- # asc - по возрастанию desc - по убыванию
287
- # если у параметра sort_order указано значение price, сортировка по возрастанию;
288
- # если у параметра sort_order указано значение rating, сортировка по убыванию;
289
- # если у параметра sort_order указано значение range, сортировка по возрастанию.
290
- # Нет
291
- # page Число Номер страницы. 1 Нет
292
- # results_per_page Число Количество результатов на страницу.
293
- # Максимальное значение: 30. 10 Нет
294
- # latitude Число Широта точки нахождения пользователя. Нет
295
- # longitude Число Долгота точки нахождения пользователя. Нет
300
+ # Список предложений модели: получение списка товарных предложений указанной модели.
301
+ # @macro api_method
302
+ # @macro model_id
303
+ # @macro geodependent
304
+ # @option params [Symbol] :sort (:auction) Тип сортировки предложений (:auction по убыванию ставки; :price — по цене,
305
+ # :rating по рейтингу магазина + цене, :range — по расстоянию до ближайшей точки продаж (при указании местоположения пользователя)).
306
+ # * Если у параметра :sort указано значение :price, сортировка по возрастанию;
307
+ # * если у параметра :sort указано значение :rating, сортировка по убыванию;
308
+ # * если у параметра :sort указано значение :range, сортировка по возрастанию.
309
+ # @option params [Symbol] :sort_order (:desc) Направление сортировки (:asc по возрастанию; :desc — по убыванию).
310
+ # Задается только в том случае, если у параметра :sort указано значение :price
311
+ # @macro paginated
312
+ # @macro user_location
313
+ # @macro returns_listing
296
314
  def model_offers model_id, params
297
315
  listing "model/#{model_id}/offers", params
298
316
  end
299
317
 
300
- ## Список точек продаж модели
301
- # Получение списка точек продаж указанной модели.
302
- # Ресурс является геозависимым и в ответе возвращает листинг.
303
- # Входные параметры:
304
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
305
- # geo_id Число Идентификатор региона. Да
306
- # page Число Номер страницы. 1 Нет
307
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
308
- # latitude Число Широта точки нахождения пользователя. Нет
309
- # longitude Число Долгота точки нахождения пользователя. Нет
318
+ # Список точек продаж модели: получение списка точек продаж указанной модели.
319
+ # @macro api_method
320
+ # @macro model_id
321
+ # @macro geodependent
322
+ # @macro paginated
323
+ # @macro user_location
324
+ # @macro returns_listing
310
325
  def model_outlets model_id, params
311
326
  listing "model/#{model_id}/outlets", params
312
327
  end
313
328
 
314
- ### Товарные предложения
329
+ # @!group Товарные предложения
315
330
 
316
- ## Информация о товарном предложении
317
- # Получение расширенной информации об указанном товарном предложении магазина.
331
+ # Информация о товарном предложении: получение расширенной информации об указанном товарном предложении магазина.
332
+ # @macro api_method
333
+ # @macro offer_id
334
+ # @macro returns_object
318
335
  def offer offer_id, params=nil
319
336
  get "offer/#{offer_id}", params
320
337
  end
321
338
 
322
- ### Поиск
323
-
324
- ## Полнотекстовый поиск
325
- # Получение списка моделей и товарных предложений, удовлетворяющих строке запроса.
326
- # Входные параметры:
327
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
328
- # geo_id Число Идентификатор региона. Да
329
- # query Строка Поисковый запрос. Да
330
- # category_id Число Фильтрация результатов поиска по товарной категории. Нет
331
- # seller_id Число Фильтрация результатов поиска по магазину. Нет
332
- # price_min Число Фильтрация результатов поиска по минимальной цене товарных предложений. Нет
333
- # price_max Число Фильтрация результатов поиска по максимальной цене товарных предложений. Нет
334
- # sort Строка Тип сортировки результатов поиска. price - сортировка по возрастанию цены. relevance - по релевантности. relevance Нет
335
- # page Число Номер страницы. 1 Нет
336
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
339
+ # @!group Поиск
340
+
341
+ # Полнотекстовый поиск: получение списка моделей и товарных предложений, удовлетворяющих строке запроса.
342
+ # @macro api_method
343
+ # @macro geodependent
344
+ # @option params [String] :query Поисковый запрос (обязательно!)
345
+ # @option params [Integer] :category_id Фильтрация результатов поиска по товарной категории
346
+ # @option params [Integer] :seller_id Фильтрация результатов поиска по магазину
347
+ # @option params [Integer] :price_min Фильтрация результатов поиска по минимальной цене товарных предложений
348
+ # @option params [Integer] :price_max Фильтрация результатов поиска по максимальной цене товарных предложений
349
+ # @option params [Symbol] :sort (:relevance) Тип сортировки результатов поиска (:price — сортировка по возрастанию цены, :relevance — по релевантности)
350
+ # @macro paginated
351
+ # @macro returns_listing
337
352
  def search params
338
353
  listing "search", params
339
354
  end
340
355
 
341
- ## Параметрический поиск
342
- # Получение списка моделей категории, удовлетворяющих набору заданных параметров.
343
- # Входные параметры:
344
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
345
- # geo_id Число Идентификатор региона. Да
346
- # {parameter_id} Строка Параметр товарной категории.
347
- # В запросе вместо {parameter_id} указыватся id параметра. Список параметров и их id для определенной товарной категории можно получить с помощью ресурса "Список параметров категории".
348
- # Значение зависит от типа выбранного параметра категории:
349
- # тип параметра numeric - числовое значение {value} или числовой диапазон, значения границ которого разделяются запятой {min_value},{max_value};
350
- # тип параметра enum - список идентификаторов допустимых значений параметра, разделенный запятыми, {value1_id},{value2_id},{value3_id}, где {valueN_id} - идентификатор значения;
351
- # тип параметра bool - допустимые значения параметра: true и false. Нет
352
- # sort Строка Тип сортировки результатов поиска. date - по новизне; popular - популярности; price - по цене; popular Нет
353
- # sort_order Строка Направление сортировки по цене. asc - по возрастанию desc - по убыванию desc Нет
354
- # page Число Номер страницы. 1 Нет
355
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
356
+ # Параметрический поиск: получение списка моделей категории, удовлетворяющих набору заданных параметров.
357
+ # @macro api_method
358
+ # @macro geodependent
359
+ # @option params [String] &lt;parameter_id&gt; Параметр товарной категории. В запросе вместо <parameter_id> указыватся id параметра.
360
+ # Список параметров и их id для определенной товарной категории можно получить с помощью ресурса "Список параметров категории".
361
+ # Значение зависит от типа выбранного параметра категории:
362
+ # * тип параметра numeric числовое значение <value> или числовой диапазон, значения границ которого разделяются запятой "<min_value>,<max_value>";
363
+ # * тип параметра enum список идентификаторов допустимых значений параметра, разделенный запятыми, "<value1_id>,<value2_id>,<value3_id>", где <valueN_id> — идентификатор значения;
364
+ # * тип параметра bool допустимые значения параметра: "true" и "false".
365
+ # @option params [Symbol] :sort (:popular) Тип сортировки результатов поиска (:date по новизне; :popular по популярности; :price — по цене)
366
+ # @macro default_sort_order
367
+ # @macro paginated
368
+ # @macro returns_listing
356
369
  def category_filter category_id, params
357
370
  listing "category/#{category_id}/filter", params
358
371
  end
359
372
 
360
- ### Отзывы
373
+ # @!group Отзывы
361
374
 
362
- ## Отзывы о магазине
363
- # Получение списка отзывов о магазине.
364
- # Входные параметры:
365
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
366
- # sort Строка Тип сортировки отзывов. mark - по оценке пользователя; date - по дате добавления отзыва; valuable - по оценке полезности отзыва. date Нет
367
- # sort_order Строка Направление сортировки. asc - по возрастанию desc - по убыванию desc Нет
368
- # mark Число Фильтрация отзывов по оценке магазина. Возможные значения: 1 2 3 4 5 all - все значения all Нет
369
- # page Число Номер страницы. 1 Нет
370
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 0 (выводятся все результаты) Нет
375
+ # Отзывы о магазине: получение списка отзывов о магазине.
376
+ # @macro api_method
377
+ # @option params [Symbol] :sort (:date) Тип сортировки отзывов (:mark — по оценке пользователя; :date — по дате добавления отзыва; :valuable — по оценке полезности отзыва)
378
+ # @macro default_sort_order
379
+ # @option params [Integer,Symbol] :mark (:all) Фильтрация отзывов по оценке магазина (1, 2, 3, 4, 5; :all все значения)
380
+ # @option params [Integer] :page (1) Номер страницы
381
+ # @option params [Integer] :results_per_page (выводятся все результаты) Количество результатов на страницу (max: 30)
382
+ # @macro returns_listing
371
383
  def seller_reviews seller_id, params
372
384
  listing "seller/#{seller_id}/reviews", params
373
385
  end
374
386
 
375
- ### Магазины
387
+ # @!group Магазины
376
388
 
377
- ## Информация о магазине
378
- # Получение информации о выбранном магазине.
389
+ # Информация о магазине: получение информации о выбранном магазине.
390
+ # @macro seller_id
391
+ # @macro returns_object
379
392
  def seller seller_id
380
393
  get "seller/#{seller_id}"
381
394
  end
382
395
 
383
- ## Список точек продаж магазина
384
- # Получение списка точек продаж выбранного магазина.
385
- # Ресурс является геозависимым и в ответе возвращает листинг.
386
- # Входные параметры:
387
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
388
- # geo_id Число Идентификатор региона. Да
389
- # page Число Номер страницы. 1 Нет
390
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
391
- # latitude Число Широта точки нахождения пользователя. Нет
392
- # longitude Число Долгота точки нахождения пользователя. Нет
396
+ # Список точек продаж магазина: получение списка точек продаж выбранного магазина.
397
+ # @macro api_method
398
+ # @macro seller_id
399
+ # @macro geodependent
400
+ # @macro paginated
401
+ # @macro user_location
402
+ # @macro returns_listing
393
403
  def seller_outlets seller_id, params
394
404
  listing "seller/#{seller_id}/outlets", params
395
405
  end
396
406
 
397
- ### Производители
407
+ # @!group Производители
398
408
 
399
- ## Список производителей
400
- # Получение списка производителей, товары которых представлены в каталоге моделей на Товарах@Mail.Ru
401
- # Ресурс в ответе возвращает листинг.
402
- # Входные параметры:
403
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
404
- # category_id Число Идентификатор товарной категории, для которой нужно получить список производителей. Нет
405
- # page Число Номер страницы. 1 Нет
406
- # results_per_page Число Количество результатов на страницу.
407
- # Максимальное значение: 30. 0 (выводятся все результаты) Нет
408
- def vendors
409
+ # Список производителей: получение списка производителей, товары которых представлены в каталоге моделей на Товарах@Mail.Ru
410
+ # @option params [Integer] :category_id Идентификатор товарной категории, для которой нужно получить список производителей
411
+ # @option params [Integer] :page (1) Номер страницы
412
+ # @option params [Integer] :results_per_page (выводятся все результаты) Количество результатов на страницу (max: 30)
413
+ # @macro returns_listing
414
+ def vendors params=nil
409
415
  listing "vendor"
410
416
  end
411
417
 
412
- ## Информация о производителе
413
- # Получение информации о производителе.
414
- def vendor vendor_id, params=nil
418
+ # Информация о производителе: получение информации о производителе.
419
+ # @macro vendor_id
420
+ # @macro returns_object
421
+ def vendor vendor_id
415
422
  get "vendor/#{vendor_id}"
416
423
  end
417
424
 
418
- ### Геоинформация
425
+ # @!group Геоинформация
419
426
 
420
- ## Список регионов
421
- # Получение списка регионов верхнего уровня.
422
- # Ресурс в ответе возвращает листинг.
423
- # Входные параметры:
424
- # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
425
- # page Число Номер страницы. 1 Нет
426
- # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
427
+ # Список регионов: получение списка регионов верхнего уровня.
428
+ # @macro api_method
429
+ # @macro paginated
430
+ # @macro returns_listing
427
431
  def regions params=nil
428
432
  listing "regions", params
429
433
  end
430
434
 
431
- ## Список дочерних регионов
432
- # Получение списка дочерних регионов для выбранного региона.
433
- # Ресурс в ответе возвращает листинг.
435
+ # Список дочерних регионов: получение списка дочерних регионов для выбранного региона.
436
+ # @macro api_method
437
+ # @macro region_id
438
+ # @macro paginated
439
+ # @macro returns_listing
434
440
  def region_children region_id, params=nil
435
441
  listing "region/#{region_id}/children", params
436
442
  end
437
443
 
438
- ## Информация о регионе
439
- # Получение информации о выбранном регионе.
440
- # Ошибка в документации: Ресурс в ответе НЕ возвращает листинг.
444
+ # Информация о регионе: получение информации о выбранном регионе.
445
+ # @macro region_id
446
+ # @macro returns_object
441
447
  def region region_id
442
448
  get "region/#{region_id}"
443
449
  end
444
450
 
445
- ## Текстовый поиск региона
446
- # Получение списка регионов, удовлетворяющих строке запроса.
447
- # Ошибка в документации: Ресурс в ответе НЕ возвращает листинг.
451
+ # Текстовый поиск региона: получение списка регионов, удовлетворяющих строке запроса.
452
+ # @option params [String] :query Полное или частичное название региона (обязательно!)
453
+ # @option params [Integer] :total (5) Количество результатов (max: 10)
454
+ # @macro returns_object
448
455
  def region_suggest params
449
456
  get "region/suggest", params
450
457
  end
451
458
 
459
+ # @!endgroup
460
+
452
461
  end
453
462
 
454
463
  extend Configuration
@@ -1,4 +1,4 @@
1
1
  module TorgMailruApi
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  API_VERSION = "1.0"
4
4
  end
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_development_dependency "bundler", "~> 1.3"
22
22
  spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "yard"
24
+ spec.add_development_dependency "redcarpet"
23
25
 
24
26
  spec.add_runtime_dependency 'faraday', '~> 0.8.8'
25
27
  spec.add_runtime_dependency 'faraday_middleware', '~> 0.9.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: torg_mailru_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -43,6 +43,38 @@ dependencies:
43
43
  - - ! '>='
44
44
  - !ruby/object:Gem::Version
45
45
  version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: yard
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: redcarpet
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
46
78
  - !ruby/object:Gem::Dependency
47
79
  name: faraday
48
80
  requirement: !ruby/object:Gem::Requirement