ruby-pardot 1.0 → 1.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9b5a3bceaeff6bb81efc73dfc2ee2fb51e3fce2e
4
+ data.tar.gz: cdc11f89e0415c6b3d0484d7fe67147a3b8a087e
5
+ SHA512:
6
+ metadata.gz: 69f994887ac58cf22de6f963d1793f4dfb0ba35cb3adedc4d3baf3fcabd766ce187bb31047de526545488cbe951c7e31d29872bfe75d5029a675254c7fe60817
7
+ data.tar.gz: 013ffa24e4853541125c89bcb08c90ce88de3db3a0cd2475fba4bc787682f1e8fd1a9e91550cc1ea702e74c282b8b818e2fa254cba29699a0471a612cc108b16
@@ -1,18 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-pardot (1.0)
4
+ ruby-pardot (1.0.2)
5
5
  crack
6
6
  httparty
7
7
 
8
8
  GEM
9
9
  remote: http://rubygems.org/
10
10
  specs:
11
- crack (0.1.8)
11
+ crack (0.4.2)
12
+ safe_yaml (~> 1.0.0)
12
13
  diff-lcs (1.1.2)
13
14
  fakeweb (1.3.0)
14
- httparty (0.7.4)
15
- crack (= 0.1.8)
15
+ httparty (0.13.1)
16
+ json (~> 1.8)
17
+ multi_xml (>= 0.5.2)
18
+ json (1.8.1)
19
+ multi_xml (0.5.5)
16
20
  rspec (2.5.0)
17
21
  rspec-core (~> 2.5.0)
18
22
  rspec-expectations (~> 2.5.0)
@@ -21,6 +25,7 @@ GEM
21
25
  rspec-expectations (2.5.0)
22
26
  diff-lcs (~> 1.1.2)
23
27
  rspec-mocks (2.5.0)
28
+ safe_yaml (1.0.3)
24
29
 
25
30
  PLATFORMS
26
31
  ruby
@@ -20,6 +20,7 @@ The client will authenticate before performing other API calls, but you can manu
20
20
 
21
21
  The available objects are:
22
22
 
23
+ * emails
23
24
  * lists
24
25
  * opportunities
25
26
  * prospects
@@ -54,6 +55,15 @@ http://developer.pardot.com/kb/api-version-3/using-prospects
54
55
  puts "#{key} is #{value}"
55
56
  end
56
57
 
58
+ === Emails
59
+
60
+ See each individual call's [API reference page](http://developer.pardot.com/kb/api-version-3/introduction-table-of-contents).
61
+
62
+ # Sample usage
63
+ @pardot.emails.read_by_id(email_id)
64
+ @pardot.emails.send_to_list(:email_template_id => template_id, 'list_ids[]' => list_id, :campaign_id => campaign_id)
65
+ @pardot.emails.send_to_prospect(prospect_id, :campaign_id => campaign_id, :email_template_id => template_id)
66
+
57
67
  === Output formats
58
68
 
59
69
  client.format = "simple" # default
@@ -79,4 +89,21 @@ Performing API calls across the internet is inherently unsafe, so be sure to cat
79
89
  # - socket broke before the request was completed
80
90
  # - pi.pardot.com is under heavy load
81
91
  # - many number of other reasons
82
- end
92
+ end
93
+
94
+ === License
95
+ The MIT License (MIT)
96
+ Copyright (c) 2012 Pardot
97
+
98
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
99
+ files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
100
+ modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
101
+ Software is furnished to do so, subject to the following conditions:
102
+
103
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
104
+ Software.
105
+
106
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
107
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
108
+ COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
109
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -3,7 +3,7 @@ module Pardot
3
3
 
4
4
  def authenticate
5
5
  resp = post "login", nil, :email => @email, :password => @password, :user_key => @user_key
6
- @api_key = resp["api_key"]
6
+ @api_key = resp && resp["api_key"]
7
7
  end
8
8
 
9
9
  def authenticated?
@@ -1,32 +1,35 @@
1
1
  module Pardot
2
-
2
+
3
3
  class Client
4
-
4
+
5
5
  include HTTParty
6
6
  base_uri 'https://pi.pardot.com'
