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 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
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - "1.8.7"
4
+ - "1.9.3"
5
+ - "2.0.0"
data/Gemfile CHANGED
@@ -1,3 +1,8 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
+
5
+ group :development, :test do
6
+ gem 'minitest'
7
+ gem 'coveralls', :require => false
8
+ end
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,4 +1,5 @@
1
1
  require "bundler/gem_tasks"
2
+ Bundler::GemHelper.install_tasks
2
3
 
3
4
  require 'rake/testtask'
4
5
 
@@ -7,3 +8,5 @@ Rake::TestTask.new do |t|
7
8
  t.test_files = FileList['test/*_test.rb']
8
9
  t.verbose = true
9
10
  end
11
+
12
+ task :default => :test
@@ -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
- define_singleton_method name.to_sym do
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
@@ -1,3 +1,3 @@
1
1
  module Perfecta
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.3"
3
3
  end
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: @email, password: @password}
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: @token))
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: @token))
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.keep_if {|p| ALLOWED_REPORT_PARAMS.include? p}
164
+ params.delete_if {|p| !ALLOWED_REPORT_PARAMS.include? p}
165
165
 
166
- params = {params: params}.merge! Authorization: @token
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
@@ -1,11 +1,11 @@
1
- require_relative 'test_helper'
1
+ require './test/test_helper.rb'
2
2
 
3
- class AdReportTest < MiniTest::Unit::TestCase
3
+ class AdReportTest < Minitest::Test
4
4
 
5
5
  describe 'AdReport' do
6
6
 
7
7
  before do
8
- @attrs = {ad_name: 'Ad 1', ad_id: 123}
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
- require_relative 'test_helper'
1
+ require './test/test_helper.rb'
2
2
 
3
- class CampaignReportTest < MiniTest::Unit::TestCase
3
+ class CampaignReportTest < Minitest::Test
4
4
 
5
5
  describe 'CampaignReport' do
6
6
 
7
7
  before do
8
- @attrs = {name: 'Report 1', campaign_id: 123}
8
+ @attrs = {:name => 'Report 1', :campaign_id => 123}
9
9
  @report = Perfecta::CampaignReport.new @attrs
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
- require_relative 'test_helper'
1
+ require './test/test_helper.rb'
2
2
 
3
- class CampaignTest < MiniTest::Unit::TestCase
3
+ class CampaignTest < Minitest::Test
4
4
 
5
5
  describe 'Campaign' do
6
6
 
7
7
  before do
8
- @attrs = {name: 'Campaign 1'}
8
+ @attrs = {:name => 'Campaign 1'}
9
9
  @report = Perfecta::Campaign.new @attrs
10
10
  end
11
11
 
@@ -1,11 +1,11 @@
1
- require_relative 'test_helper'
1
+ require './test/test_helper.rb'
2
2
 
3
- class ConversionReportTest < MiniTest::Unit::TestCase
3
+ class ConversionReportTest < Minitest::Test
4
4
 
5
5
  describe 'ConversionReport' do
6
6
 
7
7
  before do
8
- @attrs = {conversion_name: 'Conversion 1', conversion_id: 123}
8
+ @attrs = {:conversion_name => 'Conversion 1', :conversion_id => 123}
9
9
  @report = Perfecta::ConversionReport.new @attrs
10
10
  end
11
11
 
@@ -1,14 +1,11 @@
1
- require_relative 'test_helper'
1
+ require './test/test_helper.rb'
2
2
 
3
- class PerfectaTest < MiniTest::Unit::TestCase
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
- require_relative 'test_helper'
1
+ require './test/test_helper.rb'
2
2
 
3
- class SiteTest < MiniTest::Unit::TestCase
3
+ class SiteTest < Minitest::Test
4
4
 
5
5
  describe 'Site' do
6
6
 
7
7
  before do
8
- @attrs = {name: 'Site 1'}
8
+ @attrs = {:name => 'Site 1'}
9
9
  @report = Perfecta::Site.new @attrs
10
10
  end
11
11
 
data/test/test_helper.rb CHANGED
@@ -1,6 +1,10 @@
1
1
  $:.unshift(File.join(File.dirname(__FILE__),'..','lib'))
2
2
 
3
- require 'minitest/spec'
3
+ require 'rubygems'
4
4
  require 'minitest/autorun'
5
+ require 'minitest/spec'
5
6
  require 'mocha/setup'
6
7
  require 'perfecta'
8
+
9
+ require 'coveralls'
10
+ Coveralls.wear!
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.2.1
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: 2013-03-24 00:00:00.000000000 Z
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
- - .gitignore
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: 1.8.23
149
+ rubygems_version: 2.0.3
114
150
  signing_key:
115
- specification_version: 3
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: