hasoffers 0.1.1.1 → 0.1.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/.gitignore +3 -0
- data/CHANGELOG +3 -0
- data/Gemfile +4 -0
- data/README.rdoc +6 -3
- data/Rakefile +2 -14
- data/hasoffers.gemspec +14 -30
- data/lib/hasoffers/base.rb +2 -1
- data/lib/hasoffers/dummy_response.rb +4 -0
- data/lib/hasoffers/report.rb +12 -0
- data/lib/hasoffers/version.rb +3 -0
- data/test/report_test.rb +8 -0
- metadata +22 -69
- data/Manifest +0 -23
data/.gitignore
ADDED
data/CHANGELOG
CHANGED
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -24,11 +24,14 @@ Example usage: (more examples in tests)
|
|
24
24
|
|
25
25
|
When running in development mode, by default live api calls are not made. Dummy responses are returned from the DummyResponse class. Set the HAS_OFFERS_LIVE environment variable to "1" to make live api calls when in development mode like so:
|
26
26
|
|
27
|
-
env HAS_OFFERS_LIVE=1 script/server
|
27
|
+
Rails 2.x: env HAS_OFFERS_LIVE=1 script/server
|
28
|
+
Rails 3.x: env HAS_OFFERS_LIVE=1 rails server
|
28
29
|
|
29
|
-
If you always want live api calls in development mode then you can add this line
|
30
|
+
If you always want live api calls in development mode then you can add this line within the config.after_initialize block of your development.rb file:
|
30
31
|
|
31
|
-
|
32
|
+
config.after_initialize do
|
33
|
+
HasOffers::Base.api_mode = :live
|
34
|
+
end
|
32
35
|
|
33
36
|
|
34
37
|
== Tests
|
data/Rakefile
CHANGED
@@ -1,14 +1,2 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
require 'echoe'
|
4
|
-
|
5
|
-
Echoe.new('hasoffers', '0.1.1.1') do |p|
|
6
|
-
p.description = "Implementation of the HasOffers API for affiliate advertising."
|
7
|
-
p.url = "http://github.com/ngin/hasoffers"
|
8
|
-
p.author = "Luke Ludwig"
|
9
|
-
p.email = "luke.ludwig@tstmedia.com"
|
10
|
-
p.development_dependencies = []
|
11
|
-
p.runtime_dependencies = ["yajl-ruby >=0.7.6", "crack >=0.1.6"]
|
12
|
-
end
|
13
|
-
|
14
|
-
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
1
|
+
require 'bundler'
|
2
|
+
Bundler::GemHelper.install_tasks
|
data/hasoffers.gemspec
CHANGED
@@ -1,37 +1,21 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "hasoffers/version"
|
2
4
|
|
3
5
|
Gem::Specification.new do |s|
|
4
|
-
s.name
|
5
|
-
s.version
|
6
|
-
|
7
|
-
s.
|
8
|
-
s.
|
9
|
-
s.
|
6
|
+
s.name = "hasoffers"
|
7
|
+
s.version = Hasoffers::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Luke Ludwig"]
|
10
|
+
s.email = ["luke.ludwig@tstmedia.com"]
|
11
|
+
s.homepage = "https://github.com/ngin/hasoffers"
|
12
|
+
s.summary = %q{Implementation of the HasOffers API for affiliate advertising.}
|
10
13
|
s.description = %q{Implementation of the HasOffers API for affiliate advertising.}
|
11
|
-
s.email = %q{luke.ludwig@tstmedia.com}
|
12
|
-
s.extra_rdoc_files = ["CHANGELOG", "README.rdoc", "lib/has_offers_model.rb", "lib/hasoffers.rb", "lib/hasoffers/advertiser.rb", "lib/hasoffers/affiliate.rb", "lib/hasoffers/affiliate_billing.rb", "lib/hasoffers/base.rb", "lib/hasoffers/conversion.rb", "lib/hasoffers/dummy_response.rb", "lib/hasoffers/offer.rb", "lib/hasoffers/report.rb", "lib/hasoffers/response.rb"]
|
13
|
-
s.files = ["CHANGELOG", "README.rdoc", "Rakefile", "config/has_offers.yml", "lib/has_offers_model.rb", "lib/hasoffers.rb", "lib/hasoffers/advertiser.rb", "lib/hasoffers/affiliate.rb", "lib/hasoffers/affiliate_billing.rb", "lib/hasoffers/base.rb", "lib/hasoffers/conversion.rb", "lib/hasoffers/dummy_response.rb", "lib/hasoffers/offer.rb", "lib/hasoffers/report.rb", "lib/hasoffers/response.rb", "test/advertiser_test.rb", "test/affiliate_billing_test.rb", "test/affiliate_test.rb", "test/conversion_test.rb", "test/offer_test.rb", "test/report_test.rb", "test/test_helper.rb", "Manifest", "hasoffers.gemspec"]
|
14
|
-
s.homepage = %q{http://github.com/ngin/hasoffers}
|
15
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Hasoffers", "--main", "README.rdoc"]
|
16
|
-
s.require_paths = ["lib"]
|
17
|
-
s.rubyforge_project = %q{hasoffers}
|
18
|
-
s.rubygems_version = %q{1.3.7}
|
19
|
-
s.summary = %q{Implementation of the HasOffers API for affiliate advertising.}
|
20
|
-
s.test_files = ["test/advertiser_test.rb", "test/affiliate_billing_test.rb", "test/affiliate_test.rb", "test/conversion_test.rb", "test/offer_test.rb", "test/report_test.rb", "test/test_helper.rb"]
|
21
14
|
|
22
|
-
|
23
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
24
|
-
s.specification_version = 3
|
15
|
+
s.rubyforge_project = "hasoffers"
|
25
16
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
s.add_dependency(%q<yajl-ruby>, [">= 0.7.6"])
|
31
|
-
s.add_dependency(%q<crack>, [">= 0.1.6"])
|
32
|
-
end
|
33
|
-
else
|
34
|
-
s.add_dependency(%q<yajl-ruby>, [">= 0.7.6"])
|
35
|
-
s.add_dependency(%q<crack>, [">= 0.1.6"])
|
36
|
-
end
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
37
21
|
end
|
data/lib/hasoffers/base.rb
CHANGED
@@ -4,7 +4,7 @@ module HasOffers
|
|
4
4
|
class Base
|
5
5
|
|
6
6
|
BaseUri = 'https://api.hasoffers.com/Api'
|
7
|
-
@@api_mode = (
|
7
|
+
@@api_mode = ((defined?(Rails) and Rails.env.production?) or ENV['HAS_OFFERS_LIVE'] == '1') ? :live : :test
|
8
8
|
@@default_params = nil
|
9
9
|
|
10
10
|
class << self
|
@@ -19,6 +19,7 @@ module HasOffers
|
|
19
19
|
'NetworkId' => config['network_id'],
|
20
20
|
'NetworkToken' => config['api_key']}
|
21
21
|
else
|
22
|
+
@@default_params = {}
|
22
23
|
puts "Missing config/has_offers.yml file!"
|
23
24
|
end
|
24
25
|
end
|
@@ -70,6 +70,10 @@ module HasOffers
|
|
70
70
|
{"response"=>{"data"=>{"pageCount"=>1, "data"=>[{"Stat"=>{"affiliate_id"=>"1", "clicks"=>"20645"}}], "current"=>50, "count"=>1, "page"=>1}, "errors"=>[], "status"=>1}}
|
71
71
|
end
|
72
72
|
|
73
|
+
def response_for_report_getconversions(params)
|
74
|
+
{"response"=>{"data"=>{"pageCount"=>1, "data"=>[{"Stat"=>{"affiliate_id"=>"1", "payout"=>"100.00"}}], "current"=>50, "count"=>1, "page"=>1}, "errors"=>[], "status"=>1}}
|
75
|
+
end
|
76
|
+
|
73
77
|
end
|
74
78
|
|
75
79
|
attr_accessor :code, :message, :body, :headers
|
data/lib/hasoffers/report.rb
CHANGED
@@ -19,6 +19,18 @@ module HasOffers
|
|
19
19
|
response
|
20
20
|
end
|
21
21
|
|
22
|
+
def get_conversions(params)
|
23
|
+
response = get_request(Target, 'getConversions', params)
|
24
|
+
if response.success?
|
25
|
+
# strip out the 'Stat' keys which is just extra clutter
|
26
|
+
data = response.data.map do |stat|
|
27
|
+
stat["Stat"]
|
28
|
+
end
|
29
|
+
response.set_data data
|
30
|
+
end
|
31
|
+
response
|
32
|
+
end
|
33
|
+
|
22
34
|
end
|
23
35
|
|
24
36
|
end
|
data/test/report_test.rb
CHANGED
@@ -10,4 +10,12 @@ class ReportTest < Test::Unit::TestCase
|
|
10
10
|
assert_success response
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_get_conversions
|
14
|
+
response = HasOffers::Report.get_conversions(
|
15
|
+
'fields' => ['Stat.payout'],
|
16
|
+
'filters' => ['Stat.affiliate_id' => ['values' => 1, 'conditional' => 'EQUAL_TO']]
|
17
|
+
)
|
18
|
+
assert_success response
|
19
|
+
end
|
20
|
+
|
13
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hasoffers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 31
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
|
11
|
-
version: 0.1.1.1
|
9
|
+
- 2
|
10
|
+
version: 0.1.2
|
12
11
|
platform: ruby
|
13
12
|
authors:
|
14
13
|
- Luke Ludwig
|
@@ -16,66 +15,27 @@ autorequire:
|
|
16
15
|
bindir: bin
|
17
16
|
cert_chain: []
|
18
17
|
|
19
|
-
date:
|
18
|
+
date: 2011-03-17 00:00:00 -05:00
|
20
19
|
default_executable:
|
21
|
-
dependencies:
|
22
|
-
|
23
|
-
name: yajl-ruby
|
24
|
-
prerelease: false
|
25
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
|
-
requirements:
|
28
|
-
- - ">="
|
29
|
-
- !ruby/object:Gem::Version
|
30
|
-
hash: 15
|
31
|
-
segments:
|
32
|
-
- 0
|
33
|
-
- 7
|
34
|
-
- 6
|
35
|
-
version: 0.7.6
|
36
|
-
type: :runtime
|
37
|
-
version_requirements: *id001
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: crack
|
40
|
-
prerelease: false
|
41
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
|
-
requirements:
|
44
|
-
- - ">="
|
45
|
-
- !ruby/object:Gem::Version
|
46
|
-
hash: 23
|
47
|
-
segments:
|
48
|
-
- 0
|
49
|
-
- 1
|
50
|
-
- 6
|
51
|
-
version: 0.1.6
|
52
|
-
type: :runtime
|
53
|
-
version_requirements: *id002
|
20
|
+
dependencies: []
|
21
|
+
|
54
22
|
description: Implementation of the HasOffers API for affiliate advertising.
|
55
|
-
email:
|
23
|
+
email:
|
24
|
+
- luke.ludwig@tstmedia.com
|
56
25
|
executables: []
|
57
26
|
|
58
27
|
extensions: []
|
59
28
|
|
60
|
-
extra_rdoc_files:
|
61
|
-
|
62
|
-
- README.rdoc
|
63
|
-
- lib/has_offers_model.rb
|
64
|
-
- lib/hasoffers.rb
|
65
|
-
- lib/hasoffers/advertiser.rb
|
66
|
-
- lib/hasoffers/affiliate.rb
|
67
|
-
- lib/hasoffers/affiliate_billing.rb
|
68
|
-
- lib/hasoffers/base.rb
|
69
|
-
- lib/hasoffers/conversion.rb
|
70
|
-
- lib/hasoffers/dummy_response.rb
|
71
|
-
- lib/hasoffers/offer.rb
|
72
|
-
- lib/hasoffers/report.rb
|
73
|
-
- lib/hasoffers/response.rb
|
29
|
+
extra_rdoc_files: []
|
30
|
+
|
74
31
|
files:
|
32
|
+
- .gitignore
|
75
33
|
- CHANGELOG
|
34
|
+
- Gemfile
|
76
35
|
- README.rdoc
|
77
36
|
- Rakefile
|
78
37
|
- config/has_offers.yml
|
38
|
+
- hasoffers.gemspec
|
79
39
|
- lib/has_offers_model.rb
|
80
40
|
- lib/hasoffers.rb
|
81
41
|
- lib/hasoffers/advertiser.rb
|
@@ -87,6 +47,7 @@ files:
|
|
87
47
|
- lib/hasoffers/offer.rb
|
88
48
|
- lib/hasoffers/report.rb
|
89
49
|
- lib/hasoffers/response.rb
|
50
|
+
- lib/hasoffers/version.rb
|
90
51
|
- test/advertiser_test.rb
|
91
52
|
- test/affiliate_billing_test.rb
|
92
53
|
- test/affiliate_test.rb
|
@@ -94,20 +55,13 @@ files:
|
|
94
55
|
- test/offer_test.rb
|
95
56
|
- test/report_test.rb
|
96
57
|
- test/test_helper.rb
|
97
|
-
- Manifest
|
98
|
-
- hasoffers.gemspec
|
99
58
|
has_rdoc: true
|
100
|
-
homepage:
|
59
|
+
homepage: https://github.com/ngin/hasoffers
|
101
60
|
licenses: []
|
102
61
|
|
103
62
|
post_install_message:
|
104
|
-
rdoc_options:
|
105
|
-
|
106
|
-
- --inline-source
|
107
|
-
- --title
|
108
|
-
- Hasoffers
|
109
|
-
- --main
|
110
|
-
- README.rdoc
|
63
|
+
rdoc_options: []
|
64
|
+
|
111
65
|
require_paths:
|
112
66
|
- lib
|
113
67
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -124,15 +78,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
124
78
|
requirements:
|
125
79
|
- - ">="
|
126
80
|
- !ruby/object:Gem::Version
|
127
|
-
hash:
|
81
|
+
hash: 3
|
128
82
|
segments:
|
129
|
-
-
|
130
|
-
|
131
|
-
version: "1.2"
|
83
|
+
- 0
|
84
|
+
version: "0"
|
132
85
|
requirements: []
|
133
86
|
|
134
87
|
rubyforge_project: hasoffers
|
135
|
-
rubygems_version: 1.
|
88
|
+
rubygems_version: 1.4.2
|
136
89
|
signing_key:
|
137
90
|
specification_version: 3
|
138
91
|
summary: Implementation of the HasOffers API for affiliate advertising.
|
data/Manifest
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
CHANGELOG
|
2
|
-
README.rdoc
|
3
|
-
Rakefile
|
4
|
-
config/has_offers.yml
|
5
|
-
lib/has_offers_model.rb
|
6
|
-
lib/hasoffers.rb
|
7
|
-
lib/hasoffers/advertiser.rb
|
8
|
-
lib/hasoffers/affiliate.rb
|
9
|
-
lib/hasoffers/affiliate_billing.rb
|
10
|
-
lib/hasoffers/base.rb
|
11
|
-
lib/hasoffers/conversion.rb
|
12
|
-
lib/hasoffers/dummy_response.rb
|
13
|
-
lib/hasoffers/offer.rb
|
14
|
-
lib/hasoffers/report.rb
|
15
|
-
lib/hasoffers/response.rb
|
16
|
-
test/advertiser_test.rb
|
17
|
-
test/affiliate_billing_test.rb
|
18
|
-
test/affiliate_test.rb
|
19
|
-
test/conversion_test.rb
|
20
|
-
test/offer_test.rb
|
21
|
-
test/report_test.rb
|
22
|
-
test/test_helper.rb
|
23
|
-
Manifest
|