7
7
  format :xml
8
-
8
+
9
9
  include Authentication
10
10
  include Http
11
11
 
12
+ include Objects::Emails
12
13
  include Objects::Lists
14
+ include Objects::ListMemberships
13
15
  include Objects::Opportunities
14
16
  include Objects::Prospects
17
+ include Objects::ProspectAccounts
15
18
  include Objects::Users
16
19
  include Objects::Visitors
17
20
  include Objects::Visits
18
21
  include Objects::VisitorActivities
19
-
22
+
20
23
  attr_accessor :email, :password, :user_key, :api_key, :format
21
-
24
+
22
25
  def initialize email, password, user_key
23
26
  @email = email
24
27
  @password = password
25
28
  @user_key = user_key
26
-
29
+
27
30
  @format = "simple"
28
31
  end
29
-
30
-
32
+
33
+
31
34
  end
32
35
  end
@@ -1,8 +1,23 @@
1
1
  module Pardot
2
-
3
2
  class Error < StandardError; end
4
3
  class NetError < Error; end
5
- class ResponseError < Error; end
6
4
  class ExpiredApiKeyError < Error; end
7
-
5
+
6
+ class ResponseError < Error
7
+ def initialize(res)
8
+ @res = res
9
+ end
10
+
11
+ def to_s
12
+ @res["__content__"]
13
+ end
14
+
15
+ def code
16
+ @res["code"].to_i
17
+ end
18
+
19
+ def inspect
20
+ @res.inspect.to_s
21
+ end
22
+ end
8
23
  end
@@ -9,7 +9,7 @@ module Pardot
9
9
  rescue Pardot::ExpiredApiKeyError => e
10
10
  handle_expired_api_key :get, object, path, params, num_retries, e
11
11
 
12
- rescue SocketError, Interrupt, EOFError, SystemCallError => e
12
+ rescue SocketError, Interrupt, EOFError, SystemCallError, Timeout::Error, MultiXml::ParseError => e
13
13
  raise Pardot::NetError.new(e)
14
14
  end
15
15
 
@@ -21,7 +21,7 @@ module Pardot
21
21
  rescue Pardot::ExpiredApiKeyError => e
22
22
  handle_expired_api_key :post, object, path, params, num_retries, e
23
23
 
24
- rescue SocketError, Interrupt, EOFError, SystemCallError => e
24
+ rescue SocketError, Interrupt, EOFError, SystemCallError, Timeout::Error, MultiXml::ParseError => e
25
25
  raise Pardot::NetError.new(e)
26
26
  end
27
27
 
@@ -47,8 +47,9 @@ module Pardot
47
47
 
48
48
  error = rsp["err"] if rsp
49
49
  error ||= "Unknown Failure: #{rsp.inspect}" if rsp && rsp["stat"] == "fail"
50
+ content = error['__content__'] if error.is_a?(Hash)
50
51
 
51
- if error == "Invalid API key or user key" && @api_key
52
+ if [error, content].include?("Invalid API key or user key") && @api_key
52
53
  raise ExpiredApiKeyError.new @api_key
53
54
  end
54
55
 
