torg_mailru_api 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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: