ebayr 0.0.1 → 0.0.2

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/ebayr.gemspec CHANGED
@@ -16,4 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Ebayr::VERSION
17
17
  gem.add_dependency 'activesupport'
18
18
  gem.add_development_dependency 'rake'
19
+ gem.add_development_dependency 'fakeweb'
19
20
  end
data/lib/ebayr.rb CHANGED
@@ -36,9 +36,18 @@ module Ebayr
36
36
  !!sandbox
37
37
  end
38
38
 
39
+ def self.uri_prefix
40
+ "https://api#{sandbox ? ".sandbox" : ""}.ebay.com/ws"
41
+ end
42
+
39
43
  # Gets the URI used for calls
40
44
  def self.uri
41
- URI::parse("https://api#{sandbox ? ".sandbox" : ""}.ebay.com/ws/api.dll")
45
+ URI::parse("#{uri_prefix}/api.dll")
46
+ end
47
+
48
+ def self.authorization_uri(session_id, ru_params = {})
49
+ ruparams = CGI::escape(ru_params.map { |k, v| "#{k}=#{v}" }.join("&"))
50
+ URI::parse("#{uri_prefix}/eBayISAPI.dll?SignIn&RuName=%s&SessId=#{session_id}&ruparams=#{ruparams}")
42
51
  end
43
52
 
44
53
  def self.xml(structure)
@@ -0,0 +1,37 @@
1
+ module Ebayr
2
+ module TestHelper
3
+ @@success = Ebayr.xml(:Ack => "Success")
4
+
5
+ def self.included(mod)
6
+ begin
7
+ require 'fakeweb' unless const_defined?(:FakeWeb)
8
+ rescue LoadError
9
+ throw "Couldn't load fakeweb! Is it in your Gemfile?"
10
+ end
11
+ end
12
+
13
+ # Allows you to stub out the calls within the given block. For example:
14
+ #
15
+ # def test_something
16
+ # stub_ebay_call!(:GeteBayOffficialTime, :Timestamp => "Yo") do
17
+ # assert Ebayr.call(:GeteBayOfficialTime) # => stubbed call
18
+ # end
19
+ # end
20
+ def stub_ebay_call!(call, content, &block)
21
+ content = Ebayr.xml(content) unless content.is_a?(String)
22
+ _allow_net_connect_ = FakeWeb.allow_net_connect?
23
+ FakeWeb.allow_net_connect = false
24
+ body = <<-XML
25
+ <#{call}Response>
26
+ #{Ebayr.xml(:Ack => "Success")}
27
+ #{content}
28
+ </#{call}Response>
29
+ XML
30
+ FakeWeb.register_uri( :any, Ebayr.uri, :body => body)
31
+ yield
32
+ FakeWeb.clean_registry
33
+ FakeWeb.allow_net_connect = _allow_net_connect_
34
+ end
35
+
36
+ end
37
+ end
data/lib/ebayr/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Ebayr
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
data/test/test_ebayr.rb CHANGED
@@ -1,10 +1,27 @@
1
1
  require 'test/unit'
2
2
  require 'ebayr'
3
+ require 'ebayr/test_helper'
3
4
 
4
5
  class TestEbayr < Test::Unit::TestCase
6
+ include Ebayr::TestHelper
7
+
5
8
  # If this passes without an exception, then we're ok.
6
9
  def test_sanity
7
- result = Ebayr.call(:GeteBayOfficialTime)
8
- puts "The eBay time is: #{result['Timestamp']}"
10
+ t = Time.now.to_s
11
+ stub_ebay_call!(:GeteBayOfficialTime, :Timestamp => t) do
12
+ result = Ebayr.call(:GeteBayOfficialTime)
13
+ assert_equal t, result['Timestamp']
14
+ end
15
+ end
16
+
17
+ def test_sandbox_reports_accurately
18
+ Ebayr.sandbox = false
19
+ assert !Ebayr.sandbox?
20
+ Ebayr.sandbox = true
21
+ assert Ebayr.sandbox?
22
+ end
23
+
24
+ def test_ebayr_uri
25
+ assert_equal "https://api.sandbox.ebay.com/ws/api.dll", Ebayr.uri.to_s
9
26
  end
10
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ebayr
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-03-22 00:00:00.000000000Z
12
+ date: 2012-03-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &81216930 !ruby/object:Gem::Requirement
16
+ requirement: &81104660 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *81216930
24
+ version_requirements: *81104660
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &81216720 !ruby/object:Gem::Requirement
27
+ requirement: &81104440 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,7 +32,18 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *81216720
35
+ version_requirements: *81104440
36
+ - !ruby/object:Gem::Dependency
37
+ name: fakeweb
38
+ requirement: &81104210 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *81104210
36
47
  description: A tidy library for using the eBay Trading API with Ruby
37
48
  email:
38
49
  - jj@bjjb.org
@@ -47,6 +58,7 @@ files:
47
58
  - Rakefile
48
59
  - ebayr.gemspec
49
60
  - lib/ebayr.rb
61
+ - lib/ebayr/test_helper.rb
50
62
  - lib/ebayr/version.rb
51
63
  - test/test_ebayr.rb
52
64
  homepage: http://jjbuckley.github.com/ebayr
@@ -63,7 +75,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
63
75
  version: '0'
64
76
  segments:
65
77
  - 0
66
- hash: 248100125
78
+ hash: 758613683
67
79
  required_rubygems_version: !ruby/object:Gem::Requirement
68
80
  none: false
69
81
  requirements:
@@ -72,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
72
84
  version: '0'
73
85
  segments:
74
86
  - 0
75
- hash: 248100125
87
+ hash: 758613683
76
88
  requirements: []
77
89
  rubyforge_project:
78
90
  rubygems_version: 1.8.10