@@ -0,0 +1,44 @@
1
+ module Pardot
2
+ module Objects
3
+
4
+ module Emails
5
+
6
+ def emails
7
+ @emails ||= Emails.new self
8
+ end
9
+
10
+ class Emails
11
+
12
+ def initialize client
13
+ @client = client
14
+ end
15
+
16
+ def read_by_id id
17
+ get "/do/read/id/#{id}"
18
+ end
19
+
20
+ def send_to_prospect prospect_id, params
21
+ post "/do/send/prospect_id/#{prospect_id}", params
22
+ end
23
+
24
+ def send_to_list params
25
+ post "/do/send", params
26
+ end
27
+
28
+ protected
29
+
30
+ def get path, params = {}, result = "email"
31
+ response = @client.get "email", path, params
32
+ result ? response[result] : response
33
+ end
34
+
35
+ def post path, params = {}, result = "email"
36
+ response = @client.post "email", path, params
37
+ result ? response[result] : response
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,36 @@
1
+ module Pardot
2
+ module Objects
3
+ module ListMemberships
4
+
5
+ def list_memberships
6
+ @list_memberships ||= ListMemberships.new self
7
+ end
8
+
9
+ class ListMemberships
10
+
11
+ def initialize client
12
+ @client = client
13
+ end
14
+
15
+ def query params
16
+ result = get "/do/query", params, "result"
17
+ result["total_results"] = result["total_results"].to_i if result["total_results"]
18
+ result
19
+ end
20
+
21
+ def read_by_id id, params = {}
22
+ get "/do/read/id/#{id}", params
23
+ end
24
+
25
+ protected
26
+
27
+ def get path, params = {}, result = "listMembership"
28
+ response = @client.get "listMembership", path, params
29
+ result ? response[result] : response
30
+ end
31
+
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,55 @@
1
+ module Pardot
2
+ module Objects
3
+ module ProspectAccounts
4
+ def prospect_accounts
5
+ @prospect_accounts ||= ProspectAccounts.new self
6
+ end
7
+
8
+ class ProspectAccounts
9
+
10
+ def initialize(client)
11
+ @client = client
12
+ end
13
+
14
+ def query(search_criteria)
15
+ result = get '/do/query', search_criteria, 'result'
16
+ result['total_results'] = result['total_results'].to_i if
17
+ result['total_results']
18
+ result
19
+ end
20
+
21
+ def describe(params={})
22
+ post('/do/describe', params)
23
+ end
24
+
25
+ def create(params={})
26
+ post('/do/create', params)
27
+ end
28
+
29
+ # read_by_id
30
+ # update_by_id
31
+ [:read, :update].each do |verb|
32
+ define_method(verb) do |id, params={}|
33
+ post(api_url(verb, 'id', id), params)
34
+ end
35
+ end
36
+
37
+ private
38
+
39
+ def api_url(verb, direct_to, value)
40
+ "/do/#{verb}/#{direct_to}/#{value}"
41
+ end
42
+
43
+ def get(path, params={}, result='prospectAccount')
44
+ response = @client.get('prospectAccount', path, params)
45
+ result ? response[result] : response
46
+ end
47
+
48
+ def post(path, params={}, result='prospectAccount')
49
+ response = @client.post('prospectAccount', path, params)
50
+ result ? response[result] : response
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -1,3 +1,3 @@
1
1
  module Pardot
2
- VERSION = "1.0"
2
+ VERSION = "1.0.2"
3
3
  end
@@ -6,9 +6,12 @@ require 'pardot/http'
6
6
  require 'pardot/error'
7
7
  require 'pardot/authentication'
8
8
 
9
+ require 'pardot/objects/emails'
9
10
  require 'pardot/objects/lists'
11
+ require 'pardot/objects/list_memberships'
10
12
  require 'pardot/objects/opportunities'
11
13
  require 'pardot/objects/prospects'
14
+ require 'pardot/objects/prospect_accounts'
12
15
  require 'pardot/objects/users'
13
16
  require 'pardot/objects/visitors'
