torg_mailru_api 0.0.5

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.
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in torg_mailru_api.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 Alexander Kovalenko
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,53 @@
1
+ # TorgMailruApi
2
+
3
+ Товары@Mail.Ru (torg.mail.ru) Content API Wrapper for Ruby.
4
+
5
+ Torg.Mail.Ru Content API documentation is available [here](http://torg.mail.ru/info/217/).
6
+
7
+ [![Gem Version](https://badge.fury.io/rb/torg_mailru_api.png)](http://badge.fury.io/rb/torg_mailru_api)
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ gem 'torg_mailru_api'
14
+
15
+ And then execute:
16
+
17
+ $ bundle
18
+
19
+ Or install it yourself as:
20
+
21
+ $ gem install torg_mailru_api
22
+
23
+ ## Usage
24
+
25
+ ``` ruby
26
+ require 'torg_mailru_api'
27
+
28
+ TorgMailruApi.configure do |c|
29
+ c.access_token = 'YourSecretAccessToken'
30
+ end
31
+
32
+ TorgMailruApi.vendors.each do |vendor|
33
+ p vendor.name
34
+ end
35
+
36
+ region = TorgMailruApi.region(310)
37
+ print region.id, " - ", region.name, "\n"
38
+ # 310 - Ростовская обл.
39
+
40
+ TorgMailruApi.region_suggest(:query => 'ростов').each do |region|
41
+ print region.id, " - ", region.name, "\n"
42
+ end
43
+ # 1769 - Ростов
44
+ # 1833 - Ростов-на-Дону
45
+ ```
46
+
47
+ ## Contributing
48
+
49
+ 1. Fork it
50
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
51
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
52
+ 4. Push to the branch (`git push origin my-new-feature`)
53
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -0,0 +1,459 @@
1
+ # coding: utf-8
2
+
3
+ require 'faraday'
4
+ require 'faraday_middleware'
5
+ require 'ostruct'
6
+ require "torg_mailru_api/version"
7
+
8
+ module TorgMailruApi
9
+
10
+ ENDPOINT_URI = "http://content.api.torg.mail.ru/#{API_VERSION}"
11
+
12
+ module Configuration
13
+ attr_accessor :access_token, :cache, :proxy, :logger, :adapter
14
+ def configure
15
+ yield self
16
+ end
17
+ end
18
+
19
+ module Connection
20
+ def connection
21
+ raise "No access token" if access_token.nil?
22
+ @connection ||= begin
23
+ conn = Faraday.new ENDPOINT_URI do |c|
24
+ c.use Faraday::Response::RaiseError
25
+ c.use :instrumentation
26
+ c.response :json, content_type: 'application/json'
27
+ c.response :caching, cache, strip_params: access_token unless cache.nil?
28
+ c.response :logger, logger unless logger.nil?
29
+ c.adapter adapter.nil? ? Faraday.default_adapter : adapter
30
+ c.proxy proxy if not proxy.nil?
31
+ c.headers = {
32
+ 'Accept' => 'application/json',
33
+ 'Authorization' => access_token
34
+ }
35
+ end
36
+ conn
37
+ end
38
+ end
39
+
40
+ def get resource, params=nil
41
+ response = connection.get "#{resource}.json", params
42
+ response.body
43
+ end
44
+ end
45
+
46
+ module APIRequest
47
+
48
+
49
+ class DeepOpenStruct < OpenStruct
50
+
51
+ def to_h
52
+ convert_to_hash_recursive self.dup
53
+ end
54
+
55
+ def self.load item
56
+ raise ArgumentError, "DeepOpenStruct must be passed a Hash or Array" unless(item.is_a?(Hash) || item.is_a?(Array))
57
+ self.convert_from_hash_recursive item
58
+ end
59
+
60
+ private
61
+
62
+ def self.convert_from_hash_recursive obj
63
+ result = obj
64
+ case result
65
+ when Hash
66
+ result = result.dup
67
+ result.each do |k,v|
68
+ result[k] = convert_from_hash_recursive(v)
69
+ end
70
+ result = DeepOpenStruct.new result
71
+ when Array
72
+ result = result.map { |v| convert_from_hash_recursive(v) }
73
+ end
74
+ result
75
+ end
76
+
77
+ def convert_to_hash_recursive obj
78
+ result = obj
79
+ case result
80
+ when OpenStruct
81
+ result = result.marshal_dump
82
+ result.each do |k,v|
83
+ result[k] = convert_to_hash_recursive(v)
84
+ end
85
+ when Array
86
+ result = result.map { |v| convert_to_hash_recursive(v) }
87
+ end
88
+ result
89
+ end
90
+ end
91
+
92
+ def decamelize_hash_keys value
93
+ case value
94
+ when Array
95
+ value.map { |v| decamelize_hash_keys(v) }
96
+ when Hash
97
+ Hash[value.map { |k, v| [ k.scan(/[A-Z][a-z]*|[a-z]+/).join('_').downcase, decamelize_hash_keys(v) ] }]
98
+ when String
99
+ value.gsub(/\s{2,}|[\r\n]/, ' ').strip
100
+ else
101
+ value
102
+ end
103
+ end
104
+
105
+ def get resource, params=nil
106
+ response = super
107
+ hash = decamelize_hash_keys response[response.keys.first]
108
+ DeepOpenStruct.load hash
109
+ end
110
+
111
+ end
112
+
113
+ class Listing
114
+ include Enumerable
115
+ include TorgMailruApi
116
+
117
+ def initialize resource, params=nil
118
+ @resource = resource
119
+ @params = params.nil? ? {} : params
120
+ @params[:page] = @params.fetch(:page, 1)
121
+ @items = []
122
+ @more = true
123
+ end
124
+
125
+ def each
126
+ return to_enum(:each) unless block_given?
127
+ while true
128
+ break unless fetch_next_page if @items.empty?
129
+ yield @items.shift
130
+ end
131
+ end
132
+
133
+ def fetch_next_page
134
+ if @more
135
+ r = TorgMailruApi.get @resource, @params
136
+ @more = (r.results_total-r.results_per_page*r.page) > 0
137
+ @items = r.listing
138
+ @params[:page] += 1
139
+ true
140
+ end
141
+ end
142
+ end
143
+
144
+ module APIMethods
145
+ def listing resource, params=nil
146
+ Listing.new resource, params
147
+ end
148
+
149
+ ### Товарные категории
150
+
151
+ ## Список категорий
152
+ # Получение списка товарных категорий верхнего уровня.
153
+ # Ресурс является геозависимым и в ответе возвращает листинг.
154
+ # Входные параметры:
155
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
156
+ # geo_id Число Идентификатор региона. Нет Да
157
+ # page Число Номер страницы. 1 Нет
158
+ # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. выводятся все результаты Нет
159
+ def categories params
160
+ listing "category", params
161
+ end
162
+
163
+
164
+ ## Список подкатегорий
165
+ # Получение списка подкатегорий для товарной категории.
166
+ # Ресурс является геозависимым и в ответе возвращает листинг.
167
+ # Входные параметры:
168
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
169
+ # geo_id Число Идентификатор региона. Да
170
+ # type Строка Фильтрация выходных данных по типу товарной категории: all | model | parameterized | general all Нет
171
+ # page Число Номер страницы. 1 Нет
172
+ # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. выводятся все результаты Нет
173
+ def category_children category_id, params
174
+ listing "category/#{category_id}/children", params
175
+ end
176
+
177
+ ## Информация о категории
178
+ # Получение информации о товарной категории.
179
+ # Ресурс является геозависимым.
180
+ # Входные параметры:
181
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
182
+ # geo_id Число Идентификатор региона. Да
183
+ def category category_id, params
184
+ get "category/#{category_id}", params
185
+ end
186
+
187
+ ## Список параметров категории
188
+ # Получение списка параметров товарной категории
189
+ # Входные параметры:
190
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
191
+ # parameter_set Строка Тип набора параметров категории. popular | all popular Нет
192
+ def category_parameters category_id, params=nil
193
+ get "category/#{category_id}/parameters", params
194
+ end
195
+
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 Нет
207
+ def category_models category_id, params
208
+ listing "category/#{category_id}/models", params
209
+ end
210
+
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 Нет
222
+ def category_offers category_id, params
223
+ listing "category/#{category_id}/offers", params
224
+ end
225
+
226
+ ## Список хитов продаж категории
227
+ # Получение списка 50 моделей - хитов продаж модельной товарной категории. Для обычных категорий ресурс возвращает ошибку.
228
+ # Список отсортирован по степени убывания популярности у покупателей.
229
+ # Ресурс является геозависимым.
230
+ # Входные параметры:
231
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
232
+ # geo_id Число Идентификатор региона. Да
233
+ 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 Нет
247
+ def category_newmodels category_id, params
248
+ listing "category/#{category_id}/newmodels", params
249
+ end
250
+
251
+
252
+ ### Модели товаров
253
+
254
+ ## Информация о модели
255
+ # Получение информации об указанной модели.
256
+ # Ресурс является геозависимым.
257
+ # Входные параметры:
258
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
259
+ # geo_id Число Идентификатор региона Да
260
+ def model model_id, params
261
+ get "model/#{model_id}", params
262
+ end
263
+
264
+ ## Список характеристик модели
265
+ # Получение списка характеристик указанной модели.
266
+ # Входные параметры:
267
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
268
+ # parameter_set Строка popular|all popular Нет
269
+ def model_parameters model_id, params=nil
270
+ get "model/#{model_id}/parameters", params
271
+ end
272
+
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 Число Долгота точки нахождения пользователя. Нет
296
+ def model_offers model_id, params
297
+ listing "model/#{model_id}/offers", params
298
+ end
299
+
300
+ ## Список точек продаж модели
301
+ # Получение списка точек продаж указанной модели.
302
+ # Ресурс является геозависимым и в ответе возвращает листинг.
303
+ # Входные параметры:
304
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
305
+ # geo_id Число Идентификатор региона. Да
306
+ # page Число Номер страницы. 1 Нет
307
+ # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
308
+ # latitude Число Широта точки нахождения пользователя. Нет
309
+ # longitude Число Долгота точки нахождения пользователя. Нет
310
+ def model_outlets model_id, params
311
+ listing "model/#{model_id}/outlets", params
312
+ end
313
+
314
+ ### Товарные предложения
315
+
316
+ ## Информация о товарном предложении
317
+ # Получение расширенной информации об указанном товарном предложении магазина.
318
+ def offer offer_id, params=nil
319
+ get "offer/#{offer_id}", params
320
+ end
321
+
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 Нет
337
+ def search params
338
+ listing "search", params
339
+ end
340
+
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
+ def category_filter category_id, params
357
+ listing "category/#{category_id}/filter", params
358
+ end
359
+
360
+ ### Отзывы
361
+
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 (выводятся все результаты) Нет
371
+ def seller_reviews seller_id, params
372
+ listing "seller/#{seller_id}/reviews", params
373
+ end
374
+
375
+ ### Магазины
376
+
377
+ ## Информация о магазине
378
+ # Получение информации о выбранном магазине.
379
+ def seller seller_id
380
+ get "seller/#{seller_id}"
381
+ end
382
+
383
+ ## Список точек продаж магазина
384
+ # Получение списка точек продаж выбранного магазина.
385
+ # Ресурс является геозависимым и в ответе возвращает листинг.
386
+ # Входные параметры:
387
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
388
+ # geo_id Число Идентификатор региона. Да
389
+ # page Число Номер страницы. 1 Нет
390
+ # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
391
+ # latitude Число Широта точки нахождения пользователя. Нет
392
+ # longitude Число Долгота точки нахождения пользователя. Нет
393
+ def seller_outlets seller_id, params
394
+ listing "seller/#{seller_id}/outlets", params
395
+ end
396
+
397
+ ### Производители
398
+
399
+ ## Список производителей
400
+ # Получение списка производителей, товары которых представлены в каталоге моделей на Товарах@Mail.Ru
401
+ # Ресурс в ответе возвращает листинг.
402
+ # Входные параметры:
403
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
404
+ # category_id Число Идентификатор товарной категории, для которой нужно получить список производителей. Нет
405
+ # page Число Номер страницы. 1 Нет
406
+ # results_per_page Число Количество результатов на страницу.
407
+ # Максимальное значение: 30. 0 (выводятся все результаты) Нет
408
+ def vendors
409
+ listing "vendor"
410
+ end
411
+
412
+ ## Информация о производителе
413
+ # Получение информации о производителе.
414
+ def vendor vendor_id, params=nil
415
+ get "vendor/#{vendor_id}"
416
+ end
417
+
418
+ ### Геоинформация
419
+
420
+ ## Список регионов
421
+ # Получение списка регионов верхнего уровня.
422
+ # Ресурс в ответе возвращает листинг.
423
+ # Входные параметры:
424
+ # Параметр / Тип / Описание / Значение по умолчанию / Обязательный
425
+ # page Число Номер страницы. 1 Нет
426
+ # results_per_page Число Количество результатов на страницу. Максимальное значение: 30. 10 Нет
427
+ def regions params=nil
428
+ listing "regions", params
429
+ end
430
+
431
+ ## Список дочерних регионов
432
+ # Получение списка дочерних регионов для выбранного региона.
433
+ # Ресурс в ответе возвращает листинг.
434
+ def region_children region_id, params=nil
435
+ listing "region/#{region_id}/children", params
436
+ end
437
+
438
+ ## Информация о регионе
439
+ # Получение информации о выбранном регионе.
440
+ # Ошибка в документации: Ресурс в ответе НЕ возвращает листинг.
441
+ def region region_id
442
+ get "region/#{region_id}"
443
+ end
444
+
445
+ ## Текстовый поиск региона
446
+ # Получение списка регионов, удовлетворяющих строке запроса.
447
+ # Ошибка в документации: Ресурс в ответе НЕ возвращает листинг.
448
+ def region_suggest params
449
+ get "region/suggest", params
450
+ end
451
+
452
+ end
453
+
454
+ extend Configuration
455
+ extend Connection
456
+ extend APIRequest
457
+ extend APIMethods
458
+
459
+ end
@@ -0,0 +1,4 @@
1
+ module TorgMailruApi
2
+ VERSION = "0.0.5"
3
+ API_VERSION = "1.0"
4
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'torg_mailru_api/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "torg_mailru_api"
8
+ spec.version = TorgMailruApi::VERSION
9
+ spec.authors = ["Alexander Kovalenko"]
10
+ spec.email = ["alexanderk23@gmail.com"]
11
+ spec.description = %q{Torg.Mail.Ru Content API Wrapper}
12
+ spec.summary = %q{Torg.Mail.Ru Content API Wrapper}
13
+ spec.homepage = "https://github.com/alexanderk23/torg_mailru_api"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+
24
+ spec.add_runtime_dependency 'faraday', '~> 0.8.8'
25
+ spec.add_runtime_dependency 'faraday_middleware', '~> 0.9.0'
26
+ end
metadata ADDED
@@ -0,0 +1,119 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: torg_mailru_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.5
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Alexander Kovalenko
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-12-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: bundler
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '1.3'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '1.3'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: faraday
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.8.8
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.8.8
62
+ - !ruby/object:Gem::Dependency
63
+ name: faraday_middleware
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 0.9.0
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 0.9.0
78
+ description: Torg.Mail.Ru Content API Wrapper
79
+ email:
80
+ - alexanderk23@gmail.com
81
+ executables: []
82
+ extensions: []
83
+ extra_rdoc_files: []
84
+ files:
85
+ - .gitignore
86
+ - Gemfile
87
+ - LICENSE.txt
88
+ - README.md
89
+ - Rakefile
90
+ - lib/torg_mailru_api.rb
91
+ - lib/torg_mailru_api/version.rb
92
+ - torg_mailru_api.gemspec
93
+ homepage: https://github.com/alexanderk23/torg_mailru_api
94
+ licenses:
95
+ - MIT
96
+ post_install_message:
97
+ rdoc_options: []
98
+ require_paths:
99
+ - lib
100
+ required_ruby_version: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ! '>='
104
+ - !ruby/object:Gem::Version
105
+ version: '0'
106
+ required_rubygems_version: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ requirements: []
113
+ rubyforge_project:
114
+ rubygems_version: 1.8.25
115
+ signing_key:
116
+ specification_version: 3
117
+ summary: Torg.Mail.Ru Content API Wrapper
118
+ test_files: []
119
+ has_rdoc: