handcrafted-ebay_products 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -10,6 +10,8 @@ begin
10
10
  gem.homepage = "http://github.com/handcrafted/ebay_products"
11
11
  gem.authors = ["Josh Owens"]
12
12
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
13
+ gem.add_dependency('httparty', '>= 0.4.3')
14
+ gem.add_dependency('activesupport', '>= 2.2.2')
13
15
  end
14
16
 
15
17
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.1
1
+ 0.1.2
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{ebay_products}
5
- s.version = "0.1.1"
5
+ s.version = "0.1.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Josh Owens"]
9
- s.date = %q{2009-06-26}
9
+ s.date = %q{2009-07-01}
10
10
  s.email = %q{joshua.owens@gmail.com}
11
11
  s.extra_rdoc_files = [
12
12
  "LICENSE",
@@ -23,6 +23,7 @@ Gem::Specification.new do |s|
23
23
  "lib/ebay_products.rb",
24
24
  "lib/ebay_products/data.rb",
25
25
  "spec/ebay_products_spec.rb",
26
+ "spec/samples/failure.xml",
26
27
  "spec/samples/harry_potter.xml",
27
28
  "spec/spec.opts",
28
29
  "spec/spec_helper.rb"
@@ -42,8 +43,14 @@ Gem::Specification.new do |s|
42
43
  s.specification_version = 3
43
44
 
44
45
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
46
+ s.add_runtime_dependency(%q<httparty>, [">= 0.4.3"])
47
+ s.add_runtime_dependency(%q<activesupport>, [">= 2.2.2"])
45
48
  else
49
+ s.add_dependency(%q<httparty>, [">= 0.4.3"])
50
+ s.add_dependency(%q<activesupport>, [">= 2.2.2"])
46
51
  end
47
52
  else
53
+ s.add_dependency(%q<httparty>, [">= 0.4.3"])
54
+ s.add_dependency(%q<activesupport>, [">= 2.2.2"])
48
55
  end
49
56
  end
@@ -20,7 +20,12 @@ class EbayProducts
20
20
 
21
21
  def search
22
22
  if @search.blank?
23
- @search = self.class.get("/shopping", :query => options, :format => :xml)["FindProductsResponse"]["Product"]
23
+ response = self.class.get("/shopping", :query => options, :format => :xml)["FindProductsResponse"]
24
+ errors = response['Errors']
25
+ if errors
26
+ raise SearchFailure, errors['LongMessage']
27
+ end
28
+ @search = response["Product"]
24
29
  if @search.is_a? Hash
25
30
  @search = [@search]
26
31
  end
@@ -46,4 +51,6 @@ class EbayProducts
46
51
  end
47
52
  hash
48
53
  end
49
- end
54
+ end
55
+
56
+ class SearchFailure < RuntimeError; end
@@ -37,6 +37,17 @@ describe "EbayProducts" do
37
37
  @ebay.products.size.should == 2
38
38
  end
39
39
 
40
+ context "Search failure" do
41
+ before(:each) do
42
+ FakeWeb.register_uri(:get, "http://open.api.ebay.com:80/shopping?QueryKeywords=xbox&callname=FindProducts&siteid=0&maxentries=18&appid=123abc&version=619&responseencoding=XML", :body => File.read("#{File.dirname(__FILE__)}/samples/failure.xml"))
43
+ @ebay = EbayProducts.new({:keywords => "xbox"}, "123abc")
44
+ end
45
+
46
+ it "should throw search failure" do
47
+ lambda { @ebay.search }.should raise_error(SearchFailure)
48
+ end
49
+
50
+ end
40
51
  end
41
52
 
42
53
  end
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+
3
+ <FindProductsResponse xmlns="urn:ebay:apis:eBLBaseComponents">
4
+ <Timestamp>2009-07-01T09:18:26.109Z</Timestamp>
5
+ <Ack>Failure</Ack>
6
+ <Errors>
7
+ <ShortMessage>Your query would return too many items.</ShortMessage>
8
+ <LongMessage>Your query would return too many items. Please define a more specific query.</LongMessage>
9
+ <ErrorCode>10.4</ErrorCode>
10
+ <SeverityCode>Error</SeverityCode>
11
+ <ErrorClassification>RequestError</ErrorClassification>
12
+ </Errors>
13
+ <Build>e623__Bundled_9520957_R1</Build>
14
+ <Version>623</Version>
15
+ </FindProductsResponse>
16
+
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: handcrafted-ebay_products
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Owens
@@ -9,10 +9,29 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-06-26 00:00:00 -07:00
12
+ date: 2009-07-01 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: httparty
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.4.3
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 2.2.2
34
+ version:
16
35
  description:
17
36
  email: joshua.owens@gmail.com
18
37
  executables: []
@@ -33,6 +52,7 @@ files:
33
52
  - lib/ebay_products.rb
34
53
  - lib/ebay_products/data.rb
35
54
  - spec/ebay_products_spec.rb
55
+ - spec/samples/failure.xml
36
56
  - spec/samples/harry_potter.xml
37
57
  - spec/spec.opts
38
58
  - spec/spec_helper.rb