drip-ruby 3.2.0 → 3.4.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.
Files changed (104) hide show
  1. checksums.yaml +5 -5
  2. data/.github/pull_request_template.md +39 -0
  3. data/.rubocop.yml +5 -1
  4. data/.rubocop_todo.yml +17 -9
  5. data/.travis.yml +2 -4
  6. data/CHANGELOG.md +51 -1
  7. data/Gemfile +12 -0
  8. data/README.md +6 -0
  9. data/Rakefile +2 -0
  10. data/drip-ruby.gemspec +4 -11
  11. data/lib/drip.rb +2 -0
  12. data/lib/drip/client.rb +48 -66
  13. data/lib/drip/client/accounts.rb +4 -2
  14. data/lib/drip/client/broadcasts.rb +4 -2
  15. data/lib/drip/client/campaign_subscriptions.rb +3 -1
  16. data/lib/drip/client/campaigns.rb +7 -5
  17. data/lib/drip/client/configuration.rb +30 -0
  18. data/lib/drip/client/conversions.rb +4 -2
  19. data/lib/drip/client/custom_fields.rb +3 -1
  20. data/lib/drip/client/events.rb +6 -4
  21. data/lib/drip/client/forms.rb +4 -2
  22. data/lib/drip/client/http_client.rb +66 -0
  23. data/lib/drip/client/orders.rb +5 -3
  24. data/lib/drip/client/shopper_activity.rb +80 -0
  25. data/lib/drip/client/subscribers.rb +30 -16
  26. data/lib/drip/client/tags.rb +5 -3
  27. data/lib/drip/client/users.rb +17 -0
  28. data/lib/drip/client/webhooks.rb +7 -5
  29. data/lib/drip/client/workflow_triggers.rb +5 -3
  30. data/lib/drip/client/workflows.rb +8 -6
  31. data/lib/drip/collection.rb +2 -0
  32. data/lib/drip/collections.rb +2 -0
  33. data/lib/drip/collections/accounts.rb +2 -0
  34. data/lib/drip/collections/broadcasts.rb +2 -0
  35. data/lib/drip/collections/campaign_subscriptions.rb +2 -0
  36. data/lib/drip/collections/campaigns.rb +2 -0
  37. data/lib/drip/collections/errors.rb +2 -0
  38. data/lib/drip/collections/orders.rb +2 -0
  39. data/lib/drip/collections/purchases.rb +2 -0
  40. data/lib/drip/collections/subscribers.rb +2 -0
  41. data/lib/drip/collections/tags.rb +2 -0
  42. data/lib/drip/collections/webhooks.rb +2 -0
  43. data/lib/drip/collections/workflow_triggers.rb +2 -0
  44. data/lib/drip/collections/workflows.rb +2 -0
  45. data/lib/drip/errors.rb +2 -0
  46. data/lib/drip/request.rb +33 -0
  47. data/lib/drip/resource.rb +2 -0
  48. data/lib/drip/resources.rb +2 -0
  49. data/lib/drip/resources/account.rb +2 -0
  50. data/lib/drip/resources/broadcast.rb +2 -0
  51. data/lib/drip/resources/campaign.rb +2 -0
  52. data/lib/drip/resources/campaign_subscription.rb +2 -0
  53. data/lib/drip/resources/error.rb +2 -0
  54. data/lib/drip/resources/order.rb +2 -0
  55. data/lib/drip/resources/purchase.rb +2 -0
  56. data/lib/drip/resources/subscriber.rb +2 -0
  57. data/lib/drip/resources/tag.rb +2 -0
  58. data/lib/drip/resources/webhook.rb +2 -0
  59. data/lib/drip/resources/workflow.rb +2 -0
  60. data/lib/drip/resources/workflow_trigger.rb +2 -0
  61. data/lib/drip/response.rb +15 -13
  62. data/lib/drip/version.rb +3 -1
  63. data/test/drip/client/accounts_test.rb +2 -0
  64. data/test/drip/client/broadcasts_test.rb +2 -0
  65. data/test/drip/client/campaign_subscriptions_test.rb +2 -0
  66. data/test/drip/client/campaigns_test.rb +2 -0
  67. data/test/drip/client/configuration_test.rb +112 -0
  68. data/test/drip/client/conversions_test.rb +2 -0
  69. data/test/drip/client/custom_fields_test.rb +2 -0
  70. data/test/drip/client/events_test.rb +2 -0
  71. data/test/drip/client/forms_test.rb +2 -0
  72. data/test/drip/client/http_client_test.rb +98 -0
  73. data/test/drip/client/orders_test.rb +2 -0
  74. data/test/drip/client/shopper_activity_test.rb +189 -0
  75. data/test/drip/client/subscribers_test.rb +8 -0
  76. data/test/drip/client/tags_test.rb +2 -0
  77. data/test/drip/client/users_test.rb +24 -0
  78. data/test/drip/client/webhooks_test.rb +2 -0
  79. data/test/drip/client/workflow_triggers_test.rb +2 -0
  80. data/test/drip/client/workflows_test.rb +2 -0
  81. data/test/drip/client_test.rb +34 -97
  82. data/test/drip/collection_test.rb +16 -0
  83. data/test/drip/collections/account_test.rb +10 -0
  84. data/test/drip/collections/broadcasts_test.rb +10 -0
  85. data/test/drip/collections/campaign_subscriptions_test.rb +10 -0
  86. data/test/drip/collections/campaigns_test.rb +10 -0
  87. data/test/drip/collections/errors_test.rb +10 -0
  88. data/test/drip/collections/orders_test.rb +10 -0
  89. data/test/drip/collections/purchases_test.rb +10 -0
  90. data/test/drip/collections/tags_test.rb +10 -0
  91. data/test/drip/collections/webhooks_test.rb +10 -0
  92. data/test/drip/collections/workflow_triggers_test.rb +10 -0
  93. data/test/drip/collections/workflows_test.rb +10 -0
  94. data/test/drip/collections_test.rb +2 -0
  95. data/test/drip/request_test.rb +60 -0
  96. data/test/drip/resource_test.rb +14 -0
  97. data/test/drip/resources/account_test.rb +2 -0
  98. data/test/drip/resources/order_test.rb +2 -0
  99. data/test/drip/resources/subscriber_test.rb +2 -0
  100. data/test/drip/resources/tag_test.rb +15 -0
  101. data/test/drip/resources_test.rb +2 -0
  102. data/test/drip/response_test.rb +35 -0
  103. data/test/test_helper.rb +5 -0
  104. metadata +50 -109
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.dirname(__FILE__) + '/../test_helper.rb'
2
4
 
