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 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: