one40_proof 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/README.rdoc +86 -3
- data/Rakefile +1 -1
- data/VERSION +1 -1
- data/benchmark/benchmark.rb +21 -0
- data/lib/one40_proof/attributes/action_urls.rb +1 -1
- data/lib/one40_proof/attributes/ad.rb +40 -0
- data/lib/one40_proof/attributes/status.rb +13 -0
- data/lib/one40_proof/attributes/user.rb +1 -1
- data/lib/one40_proof/multi/base.rb +59 -0
- data/lib/one40_proof/multi.rb +3 -0
- data/lib/one40_proof/{base.rb → simple/base.rb} +13 -13
- data/lib/one40_proof/{exceptions.rb → simple/exceptions.rb} +0 -0
- data/lib/one40_proof/{search.rb → simple/search.rb} +1 -1
- data/lib/one40_proof/{test.rb → simple/test.rb} +1 -1
- data/lib/one40_proof/{user_ad.rb → simple/user_ad.rb} +1 -1
- data/lib/one40_proof/simple.rb +5 -0
- data/one40_proof.gemspec +28 -17
- data/spec/one40_proof/attributes/action_urls_spec.rb +2 -1
- data/spec/one40_proof/attributes/ad_spec.rb +32 -0
- data/spec/one40_proof/attributes/status_spec.rb +13 -0
- data/spec/one40_proof/attributes/user_spec.rb +2 -1
- data/spec/one40_proof/multi/base_spec.rb +39 -0
- data/spec/one40_proof/{base_spec.rb → simple/base_spec.rb} +7 -2
- data/spec/one40_proof/simple/search_spec.rb +11 -0
- data/spec/one40_proof/simple/test_spec.rb +13 -0
- data/spec/one40_proof/simple/user_ad_spec.rb +13 -0
- data/spec/spec_helper.rb +0 -1
- metadata +57 -31
- data/lib/one40_proof.rb +0 -5
- data/spec/one40_proof/search_spec.rb +0 -11
- data/spec/one40_proof/test_spec.rb +0 -13
- data/spec/one40_proof/user_ad_spec.rb +0 -11
data/README.rdoc
CHANGED
@@ -1,20 +1,103 @@
|
|
1
1
|
= 140Proof API Wrapper
|
2
2
|
|
3
|
-
|
3
|
+
This is a wrapper around the 140 Proof API.
|
4
4
|
|
5
|
-
It
|
5
|
+
It is split into two parts. The first is a simple interface (One40Proof::Base) and the second is a multi interface (One40Proof::Multi::Base).
|
6
|
+
|
7
|
+
<b>The simple interface requires:</b>
|
8
|
+
|
9
|
+
- http://github.com/jnunemaker/httparty
|
10
|
+
|
11
|
+
<b>The multi interface requires:</b>
|
12
|
+
|
13
|
+
- http://github.com/pauldix/typhoeus
|
14
|
+
|
15
|
+
<b>They both require:</b>
|
16
|
+
|
17
|
+
- http://flori.github.com/json
|
18
|
+
|
19
|
+
The multi interface allows you to make parallel requests (benchmarks are below).
|
20
|
+
|
21
|
+
Documentation for the 140Proof API can be found here - http://developers.140proof.com/docs
|
6
22
|
|
7
23
|
== Install
|
8
24
|
|
9
25
|
gem sources -a http://gemcutter.org
|
10
26
|
sudo gem install one40_proof
|
11
27
|
|
28
|
+
== Benchmarks
|
29
|
+
|
30
|
+
This can be found on the benchmark dir
|
31
|
+
|
32
|
+
n = 10
|
33
|
+
Benchmark.bm do |x|
|
34
|
+
x.report("Simple") do
|
35
|
+
n.times { One40Proof::Test.new }
|
36
|
+
end
|
37
|
+
x.report("Multi") do
|
38
|
+
query = []
|
39
|
+
n.times { query << {:method => :test} }
|
40
|
+
One40Proof::Multi::Base.new(query)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
## Ruby 1.9.1 ##
|
45
|
+
user system total real
|
46
|
+
Simple 0.030000 0.020000 0.050000 ( 2.507165)
|
47
|
+
Multi 0.010000 0.010000 0.020000 ( 0.426687)
|
48
|
+
|
12
49
|
== How To Use
|
13
50
|
|
51
|
+
<b>Making Parallel Requests</b>
|
52
|
+
|
53
|
+
Queries are created using a hash and then placed in an array
|
54
|
+
|
55
|
+
require 'rubygems'
|
56
|
+
require 'one40_proof/multi'
|
57
|
+
|
58
|
+
queries = []
|
59
|
+
|
60
|
+
# One40Proof's "Test" method
|
61
|
+
queries << {:method => :test}
|
62
|
+
|
63
|
+
# One40Proof's "User" method
|
64
|
+
queries << {:method => :user, :user_id => 'sferik', :app_id => 'test'}
|
65
|
+
|
66
|
+
# One40Proof's "Search" method
|
67
|
+
queries << {:method => :search, :user_id => 'sferik', :app_id => 'test', :q => 'New York Mets'}
|
68
|
+
|
69
|
+
# We then initialize the calls to the service
|
70
|
+
a = One40Proof::Multi::Base.new(queries)
|
71
|
+
|
72
|
+
# Then we have access to all our ads
|
73
|
+
a.ads.each do |ad|
|
74
|
+
# The Ad
|
75
|
+
ad.image_url
|
76
|
+
ad.byline
|
77
|
+
ad.text
|
78
|
+
|
79
|
+
# User
|
80
|
+
ad.user.screen_name
|
81
|
+
ad.user.user_id
|
82
|
+
ad.user.profile_image_url
|
83
|
+
ad.user.name
|
84
|
+
|
85
|
+
# Action URLS
|
86
|
+
ad.action_urls.click_url
|
87
|
+
ad.action_urls.favorite_url # Or ad.action_urls.favourite_url for the English
|
88
|
+
ad.action_urls.impression_url
|
89
|
+
ad.action_urls.friendship_url
|
90
|
+
ad.action_urls.reply_url
|
91
|
+
ad.action_urls.retweet_url
|
92
|
+
end
|
93
|
+
|
94
|
+
|
95
|
+
<b>Making Single Requests</b>
|
96
|
+
|
14
97
|
Testing ad placement while in development
|
15
98
|
|
16
99
|
require 'rubygems'
|
17
|
-
require 'one40_proof'
|
100
|
+
require 'one40_proof/simple'
|
18
101
|
|
19
102
|
ad = One40Proof::Test.new
|
20
103
|
|
data/Rakefile
CHANGED
@@ -23,7 +23,7 @@ end
|
|
23
23
|
require 'spec/rake/spectask'
|
24
24
|
Spec::Rake::SpecTask.new(:spec) do |spec|
|
25
25
|
spec.libs << 'lib' << 'spec'
|
26
|
-
spec.spec_files = FileList['spec/**/*_spec.rb']
|
26
|
+
spec.spec_files = FileList['spec/**/*_spec.rb'].uniq
|
27
27
|
end
|
28
28
|
|
29
29
|
Spec::Rake::SpecTask.new(:rcov) do |spec|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Benchmark between
|
2
|
+
# One40Proof::Test
|
3
|
+
# One40Proof::Multi::Base
|
4
|
+
|
5
|
+
require 'rubygems'
|
6
|
+
require 'benchmark'
|
7
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/one40_proof/simple')
|
8
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/one40_proof/multi')
|
9
|
+
|
10
|
+
n = 10
|
11
|
+
query = []
|
12
|
+
n.times { query << {:method => :test} }
|
13
|
+
|
14
|
+
Benchmark.bm do |x|
|
15
|
+
x.report("Simple") do
|
16
|
+
n.times { One40Proof::Test.new }
|
17
|
+
end
|
18
|
+
x.report("Multi") do
|
19
|
+
One40Proof::Multi::Base.new(query)
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'attributes/user'
|
3
|
+
require 'attributes/action_urls'
|
4
|
+
require 'attributes/status'
|
5
|
+
|
6
|
+
module One40Proof
|
7
|
+
class Ad
|
8
|
+
|
9
|
+
def initialize(data)
|
10
|
+
@data = JSON.parse(data)['ads'][0]
|
11
|
+
end
|
12
|
+
|
13
|
+
def image_url
|
14
|
+
@data['image_url']
|
15
|
+
end
|
16
|
+
|
17
|
+
# e.g "ads by Pizza Hut"
|
18
|
+
def byline
|
19
|
+
@data['byline']
|
20
|
+
end
|
21
|
+
|
22
|
+
# Ad text
|
23
|
+
def text
|
24
|
+
@data['text']
|
25
|
+
end
|
26
|
+
|
27
|
+
def user
|
28
|
+
@user ||= User.new(@data['user'])
|
29
|
+
end
|
30
|
+
|
31
|
+
def action_urls
|
32
|
+
@action_urls ||= ActionUrls.new(@data['action_urls'])
|
33
|
+
end
|
34
|
+
|
35
|
+
def status
|
36
|
+
@status ||= Status.new(@data['status'])
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'typhoeus'
|
2
|
+
require 'attributes/ad'
|
3
|
+
|
4
|
+
module One40Proof
|
5
|
+
module Multi
|
6
|
+
class Base
|
7
|
+
|
8
|
+
def initialize(ad_requests)
|
9
|
+
hydra = Typhoeus::Hydra.new
|
10
|
+
|
11
|
+
ad_requests.each do |ad_request|
|
12
|
+
url = build_url(ad_request.delete(:method))
|
13
|
+
|
14
|
+
params = {:params => turn_keys_to_strings(ad_request)}
|
15
|
+
request = Typhoeus::Request.new(url, params)
|
16
|
+
|
17
|
+
request.on_complete do |response|
|
18
|
+
ads << Ad.new(response.body)
|
19
|
+
end
|
20
|
+
|
21
|
+
hydra.queue(request)
|
22
|
+
end
|
23
|
+
|
24
|
+
hydra.run
|
25
|
+
end
|
26
|
+
|
27
|
+
def ads
|
28
|
+
@ads ||= []
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
# I get undefined method `<=>' for :user_id:Symbol in Ruby 1.8.6
|
34
|
+
def turn_keys_to_strings(hash)
|
35
|
+
new_hash = {}
|
36
|
+
hash.each {|k,v| new_hash[k.to_s] = v}
|
37
|
+
new_hash
|
38
|
+
end
|
39
|
+
|
40
|
+
def build_url(method)
|
41
|
+
case method
|
42
|
+
when :test
|
43
|
+
path = '/test/ads.json'
|
44
|
+
when :user
|
45
|
+
path = '/ads/user.json'
|
46
|
+
when :search
|
47
|
+
path = '/ads/search.json'
|
48
|
+
end
|
49
|
+
|
50
|
+
base_uri + path
|
51
|
+
end
|
52
|
+
|
53
|
+
def base_uri
|
54
|
+
"http://api.140proof.com"
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'httparty'
|
2
|
-
require '
|
3
|
-
require '
|
4
|
-
require 'one40_proof/attributes/user'
|
5
|
-
require 'one40_proof/exceptions'
|
2
|
+
require 'attributes/ad'
|
3
|
+
require 'simple/exceptions'
|
6
4
|
|
7
5
|
module One40Proof
|
8
6
|
class Base
|
@@ -15,31 +13,33 @@ module One40Proof
|
|
15
13
|
end
|
16
14
|
|
17
15
|
def action_urls
|
18
|
-
|
16
|
+
ad.action_urls
|
19
17
|
end
|
20
18
|
|
21
19
|
def user
|
22
|
-
|
20
|
+
ad.user
|
21
|
+
end
|
22
|
+
|
23
|
+
def status
|
24
|
+
ad.status
|
23
25
|
end
|
24
26
|
|
25
27
|
def image_url
|
26
|
-
|
28
|
+
ad.image_url
|
27
29
|
end
|
28
30
|
|
29
|
-
# e.g "ads by Pizza Hut"
|
30
31
|
def byline
|
31
|
-
|
32
|
+
ad.byline
|
32
33
|
end
|
33
34
|
|
34
|
-
# Ad text
|
35
35
|
def text
|
36
|
-
|
36
|
+
ad.text
|
37
37
|
end
|
38
38
|
|
39
39
|
private
|
40
40
|
|
41
|
-
def
|
42
|
-
@
|
41
|
+
def ad
|
42
|
+
@ad ||= Ad.new(@response.body)
|
43
43
|
end
|
44
44
|
|
45
45
|
def validate_response(response)
|
File without changes
|
data/one40_proof.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{one40_proof}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["reddavis"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-03-07}
|
13
13
|
s.description = %q{A Ruby wrapper around the 140Proof API. Documentation can be found here - http://developers.140proof.com/docs/}
|
14
14
|
s.email = %q{reddavis@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -23,36 +23,47 @@ Gem::Specification.new do |s|
|
|
23
23
|
"README.rdoc",
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
|
-
"
|
26
|
+
"benchmark/benchmark.rb",
|
27
27
|
"lib/one40_proof/attributes/action_urls.rb",
|
28
|
+
"lib/one40_proof/attributes/ad.rb",
|
29
|
+
"lib/one40_proof/attributes/status.rb",
|
28
30
|
"lib/one40_proof/attributes/user.rb",
|
29
|
-
"lib/one40_proof/
|
30
|
-
"lib/one40_proof/
|
31
|
-
"lib/one40_proof/
|
32
|
-
"lib/one40_proof/
|
33
|
-
"lib/one40_proof/
|
31
|
+
"lib/one40_proof/multi.rb",
|
32
|
+
"lib/one40_proof/multi/base.rb",
|
33
|
+
"lib/one40_proof/simple.rb",
|
34
|
+
"lib/one40_proof/simple/base.rb",
|
35
|
+
"lib/one40_proof/simple/exceptions.rb",
|
36
|
+
"lib/one40_proof/simple/search.rb",
|
37
|
+
"lib/one40_proof/simple/test.rb",
|
38
|
+
"lib/one40_proof/simple/user_ad.rb",
|
34
39
|
"one40_proof.gemspec",
|
35
40
|
"spec/one40_proof/attributes/action_urls_spec.rb",
|
41
|
+
"spec/one40_proof/attributes/ad_spec.rb",
|
42
|
+
"spec/one40_proof/attributes/status_spec.rb",
|
36
43
|
"spec/one40_proof/attributes/user_spec.rb",
|
37
|
-
"spec/one40_proof/base_spec.rb",
|
38
|
-
"spec/one40_proof/
|
39
|
-
"spec/one40_proof/
|
40
|
-
"spec/one40_proof/
|
44
|
+
"spec/one40_proof/multi/base_spec.rb",
|
45
|
+
"spec/one40_proof/simple/base_spec.rb",
|
46
|
+
"spec/one40_proof/simple/search_spec.rb",
|
47
|
+
"spec/one40_proof/simple/test_spec.rb",
|
48
|
+
"spec/one40_proof/simple/user_ad_spec.rb",
|
41
49
|
"spec/spec.opts",
|
42
50
|
"spec/spec_helper.rb"
|
43
51
|
]
|
44
52
|
s.homepage = %q{http://github.com/reddavis/One40Proof}
|
45
53
|
s.rdoc_options = ["--charset=UTF-8"]
|
46
54
|
s.require_paths = ["lib"]
|
47
|
-
s.rubygems_version = %q{1.3.
|
55
|
+
s.rubygems_version = %q{1.3.6}
|
48
56
|
s.summary = %q{A Ruby wrapper around the 140Proof API}
|
49
57
|
s.test_files = [
|
50
58
|
"spec/one40_proof/attributes/action_urls_spec.rb",
|
59
|
+
"spec/one40_proof/attributes/ad_spec.rb",
|
60
|
+
"spec/one40_proof/attributes/status_spec.rb",
|
51
61
|
"spec/one40_proof/attributes/user_spec.rb",
|
52
|
-
"spec/one40_proof/base_spec.rb",
|
53
|
-
"spec/one40_proof/
|
54
|
-
"spec/one40_proof/
|
55
|
-
"spec/one40_proof/
|
62
|
+
"spec/one40_proof/multi/base_spec.rb",
|
63
|
+
"spec/one40_proof/simple/base_spec.rb",
|
64
|
+
"spec/one40_proof/simple/search_spec.rb",
|
65
|
+
"spec/one40_proof/simple/test_spec.rb",
|
66
|
+
"spec/one40_proof/simple/user_ad_spec.rb",
|
56
67
|
"spec/spec_helper.rb"
|
57
68
|
]
|
58
69
|
|
@@ -1,8 +1,9 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
require 'one40_proof/multi'
|
2
3
|
|
3
4
|
describe "ActionUrls" do
|
4
5
|
before(:all) do
|
5
|
-
parsed_json = JSON.parse(test_ad_data)
|
6
|
+
parsed_json = JSON.parse(test_ad_data)['ads'][0]['action_urls']
|
6
7
|
@action_urls = One40Proof::ActionUrls.new(parsed_json)
|
7
8
|
end
|
8
9
|
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
require 'one40_proof/multi'
|
3
|
+
|
4
|
+
describe "Ad" do
|
5
|
+
before(:all) do
|
6
|
+
@ad = One40Proof::Ad.new(test_ad_data)
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should have an image_url" do
|
10
|
+
@ad.image_url.should_not be_nil
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have byline" do
|
14
|
+
@ad.byline.should_not be_nil
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should have text" do
|
18
|
+
@ad.text.should_not be_nil
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should return a User object" do
|
22
|
+
@ad.user.should be_a(One40Proof::User)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should return an ActionUrls object" do
|
26
|
+
@ad.action_urls.should be_a(One40Proof::ActionUrls)
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should return a Status object" do
|
30
|
+
@ad.status.should be_a(One40Proof::Status)
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
require 'one40_proof/multi'
|
3
|
+
|
4
|
+
describe "Status" do
|
5
|
+
before(:all) do
|
6
|
+
parsed_json = JSON.parse(test_ad_data)['ads'][0]['status']
|
7
|
+
@status = One40Proof::Status.new(parsed_json)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should return status id" do
|
11
|
+
@status.id.should == 6017128450
|
12
|
+
end
|
13
|
+
end
|
@@ -1,8 +1,9 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
require 'one40_proof/multi'
|
2
3
|
|
3
4
|
describe "User" do
|
4
5
|
before(:all) do
|
5
|
-
parsed_json = JSON.parse(test_ad_data)
|
6
|
+
parsed_json = JSON.parse(test_ad_data)['ads'][0]['user']
|
6
7
|
@user = One40Proof::User.new(parsed_json)
|
7
8
|
end
|
8
9
|
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
require 'one40_proof/multi'
|
3
|
+
|
4
|
+
describe "MultiBase" do
|
5
|
+
before(:all) do
|
6
|
+
hydra = Typhoeus::Hydra.new
|
7
|
+
test_response = Response.new(:code => 200, :body => test_ad_data)
|
8
|
+
user_response = Response.new(:code => 200, :body => user_ad_data)
|
9
|
+
|
10
|
+
# I receive undefined method `request=' for #<WebMock::Response:0x7fc658> without these:
|
11
|
+
test_response.stub!(:request=)
|
12
|
+
user_response.stub!(:request=)
|
13
|
+
|
14
|
+
hydra.stub(:get, "http://api.140proof.com/test/ads.json").and_return(test_response)
|
15
|
+
hydra.stub(:get, "http://api.140proof.com/ads/user.json?app_id=test&user_id=sferik").and_return(user_response)
|
16
|
+
hydra.stub(:get, "http://api.140proof.com/ads/search.json?app_id=test&q=New+York+Mets&user_id=sferik").and_return(user_response)
|
17
|
+
|
18
|
+
Typhoeus::Hydra.stub!(:new).and_return(hydra)
|
19
|
+
|
20
|
+
@a = One40Proof::Multi::Base.new(queries)
|
21
|
+
@a.ads.should be_an(Array)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should return an Array of Ads" do
|
25
|
+
@a.ads.should be_an(Array)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should create 3 ads" do
|
29
|
+
@a.ads.size.should == 3
|
30
|
+
end
|
31
|
+
|
32
|
+
def queries
|
33
|
+
[
|
34
|
+
{:method => :test},
|
35
|
+
{:method => :user, :user_id => 'sferik', :app_id => 'test'},
|
36
|
+
{:method => :search, :user_id => 'sferik', :app_id => 'test', :q => 'New York Mets'}
|
37
|
+
]
|
38
|
+
end
|
39
|
+
end
|
@@ -1,7 +1,8 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
require 'one40_proof/simple'
|
2
3
|
|
3
4
|
describe "Base" do
|
4
|
-
|
5
|
+
|
5
6
|
describe "200 OK" do
|
6
7
|
before(:all) do
|
7
8
|
stub_request(:get, base_url).to_return(:body => user_ad_data)
|
@@ -15,6 +16,10 @@ describe "Base" do
|
|
15
16
|
it "should return a User object" do
|
16
17
|
@base.user.should be_a(One40Proof::User)
|
17
18
|
end
|
19
|
+
|
20
|
+
it "should return a Status object" do
|
21
|
+
@base.status.should be_a(One40Proof::Status)
|
22
|
+
end
|
18
23
|
|
19
24
|
it "should return image_url" do
|
20
25
|
@base.image_url.should == "http://img.tweetimag.es/i/LittleSkillet_n"
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
|
3
|
+
describe "Search" do
|
4
|
+
it "should request GET /ads/search.json..." do
|
5
|
+
url = base_url + '/ads/search.json?user_id=sferik&app_id=test&q=New%20York%20Mets'
|
6
|
+
stub_request(:get, url)
|
7
|
+
One40Proof::Search.new(:user_id => 'sferik', :app_id => 'test', :q => 'New York Mets')
|
8
|
+
|
9
|
+
WebMock.should have_requested(:get, url)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
|
3
|
+
describe "Test" do
|
4
|
+
describe "Connection to the service" do
|
5
|
+
it "should request GET /test/ads.json" do
|
6
|
+
url = base_url + '/test/ads.json'
|
7
|
+
stub_request(:get, url)
|
8
|
+
One40Proof::Test.new
|
9
|
+
|
10
|
+
WebMock.should have_requested(:get, url)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
2
|
+
|
3
|
+
describe "UserAd" do
|
4
|
+
it "should request GET /ads/user.json..." do
|
5
|
+
url = base_url + '/ads/user.json?user_id=sferik&app_id=test'
|
6
|
+
stub_request(:get, url)
|
7
|
+
One40Proof::UserAd.new(:user_id => 'sferik', :app_id => 'test')
|
8
|
+
|
9
|
+
WebMock.should have_requested(:get, url)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: one40_proof
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- reddavis
|
@@ -9,39 +14,47 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-
|
17
|
+
date: 2010-03-07 00:00:00 +00:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: rspec
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 1
|
29
|
+
- 2
|
30
|
+
- 9
|
23
31
|
version: 1.2.9
|
24
|
-
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
25
34
|
- !ruby/object:Gem::Dependency
|
26
35
|
name: json
|
27
|
-
|
28
|
-
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
30
38
|
requirements:
|
31
39
|
- - ">="
|
32
40
|
- !ruby/object:Gem::Version
|
41
|
+
segments:
|
42
|
+
- 0
|
33
43
|
version: "0"
|
34
|
-
|
44
|
+
type: :runtime
|
45
|
+
version_requirements: *id002
|
35
46
|
- !ruby/object:Gem::Dependency
|
36
47
|
name: httparty
|
37
|
-
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
48
|
+
prerelease: false
|
49
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
40
50
|
requirements:
|
41
51
|
- - ">="
|
42
52
|
- !ruby/object:Gem::Version
|
53
|
+
segments:
|
54
|
+
- 0
|
43
55
|
version: "0"
|
44
|
-
|
56
|
+
type: :runtime
|
57
|
+
version_requirements: *id003
|
45
58
|
description: A Ruby wrapper around the 140Proof API. Documentation can be found here - http://developers.140proof.com/docs/
|
46
59
|
email: reddavis@gmail.com
|
47
60
|
executables: []
|
@@ -58,21 +71,29 @@ files:
|
|
58
71
|
- README.rdoc
|
59
72
|
- Rakefile
|
60
73
|
- VERSION
|
61
|
-
-
|
74
|
+
- benchmark/benchmark.rb
|
62
75
|
- lib/one40_proof/attributes/action_urls.rb
|
76
|
+
- lib/one40_proof/attributes/ad.rb
|
77
|
+
- lib/one40_proof/attributes/status.rb
|
63
78
|
- lib/one40_proof/attributes/user.rb
|
64
|
-
- lib/one40_proof/
|
65
|
-
- lib/one40_proof/
|
66
|
-
- lib/one40_proof/
|
67
|
-
- lib/one40_proof/
|
68
|
-
- lib/one40_proof/
|
79
|
+
- lib/one40_proof/multi.rb
|
80
|
+
- lib/one40_proof/multi/base.rb
|
81
|
+
- lib/one40_proof/simple.rb
|
82
|
+
- lib/one40_proof/simple/base.rb
|
83
|
+
- lib/one40_proof/simple/exceptions.rb
|
84
|
+
- lib/one40_proof/simple/search.rb
|
85
|
+
- lib/one40_proof/simple/test.rb
|
86
|
+
- lib/one40_proof/simple/user_ad.rb
|
69
87
|
- one40_proof.gemspec
|
70
88
|
- spec/one40_proof/attributes/action_urls_spec.rb
|
89
|
+
- spec/one40_proof/attributes/ad_spec.rb
|
90
|
+
- spec/one40_proof/attributes/status_spec.rb
|
71
91
|
- spec/one40_proof/attributes/user_spec.rb
|
72
|
-
- spec/one40_proof/base_spec.rb
|
73
|
-
- spec/one40_proof/
|
74
|
-
- spec/one40_proof/
|
75
|
-
- spec/one40_proof/
|
92
|
+
- spec/one40_proof/multi/base_spec.rb
|
93
|
+
- spec/one40_proof/simple/base_spec.rb
|
94
|
+
- spec/one40_proof/simple/search_spec.rb
|
95
|
+
- spec/one40_proof/simple/test_spec.rb
|
96
|
+
- spec/one40_proof/simple/user_ad_spec.rb
|
76
97
|
- spec/spec.opts
|
77
98
|
- spec/spec_helper.rb
|
78
99
|
has_rdoc: true
|
@@ -88,26 +109,31 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
88
109
|
requirements:
|
89
110
|
- - ">="
|
90
111
|
- !ruby/object:Gem::Version
|
112
|
+
segments:
|
113
|
+
- 0
|
91
114
|
version: "0"
|
92
|
-
version:
|
93
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
94
116
|
requirements:
|
95
117
|
- - ">="
|
96
118
|
- !ruby/object:Gem::Version
|
119
|
+
segments:
|
120
|
+
- 0
|
97
121
|
version: "0"
|
98
|
-
version:
|
99
122
|
requirements: []
|
100
123
|
|
101
124
|
rubyforge_project:
|
102
|
-
rubygems_version: 1.3.
|
125
|
+
rubygems_version: 1.3.6
|
103
126
|
signing_key:
|
104
127
|
specification_version: 3
|
105
128
|
summary: A Ruby wrapper around the 140Proof API
|
106
129
|
test_files:
|
107
130
|
- spec/one40_proof/attributes/action_urls_spec.rb
|
131
|
+
- spec/one40_proof/attributes/ad_spec.rb
|
132
|
+
- spec/one40_proof/attributes/status_spec.rb
|
108
133
|
- spec/one40_proof/attributes/user_spec.rb
|
109
|
-
- spec/one40_proof/base_spec.rb
|
110
|
-
- spec/one40_proof/
|
111
|
-
- spec/one40_proof/
|
112
|
-
- spec/one40_proof/
|
134
|
+
- spec/one40_proof/multi/base_spec.rb
|
135
|
+
- spec/one40_proof/simple/base_spec.rb
|
136
|
+
- spec/one40_proof/simple/search_spec.rb
|
137
|
+
- spec/one40_proof/simple/test_spec.rb
|
138
|
+
- spec/one40_proof/simple/user_ad_spec.rb
|
113
139
|
- spec/spec_helper.rb
|
data/lib/one40_proof.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
describe "Search" do
|
4
|
-
it "should request GET /ads/search.json..." do
|
5
|
-
url = base_url + '/ads/search.json?user_id=sferik&app_id=test&q=New%20York%20Mets'
|
6
|
-
stub_request(:get, url)
|
7
|
-
One40Proof::Search.new(:user_id => 'sferik', :app_id => 'test', :q => 'New York Mets')
|
8
|
-
|
9
|
-
WebMock.should have_requested(:get, url)
|
10
|
-
end
|
11
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
describe "Test" do
|
4
|
-
describe "Connection to the service" do
|
5
|
-
it "should request GET /test/ads.json" do
|
6
|
-
url = base_url + '/test/ads.json'
|
7
|
-
stub_request(:get, url)
|
8
|
-
One40Proof::Test.new
|
9
|
-
|
10
|
-
WebMock.should have_requested(:get, url)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
|
2
|
-
|
3
|
-
describe "UserAd" do
|
4
|
-
it "should request GET /ads/user.json..." do
|
5
|
-
url = base_url + '/ads/user.json?user_id=sferik&app_id=test'
|
6
|
-
stub_request(:get, url)
|
7
|
-
One40Proof::UserAd.new(:user_id => 'sferik', :app_id => 'test')
|
8
|
-
|
9
|
-
WebMock.should have_requested(:get, url)
|
10
|
-
end
|
11
|
-
end
|