lob 5.1.1 → 5.4.0

Sign up to get free protection for your applications and to get access to all the features.
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