agent_cooper 0.0.1

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,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ *.yml
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in agent_cooper.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1,18 @@
1
+ require 'bundler'
2
+ require 'cucumber/rake/task'
3
+ require 'rspec/core/rake_task'
4
+
5
+ Bundler::GemHelper.install_tasks
6
+
7
+ desc 'Run all specs in spec directory'
8
+ RSpec::Core::RakeTask.new(:spec) do |t|
9
+ t.pattern = "spec/**/*_spec.rb"
10
+ t.rspec_opts = %w(-fd -c)
11
+ end
12
+
13
+ Cucumber::Rake::Task.new(:features) do |t|
14
+ t.cucumber_opts = "features --format pretty"
15
+ end
16
+
17
+ task :default => [:spec, :features]
18
+
data/VERSION ADDED
@@ -0,0 +1,3 @@
1
+ module AgentCooper
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,38 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "agent_cooper/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "agent_cooper"
7
+ s.version = AgentCooper::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Ryan Closner"]
10
+ s.email = ["ryan.closner@gmail.com"]
11
+ s.homepage = "https://rubygems.org/gems/agent_cooper"
12
+ s.summary = %q{A Ruby wrapper to the eBay Web Services API}
13
+ s.description = %q{A Ruby wrapper to the eBay Web Services API}
14
+
15
+ s.rubyforge_project = "agent_cooper"
16
+
17
+ {
18
+ 'httparty' => '~> 0.7.7',
19
+ 'nokogiri' => '~> 1.4.4'
20
+ }.each {|lib, version| s.add_runtime_dependency lib, version }
21
+
22
+
23
+ {
24
+ 'bundler' => '~> 1.0.0',
25
+ 'addressable' => '2.2.4',
26
+ 'cucumber' => '~> 0.10.0',
27
+ 'rake' => '~> 0.8.7',
28
+ 'relish' => '~> 0.3.0.pre',
29
+ 'rspec' => '~> 2.5.0',
30
+ 'vcr' => '~> 1.9.0',
31
+ 'webmock' => '~> 1.6.0'
32
+ }.each {|lib, version| s.add_development_dependency lib, version }
33
+
34
+ s.files = `git ls-files`.split("\n")
35
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
36
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
37
+ s.require_paths = ["lib"]
38
+ end
@@ -0,0 +1,64 @@
1
+ Feature: Ebay Finder
2
+ As an API consumer
3
+
4
+ Background:
5
+ Given a new finder request
6
+
7
+ Scenario: getSearchKeywordsRecommendation
8
+ Given the following parameters:
9
+ | OPERATION-NAME | keywords |
10
+ | getSearchKeywordsRecommendation | acordian |
11
+ When I tape the "finder" request as: "get_search_keywords_recommendation"
12
+ Then the response code should be "200"
13
+ And the response should have 1 "keywords" nodes
14
+
15
+ Scenario: findItemsByKeywords
16
+ Given the following parameters:
17
+ | OPERATION-NAME | keywords |
18
+ | findItemsByKeywords | harry potter phoenix |
19
+ When I tape the "finder" request as: "find_items_by_keywords"
20
+ Then the response code should be "200"
21
+ And the response should have 100 "item" nodes
22
+
23
+ Scenario: findItemsByCategory
24
+ Given the following parameters:
25
+ | OPERATION-NAME | categoryId |
26
+ | findItemsByCategory | 10181 |
27
+ When I tape the "finder" request as: "find_items_by_category"
28
+ Then the response code should be "200"
29
+ And the response should have 100 "item" nodes
30
+
31
+ Scenario: findItemsAdvanced
32
+ Given the following parameters:
33
+ | OPERATION-NAME | keywords |
34
+ | findItemsAdvanced | tolkien |
35
+ When I tape the "finder" request as: "find_items_advanced"
36
+ Then the response code should be "200"
37
+ And the response should have 100 "item" nodes
38
+
39
+ Scenario: findItemsByProduct
40
+ Given the following parameters:
41
+ | OPERATION-NAME | productId.@type | productId |
42
+ | findItemsByProduct | ReferenceID | 53039031 |
43
+ When I tape the "finder" request as: "find_items_by_product"
44
+ Then the response code should be "200"
45
+ And the response should have 100 "item" nodes
46
+
47
+ Scenario: findItemsIneBayStores
48
+ Given the following parameters:
49
+ | OPERATION-NAME | keywords |
50
+ | findItemsIneBayStores | harry potter |
51
+ When I tape the "finder" request as: "find_items_in_ebay_stores"
52
+ Then the response code should be "200"
53
+ And the response should have 100 "item" nodes
54
+
55
+
56
+ Scenario: getHistograms
57
+ Given the following parameters:
58
+ | OPERATION-NAME | categoryId |
59
+ | getHistograms | 11233 |
60
+ When I tape the "finder" request as: "get_histograms"
61
+ Then the response code should be "200"
62
+ And the response should have 6 "childCategoryHistogram" nodes
63
+
64
+
@@ -0,0 +1,34 @@
1
+ Feature: Ebay Merchandiser
2
+ As an API consumer
3
+
4
+ Background:
5
+ Given a new merchandiser request
6
+
7
+ Scenario: getMostWatchedItems
8
+ Given the following parameters:
9
+ | OPERATION-NAME | maxResults |
10
+ | getMostWatchedItems | 3 |
11
+ When I tape the "merchandiser" request as: "get_most_watched_items"
12
+ Then the response code should be "200"
13
+
14
+ Scenario: getRelatedCategoryItems
15
+ Given the following parameters:
16
+ | OPERATION-NAME | itemId |
17
+ | getRelatedCategoryItems | 170192529715 |
18
+ When I tape the "merchandiser" request as: "get_related_category_items"
19
+ Then the response code should be "200"
20
+
21
+ Scenario: getSimilarItems
22
+ Given the following parameters:
23
+ | OPERATION-NAME | itemId |
24
+ | getSimilarItems | 280254552262 |
25
+ When I tape the "merchandiser" request as: "get_similar_items"
26
+ Then the response code should be "200"
27
+
28
+ Scenario: getTopSellingProducts
29
+ Given the following parameters:
30
+ | OPERATION-NAME | maxResults |
31
+ | getTopSellingProducts | 3 |
32
+ When I tape the "merchandiser" request as: "get_top_selling_products"
33
+ Then the response code should be "200"
34
+
@@ -0,0 +1,75 @@
1
+ Feature: Ebay Shopper
2
+ As an API consumer
3
+
4
+ Background:
5
+ Given a new shopper request
6
+
7
+ Scenario: FindProducts
8
+ Given the following parameters:
9
+ | CALLNAME | QueryKeywords |
10
+ | FindProducts | harry potter |
11
+ When I tape the "shopper" request as: "find_products"
12
+ Then the response code should be "200"
13
+
14
+ Scenario: FindHalfProducts
15
+ Given the following parameters:
16
+ | CALLNAME | QueryKeywords |
17
+ | FindHalfProducts | harry potter |
18
+ When I tape the "shopper" request as: "find_half_products"
19
+ Then the response code should be "200"
20
+
21
+ Scenario: GetSingleItem
22
+ Given the following parameters:
23
+ | CALLNAME | ItemID |
24
+ | GetSingleItem | 110089122715 |
25
+ When I tape the "shopper" request as: "get_single_item"
26
+ Then the response code should be "200"
27
+
28
+ Scenario: GetItemStatus
29
+ Given the following parameters:
30
+ | CALLNAME | ItemID |
31
+ | GetItemStatus | 110089122715 |
32
+ When I tape the "shopper" request as: "get_item_status"
33
+ Then the response code should be "200"
34
+
35
+ Scenario: GetShippingCosts
36
+ Given the following parameters:
37
+ | CALLNAME | ItemID | DestinationCountryCode | DestinationPostalCode | QuantitySold |
38
+ | GetShippingCosts | 110089122715 | US | 98122 | 1 |
39
+ When I tape the "shopper" request as: "get_shipping_costs"
40
+ Then the response code should be "200"
41
+
42
+ Scenario: GetMultipleItems
43
+ Given the following parameters:
44
+ | CALLNAME | ItemID |
45
+ | GetMultipleItems | 190000456297,280000052600,9600579283 |
46
+ When I tape the "shopper" request as: "get_multiple_items"
47
+ Then the response code should be "200"
48
+
49
+ Scenario: GetUserProfile
50
+ Given the following parameters:
51
+ | CALLNAME | UserID |
52
+ | GetUserProfile | TESTUSER_magicalbookseller |
53
+ When I tape the "shopper" request as: "get_user_profile"
54
+ Then the response code should be "200"
55
+
56
+ Scenario: FindPopularSearches
57
+ Given the following parameters:
58
+ | CALLNAME | QueryKeywords |
59
+ | FindPopularSearches | dell |
60
+ When I tape the "shopper" request as: "find_popular_searches"
61
+ Then the response code should be "200"
62
+
63
+ Scenario: FindPopularItems
64
+ Given the following parameters:
65
+ | CALLNAME | QueryKeywords |
66
+ | FindPopularItems | harry original |
67
+ When I tape the "shopper" request as: "find_popular_items"
68
+ Then the response code should be "200"
69
+
70
+ Scenario: FindReviewsAndGuides
71
+ Given the following parameters:
72
+ | CALLNAME | CategoryID |
73
+ | FindReviewsAndGuides | 177 |
74
+ When I tape the "shopper" request as: "find_reviews_and_guides"
75
+ Then the response code should be "200"
@@ -0,0 +1,19 @@
1
+ Given /^the following parameters:$/ do |table|
2
+ table.hashes.each do |h|
3
+ @request << h
4
+ end
5
+ end
6
+
7
+ When /^I tape the "([^"]*)" request as: "([^"]*)"$/ do |service, operation|
8
+ VCR.use_cassette("#{service}/#{operation}/#{cassette_name}", :record => :new_episodes) do
9
+ @response = @request.get
10
+ end
11
+ end
12
+
13
+ Then /^the response code should be "([^"]*)"$/ do |code|
14
+ @response.code.should == code.to_i
15
+ end
16
+
17
+ Then /^the response should have (\d+) "([^"]*)" nodes$/ do |count, node|
18
+ @response.xml.css(node).count.should == count.to_i
19
+ end
@@ -0,0 +1,3 @@
1
+ Given /^a new finder request$/ do
2
+ @request = AgentCooper::Finder.new
3
+ end
@@ -0,0 +1,3 @@
1
+ Given /^a new merchandiser request$/ do
2
+ @request = AgentCooper::Merchandiser.new
3
+ end
@@ -0,0 +1,3 @@
1
+ Given /^a new shopper request$/ do
2
+ @request = AgentCooper::Shopper.new
3
+ end
@@ -0,0 +1,25 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'digest/md5'
4
+ require 'agent_cooper'
5
+
6
+
7
+ module AgentCooperMethods
8
+ def ebay
9
+ @ebay ||= YAML::load_file(File.dirname(__FILE__) + "/../../spec/support/ebay.yml")
10
+ end
11
+
12
+ def ebay_app_id
13
+ ebay['app_id']
14
+ end
15
+
16
+ def cassette_name
17
+ Digest::MD5.hexdigest(@request.parameters.to_json)
18
+ end
19
+ end
20
+
21
+ World(AgentCooperMethods)
22
+
23
+ Before do
24
+ Request::APP_ID = ebay_app_id
25
+ end
@@ -0,0 +1,9 @@
1
+ require 'vcr'
2
+
3
+ VCR.config do |c|
4
+ c.cassette_library_dir = File.dirname(__FILE__) + '/../../spec/fixtures/cassettes'
5
+ c.default_cassette_options = {
6
+ :record => :none,
7
+ :match_requests_on => [:host] }
8
+ c.stub_with :webmock
9
+ end
@@ -0,0 +1,20 @@
1
+ module AgentCooper
2
+ class Finder < Request
3
+
4
+ HOST = 'http://svcs.ebay.com/services/search/FindingService/v1'
5
+ VERSION = '1.9.0'
6
+
7
+ def options
8
+ {
9
+ 'SECURITY-APPNAME' => APP_ID,
10
+ 'SECURITY-VERSION' => VERSION,
11
+ 'RESPONSE-DATA-FORMAT' => ENCODING,
12
+ 'REST-PAYLOAD' => ''
13
+ }.merge(parameters)
14
+ end
15
+
16
+ def uri
17
+ "#{HOST}?#{options.to_params}"
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,24 @@
1
+ module AgentCooper
2
+ class Merchandiser < Request
3
+
4
+ HOST = 'http://svcs.ebay.com/MerchandisingService'
5
+ SERVICE_NAME = 'MerchandisingService'
6
+ VERSION = '1.4.0'
7
+
8
+ protected
9
+
10
+ def options
11
+ {
12
+ 'SERVICE-NAME' => SERVICE_NAME,
13
+ 'SERVICE-VERSION' => VERSION,
14
+ 'RESPONSE-DATA-FORMAT' => ENCODING,
15
+ 'CONSUMER-ID' => APP_ID,
16
+ 'REST-PAYLOAD' => ''
17
+ }.merge(parameters)
18
+ end
19
+
20
+ def uri
21
+ "#{HOST}?#{options.to_params}"
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,43 @@
1
+ require 'httparty'
2
+
3
+ class Request
4
+ ENCODING = 'XML'
5
+ LOCALE_CODES = {
6
+ :us => 0,
7
+ :fr => 71,
8
+ :es => 186,
9
+ :gb => 3,
10
+ :de => 77,
11
+ :nl => 146,
12
+ :it => 101,
13
+ :au => 15,
14
+ :ca => 2
15
+ }
16
+
17
+ attr_accessor :locale
18
+
19
+ def initialize(args={})
20
+ args.each { |k, v| send("#{k}=", v) }
21
+ end
22
+
23
+ def parameters
24
+ @parameters ||= {}
25
+ end
26
+
27
+ def reset!
28
+ @parameters = {}
29
+ end
30
+
31
+ def <<(hash)
32
+ parameters.merge!(hash)
33
+ end
34
+
35
+ def locale
36
+ @locale ||= :us
37
+ end
38
+
39
+ def get
40
+ response = HTTParty.get(uri)
41
+ Response.new(response)
42
+ end
43
+ end
@@ -0,0 +1,26 @@
1
+ require 'nokogiri'
2
+
3
+ class Response
4
+
5
+ def initialize(response)
6
+ @response = response
7
+ end
8
+
9
+ def body
10
+ response.body
11
+ end
12
+
13
+ def code
14
+ response.code
15
+ end
16
+
17
+ def xml
18
+ @xml ||= Nokogiri::XML(body)
19
+ end
20
+
21
+ protected
22
+
23
+ def response
24
+ @response
25
+ end
26
+ end
@@ -0,0 +1,26 @@
1
+ module AgentCooper
2
+ class Shopper < Request
3
+
4
+ HOST = 'http://open.api.ebay.com/shopping'
5
+ VERSION = '717'
6
+
7
+ protected
8
+
9
+ def site_id
10
+ LOCALE_CODES[locale]
11
+ end
12
+
13
+ def options
14
+ {
15
+ 'APPID' => APP_ID,
16
+ 'RESPONSEENCODING' => ENCODING,
17
+ 'VERSION' => VERSION,
18
+ 'SITEID' => site_id
19
+ }.merge(parameters)
20
+ end
21
+
22
+ def uri
23
+ "#{HOST}?#{options.to_params}"
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,3 @@
1
+ module AgentCooper
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,8 @@
1
+ require 'agent_cooper/request'
2
+ require 'agent_cooper/response'
3
+ require 'agent_cooper/finder'
4
+ require 'agent_cooper/shopper'
5
+ require 'agent_cooper/merchandiser'
6
+
7
+ module AgentCooper
8
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ module AgentCooper
4
+ describe Finder do
5
+ subject { Finder }
6
+ let(:request) { subject.new }
7
+
8
+ before(:all) do
9
+ Request::APP_ID = 'app_id'
10
+ end
11
+
12
+ describe "#get" do
13
+ it "returns a response object" do
14
+ request.get.should be_a(Response)
15
+ end
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ module AgentCooper
4
+ describe Merchandiser do
5
+ subject { Merchandiser }
6
+ let(:request) { subject.new }
7
+
8
+ before(:all) do
9
+ Request::APP_ID = 'app_id'
10
+ end
11
+
12
+ describe "#get" do
13
+ it "returns a response object" do
14
+ request.get.should be_a(Response)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+
3
+ module AgentCooper
4
+ describe Request do
5
+ subject { Request }
6
+
7
+ before(:each) do
8
+ @request = subject.new
9
+ end
10
+
11
+ describe "#parameters" do
12
+ it "returns a hash" do
13
+ @request.parameters.should be_a(Hash)
14
+ end
15
+ end
16
+
17
+ describe "#<<" do
18
+ it "merges a hash into the existing parameters" do
19
+ @request << {:foo => "bar"}
20
+ @request.parameters[:foo].should == "bar"
21
+ end
22
+ end
23
+
24
+ describe "#locale" do
25
+ it "defaults to :us" do
26
+ @request.locale.should == :us
27
+ end
28
+ end
29
+
30
+ describe "#reset!" do
31
+ it "resets the parameters to a blank hash" do
32
+ @request << {:foo => 'bar'}
33
+ @request.reset!
34
+ @request.parameters.should_not have_key(:foo)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ module AgentCooper
4
+ describe Response do
5
+ subject { AgentCooper::Response }
6
+ end
7
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ module AgentCooper
4
+ describe Shopper do
5
+ subject { AgentCooper::Shopper }
6
+ let(:request) { subject.new }
7
+
8
+ before(:all) do
9
+ Request::APP_ID = 'app_id'
10
+ end
11
+
12
+ describe "#get" do
13
+ it "returns a response object" do
14
+ request.get.should be_a(Response)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'rspec'
4
+
5
+ require File.expand_path('../../lib/agent_cooper', __FILE__)
@@ -0,0 +1 @@
1
+ app_id: YOUR_APP_ID
metadata ADDED
@@ -0,0 +1,270 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: agent_cooper
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Ryan Closner
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-05-22 00:00:00 -07:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: httparty
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ hash: 13
30
+ segments:
31
+ - 0
32
+ - 7
33
+ - 7
34
+ version: 0.7.7
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: nokogiri
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ hash: 15
46
+ segments:
47
+ - 1
48
+ - 4
49
+ - 4
50
+ version: 1.4.4
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: relish
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 961915996
62
+ segments:
63
+ - 0
64
+ - 3
65
+ - 0
66
+ - pre
67
+ version: 0.3.0.pre
68
+ type: :development
69
+ version_requirements: *id003
70
+ - !ruby/object:Gem::Dependency
71
+ name: rake
72
+ prerelease: false
73
+ requirement: &id004 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ hash: 49
79
+ segments:
80
+ - 0
81
+ - 8
82
+ - 7
83
+ version: 0.8.7
84
+ type: :development
85
+ version_requirements: *id004
86
+ - !ruby/object:Gem::Dependency
87
+ name: addressable
88
+ prerelease: false
89
+ requirement: &id005 !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - "="
93
+ - !ruby/object:Gem::Version
94
+ hash: 15
95
+ segments:
96
+ - 2
97
+ - 2
98
+ - 4
99
+ version: 2.2.4
100
+ type: :development
101
+ version_requirements: *id005
102
+ - !ruby/object:Gem::Dependency
103
+ name: rspec
104
+ prerelease: false
105
+ requirement: &id006 !ruby/object:Gem::Requirement
106
+ none: false
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ hash: 27
111
+ segments:
112
+ - 2
113
+ - 5
114
+ - 0
115
+ version: 2.5.0
116
+ type: :development
117
+ version_requirements: *id006
118
+ - !ruby/object:Gem::Dependency
119
+ name: vcr
120
+ prerelease: false
121
+ requirement: &id007 !ruby/object:Gem::Requirement
122
+ none: false
123
+ requirements:
124
+ - - ~>
125
+ - !ruby/object:Gem::Version
126
+ hash: 51
127
+ segments:
128
+ - 1
129
+ - 9
130
+ - 0
131
+ version: 1.9.0
132
+ type: :development
133
+ version_requirements: *id007
134
+ - !ruby/object:Gem::Dependency
135
+ name: bundler
136
+ prerelease: false
137
+ requirement: &id008 !ruby/object:Gem::Requirement
138
+ none: false
139
+ requirements:
140
+ - - ~>
141
+ - !ruby/object:Gem::Version
142
+ hash: 23
143
+ segments:
144
+ - 1
145
+ - 0
146
+ - 0
147
+ version: 1.0.0
148
+ type: :development
149
+ version_requirements: *id008
150
+ - !ruby/object:Gem::Dependency
151
+ name: cucumber
152
+ prerelease: false
153
+ requirement: &id009 !ruby/object:Gem::Requirement
154
+ none: false
155
+ requirements:
156
+ - - ~>
157
+ - !ruby/object:Gem::Version
158
+ hash: 55
159
+ segments:
160
+ - 0
161
+ - 10
162
+ - 0
163
+ version: 0.10.0
164
+ type: :development
165
+ version_requirements: *id009
166
+ - !ruby/object:Gem::Dependency
167
+ name: webmock
168
+ prerelease: false
169
+ requirement: &id010 !ruby/object:Gem::Requirement
170
+ none: false
171
+ requirements:
172
+ - - ~>
173
+ - !ruby/object:Gem::Version
174
+ hash: 15
175
+ segments:
176
+ - 1
177
+ - 6
178
+ - 0
179
+ version: 1.6.0
180
+ type: :development
181
+ version_requirements: *id010
182
+ description: A Ruby wrapper to the eBay Web Services API
183
+ email:
184
+ - ryan.closner@gmail.com
185
+ executables: []
186
+
187
+ extensions: []
188
+
189
+ extra_rdoc_files: []
190
+
191
+ files:
192
+ - .gitignore
193
+ - Gemfile
194
+ - Rakefile
195
+ - VERSION
196
+ - agent_cooper.gemspec
197
+ - features/finder.feature
198
+ - features/merchandiser.feature
199
+ - features/shopper.feature
200
+ - features/step_definitions/agent_cooper_steps.rb
201
+ - features/step_definitions/finder_steps.rb
202
+ - features/step_definitions/merchandiser_steps.rb
203
+ - features/step_definitions/shopper_steps.rb
204
+ - features/support/env.rb
205
+ - features/support/vcr.rb
206
+ - lib/agent_cooper.rb
207
+ - lib/agent_cooper/finder.rb
208
+ - lib/agent_cooper/merchandiser.rb
209
+ - lib/agent_cooper/request.rb
210
+ - lib/agent_cooper/response.rb
211
+ - lib/agent_cooper/shopper.rb
212
+ - lib/agent_cooper/version.rb
213
+ - spec/agent_cooper/finder_spec.rb
214
+ - spec/agent_cooper/merchandiser_spec.rb
215
+ - spec/agent_cooper/request_spec.rb
216
+ - spec/agent_cooper/response_spec.rb
217
+ - spec/agent_cooper/shopper_spec.rb
218
+ - spec/spec_helper.rb
219
+ - spec/support/ebay.yml.sample
220
+ has_rdoc: true
221
+ homepage: https://rubygems.org/gems/agent_cooper
222
+ licenses: []
223
+
224
+ post_install_message:
225
+ rdoc_options: []
226
+
227
+ require_paths:
228
+ - lib
229
+ required_ruby_version: !ruby/object:Gem::Requirement
230
+ none: false
231
+ requirements:
232
+ - - ">="
233
+ - !ruby/object:Gem::Version
234
+ hash: 3
235
+ segments:
236
+ - 0
237
+ version: "0"
238
+ required_rubygems_version: !ruby/object:Gem::Requirement
239
+ none: false
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ hash: 3
244
+ segments:
245
+ - 0
246
+ version: "0"
247
+ requirements: []
248
+
249
+ rubyforge_project: agent_cooper
250
+ rubygems_version: 1.6.2
251
+ signing_key:
252
+ specification_version: 3
253
+ summary: A Ruby wrapper to the eBay Web Services API
254
+ test_files:
255
+ - features/finder.feature
256
+ - features/merchandiser.feature
257
+ - features/shopper.feature
258
+ - features/step_definitions/agent_cooper_steps.rb
259
+ - features/step_definitions/finder_steps.rb
260
+ - features/step_definitions/merchandiser_steps.rb
261
+ - features/step_definitions/shopper_steps.rb
262
+ - features/support/env.rb
263
+ - features/support/vcr.rb
264
+ - spec/agent_cooper/finder_spec.rb
265
+ - spec/agent_cooper/merchandiser_spec.rb
266
+ - spec/agent_cooper/request_spec.rb
267
+ - spec/agent_cooper/response_spec.rb
268
+ - spec/agent_cooper/shopper_spec.rb
269
+ - spec/spec_helper.rb
270
+ - spec/support/ebay.yml.sample