lob 5.1.1 → 5.4.0

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 (40) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +2 -3
  3. data/CHANGELOG.md +13 -1
  4. data/README.md +13 -0
  5. data/examples/README.md +80 -2
  6. data/examples/checks.rb +4 -3
  7. data/examples/csv_checks/create_checks.rb +3 -2
  8. data/examples/csv_letters/create_letters.rb +3 -2
  9. data/examples/csv_postcards/create_postcards.rb +3 -2
  10. data/examples/csv_verify/verify.rb +3 -2
  11. data/examples/letters.rb +3 -2
  12. data/examples/list_postcards_metadata.rb +94 -0
  13. data/examples/postcards.rb +5 -4
  14. data/examples/postcards_idempotent.rb +92 -0
  15. data/examples/postcards_intl.rb +87 -0
  16. data/examples/postcards_remote.rb +87 -0
  17. data/examples/postcards_send_date.rb +97 -0
  18. data/examples/postcards_template.rb +98 -0
  19. data/examples/self_mailers.rb +38 -0
  20. data/lib/lob/client.rb +20 -0
  21. data/lib/lob/resources/bulk_intl_verifications.rb +26 -0
  22. data/lib/lob/resources/bulk_us_verifications.rb +27 -0
  23. data/lib/lob/resources/resource_base.rb +5 -5
  24. data/lib/lob/resources/self_mailer.rb +14 -0
  25. data/lib/lob/resources/us_reverse_geocode_lookups.rb +26 -0
  26. data/lib/lob/version.rb +1 -1
  27. data/lob.gemspec +5 -3
  28. data/spec/lob/resources/bulk_intl_verifications_spec.rb +30 -0
  29. data/spec/lob/resources/bulk_us_verifications_spec.rb +37 -0
  30. data/spec/lob/resources/letter_spec.rb +1 -1
  31. data/spec/lob/resources/postcard_spec.rb +6 -6
  32. data/spec/lob/resources/resource_base_spec.rb +2 -2
  33. data/spec/lob/resources/self_mailer_spec.rb +177 -0
  34. data/spec/lob/resources/us_reverse_geocode_lookups_spec.rb +22 -0
  35. data/spec/samples/sfm-12x9-inside.pdf +0 -0
  36. data/spec/samples/sfm-12x9-outside.pdf +0 -0
  37. data/spec/samples/sfm-6x18-inside.pdf +0 -0
  38. data/spec/samples/sfm-6x18-outside.pdf +0 -0
  39. data/spec/spec_helper.rb +2 -2
  40. metadata +64 -10
