ruby-pardot 1.2.0 → 1.4.1

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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +9 -0
  4. data/Gemfile +3 -1
  5. data/Gemfile.lock +26 -19
  6. data/README.rdoc +23 -18
  7. data/Rakefile +2 -3
  8. data/lib/pardot/authentication.rb +23 -12
  9. data/lib/pardot/client.rb +18 -6
  10. data/lib/pardot/error.rb +6 -2
  11. data/lib/pardot/http.rb +51 -41
  12. data/lib/pardot/objects/custom_fields.rb +33 -0
  13. data/lib/pardot/objects/emails.rb +9 -14
  14. data/lib/pardot/objects/list_memberships.rb +8 -12
  15. data/lib/pardot/objects/lists.rb +20 -25
  16. data/lib/pardot/objects/opportunities.rb +21 -26
  17. data/lib/pardot/objects/prospect_accounts.rb +6 -7
  18. data/lib/pardot/objects/prospects.rb +69 -71
  19. data/lib/pardot/objects/users.rb +17 -21
  20. data/lib/pardot/objects/visitor_activities.rb +15 -19
  21. data/lib/pardot/objects/visitors.rb +17 -21
  22. data/lib/pardot/objects/visits.rb +15 -19
  23. data/lib/pardot/version.rb +1 -1
  24. data/lib/ruby-pardot.rb +1 -0
  25. data/ruby-pardot.gemspec +15 -13
  26. data/spec/pardot/authentication_spec.rb +84 -50
  27. data/spec/pardot/client_spec.rb +52 -17
  28. data/spec/pardot/error_spec.rb +6 -4
  29. data/spec/pardot/http_spec.rb +96 -104
  30. data/spec/pardot/objects/custom_fields_spec.rb +53 -0
  31. data/spec/pardot/objects/emails_spec.rb +34 -33
  32. data/spec/pardot/objects/lists_spec.rb +34 -37
  33. data/spec/pardot/objects/opportunities_spec.rb +59 -60
  34. data/spec/pardot/objects/prospect_accounts_spec.rb +72 -73
  35. data/spec/pardot/objects/prospects_spec.rb +58 -57
  36. data/spec/pardot/objects/users_spec.rb +58 -60
  37. data/spec/pardot/objects/visitor_activities_spec.rb +57 -60
  38. data/spec/pardot/objects/visitors_spec.rb +56 -60
  39. data/spec/pardot/objects/visits_spec.rb +56 -60
  40. data/spec/spec_helper.rb +2 -0
  41. data/spec/support/client_support.rb +40 -4
  42. data/spec/support/fakeweb.rb +14 -5
  43. metadata +17 -18
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rubygems'
2
4
  require 'cgi'
3
5
  require 'tempfile'
@@ -1,6 +1,42 @@
1
+ # frozen_string_literal: true
1
2
 
2
- def create_client
3
- @client = Pardot::Client.new "user@test.com", "foo", "bar"
4
- @client.api_key = "my_api_key"
5
- @client
3
+ def create_auth_managers
4
+ [UsernamePasswordAuthManager.new, SalesforceAccessTokenAuthManager.new]
5
+ end
6
+
7
+ class UsernamePasswordAuthManager
8
+ attr_accessor :test_name_suffix, :expected_authorization_header
9
+
10
+ def initialize
11
+ @test_name_suffix = 'With UsernamePassword Auth'
12
+ @expected_authorization_header = 'Pardot api_key=my_api_key, user_key=bar'
13
+ end
14
+
15
+ def create_client
16
+ client = Pardot::Client.new 'user@test.com', 'foo', 'bar'
17
+ client.api_key = 'my_api_key'
18
+ client
19
+ end
20
+
21
+ def has_business_unit_id_header?
22
+ false
23
+ end
24
+ end
25
+
26
+ class SalesforceAccessTokenAuthManager
27
+ attr_accessor :test_name_suffix, :expected_authorization_header, :expected_business_unit_id_header
28
+
29
+ def initialize
30
+ @test_name_suffix = 'With Salesforce OAuth'
31
+ @expected_authorization_header = 'Bearer access_token_value'
32
+ @expected_business_unit_id_header = '0Uv000000000001CAA'
33
+ end
34
+
35
+ def create_client
36
+ Pardot::Client.new nil, nil, nil, 3, 'access_token_value', '0Uv000000000001CAA'
37
+ end
38
+
39
+ def has_business_unit_id_header?
40
+ false
41
+ end
6
42
  end
@@ -1,14 +1,23 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'fakeweb'
2
4
  FakeWeb.allow_net_connect = false
3
5
 
4
- def fake_post path, response
5
- FakeWeb.register_uri(:post, "https://pi.pardot.com#{path}", :body => response)
6
+ def fake_post(path, response)
7
+ FakeWeb.register_uri(:post, "https://pi.pardot.com#{path}", body: response)
6
8
  end
7
9
 
8
- def fake_get path, response
9
- FakeWeb.register_uri(:get, "https://pi.pardot.com#{path}", :body => response)
10
+ def fake_get(path, response)
11
+ FakeWeb.register_uri(:get, "https://pi.pardot.com#{path}", body: response)
10
12
  end