3
5
  class Drip::ResourceTest < Drip::TestCase
@@ -19,4 +21,16 @@ class Drip::ResourceTest < Drip::TestCase
19
21
  resource = TestResource.new("created_at" => "2015-06-15T10:00:00Z")
20
22
  assert_equal Time.utc(2015, 6, 15, 10, 0, 0), resource.created_at
21
23
  end
24
+
25
+ context ".resource_name" do
26
+ should "return default value" do
27
+ assert_equal "resource", Drip::Resource.resource_name
28
+ end
29
+ end
30
+
31
+ context "#singular?" do
32
+ should "return default value" do
33
+ assert_equal true, Drip::Resource.new({}).singular?
34
+ end
35
+ end
22
36
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.dirname(__FILE__) + '/../../test_helper.rb'
2
4
 
3
5
  class Drip::AccountTest < Drip::TestCase
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.dirname(__FILE__) + '/../../test_helper.rb'
2
4
 
3
5
  class Drip::OrderTest < Drip::TestCase
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.dirname(__FILE__) + '/../../test_helper.rb'
2
4
 
3
5
  class Drip::SubscriberTest < Drip::TestCase
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.dirname(__FILE__) + '/../../test_helper.rb'
4
+ require "drip/resources/tag"
5
+
6
+ class Drip::TagTest < Drip::TestCase
7
+ should "have a resource name" do
8
+ assert_equal "tag", Drip::Tag.resource_name
9
+ end
10
+
11
+ should "accept data" do
12
+ tag = Drip::Tag.new({ attr1: "hello" })
13
+ assert_equal "hello", tag.attributes[:attr1]
14
+ end
15
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.dirname(__FILE__) + '/../test_helper.rb'
2
4
 
3
5
  class Drip::ResourcesTest < Drip::TestCase
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.dirname(__FILE__) + '/../test_helper.rb'
2
4
 
3
5
  class Drip::ResponseTest < Drip::TestCase
@@ -120,6 +122,23 @@ class Drip::ResponseTest < Drip::TestCase
120
122
  assert @subject.subscribers.is_a?(Drip::Subscribers)
121
123
  assert_equal 1, @subject.subscribers.count
122
124
  end
125
+
126
+ should "parse resource" do
127
+ body = { "subscriber" => @members[0] }
128
+ subject = Drip::Response.new(200, body)
129
+ assert_equal "john@acme.com", subject.subscriber.email
130
+ end
131
+
132
+ context "with v3 response" do
133
+ setup do
134
+ @body = { "request_id" => "9f119d4b-893a-4279-adb2-c920b6c2034b" }
135
+ @subject = Drip::Response.new(200, @body)
136
+ end
137
+
138
+ should "be accessible via method call" do
139
+ assert_equal "9f119d4b-893a-4279-adb2-c920b6c2034b", @subject.request_id
140
+ end
141
+ end
123
142
  end