@@ -0,0 +1,177 @@
1
+ require "spec_helper"
2
+
3
+ describe Lob::Resources::SelfMailer do
4
+
5
+ before :each do
6
+ @sample_address_params = {
7
+ name: "TestAddress",
8
+ email: "test@test.com",
9
+ address_line1: "123 Test Street",
10
+ address_line2: "Unit 199",
11
+ address_city: "Mountain View",
12
+ address_state: "CA",
13
+ address_country: "US",
14
+ address_zip: 94085
15
+ }
16
+
17
+ @sample_self_mailer_params = {
18
+ description: "Test Self Mailer",
19
+ outside: "<h1>Sample Self Mailer Outside</h1>",
20
+ inside: "https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/self_mailers/6x18_sfm_inside.pdf",
21
+ }
22
+ end
23
+
24
+ subject { Lob::Client.new(api_key: API_KEY) }
25
+
26
+ describe "list" do
27
+ it "should list self mailers" do
28
+ self_mailers = subject.self_mailers.list()
29
+ assert self_mailers["object"] == "list"
30
+ end
31
+ end
32
+
33
+
34
+ describe "create" do
35
+ it "should create a self mailer with address_id" do
36
+ new_address = subject.addresses.create @sample_address_params
37
+
38
+ result = subject.self_mailers.create(
39
+ description: @sample_self_mailer_params[:description],
40
+ to: new_address["id"],
41
+ outside: @sample_self_mailer_params[:outside],
42
+ inside: @sample_self_mailer_params[:inside],
43
+ )
44
+
45
+ result["description"].must_equal(@sample_self_mailer_params[:description])
46
+ end
47
+
48
+ it "should create a self mailer with to address params" do
49
+ result = subject.self_mailers.create(
50
+ description: @sample_self_mailer_params[:description],
51
+ to: @sample_address_params,
52
+ outside: @sample_self_mailer_params[:outside],
53
+ inside: "https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/self_mailers/6x18_sfm_inside.pdf"
54
+ )
55
+
56
+ result["description"].must_equal(@sample_self_mailer_params[:description])
57
+ end
58
+
59
+ it "should create a self mailer with from address params" do
60
+ new_address = subject.addresses.create @sample_address_params
61
+
62
+ result = subject.self_mailers.create(
63
+ description: @sample_self_mailer_params[:description],
64
+ to: new_address["id"],
65
+ from: @sample_address_params,
66
+ outside: @sample_self_mailer_params[:outside],
67
+ inside: "https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/self_mailers/6x18_sfm_inside.pdf"
68
+ )
69
+
70
+ result["description"].must_equal(@sample_self_mailer_params[:description])
71
+ end
72
+
73
+ it "should create a self mailer with front and back as urls" do
74
+ new_address = subject.addresses.create @sample_address_params
75
+
76
+ result = subject.self_mailers.create(
77
+ description: @sample_self_mailer_params[:description],
78
+ to: new_address["id"],
79
+ outside: "https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/self_mailers/6x18_sfm_outside.pdf",
80
+ inside: "https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/self_mailers/6x18_sfm_inside.pdf"
81
+ )
82
+
83
+ result["description"].must_equal(@sample_self_mailer_params[:description])
84
+ end
85
+
86
+
87
+ it "should create a self mailer with front and back as PDFs" do
88
+ new_address = subject.addresses.create @sample_address_params
89
+
90
+ result = subject.self_mailers.create(
91
+ description: @sample_self_mailer_params[:description],
92
+ to: new_address["id"],
93
+ outside: File.new(File.expand_path("../../../samples/sfm-6x18-outside.pdf", __FILE__)),
94
+ inside: File.new(File.expand_path("../../../samples/sfm-6x18-inside.pdf", __FILE__))
95
+ )
96
+
97
+ result["description"].must_equal(@sample_self_mailer_params[:description])
98
+ end
99
+
100
+ it "should create a self mailer with front and back as 12x9 PDFs" do
101
+ new_address = subject.addresses.create @sample_address_params
102
+
103
+ result = subject.self_mailers.create(
104
+ description: @sample_self_mailer_params[:description],
105
+ to: new_address["id"],
106
+ size: "12x9_bifold",
107
+ outside: File.new(File.expand_path("../../../samples/sfm-12x9-outside.pdf", __FILE__)),
108
+ inside: File.new(File.expand_path("../../../samples/sfm-12x9-inside.pdf", __FILE__))
109
+ )
110
+
111
+ result["description"].must_equal(@sample_self_mailer_params[:description])
112
+ end
113
+
114
+
115
+ it "should create a self mailer with a merge variable list" do
116
+ new_address = subject.addresses.create @sample_address_params
117
+ merge_variables = {
118
+ list: [
119
+ {
120
+ name: "Larissa"
121
+ },
122
+ {
123
+ name: "Larry"
124
+ }
125
+ ]
126
+ }
127
+
128
+ result = subject.self_mailers.create(
129
+ description: @sample_self_mailer_params[:description],
130
+ to: new_address["id"],
131
+ outside: "https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/self_mailers/6x18_sfm_inside.pdf",
132
+ inside: "<html>{{#list}} {{name}} {{/list}}</html>",
133
+ merge_variables: merge_variables
134
+ )
135
+
136
+ result["description"].must_equal(@sample_self_mailer_params[:description])
137
+ result["merge_variables"]["list"][0]["name"].must_equal("Larissa")
138
+ result["merge_variables"]["list"][1]["name"].must_equal("Larry")
139
+ end
140
+ end
141
+
142
+
143
+ describe "find" do
144
+ it "should find a self mailer" do
145
+ new_address = subject.addresses.create @sample_address_params
146
+
147
+ new_self_mailer = subject.self_mailers.create(
148
+ description: @sample_self_mailer_params[:description],
149
+ to: new_address["id"],
150
+ outside: @sample_self_mailer_params[:outside],
151
+ inside: @sample_self_mailer_params[:inside]
152
+ )
153
+
154
+ result = subject.self_mailers.find(new_self_mailer["id"])
155
+ result["description"].must_equal(@sample_self_mailer_params[:description])
156
+ end
157
+ end
158
+
159
+
160
+ describe "destroy" do
161
+ it "should destroy a self mailer" do
162
+ new_address = subject.addresses.create @sample_address_params
163
+
164
+ new_self_mailer = subject.self_mailers.create(
165
+ description: @sample_self_mailer_params[:description],
166
+ to: new_address["id"],
167
+ outside: @sample_self_mailer_params[:outside],
168
+ inside: @sample_self_mailer_params[:inside]
169
+ )
170
+
171
+ result = subject.self_mailers.destroy(new_self_mailer["id"])
172
+ result["id"].must_equal(new_self_mailer["id"])
173
+ result["deleted"].must_equal(true)
174
+ end
175
+ end
176
+
177
+ end
@@ -0,0 +1,22 @@
1
+ require "spec_helper"
2
+
3
+ describe Lob::Resources::USReverseGeocodeLookups do
4
+
5
+ before :each do
6
+ @sample_params = {
7
+ latitude: 37.777456,
8
+ longitude: -122.393039
9
+ }
10
+ end
11
+
12
+ subject { Lob::Client.new(api_key: API_KEY) }
13
+
14
+ describe "lookup" do
15
+ it "should reverse geocode a valid US location" do
16
+ result = subject.us_reverse_geocode_lookups.lookup @sample_params
17
+ puts result["addresses"][0]["components"]["zip_code"].class
18
+ result["addresses"].length.must_equal(5)
19
+ end
20
+ end
21
+
22
+ end
Binary file
Binary file
Binary file
Binary file
data/spec/spec_helper.rb CHANGED
@@ -3,10 +3,10 @@ $:.unshift File.expand_path("../lib", File.dirname(__FILE__))
3
3
  require "simplecov"
