perfecta 0.2.1 → 0.3.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://travis-ci.org/gary-rafferty/perfecta.png)](https://travis-ci.org/gary-rafferty/perfecta)
|
4
|
+
[![Coverage Status](https://coveralls.io/repos/gary-rafferty/perfecta/badge.png?branch=master)](https://coveralls.io/r/gary-rafferty/perfecta?branch=master)
|
5
|
+
[![Code Climate](https://codeclimate.com/github/gary-rafferty/perfecta.png)](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:
|