14
17
  require 'pardot/objects/visitor_activities'
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+ describe Pardot::ResponseError do
3
+ before do
4
+ @res = {
5
+ "code" => "9",
6
+ "__content__" => "A prospect with the specified email address already exists"
7
+ }
8
+ end
9
+
10
+ describe '#code' do
11
+ subject do
12
+ described_class.new(@res).code
13
+ end
14
+ specify do
15
+ should == 9
16
+ end
17
+ end
18
+
19
+ describe '#to_s, #message' do
20
+ subject do
21
+ described_class.new(@res)
22
+ end
23
+ specify do
24
+ subject.to_s.should == @res["__content__"]
25
+ end
26
+ specify do
27
+ subject.message.should == @res["__content__"]
28
+ end
29
+ end
30
+
31
+ describe '#inspect' do
32
+ subject do
33
+ described_class.new(@res).inspect
34
+ end
35
+ specify do
36
+ should == @res.to_s
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,36 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe Pardot::Objects::Emails do
4
+
5
+ before do
6
+ @client = create_client
7
+ end
8
+
9
+ def sample_response
10
+ %(<?xml version="1.0" encoding="UTF-8"?>\n<rsp stat="ok" version="1.0">
11
+ <email>
12
+ <name>My Email</name>
13
+ </email>
14
+ </rsp>)
15
+ end
16
+
17
+ before do
18
+ @client = create_client
19
+ end
20
+
21
+ it "should take in the email ID" do
22
+ fake_get "/api/email/version/3/do/read/id/12?user_key=bar&api_key=my_api_key&format=simple", sample_response
23
+ @client.emails.read_by_id(12).should == {"name" => "My Email"}
24
+ end
25
+
26
+ it 'should send to a prospect' do
27
+ fake_post '/api/email/version/3/do/send/prospect_id/42?campaign_id=765&email_template_id=86&user_key=bar&api_key=my_api_key&format=simple', sample_response
28
+ @client.emails.send_to_prospect(42, :campaign_id => 765, :email_template_id => 86).should == {"name" => "My Email"}
29
+ end
30
+
31
+ it 'should send to a list' do
32
+ fake_post '/api/email/version/3/do/send?email_template_id=200&list_ids[]=235&campaign_id=654&user_key=bar&api_key=my_api_key&format=simple', sample_response
33
+ @client.emails.send_to_list(:email_template_id => 200, 'list_ids[]' => 235, :campaign_id => 654).should == {"name" => "My Email"}
34
+ end
35
+
36
+ end
@@ -0,0 +1,78 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
+
3
+ describe Pardot::Objects::ProspectAccounts do
4
+
5
+ before do
6
+ @client = create_client
7
+ end
8
+
9
+ describe "query" do
10
+
11
+ def sample_results
12
+ %(<?xml version="1.0" encoding="UTF-8"?>
13
+ <rsp stat="ok" version="1.0">
14
+ <result>
15
+ <total_results>2</total_results>
16
+ <prospectAccount>
17
+ <name>Spaceships R Us</name>
18
+ </prospectAccount>
19
+ <prospectAccount>
20
+ <name>Monsters Inc</name>
21
+ </prospectAccount>
22
+ </result>
23
+ </rsp>)
24
+ end
25
+
26
+ it "should take in some arguments and respond with valid items" do
27
+ fake_get "/api/prospectAccount/version/3/do/query?assigned=true&format=simple&user_key=bar&api_key=my_api_key", sample_results
28
+
29
+ @client.prospect_accounts.query(:assigned => true).should == {'total_results' => 2,
30
+ 'prospectAccount'=>[
31
+ {'name'=>'Spaceships R Us'},
32
+ {'name'=>'Monsters Inc'}
33
+ ]}
34
+ end
35
+
36
+ end
37
+
38
+ describe 'read' do
39
+ def sample_results
40
+ %(<?xml version="1.0" encoding="UTF-8"?>
41
+ <rsp stat="ok" version="1.0">
42
+ <prospectAccount>
43
+ <id>1234</id>
44
+ <name>SupaDupaPanda</name>
45
+ </prospectAccount>
46
+ </rsp>)
47
+ end
48
+
49
+ it 'should return a valid account' do
50
+ fake_post '/api/prospectAccount/version/3/do/read/id/1234?assigned=true&format=simple&user_key=bar&api_key=my_api_key', sample_results
51
+
52
+ @client.prospect_accounts.read('1234', :assigned => true).should == {'id' => '1234', 'name' => 'SupaDupaPanda' }
53
+ end
54
+
55
+ end
56
+
57
+
58
+ describe 'create' do
59
+
60
+ def sample_results
61
+ %(<?xml version="1.0" encoding="UTF-8"?>
62
+ <rsp stat="ok" version="1.0">
63
+ <prospectAccount>
64
+ <name>SuperPanda</name>
65
+ </prospectAccount>
66
+ </rsp>)
67
+ end
68
+
69
+ it 'should return the prospect account' do
70
+ fake_post '/api/prospectAccount/version/3/do/create?api_key=my_api_key&user_key=bar&format=simple&name=SuperPanda', sample_results
71
+
72
+ @client.prospect_accounts.create(:name => 'SuperPanda').should == {"name"=>"SuperPanda"}
73
+
74
+ end
75
+
76
+ end
77
+
78
+ end
@@ -8,4 +8,4 @@ require 'httparty'
8
8
 