4
4
  require "coveralls"
5
5
 
6
- SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[
6
+ SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter.new([
7
7
  SimpleCov::Formatter::HTMLFormatter,
8
8
  Coveralls::SimpleCov::Formatter
9
- ]
9
+ ])
10
10
  SimpleCov.start
11
11
 
12
12
  require "lob"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lob
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.1
4
+ version: 5.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-21 00:00:00.000000000 Z
11
+ date: 2021-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: 10.4.2
39
+ version: 12.3.3
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: 10.4.2
46
+ version: 12.3.3
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: minitest
49
49
  requirement: !ruby/object:Gem::Requirement
@@ -78,28 +78,56 @@ dependencies:
78
78
  requirements:
79
79
  - - "~>"
80
80
  - !ruby/object:Gem::Version
81
- version: 0.8.13
81
+ version: 0.8.23
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
- version: 0.8.13
88
+ version: 0.8.23
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: simplecov
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: 0.11.0
95
+ version: 0.16.1
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: 0.11.0
102
+ version: 0.16.1
103
+ - !ruby/object:Gem::Dependency
104
+ name: json
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: 2.3.1
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: 2.3.1
117
+ - !ruby/object:Gem::Dependency
118
+ name: uri
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: 0.10.1
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 0.10.1
103
131
  description: Lob API Ruby wrapper
104
132
  email:
105
133
  - support@lob.com
@@ -129,13 +157,22 @@ files:
129
157
  - examples/csv_verify/input.csv
130
158
  - examples/csv_verify/verify.rb
131
159
  - examples/letters.rb
160
+ - examples/list_postcards_metadata.rb
132
161
  - examples/postcards.rb
162
+ - examples/postcards_idempotent.rb
163
+ - examples/postcards_intl.rb
164
+ - examples/postcards_remote.rb
165
+ - examples/postcards_send_date.rb
166
+ - examples/postcards_template.rb
167
+ - examples/self_mailers.rb
133
168
  - lib/lob.rb
134
169
  - lib/lob/client.rb
135
170
  - lib/lob/errors/invalid_request_error.rb
136
171
  - lib/lob/errors/lob_error.rb
137
172
  - lib/lob/resources/address.rb
138
173
  - lib/lob/resources/bank_account.rb
174
+ - lib/lob/resources/bulk_intl_verifications.rb
175
+ - lib/lob/resources/bulk_us_verifications.rb
139
176
  - lib/lob/resources/check.rb
140
177
  - lib/lob/resources/group.rb
141
178
  - lib/lob/resources/groups_member.rb
@@ -143,7 +180,9 @@ files:
143
180
  - lib/lob/resources/letter.rb