124
143
 
125
144
  context "rate limit response" do
@@ -133,4 +152,20 @@ class Drip::ResponseTest < Drip::TestCase
133
152
  assert_equal @body["message"], @subject.message
134
153
  end
135
154
  end
155
+
156
+ context "#respond_to?" do
157
+ setup do
158
+ @members = [load_json_fixture("resources/subscriber.json")]
159
+ @body = { "subscribers" => @members }
160
+ @subject = Drip::Response.new(200, @body)
161
+ end
162
+
163
+ should "respond to fixture members" do
164
+ assert @subject.respond_to?(:subscribers)
165
+ end
166
+
167
+ should "not respond to randomness" do
168
+ refute @subject.respond_to?(:blahdeblah)
169
+ end
170
+ end
136
171
  end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+
1
6
  $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
2
7
 
3
8
  require "drip"
metadata CHANGED
@@ -1,120 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drip-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 3.4.2
5
5
  platform: ruby
6
6
  authors:
7
- - Derrick Reimer
8
- autorequire:
7
+ - Drip
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-08-15 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.6'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.6'
27
- - !ruby/object:Gem::Dependency
28
- name: minitest
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '5.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '5.0'
41
- - !ruby/object:Gem::Dependency
42
- name: mocha
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '1.1'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '1.1'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '10.0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '10.0'
69
- - !ruby/object:Gem::Dependency
70
- name: rubocop
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: 0.56.0
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: 0.56.0
83
- - !ruby/object:Gem::Dependency
84
- name: shoulda-context
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.0'
97
- - !ruby/object:Gem::Dependency
98
- name: webmock
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '3.4'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '3.4'
11
+ date: 2021-05-25 00:00:00.000000000 Z
12
+ dependencies: []
111
13
  description: A simple wrapper for the Drip API
112
14
  email:
113
- - derrickreimer@gmail.com
15
+ - support@drip.com
114
16
  executables: []
115
17
  extensions: []
116
18
  extra_rdoc_files: []
117
19
  files:
20
+ - ".github/pull_request_template.md"
118
21
  - ".gitignore"
119
22
  - ".rubocop.yml"
120
23
  - ".rubocop_todo.yml"
@@ -131,13 +34,17 @@ files:
131
34
  - lib/drip/client/broadcasts.rb
132
35
  - lib/drip/client/campaign_subscriptions.rb
133
36
  - lib/drip/client/campaigns.rb
37
+ - lib/drip/client/configuration.rb
134
38
  - lib/drip/client/conversions.rb
135
39
  - lib/drip/client/custom_fields.rb
136
40
  - lib/drip/client/events.rb
137
41
  - lib/drip/client/forms.rb
42
+ - lib/drip/client/http_client.rb
138
43
  - lib/drip/client/orders.rb
44
+ - lib/drip/client/shopper_activity.rb
139
45
  - lib/drip/client/subscribers.rb
140
46
  - lib/drip/client/tags.rb
47
+ - lib/drip/client/users.rb
141
48
  - lib/drip/client/webhooks.rb
142
49
  - lib/drip/client/workflow_triggers.rb
143
50
  - lib/drip/client/workflows.rb
@@ -156,6 +63,7 @@ files:
156
63
  - lib/drip/collections/workflow_triggers.rb
157
64
  - lib/drip/collections/workflows.rb
158
65
  - lib/drip/errors.rb
66
+ - lib/drip/request.rb
159
67
  - lib/drip/resource.rb
160
68
  - lib/drip/resources.rb
161
69
  - lib/drip/resources/account.rb
@@ -176,23 +84,40 @@ files:
176
84
  - test/drip/client/broadcasts_test.rb
177
85
  - test/drip/client/campaign_subscriptions_test.rb
178
86
  - test/drip/client/campaigns_test.rb
87
+ - test/drip/client/configuration_test.rb
179
88
  - test/drip/client/conversions_test.rb
180
89
  - test/drip/client/custom_fields_test.rb
181
90
  - test/drip/client/events_test.rb
182
91
  - test/drip/client/forms_test.rb
92
+ - test/drip/client/http_client_test.rb
183
93
  - test/drip/client/orders_test.rb
94
+ - test/drip/client/shopper_activity_test.rb
184
95
  - test/drip/client/subscribers_test.rb
185
96
  - test/drip/client/tags_test.rb
97
+ - test/drip/client/users_test.rb
186
98
  - test/drip/client/webhooks_test.rb
