perfecta 0.2.1 → 0.3.3
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.
- checksums.yaml +7 -0
- data/.coveralls.yml +1 -0
- data/.travis.yml +5 -0
- data/Gemfile +5 -0
- data/README.md +8 -0
- data/Rakefile +3 -0
- data/lib/perfecta/api_resource.rb +7 -1
- data/lib/perfecta/version.rb +1 -1
- data/lib/perfecta.rb +5 -5
- data/perfecta.gemspec +4 -1
- data/test/ad_report_test.rb +3 -3
- data/test/campaign_report_test.rb +3 -3
- data/test/campaign_test.rb +3 -3
- data/test/conversion_report_test.rb +3 -3
- data/test/perfecta_test.rb +3 -6
- data/test/site_test.rb +3 -3
- data/test/test_helper.rb +5 -1
- metadata +59 -22
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d8bc2ccc98888f9c26d9a750b41dacf938df86e1
|
4
|
+
data.tar.gz: cbca3c664ff86f7c070da5f3cef9d362502f15ab
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 994bee046cc159f924d1ee3d67ec328c28284b3fe0472d4496bafa34804abdd35002a5eae2f08067446f2b2c8cae2574be094ffb574de148bde31eb288f71dba
|
7
|
+
data.tar.gz: 34c0eaa6454f20c84978e69b7c6fb420b5d5019c2d26d15ba29f5c6662ddd00d81fe29f38aaade5c13113c4f23906cf31f4e3bbb5bfba476c01bbba2f9794727
|
data/.coveralls.yml
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
service_name: travis-ci
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Perfecta
|
2
2
|
|
3
|
+
[](https://travis-ci.org/gary-rafferty/perfecta)
|
4
|
+
[](https://coveralls.io/r/gary-rafferty/perfecta?branch=master)
|
5
|
+
[](https://codeclimate.com/github/gary-rafferty/perfecta)
|
6
|
+
|
3
7
|
Ruby client for the Perfect Audience [reporting
|
4
8
|
api](https://www.perfectaudience.com/docs#data_api_autoopen)
|
5
9
|
|
@@ -146,3 +150,7 @@ p client.conversion('CONVERSION_ID').inspect
|
|
146
150
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
147
151
|
4. Push to the branch (`git push origin my-new-feature`)
|
148
152
|
5. Create new Pull Request
|
153
|
+
|
154
|
+
## Contributions
|
155
|
+
|
156
|
+
* Support for Ruby-1.8.7 added by @malachaifrazier
|
data/Rakefile
CHANGED
@@ -1,12 +1,18 @@
|
|
1
1
|
module Perfecta
|
2
2
|
class ApiResource
|
3
|
+
|
4
|
+
def meta_class
|
5
|
+
class << self; self end
|
6
|
+
end
|
7
|
+
|
3
8
|
def initialize attrs
|
4
9
|
attrs.each do |name, val|
|
5
10
|
instance_variable_set "@#{name}", val
|
6
11
|
|
7
|
-
|
12
|
+
meta_class.send(:define_method, name) do
|
8
13
|
instance_variable_get "@#{name}"
|
9
14
|
end
|
15
|
+
|
10
16
|
end
|
11
17
|
end
|
12
18
|
end
|
data/lib/perfecta/version.rb
CHANGED
data/lib/perfecta.rb
CHANGED
@@ -104,7 +104,7 @@ module Perfecta
|
|
104
104
|
|
105
105
|
def authenticate
|
106
106
|
url = "#{BASE_API_PATH}/auth"
|
107
|
-
data = {email
|
107
|
+
data = {:email => @email, :password => @password}
|
108
108
|
|
109
109
|
resp = RestClient.post(url, data)
|
110
110
|
|
@@ -131,7 +131,7 @@ module Perfecta
|
|
131
131
|
def get_one type, id
|
132
132
|
url = "#{BASE_API_PATH}/#{type.pluralize}/#{id}"
|
133
133
|
|
134
|
-
resp = JSON.parse(RestClient.get(url, Authorization
|
134
|
+
resp = JSON.parse(RestClient.get(url, "Authorization".to_sym => @token))
|
135
135
|
|
136
136
|
klass_name = type.capitalize
|
137
137
|
klass = Perfecta.const_get(klass_name.to_sym)
|
@@ -144,7 +144,7 @@ module Perfecta
|
|
144
144
|
def get_many type
|
145
145
|
url = "#{BASE_API_PATH}/#{type}"
|
146
146
|
|
147
|
-
resp = JSON.parse(RestClient.get(url, Authorization
|
147
|
+
resp = JSON.parse(RestClient.get(url, "Authorization".to_sym => @token))
|
148
148
|
|
149
149
|
klass_name = type.capitalize.singularize
|
150
150
|
klass = Perfecta.const_get(klass_name.to_sym)
|
@@ -161,9 +161,9 @@ module Perfecta
|
|
161
161
|
def build_report_url_and_params_for type, params
|
162
162
|
url = "#{BASE_API_PATH}/reports/#{type}_report"
|
163
163
|
|
164
|
-
params.
|
164
|
+
params.delete_if {|p| !ALLOWED_REPORT_PARAMS.include? p}
|
165
165
|
|
166
|
-
params = {params
|
166
|
+
params = {:params => params}.merge! "Authorization".to_sym => @token
|
167
167
|
|
168
168
|
[url, params]
|
169
169
|
end
|
data/perfecta.gemspec
CHANGED
@@ -17,7 +17,10 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
+
gem.add_dependency "mime-types", "~> 1.25.1"
|
20
21
|
gem.add_dependency "rest-client"
|
21
|
-
gem.add_dependency "activesupport"
|
22
|
+
gem.add_dependency "activesupport", "~> 3"
|
23
|
+
gem.add_dependency "rake", "~> 0.9.2"
|
24
|
+
gem.add_dependency "json"
|
22
25
|
gem.add_development_dependency "mocha"
|
23
26
|
end
|
data/test/ad_report_test.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require './test/test_helper.rb'
|
2
2
|
|
3
|
-
class AdReportTest <
|
3
|
+
class AdReportTest < Minitest::Test
|
4
4
|
|
5
5
|
describe 'AdReport' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {ad_name
|
8
|
+
@attrs = {:ad_name => 'Ad 1', :ad_id => 123}
|
9
9
|
@report = Perfecta::AdReport.new @attrs
|
10
10
|
end
|
11
11
|
|
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require './test/test_helper.rb'
|
2
2
|
|
3
|
-
class CampaignReportTest <
|
3
|
+
class CampaignReportTest < Minitest::Test
|
4
4
|
|
5
5
|
describe 'CampaignReport' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {name
|
8
|
+
@attrs = {:name => 'Report 1', :campaign_id => 123}
|
9
9
|
@report = Perfecta::CampaignReport.new @attrs
|
10
10
|
end
|
11
11
|
|
data/test/campaign_test.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require './test/test_helper.rb'
|
2
2
|
|
3
|
-
class CampaignTest <
|
3
|
+
class CampaignTest < Minitest::Test
|
4
4
|
|
5
5
|
describe 'Campaign' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {name
|
8
|
+
@attrs = {:name => 'Campaign 1'}
|
9
9
|
@report = Perfecta::Campaign.new @attrs
|
10
10
|
end
|
11
11
|
|
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require './test/test_helper.rb'
|
2
2
|
|
3
|
-
class ConversionReportTest <
|
3
|
+
class ConversionReportTest < Minitest::Test
|
4
4
|
|
5
5
|
describe 'ConversionReport' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {conversion_name
|
8
|
+
@attrs = {:conversion_name => 'Conversion 1', :conversion_id => 123}
|
9
9
|
@report = Perfecta::ConversionReport.new @attrs
|
10
10
|
end
|
11
11
|
|
data/test/perfecta_test.rb
CHANGED
@@ -1,14 +1,11 @@
|
|
1
|
-
|
1
|
+
require './test/test_helper.rb'
|
2
2
|
|
3
|
-
class PerfectaTest <
|
3
|
+
class PerfectaTest < Minitest::Test
|
4
4
|
|
5
5
|
describe 'Perfecta client' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
Perfecta::Client
|
9
|
-
.any_instance
|
10
|
-
.stubs(:exchange_credentials_for_token)
|
11
|
-
.returns('token')
|
8
|
+
Perfecta::Client.any_instance.stubs(:exchange_credentials_for_token).returns('token')
|
12
9
|
|
13
10
|
@client = Perfecta::Client.new do |c|
|
14
11
|
c.email = 'email@ddress'
|
data/test/site_test.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
|
1
|
+
require './test/test_helper.rb'
|
2
2
|
|
3
|
-
class SiteTest <
|
3
|
+
class SiteTest < Minitest::Test
|
4
4
|
|
5
5
|
describe 'Site' do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@attrs = {name
|
8
|
+
@attrs = {:name => 'Site 1'}
|
9
9
|
@report = Perfecta::Site.new @attrs
|
10
10
|
end
|
11
11
|
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,62 +1,97 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perfecta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Gary Rafferty
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-02-08 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: mime-types
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.25.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.25.1
|
14
27
|
- !ruby/object:Gem::Dependency
|
15
28
|
name: rest-client
|
16
29
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
30
|
requirements:
|
19
|
-
- -
|
31
|
+
- - ">="
|
20
32
|
- !ruby/object:Gem::Version
|
21
33
|
version: '0'
|
22
34
|
type: :runtime
|
23
35
|
prerelease: false
|
24
36
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
37
|
requirements:
|
27
|
-
- -
|
38
|
+
- - ">="
|
28
39
|
- !ruby/object:Gem::Version
|
29
40
|
version: '0'
|
30
41
|
- !ruby/object:Gem::Dependency
|
31
42
|
name: activesupport
|
32
43
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
44
|
requirements:
|
35
|
-
- -
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.9.2
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.9.2
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: json
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
36
74
|
- !ruby/object:Gem::Version
|
37
75
|
version: '0'
|
38
76
|
type: :runtime
|
39
77
|
prerelease: false
|
40
78
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
79
|
requirements:
|
43
|
-
- -
|
80
|
+
- - ">="
|
44
81
|
- !ruby/object:Gem::Version
|
45
82
|
version: '0'
|
46
83
|
- !ruby/object:Gem::Dependency
|
47
84
|
name: mocha
|
48
85
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
86
|
requirements:
|
51
|
-
- -
|
87
|
+
- - ">="
|
52
88
|
- !ruby/object:Gem::Version
|
53
89
|
version: '0'
|
54
90
|
type: :development
|
55
91
|
prerelease: false
|
56
92
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
93
|
requirements:
|
59
|
-
- -
|
94
|
+
- - ">="
|
60
95
|
- !ruby/object:Gem::Version
|
61
96
|
version: '0'
|
62
97
|
description: Ruby client for the PerfectAudience Reporting API
|
@@ -66,7 +101,9 @@ executables: []
|
|
66
101
|
extensions: []
|
67
102
|
extra_rdoc_files: []
|
68
103
|
files:
|
69
|
-
- .
|
104
|
+
- ".coveralls.yml"
|
105
|
+
- ".gitignore"
|
106
|
+
- ".travis.yml"
|
70
107
|
- Gemfile
|
71
108
|
- LICENSE.txt
|
72
109
|
- README.md
|
@@ -92,27 +129,26 @@ files:
|
|
92
129
|
- test/test_helper.rb
|
93
130
|
homepage: http://garyrafferty.com/perfecta
|
94
131
|
licenses: []
|
132
|
+
metadata: {}
|
95
133
|
post_install_message:
|
96
134
|
rdoc_options: []
|
97
135
|
require_paths:
|
98
136
|
- lib
|
99
137
|
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
-
none: false
|
101
138
|
requirements:
|
102
|
-
- -
|
139
|
+
- - ">="
|
103
140
|
- !ruby/object:Gem::Version
|
104
141
|
version: '0'
|
105
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
143
|
requirements:
|
108
|
-
- -
|
144
|
+
- - ">="
|
109
145
|
- !ruby/object:Gem::Version
|
110
146
|
version: '0'
|
111
147
|
requirements: []
|
112
148
|
rubyforge_project:
|
113
|
-
rubygems_version:
|
149
|
+
rubygems_version: 2.0.3
|
114
150
|
signing_key:
|
115
|
-
specification_version:
|
151
|
+
specification_version: 4
|
116
152
|
summary: Ruby client for the PerfectAudience Reporting API
|
117
153
|
test_files:
|
118
154
|
- test/ad_report_test.rb
|
@@ -122,3 +158,4 @@ test_files:
|
|
122
158
|
- test/perfecta_test.rb
|
123
159
|
- test/site_test.rb
|
124
160
|
- test/test_helper.rb
|
161
|
+
has_rdoc:
|