144
181
  - lib/lob/resources/postcard.rb
145
182
  - lib/lob/resources/resource_base.rb
183
+ - lib/lob/resources/self_mailer.rb
146
184
  - lib/lob/resources/us_autocompletions.rb
185
+ - lib/lob/resources/us_reverse_geocode_lookups.rb
147
186
  - lib/lob/resources/us_verifications.rb
148
187
  - lib/lob/resources/us_zip_lookups.rb
149
188
  - lib/lob/version.rb
@@ -151,6 +190,8 @@ files:
151
190
  - spec/lob/errors/lob_error_spec.rb
152
191
  - spec/lob/resources/address_spec.rb
153
192
  - spec/lob/resources/bank_account_spec.rb
193
+ - spec/lob/resources/bulk_intl_verifications_spec.rb
194
+ - spec/lob/resources/bulk_us_verifications_spec.rb
154
195
  - spec/lob/resources/check_spec.rb
155
196
  - spec/lob/resources/group_spec.rb
156
197
  - spec/lob/resources/intl_verifications_spec.rb
@@ -158,13 +199,19 @@ files:
158
199
  - spec/lob/resources/member_spec.rb
159
200
  - spec/lob/resources/postcard_spec.rb
160
201
  - spec/lob/resources/resource_base_spec.rb
202
+ - spec/lob/resources/self_mailer_spec.rb
161
203
  - spec/lob/resources/us_autocompletions_spec.rb
204
+ - spec/lob/resources/us_reverse_geocode_lookups_spec.rb
162
205
  - spec/lob/resources/us_verifications_spec.rb
163
206
  - spec/lob/resources/us_zip_lookups_spec.rb
164
207
  - spec/lob_spec.rb
165
208
  - spec/samples/8.5x11.pdf
166
209
  - spec/samples/postcardback.pdf
167
210
  - spec/samples/postcardfront.pdf
211
+ - spec/samples/sfm-12x9-inside.pdf
212
+ - spec/samples/sfm-12x9-outside.pdf
213
+ - spec/samples/sfm-6x18-inside.pdf
214
+ - spec/samples/sfm-6x18-outside.pdf
168
215
  - spec/spec_helper.rb
169
216
  homepage: https://github.com/lob/lob-ruby
170
217
  licenses:
@@ -185,8 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
232
  - !ruby/object:Gem::Version
186
233
  version: '0'
187
234
  requirements: []
188
- rubyforge_project:
189
- rubygems_version: 2.5.2.3
235
+ rubygems_version: 3.0.3
190
236
  signing_key:
191
237
  specification_version: 4
192
238
  summary: Ruby wrapper for Lob.com API with ActiveRecord-style syntax
@@ -194,6 +240,8 @@ test_files:
194
240
  - spec/lob/errors/lob_error_spec.rb
195
241
  - spec/lob/resources/address_spec.rb
196
242
  - spec/lob/resources/bank_account_spec.rb
243
+ - spec/lob/resources/bulk_intl_verifications_spec.rb
244
+ - spec/lob/resources/bulk_us_verifications_spec.rb
197
245
  - spec/lob/resources/check_spec.rb
198
246
  - spec/lob/resources/group_spec.rb
199
247
  - spec/lob/resources/intl_verifications_spec.rb
@@ -201,11 +249,17 @@ test_files:
201
249
  - spec/lob/resources/member_spec.rb
202
250
  - spec/lob/resources/postcard_spec.rb
203
251
  - spec/lob/resources/resource_base_spec.rb
252
+ - spec/lob/resources/self_mailer_spec.rb
204
253
  - spec/lob/resources/us_autocompletions_spec.rb
254
+ - spec/lob/resources/us_reverse_geocode_lookups_spec.rb
205
255
  - spec/lob/resources/us_verifications_spec.rb
206
256
  - spec/lob/resources/us_zip_lookups_spec.rb
207
257
  - spec/lob_spec.rb
208
258
  - spec/samples/8.5x11.pdf
209
259
  - spec/samples/postcardback.pdf
210
260
  - spec/samples/postcardfront.pdf
261
+ - spec/samples/sfm-12x9-inside.pdf
262
+ - spec/samples/sfm-12x9-outside.pdf
263
+ - spec/samples/sfm-6x18-inside.pdf
264
+ - spec/samples/sfm-6x18-outside.pdf
211
265
  - spec/spec_helper.rb