ebay-ruby 0.2.0 → 0.3.4
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.
- checksums.yaml +4 -4
- data/LICENSE +22 -0
- data/README.md +114 -9
- data/lib/ebay-ruby.rb +2 -0
- data/lib/ebay.rb +3 -9
- data/lib/ebay/browse.rb +164 -0
- data/lib/ebay/config.rb +33 -8
- data/lib/ebay/finding.rb +145 -5
- data/lib/ebay/merchandising.rb +92 -5
- data/lib/ebay/oauth/client_credentials_grant.rb +52 -0
- data/lib/ebay/requestable.rb +69 -0
- data/lib/ebay/shopping.rb +165 -6
- data/lib/ebay/version.rb +1 -1
- metadata +106 -64
- data/.gitignore +0 -5
- data/.travis.yml +0 -15
- data/Gemfile +0 -2
- data/Rakefile +0 -9
- data/ebay-ruby.gemspec +0 -22
- data/lib/ebay/parser.rb +0 -15
- data/lib/ebay/product.rb +0 -9
- data/lib/ebay/product_metadata.rb +0 -9
- data/lib/ebay/request.rb +0 -35
- data/test/cassettes/finding.yml +0 -135
- data/test/cassettes/merchandising.yml +0 -93
- data/test/cassettes/product.yml +0 -101
- data/test/cassettes/product_metadata.yml +0 -96
- data/test/cassettes/shopping.yml +0 -125
- data/test/helper.rb +0 -10
- data/test/test_finding.rb +0 -36
- data/test/test_merchandising.rb +0 -34
- data/test/test_parser.rb +0 -25
- data/test/test_product.rb +0 -38
- data/test/test_product_metadata.rb +0 -36
- data/test/test_shopping.rb +0 -34
data/lib/ebay/merchandising.rb
CHANGED
@@ -1,9 +1,96 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'ebay/config'
|
4
|
+
require 'ebay/requestable'
|
5
|
+
|
6
|
+
# Ruby wrapper to the eBay APIs
|
3
7
|
module Ebay
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
+
# Returns a {Ebay::Merchandising#initialize Merchandising API} instance
|
9
|
+
def self.merchandising(**params)
|
10
|
+
Merchandising.new(**params)
|
11
|
+
end
|
12
|
+
|
13
|
+
# Retrieves information about products or item listings on eBay to help you
|
14
|
+
# sell more merchandise to eBay buyers
|
15
|
+
#
|
16
|
+
# @see https://developer.ebay.com/Devzone/merchandising/docs/Concepts/MerchandisingAPI_FormatOverview.html
|
17
|
+
# @see https://developer.ebay.com/Devzone/merchandising/docs/CallRef/index.html
|
18
|
+
class Merchandising
|
19
|
+
include Requestable
|
20
|
+
|
21
|
+
self.endpoint = 'https://svcs.ebay.com/MerchandisingService'
|
22
|
+
|
23
|
+
# @return [String]
|
24
|
+
attr_reader :consumer_id
|
25
|
+
|
26
|
+
# @return [String]
|
27
|
+
attr_reader :global_id
|
28
|
+
|
29
|
+
# @return [String]
|
30
|
+
attr_reader :response_data_format
|
31
|
+
|
32
|
+
# @return [String]
|
33
|
+
attr_reader :service_version
|
34
|
+
|
35
|
+
# Returns a Finding API request instance
|
36
|
+
#
|
37
|
+
# @param [String] consumer_id
|
38
|
+
# @param [String] global_id
|
39
|
+
# @param [String] response_data_format
|
40
|
+
# @param [String] service_version
|
41
|
+
def initialize(consumer_id: Config.app_id, global_id: nil,
|
42
|
+
response_data_format: nil, service_version: nil)
|
43
|
+
@consumer_id = consumer_id
|
44
|
+
@global_id = global_id
|
45
|
+
@response_data_format = response_data_format
|
46
|
+
@service_version = service_version
|
47
|
+
end
|
48
|
+
|
49
|
+
# Retrieves data for items with the highest watch count
|
50
|
+
#
|
51
|
+
# @param [Hash] payload
|
52
|
+
# @return [HTTP::Response]
|
53
|
+
def get_most_watched_items(payload = {})
|
54
|
+
request('getMostWatchedItems', payload)
|
55
|
+
end
|
56
|
+
|
57
|
+
# Retrieves recommended items from categories related to a specified
|
58
|
+
# category or item
|
59
|
+
#
|
60
|
+
# @param [Hash] payload
|
61
|
+
# @return [HTTP::Response]
|
62
|
+
def get_related_category_items(payload = {})
|
63
|
+
request('getRelatedCategoryItems', payload)
|
64
|
+
end
|
65
|
+
|
66
|
+
# Retrieves items that are similar to the specified item
|
67
|
+
#
|
68
|
+
# @param [String] item_id
|
69
|
+
# @param [Hash] payload
|
70
|
+
# @return [HTTP::Response]
|
71
|
+
def get_similar_items(item_id, payload = {})
|
72
|
+
payload = payload.merge('itemId' => item_id)
|
73
|
+
request('getSimilarItems', payload)
|
74
|
+
end
|
75
|
+
|
76
|
+
# Returns the current service version
|
77
|
+
#
|
78
|
+
# @return [HTTP::Response]
|
79
|
+
def get_version
|
80
|
+
request('getVersion')
|
81
|
+
end
|
82
|
+
|
83
|
+
private
|
84
|
+
|
85
|
+
def request(operation, payload = {})
|
86
|
+
params = { 'CONSUMER-ID' => consumer_id,
|
87
|
+
'GLOBAL-ID' => global_id,
|
88
|
+
'OPERATION-NAME' => operation,
|
89
|
+
'REQUEST-DATA-FORMAT' => 'JSON',
|
90
|
+
'RESPONSE-DATA-FORMAT' => response_data_format,
|
91
|
+
'SERVICE-VERSION' => service_version }.compact
|
92
|
+
|
93
|
+
http.post(endpoint, params: params, body: JSON.dump(payload))
|
94
|
+
end
|
8
95
|
end
|
9
96
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'ebay/config'
|
4
|
+
require 'ebay/requestable'
|
5
|
+
|
6
|
+
module Ebay
|
7
|
+
module Oauth
|
8
|
+
# Mints an access token to use in API requests
|
9
|
+
#
|
10
|
+
# @see https://developer.ebay.com/api-docs/static/oauth-client-credentials-grant.html
|
11
|
+
class ClientCredentialsGrant
|
12
|
+
include Requestable
|
13
|
+
|
14
|
+
self.endpoint = 'https://api.ebay.com/identity/v1/oauth2/token'
|
15
|
+
|
16
|
+
# @return [String]
|
17
|
+
attr_reader :app_id
|
18
|
+
|
19
|
+
# @return [String]
|
20
|
+
attr_reader :cert_id
|
21
|
+
|
22
|
+
# @param [String] app_id
|
23
|
+
# @param [String] cert_id
|
24
|
+
def initialize(app_id: Config.app_id, cert_id: Config.cert_id)
|
25
|
+
@app_id = app_id
|
26
|
+
@cert_id = cert_id
|
27
|
+
end
|
28
|
+
|
29
|
+
# Mints a new access token
|
30
|
+
#
|
31
|
+
# @return [String]
|
32
|
+
def mint_access_token
|
33
|
+
JSON.parse(request).fetch('access_token')
|
34
|
+
end
|
35
|
+
|
36
|
+
# Requests a client credentials grant
|
37
|
+
#
|
38
|
+
# @return [HTTP::Response]
|
39
|
+
def request
|
40
|
+
http.basic_auth(user: app_id, pass: cert_id)
|
41
|
+
.post(endpoint, form: payload)
|
42
|
+
end
|
43
|
+
|
44
|
+
private
|
45
|
+
|
46
|
+
def payload
|
47
|
+
{ grant_type: 'client_credentials',
|
48
|
+
scope: 'https://api.ebay.com/oauth/api_scope' }
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'http'
|
4
|
+
|
5
|
+
module Ebay
|
6
|
+
# Adds an HTTP client and ability to switch to the eBay Sandbox environment
|
7
|
+
module Requestable
|
8
|
+
class << self
|
9
|
+
private
|
10
|
+
|
11
|
+
def included(base)
|
12
|
+
class << base
|
13
|
+
attr_accessor :endpoint
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# @return [HTTP::Client]
|
19
|
+
attr_writer :http
|
20
|
+
|
21
|
+
# @!attribute [r] http
|
22
|
+
# @return [HTTP::Client]
|
23
|
+
def http
|
24
|
+
@http ||= HTTP::Client.new
|
25
|
+
end
|
26
|
+
|
27
|
+
# @!attribute [r] endpoint
|
28
|
+
# @return [String]
|
29
|
+
def endpoint
|
30
|
+
@endpoint ||= self.class.endpoint
|
31
|
+
end
|
32
|
+
|
33
|
+
# Switches to the eBay Sandbox environment
|
34
|
+
#
|
35
|
+
# @return [self]
|
36
|
+
def sandbox
|
37
|
+
@endpoint = endpoint.sub('ebay', 'sandbox.ebay')
|
38
|
+
self
|
39
|
+
end
|
40
|
+
|
41
|
+
# Flags request as persistent
|
42
|
+
#
|
43
|
+
# @param [Integer] timeout
|
44
|
+
# @return [self]
|
45
|
+
def persistent(timeout: 5)
|
46
|
+
self.http = http.persistent(endpoint, timeout: timeout)
|
47
|
+
self
|
48
|
+
end
|
49
|
+
|
50
|
+
# @!method use(*features)
|
51
|
+
# Turns on {https://github.com/httprb/http HTTP} features
|
52
|
+
#
|
53
|
+
# @param features
|
54
|
+
# @return [self]
|
55
|
+
#
|
56
|
+
# @!method via(*proxy)
|
57
|
+
# Makes a request through an HTTP proxy
|
58
|
+
#
|
59
|
+
# @param [Array] proxy
|
60
|
+
# @raise [HTTP::Request::Error] if HTTP proxy is invalid
|
61
|
+
# @return [self]
|
62
|
+
%i[timeout via through headers use].each do |method_name|
|
63
|
+
define_method(method_name) do |*args, &block|
|
64
|
+
self.http = http.send(method_name, *args, &block)
|
65
|
+
self
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
data/lib/ebay/shopping.rb
CHANGED
@@ -1,10 +1,169 @@
|
|
1
|
-
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'ebay/config'
|
4
|
+
require 'ebay/requestable'
|
5
|
+
|
6
|
+
# Ruby wrapper to the eBay APIs
|
3
7
|
module Ebay
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
8
|
+
# Returns a {Ebay::Shopping#initialize Shopping API} instance
|
9
|
+
def self.shopping(**params)
|
10
|
+
Shopping.new(**params)
|
11
|
+
end
|
12
|
+
|
13
|
+
# The eBay Shopping API makes it easy to search for things on eBay.
|
14
|
+
#
|
15
|
+
# @see https://developer.ebay.com/Devzone/shopping/docs/Concepts/ShoppingAPI_FormatOverview.html
|
16
|
+
# @see https://developer.ebay.com/Devzone/shopping/docs/CallRef/index.html
|
17
|
+
class Shopping
|
18
|
+
include Requestable
|
19
|
+
|
20
|
+
self.endpoint = 'https://open.api.ebay.com/shopping'
|
21
|
+
|
22
|
+
# @return [String]
|
23
|
+
attr_reader :app_id
|
24
|
+
|
25
|
+
# @return [String]
|
26
|
+
attr_reader :response_encoding
|
27
|
+
|
28
|
+
# @return [String]
|
29
|
+
attr_reader :site_id
|
30
|
+
|
31
|
+
# @return [String]
|
32
|
+
attr_reader :version
|
33
|
+
|
34
|
+
# @return [String]
|
35
|
+
attr_reader :version_handling
|
36
|
+
|
37
|
+
# @return [String]
|
38
|
+
attr_reader :tracking_id
|
39
|
+
|
40
|
+
# @return [String]
|
41
|
+
attr_reader :tracking_partner_code
|
42
|
+
|
43
|
+
# @return [String]
|
44
|
+
attr_reader :affiliate_user_id
|
45
|
+
|
46
|
+
# Returns a Finding API request instance
|
47
|
+
#
|
48
|
+
# @param [String] app_id
|
49
|
+
# @param [String] response_encoding
|
50
|
+
# @param [String] site_id
|
51
|
+
# @param [String] version
|
52
|
+
# @param [String] version_handling
|
53
|
+
# @param [String] tracking_id
|
54
|
+
# @param [String] tracking_partner_code
|
55
|
+
# @param [String] affiliate_user_id
|
56
|
+
def initialize(app_id: Config.app_id, response_encoding: nil,
|
57
|
+
site_id: nil, version: '1119',
|
58
|
+
version_handling: nil, tracking_id: nil,
|
59
|
+
tracking_partner_code: nil, affiliate_user_id: nil)
|
60
|
+
@app_id = app_id
|
61
|
+
@response_encoding = response_encoding
|
62
|
+
@site_id = site_id
|
63
|
+
@version = version
|
64
|
+
@version_handling = version_handling
|
65
|
+
@tracking_id = tracking_id
|
66
|
+
@tracking_partner_code = tracking_partner_code
|
67
|
+
@affiliate_user_id = affiliate_user_id
|
68
|
+
end
|
69
|
+
|
70
|
+
# Returns one or more eBay catalog products based on a query string or
|
71
|
+
# product ID value
|
72
|
+
#
|
73
|
+
# @param [Hash] payload
|
74
|
+
# @return [HTTP::Response]
|
75
|
+
def find_products(payload = {})
|
76
|
+
request('FindProducts', payload)
|
77
|
+
end
|
78
|
+
|
79
|
+
# Retrieves high-level data for a specified eBay category
|
80
|
+
#
|
81
|
+
# @param [String] category_id
|
82
|
+
# @param [Hash] payload
|
83
|
+
# @return [HTTP::Response]
|
84
|
+
def get_category_info(category_id, payload = {})
|
85
|
+
payload = payload.merge('CategoryID' => category_id)
|
86
|
+
request('GetCategoryInfo', payload)
|
87
|
+
end
|
88
|
+
|
89
|
+
# Gets the official eBay system time in GMT
|
90
|
+
#
|
91
|
+
# @param [Hash] payload
|
92
|
+
# @return [HTTP::Response]
|
93
|
+
def get_ebay_time(payload = {})
|
94
|
+
request('GeteBayTime', payload)
|
95
|
+
end
|
96
|
+
|
97
|
+
# Retrieves the current status of up to 20 eBay listings
|
98
|
+
#
|
99
|
+
# @overload get_item_status(*item_ids, payload = {})
|
100
|
+
# @param [String] item_ids
|
101
|
+
# @param [Hash] payload
|
102
|
+
# @return [HTTP::Response]
|
103
|
+
def get_item_status(*item_ids)
|
104
|
+
payload = item_ids.last.is_a?(Hash) ? item_ids.pop : {}
|
105
|
+
payload = payload.merge('ItemID' => item_ids.map(&:to_s))
|
106
|
+
request('GetItemStatus', payload)
|
107
|
+
end
|
108
|
+
|
109
|
+
# Retrieves publicly available data for one or more listings
|
110
|
+
#
|
111
|
+
# @overload get_multiple_items(*item_ids, payload = {})
|
112
|
+
# @param [String] item_ids
|
113
|
+
# @param [Hash] payload
|
114
|
+
# @return [HTTP::Response]
|
115
|
+
def get_multiple_items(*item_ids)
|
116
|
+
payload = item_ids.last.is_a?(Hash) ? item_ids.pop : {}
|
117
|
+
payload = payload.merge('ItemID' => item_ids.map(&:to_s))
|
118
|
+
|
119
|
+
request('GetMultipleItems', payload)
|
120
|
+
end
|
121
|
+
|
122
|
+
# Gets shipping costs for a listing
|
123
|
+
#
|
124
|
+
# @param [String] item_id
|
125
|
+
# @param [Hash] payload
|
126
|
+
# @return [HTTP::Response]
|
127
|
+
def get_shipping_costs(item_id, payload = {})
|
128
|
+
payload = payload.merge('ItemID' => item_id)
|
129
|
+
request('GetShippingCosts', payload)
|
130
|
+
end
|
131
|
+
|
132
|
+
# Gets publicly visible details about one listing
|
133
|
+
#
|
134
|
+
# @param [String] item_id
|
135
|
+
# @param [Hash] payload
|
136
|
+
# @return [HTTP::Response]
|
137
|
+
def get_single_item(item_id, payload = {})
|
138
|
+
payload = payload.merge('ItemID' => item_id)
|
139
|
+
request('GetSingleItem', payload)
|
140
|
+
end
|
141
|
+
|
142
|
+
# Retrieves user information
|
143
|
+
#
|
144
|
+
# @param [String] user_id
|
145
|
+
# @param [Hash] payload
|
146
|
+
# @return [HTTP::Response]
|
147
|
+
def get_user_profile(user_id, payload = {})
|
148
|
+
payload = payload.merge('UserID' => user_id)
|
149
|
+
request('GetUserProfile', payload)
|
150
|
+
end
|
151
|
+
|
152
|
+
private
|
153
|
+
|
154
|
+
def request(operation, payload = {})
|
155
|
+
params = { 'appid' => app_id,
|
156
|
+
'callname' => operation,
|
157
|
+
'requestencoding' => 'JSON',
|
158
|
+
'responseencoding' => response_encoding,
|
159
|
+
'siteid' => site_id,
|
160
|
+
'version' => version,
|
161
|
+
'versionhandling' => version_handling,
|
162
|
+
'affiliateuserid' => affiliate_user_id,
|
163
|
+
'trackingid' => tracking_id,
|
164
|
+
'trackingpartnercode' => tracking_partner_code }.compact
|
165
|
+
|
166
|
+
http.post(endpoint, params: params, body: JSON.dump(payload))
|
167
|
+
end
|
9
168
|
end
|
10
169
|
end
|
data/lib/ebay/version.rb
CHANGED
metadata
CHANGED
@@ -1,125 +1,179 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ebay-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hakan Ensari
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: http
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0
|
19
|
+
version: '4.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0
|
26
|
+
version: '4.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: minitest
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0
|
34
|
-
type: :
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: redcarpet
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rubocop
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop-minitest
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rubocop-rake
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
67
109
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
110
|
+
version: '0'
|
69
111
|
- !ruby/object:Gem::Dependency
|
70
112
|
name: vcr
|
71
113
|
requirement: !ruby/object:Gem::Requirement
|
72
114
|
requirements:
|
73
|
-
- - "
|
115
|
+
- - ">="
|
74
116
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
117
|
+
version: '0'
|
76
118
|
type: :development
|
77
119
|
prerelease: false
|
78
120
|
version_requirements: !ruby/object:Gem::Requirement
|
79
121
|
requirements:
|
80
|
-
- - "
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: webmock
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
81
130
|
- !ruby/object:Gem::Version
|
82
|
-
version: '
|
83
|
-
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: yard
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
description:
|
84
154
|
email:
|
85
155
|
- me@hakanensari.com
|
86
156
|
executables: []
|
87
157
|
extensions: []
|
88
158
|
extra_rdoc_files: []
|
89
159
|
files:
|
90
|
-
-
|
91
|
-
- ".travis.yml"
|
92
|
-
- Gemfile
|
160
|
+
- LICENSE
|
93
161
|
- README.md
|
94
|
-
- Rakefile
|
95
|
-
- ebay-ruby.gemspec
|
96
162
|
- lib/ebay-ruby.rb
|
97
163
|
- lib/ebay.rb
|
164
|
+
- lib/ebay/browse.rb
|
98
165
|
- lib/ebay/config.rb
|
99
166
|
- lib/ebay/finding.rb
|
100
167
|
- lib/ebay/merchandising.rb
|
101
|
-
- lib/ebay/
|
102
|
-
- lib/ebay/
|
103
|
-
- lib/ebay/product_metadata.rb
|
104
|
-
- lib/ebay/request.rb
|
168
|
+
- lib/ebay/oauth/client_credentials_grant.rb
|
169
|
+
- lib/ebay/requestable.rb
|
105
170
|
- lib/ebay/shopping.rb
|
106
171
|
- lib/ebay/version.rb
|
107
|
-
- test/cassettes/finding.yml
|
108
|
-
- test/cassettes/merchandising.yml
|
109
|
-
- test/cassettes/product.yml
|
110
|
-
- test/cassettes/product_metadata.yml
|
111
|
-
- test/cassettes/shopping.yml
|
112
|
-
- test/helper.rb
|
113
|
-
- test/test_finding.rb
|
114
|
-
- test/test_merchandising.rb
|
115
|
-
- test/test_parser.rb
|
116
|
-
- test/test_product.rb
|
117
|
-
- test/test_product_metadata.rb
|
118
|
-
- test/test_shopping.rb
|
119
172
|
homepage: https://github.com/hakanensari/ebay-ruby
|
120
|
-
licenses:
|
173
|
+
licenses:
|
174
|
+
- MIT
|
121
175
|
metadata: {}
|
122
|
-
post_install_message:
|
176
|
+
post_install_message:
|
123
177
|
rdoc_options: []
|
124
178
|
require_paths:
|
125
179
|
- lib
|
@@ -127,27 +181,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
127
181
|
requirements:
|
128
182
|
- - ">="
|
129
183
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
184
|
+
version: '2.5'
|
131
185
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
186
|
requirements:
|
133
187
|
- - ">="
|
134
188
|
- !ruby/object:Gem::Version
|
135
189
|
version: '0'
|
136
190
|
requirements: []
|
137
|
-
rubygems_version: 3.
|
138
|
-
signing_key:
|
191
|
+
rubygems_version: 3.2.3
|
192
|
+
signing_key:
|
139
193
|
specification_version: 4
|
140
|
-
summary:
|
141
|
-
test_files:
|
142
|
-
- test/cassettes/finding.yml
|
143
|
-
- test/cassettes/merchandising.yml
|
144
|
-
- test/cassettes/product.yml
|
145
|
-
- test/cassettes/product_metadata.yml
|
146
|
-
- test/cassettes/shopping.yml
|
147
|
-
- test/helper.rb
|
148
|
-
- test/test_finding.rb
|
149
|
-
- test/test_merchandising.rb
|
150
|
-
- test/test_parser.rb
|
151
|
-
- test/test_product.rb
|
152
|
-
- test/test_product_metadata.rb
|
153
|
-
- test/test_shopping.rb
|
194
|
+
summary: Ruby wrapper to the eBay APIs
|
195
|
+
test_files: []
|