9
9
  require 'ruby-pardot'
10
10
 
11
- Dir[File.join("spec/support/**/*.rb")].each {|f| require f}
11
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
metadata CHANGED
@@ -1,71 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-pardot
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.0'
5
- prerelease:
4
+ version: 1.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dan Cunning
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2011-12-15 00:00:00.000000000 Z
11
+ date: 2016-08-15 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: crack
16
- requirement: &70243888377720 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70243888377720
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: httparty
27
- requirement: &70243888377000 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: '0'
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *70243888377000
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: bundler
38
- requirement: &70243888376480 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ! '>='
45
+ - - ">="
42
46
  - !ruby/object:Gem::Version
43
47
  version: 1.0.0
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *70243888376480
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.0
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: rspec
49
- requirement: &70243888375960 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ! '>='
59
+ - - ">="
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *70243888375960
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: fakeweb
60
- requirement: &70243888375480 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ! '>='
73
+ - - ">="
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *70243888375480
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  description: Library for interacting with the Pardot API
70
84
  email:
71
85
  - support@pardot.com
@@ -73,8 +87,8 @@ executables: []
73
87
  extensions: []
74
88
  extra_rdoc_files: []
75
89
  files:
76
- - .gitignore
77
- - .rspec
90
+ - ".gitignore"
91
+ - ".rspec"
78
92
  - Gemfile
79
93
  - Gemfile.lock
80
94
  - README.rdoc
@@ -83,8 +97,11 @@ files:
83
97
  - lib/pardot/client.rb
84
98
  - lib/pardot/error.rb
85
99
  - lib/pardot/http.rb
100
+ - lib/pardot/objects/emails.rb
101
+ - lib/pardot/objects/list_memberships.rb
86
102
  - lib/pardot/objects/lists.rb
87
103
  - lib/pardot/objects/opportunities.rb
104
+ - lib/pardot/objects/prospect_accounts.rb
88
105
  - lib/pardot/objects/prospects.rb
89
106
  - lib/pardot/objects/users.rb
90
107
  - lib/pardot/objects/visitor_activities.rb
@@ -94,9 +111,12 @@ files:
94
111
  - lib/ruby-pardot.rb
95
112
  - ruby-pardot.gemspec
96
113
  - spec/pardot/authentication_spec.rb
114
+ - spec/pardot/error_spec.rb
97
115
  - spec/pardot/http_spec.rb
116
+ - spec/pardot/objects/emails_spec.rb
98
117
  - spec/pardot/objects/lists_spec.rb
99
118
  - spec/pardot/objects/opportunities_spec.rb
119
+ - spec/pardot/objects/prospect_accounts_spec.rb
100
120
  - spec/pardot/objects/prospects_spec.rb
101
121
  - spec/pardot/objects/users_spec.rb
102
122
  - spec/pardot/objects/visitor_activities_spec.rb
@@ -107,26 +127,25 @@ files:
107
127
  - spec/support/fakeweb.rb
108
128
  homepage: http://github.com/pardot/ruby-pardot
109
129
  licenses: []
130
+ metadata: {}
110
131
  post_install_message:
111
132
  rdoc_options: []
112
133
  require_paths:
113
134
  - lib
114
135
  required_ruby_version: !ruby/object:Gem::Requirement
115
- none: false
116
136
  requirements:
117
- - - ! '>='
137
+ - - ">="
118
138
  - !ruby/object:Gem::Version
119
139
  version: '0'
120
140
  required_rubygems_version: !ruby/object:Gem::Requirement
121
- none: false
122
141
  requirements:
123
- - - ! '>='
142
+ - - ">="
124
143
  - !ruby/object:Gem::Version
125
144
  version: 1.3.6
126
145
  requirements: []
127
146
  rubyforge_project: ruby-pardot
128
- rubygems_version: 1.8.12
147
+ rubygems_version: 2.4.6
129
148
  signing_key:
130
- specification_version: 3
149
+ specification_version: 4
131
150
  summary: Library for interacting with the Pardot API
132
151
  test_files: []