187
99
  - test/drip/client/workflow_triggers_test.rb
188
100
  - test/drip/client/workflows_test.rb
189
101
  - test/drip/client_test.rb
190
102
  - test/drip/collection_test.rb
103
+ - test/drip/collections/account_test.rb
104
+ - test/drip/collections/broadcasts_test.rb
105
+ - test/drip/collections/campaign_subscriptions_test.rb
106
+ - test/drip/collections/campaigns_test.rb
107
+ - test/drip/collections/errors_test.rb
108
+ - test/drip/collections/orders_test.rb
109
+ - test/drip/collections/purchases_test.rb
110
+ - test/drip/collections/tags_test.rb
111
+ - test/drip/collections/webhooks_test.rb
112
+ - test/drip/collections/workflow_triggers_test.rb
113
+ - test/drip/collections/workflows_test.rb
191
114
  - test/drip/collections_test.rb
115
+ - test/drip/request_test.rb
192
116
  - test/drip/resource_test.rb
193
117
  - test/drip/resources/account_test.rb
194
118
  - test/drip/resources/order_test.rb
195
119
  - test/drip/resources/subscriber_test.rb
120
+ - test/drip/resources/tag_test.rb
196
121
  - test/drip/resources_test.rb
197
122
  - test/drip/response_test.rb
198
123
  - test/fixtures/resources/not_found_error.json
@@ -202,7 +127,7 @@ homepage: http://github.com/DripEmail/drip-ruby
202
127
  licenses:
203
128
  - MIT
204
129
  metadata: {}
205
- post_install_message:
130
+ post_install_message:
206
131
  rdoc_options: []
207
132
  require_paths:
208
133
  - lib
@@ -210,16 +135,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
210
135
  requirements:
211
136
  - - ">="
212
137
  - !ruby/object:Gem::Version
213
- version: '2.1'
138
+ version: '2.3'
214
139
  required_rubygems_version: !ruby/object:Gem::Requirement
215
140
  requirements:
216
141
  - - ">="
217
142
  - !ruby/object:Gem::Version
218
143
  version: '0'
219
144
  requirements: []
220
- rubyforge_project:
221
- rubygems_version: 2.5.2
222
- signing_key:
145
+ rubygems_version: 3.1.4
146
+ signing_key:
223
147
  specification_version: 4
224
148
  summary: A Ruby gem for interacting with the Drip API
225
149
  test_files:
@@ -227,23 +151,40 @@ test_files:
227
151
  - test/drip/client/broadcasts_test.rb
228
152
  - test/drip/client/campaign_subscriptions_test.rb
229
153
  - test/drip/client/campaigns_test.rb
154
+ - test/drip/client/configuration_test.rb
230
155
  - test/drip/client/conversions_test.rb
231
156
  - test/drip/client/custom_fields_test.rb
232
157
  - test/drip/client/events_test.rb
233
158
  - test/drip/client/forms_test.rb
159
+ - test/drip/client/http_client_test.rb
234
160
  - test/drip/client/orders_test.rb
161
+ - test/drip/client/shopper_activity_test.rb
235
162
  - test/drip/client/subscribers_test.rb
236
163
  - test/drip/client/tags_test.rb
164
+ - test/drip/client/users_test.rb
237
165
  - test/drip/client/webhooks_test.rb
238
166
  - test/drip/client/workflow_triggers_test.rb
239
167
  - test/drip/client/workflows_test.rb
240
168
  - test/drip/client_test.rb
241
169
  - test/drip/collection_test.rb
170
+ - test/drip/collections/account_test.rb
171
+ - test/drip/collections/broadcasts_test.rb
172
+ - test/drip/collections/campaign_subscriptions_test.rb
173
+ - test/drip/collections/campaigns_test.rb
174
+ - test/drip/collections/errors_test.rb
175
+ - test/drip/collections/orders_test.rb
176
+ - test/drip/collections/purchases_test.rb
177
+ - test/drip/collections/tags_test.rb
178
+ - test/drip/collections/webhooks_test.rb
179
+ - test/drip/collections/workflow_triggers_test.rb
180
+ - test/drip/collections/workflows_test.rb
242
181
  - test/drip/collections_test.rb
182
+ - test/drip/request_test.rb
243
183
  - test/drip/resource_test.rb
244
184
  - test/drip/resources/account_test.rb
245
185
  - test/drip/resources/order_test.rb
246
186
  - test/drip/resources/subscriber_test.rb
187
+ - test/drip/resources/tag_test.rb
247
188
  - test/drip/resources_test.rb
248
189
  - test/drip/response_test.rb
249
190
  - test/fixtures/resources/not_found_error.json