11
13
 
12
- def fake_authenticate client, api_key
14
+ def fake_authenticate(client, api_key)
13
15
  client.api_key = api_key
14
16
  end
17
+
18
+ def assert_authorization_header(auth_manager)
19
+ expect(FakeWeb.last_request[:authorization]).to eq(auth_manager.expected_authorization_header)
20
+ if auth_manager.has_business_unit_id_header?
21
+ expect(FakeWeb.last_request['Business-Unit-Id']).to eq(auth_manager.expected_business_unit_id_header)
22
+ end
23
+ end
metadata CHANGED
@@ -1,16 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-pardot
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dan Cunning
8
- - Chris Little
9
- - Justin Roberts
10
8
  autorequire:
11
9
  bindir: bin
12
10
  cert_chain: []
13
- date: 2019-02-08 00:00:00.000000000 Z
11
+ date: 2021-06-10 00:00:00.000000000 Z
14
12
  dependencies:
15
13
  - !ruby/object:Gem::Dependency
16
14
  name: crack
@@ -32,14 +30,14 @@ dependencies:
32
30
  requirements:
33
31
  - - '='
34
32
  - !ruby/object:Gem::Version
35
- version: 0.13.1
33
+ version: 0.18.1
36
34
  type: :runtime
37
35
  prerelease: false
38
36
  version_requirements: !ruby/object:Gem::Requirement
39
37
  requirements:
40
38
  - - '='
41
39
  - !ruby/object:Gem::Version
42
- version: 0.13.1
40
+ version: 0.18.1
43
41
  - !ruby/object:Gem::Dependency
44
42
  name: bundler
45
43
  requirement: !ruby/object:Gem::Requirement
@@ -58,41 +56,40 @@ dependencies:
58
56
  name: rspec
59
57
  requirement: !ruby/object:Gem::Requirement
60
58
  requirements:
61
- - - ">="
59
+ - - '='
62
60
  - !ruby/object:Gem::Version
63
- version: '0'
61
+ version: 3.5.0
64
62
  type: :development
65
63
  prerelease: false
66
64
  version_requirements: !ruby/object:Gem::Requirement
67
65
  requirements:
68
- - - ">="
66
+ - - '='
69
67
  - !ruby/object:Gem::Version
70
- version: '0'
68
+ version: 3.5.0
71
69
  - !ruby/object:Gem::Dependency
72
70
  name: fakeweb
73
71
  requirement: !ruby/object:Gem::Requirement
74
72
  requirements:
75
- - - ">="
73
+ - - '='
76
74
  - !ruby/object:Gem::Version
77
- version: '0'
75
+ version: 1.3.0
78
76
  type: :development
79
77
  prerelease: false
80
78
  version_requirements: !ruby/object:Gem::Requirement
81
79
  requirements:
82
- - - ">="
80
+ - - '='
83
81
  - !ruby/object:Gem::Version
84
- version: '0'
82
+ version: 1.3.0
85
83
  description: Library for interacting with the Pardot API
86
84
  email:
87
85
  - support@pardot.com
88
- - chris.little@salesforce.com
89
- - justin.roberts@salesforce.com
90
86
  executables: []
91
87
  extensions: []
92
88
  extra_rdoc_files: []
93
89
  files:
94
90
  - ".gitignore"
95
91
  - ".rspec"
92
+ - ".rubocop.yml"
96
93
  - Gemfile
97
94
  - Gemfile.lock
98
95
  - README.rdoc
@@ -101,6 +98,7 @@ files:
101
98
  - lib/pardot/client.rb
102
99
  - lib/pardot/error.rb
103
100
  - lib/pardot/http.rb
101
+ - lib/pardot/objects/custom_fields.rb
104
102
  - lib/pardot/objects/emails.rb
105
103
  - lib/pardot/objects/list_memberships.rb
106
104
  - lib/pardot/objects/lists.rb
@@ -118,6 +116,7 @@ files:
118
116
  - spec/pardot/client_spec.rb
119
117
  - spec/pardot/error_spec.rb
120
118
  - spec/pardot/http_spec.rb
119
+ - spec/pardot/objects/custom_fields_spec.rb
121
120
  - spec/pardot/objects/emails_spec.rb
122
121
  - spec/pardot/objects/lists_spec.rb
123
122
  - spec/pardot/objects/opportunities_spec.rb
@@ -141,14 +140,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
141
140
  requirements:
142
141
  - - ">="
143
142
  - !ruby/object:Gem::Version
144
- version: '0'
143
+ version: '2.6'
145
144
  required_rubygems_version: !ruby/object:Gem::Requirement
146
145
  requirements:
147
146
  - - ">="
148
147
  - !ruby/object:Gem::Version
149
148
  version: 1.3.6
150
149
  requirements: []
151
- rubygems_version: 3.0.2
150
+ rubygems_version: 3.0.3
152
151
  signing_key:
153
152
  specification_version: 4
154
153
  summary: Library for interacting with the Pardot API