lob 1.5 → 1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: da1de55d24c191d96b977778bc662314c4a6523d
4
- data.tar.gz: 1a6bf843e2f9730735a0aa6ad5c89b228eb77c75
3
+ metadata.gz: 1b67da6c7e2938a86f2c5884a070c81a366b410d
4
+ data.tar.gz: 1166c4df4106f04b383b56514189745646b17e2f
5
5
  SHA512:
6
- metadata.gz: 22cddc118df4adee9bad8bc045a98138e82353b9d4783a9912dec8e75e87dede1183ba0f59c5715b8c91b416111b6cba38a96ac6175b201259cbe29547835504
7
- data.tar.gz: 151991770ed6e72b43710473c35b9d5f34c09f2c66aaf72d5bbda99aab89955161261fddfe9bc0dd7c44f3d2bf4953947cd5746f9b5f8a14678f43d94fa14556
6
+ metadata.gz: e70dba9281e47906d648e12b0367ef3687d2d99f4bd764e714711f7ea8c1f59b99c755d9e75068a00891803e9c7c28468a1e71707d45e86311ca7ee27fd91443
7
+ data.tar.gz: a05e6868b870375aad6d889063b0fd13a97b36e8d05451190023f162bed5c717c79b31f33f92179c224459638aa30b5ee8eabd420fe9d8141236e6f4e0b2cb62
data/README.md CHANGED
@@ -1,11 +1,22 @@
1
1
  # lob-ruby
2
2
 
3
- [![Build Status](https://travis-ci.org/lob/lob-ruby.svg?branch=master)](https://travis-ci.org/lob/lob-ruby) [![Gem Version](https://badge.fury.io/rb/lob.svg)](http://badge.fury.io/rb/lob) [![Dependency Status](https://gemnasium.com/lob/lob-ruby.svg)](https://gemnasium.com/lob/lob-ruby) [![Coverage Status](https://img.shields.io/coveralls/lob/lob-ruby.svg)](https://coveralls.io/r/lob/lob-ruby?branch=master) [![Downloads](http://ruby-gem-downloads-badge.herokuapp.com/lob?color=green)](https://rubygems.org/gems/lob)
3
+ [![Build Status](https://travis-ci.org/lob/lob-ruby.svg?branch=master)](https://travis-ci.org/lob/lob-ruby) [![Gem Version](https://badge.fury.io/rb/lob.svg)](http://badge.fury.io/rb/lob) [![Dependency Status](https://gemnasium.com/lob/lob-ruby.svg)](https://gemnasium.com/lob/lob-ruby) [![Coverage Status](https://img.shields.io/coveralls/lob/lob-ruby.svg)](https://coveralls.io/r/lob/lob-ruby?branch=master) [![Downloads](http://ruby-gem-downloads-badge.herokuapp.com/lob?color=green&type=total)](https://rubygems.org/gems/lob)
4
4
 
5
5
  Ruby wrapper for the [Lob.com](http://lob.com) API. This gem gives you an ActiveRecord-style syntax to use the Lob.com API.
6
6
 
7
7
  Supports Ruby 1.9.3 and greater.
8
8
 
9
+ ## Table of Contents
10
+
11
+ - [Installation](#installation)
12
+ - [Usage](#usage)
13
+ - [Supported Image Types](#supported-image-types)
14
+ - [Initialization and Configuration](#initialization-and-configuration)
15
+ - [API Reference](#api-reference)
16
+ - [Developing](#developing)
17
+ - [Testing](#testing)
18
+ - [Contributing](#contributing)
19
+
9
20
  ## Installation
10
21
 
11
22
  Add this line to your application's `Gemfile`:
@@ -16,14 +27,14 @@ And then execute:
16
27
 
17
28
  $ bundle
18
29
 
19
- Or install it yourself as:
30
+ Or manually install it yourself:
20
31
 
21
32
  $ gem install lob
22
33
 
23
34
  ## Usage
24
35
 
25
36
  The library uses an ActiveRecord-style interface. You'll feel right at home.
26
- You'll need a Lob.com API key. It's free and you can get yours [here](https://www.lob.com/account).
37
+ You'll need a Lob.com API key. It's free and you can get yours [here](https://dashboard.lob.com/account).
27
38
 
28
39
  For optional parameters and other details, refer the docs here - <https://lob.com/docs>
29
40
 
@@ -33,8 +44,8 @@ When using zip codes with zero-prefixes, always quote them. For example when spe
33
44
 
34
45
  The Ruby interpreter assumes it's not of base-10 and tries to convert it to base-10 number. So that might result in an entirely different zip-code than intended.
35
46
 
36
- Supported Image Types
37
- --------
47
+ ## Supported Image Types
48
+
38
49
  The lob.com API supports the following image types:
39
50
 
40
51
  - PDF
@@ -43,13 +54,11 @@ The lob.com API supports the following image types:
43
54
 
44
55
  For more information on prepping the images please see the [Lob documentation](https://lob.com/docs#prepping)
45
56
 
46
- Creating a PDF
47
- -------
57
+ #### Creating a PDF
48
58
 
49
59
  If you need to generate your own PDF programmatically we recommend using [prawn](https://github.com/prawnpdf/prawn). There is an example provided in the examples folder [here](examples/create_pdf.rb)
50
60
 
51
- Initialization and configuration
52
- ------
61
+ ## Initialization and Configuration
53
62
 
54
63
  ```ruby
55
64
  # To initialize a Lob object
@@ -71,87 +80,63 @@ Lob.configure do |config|
71
80
  end
72
81
  ```
73
82
 
74
- ### Settings
75
-
76
- #### List settings
77
- ```ruby
78
- # returns an array of settings
79
- @lob.settings.list
80
- ```
81
-
82
- #### Find a setting
83
- ```ruby
84
- # returns a setting object
85
- @lob.settings.find("setting_id")
86
- ```
87
-
88
- ### Addresses
89
-
90
- #### To create an address
91
-
92
- ```ruby
93
- # name, address, city, state, country and zip are required parameters
94
- @lob.addresses.create(
95
- name: "John Doe",
96
- address_line1: "104, Printing Boulevard",
97
- city: "Boston",
98
- state: "MA",
99
- country: "US",
100
- zip: 12345
101
- )
102
-
103
- # You can also pass address_line2
104
- @lob.addresses.create(
105
- name: "John Doe",
106
- email: "test@test.com", # see you can also pass other optional parameters?
107
- address_line1: "104, Printing Boulevard",
108
- address_line2: "Sunset Town",
109
- city: "Boston",
110
- state: "MA",
111
- country: "US",
112
- zip: 12345
113
- )
114
- ```
115
-
116
- #### List addresses
117
-
118
- ```ruby
119
- # returns an array of addresses
120
- @lob.addresses.list
121
-
122
- #you can also pass count and offset
123
- @lob.addresses.list(count: 10, offset: 3)
124
- ```
125
-
126
- #### Find a specific address
127
-
128
- ```ruby
129
- # returns the address with the corresponding ID
130
- @lob.addresses.find("some-address-id")
131
- ```
132
-
133
- #### Deletes a specific address
134
-
135
- ```ruby
136
- # deletes the address with the corresponding ID
137
- @lob.addresses.destroy("some-address-id")
138
- ```
139
-
140
- ### Address verification
141
-
142
- ```ruby
143
- # verifies and returns an address with more details
144
- @lob.addresses.verify(
145
- address_line1: "220 WILLIAM T MORRISSEY BLVD",
146
- city: "Boston",
147
- state: "MA",
148
- zip: "02125"
149
- )
150
- ```
151
-
152
- ### Jobs
153
-
154
- #### Create jobs
83
+ ## API Reference
84
+
85
+ - [Simple Print Service](#simple-print-service)
86
+ - [lob.jobs](#lobjobs)
87
+ - [lob.jobs.create](#lobjobscreate)
88
+ - [lob.jobs.list](#lobjobslist)
89
+ - [lob.jobs.find](#lobjobsfind)
90
+ - [lob.addresses](#lobaddresses)
91
+ - [lob.addresses.create](#lobaddressescreate)
92
+ - [lob.addresses.list](#lobaddresseslist)
93
+ - [lob.addresses.find](#lobaddressesfind)
94
+ - [lob.addresses.destroy](#lobaddressesdestroy)
95
+ - [lob.addresses.verify](#lobaddressesverify)
96
+ - [lob.objects](#lobobjects)
97
+ - [lob.objects.create](#lobobjectscreate)
98
+ - [lob.objects.list](#lobobjectslist)
99
+ - [lob.objects.find](#lobobjectsfind)
100
+ - [lob.objects.destroy](#lobobjectsdestroy)
101
+ - [lob.settings](#lobsettings)
102
+ - [lob.settings.list](#lobsettingslist)
103
+ - [lob.settings.find](#lobsettingsfind)
104
+ - [lob.packagings](#lobpackagings)
105
+ - [lob.packagings.list](#lobpackagingslist)
106
+ - [lob.services](#lobservices)
107
+ - [lob.services.list](#lobserviceslist)
108
+ - [Simple Postcard Service](#simple-postcard-service)
109
+ - [lob.postcards](#lobpostcards)
110
+ - [lob.postcards.create](#lobpostcardscreate)
111
+ - [lob.postcards.list](#lobpostcardslist)
112
+ - [lob.postcards.find](#lobpostcardsfind)
113
+ - [Simple Check Service](#simple-check-service)
114
+ - [lob.checks](#lobchecks)
115
+ - [lob.checks.create](#lobcheckscreate)
116
+ - [lob.checks.list](#lobcheckslist)
117
+ - [lob.checks.find](#lobchecksfind)
118
+ - [lob.bank_accounts](#lobbank_accounts)
119
+ - [lob.bank_accounts.create](#lobbank_accountscreate)
120
+ - [lob.bank_accounts.list](#lobbank_accountslist)
121
+ - [lob.bank_accounts.find](#lobbank_accountsfind)
122
+ - [Simple Area Mail](#simple-area-mail)
123
+ - [lob.areas](#lobareas)
124
+ - [lob.areas.create](#lobareascreate)
125
+ - [lob.areas.list](#lobareaslist)
126
+ - [lob.areas.find](#lobareasfind)
127
+ - [lob.routes](#lobroutes)
128
+ - [lob.routes.find](#lobroutesfind)
129
+ - [Resources](#lobresources)
130
+ - [lob.countries](#lobcountries)
131
+ - [lob.countries.list](#lobcountrieslist)
132
+ - [lob.states](#lobstates)
133
+ - [lob.states.list](#lobstateslist)
134
+
135
+ ## Simple Print Service
136
+
137
+ ### lob.jobs
138
+
139
+ #### lob.jobs.create
155
140
 
156
141
  ```ruby
157
142
 
@@ -181,7 +166,7 @@ end
181
166
  },
182
167
  objects: {
183
168
  name: "Local File Object",
184
- file: File.new(File.expand_path("<<YOUR PATH>>/letter.pdf", __FILE__)),
169
+ file: File.new("/path/to/file.pdf"),
185
170
  setting_id: 100
186
171
  })
187
172
 
@@ -244,7 +229,7 @@ end
244
229
 
245
230
  ```
246
231
 
247
- #### List jobs
232
+ #### lob.jobs.list
248
233
 
249
234
  ```ruby
250
235
  # returns an array of jobs
@@ -254,16 +239,70 @@ end
254
239
  @lob.jobs.list(count: 10, offset: 3)
255
240
  ```
256
241
 
257
- #### Find a specific job
242
+ #### lob.jobs.find
258
243
 
259
244
  ```ruby
260
245
  # returns the job with the corresponding ID
261
246
  @lob.jobs.find("some-job-id")
262
247
  ```
263
248
 
264
- ### Objects
249
+ ### lob.addresses
250
+
251
+ #### lob.addresses.create
252
+
253
+ ```ruby
254
+ # name, address, city, state, country and zip are required parameters
255
+ @lob.addresses.create(
256
+ name: "John Doe",
257
+ email: "test@test.com", # optional
258
+ address_line1: "104, Printing Boulevard",
259
+ address_line2: "Sunset Town", # optional
260
+ city: "Boston",
261
+ state: "MA",
262
+ country: "US",
263
+ zip: 12345
264
+ )
265
+ ```
266
+
267
+ #### lob.addresses.list
268
+
269
+ ```ruby
270
+ # returns an array of addresses
271
+ @lob.addresses.list
272
+
273
+ #you can also pass count and offset
274
+ @lob.addresses.list(count: 10, offset: 3)
275
+ ```
276
+
277
+ #### lob.addresses.find
278
+
279
+ ```ruby
280
+ # returns the address with the corresponding ID
281
+ @lob.addresses.find("some-address-id")
282
+ ```
265
283
 
266
- #### Create objects
284
+ #### lob.addresses.destroy
285
+
286
+ ```ruby
287
+ # deletes the address with the corresponding ID
288
+ @lob.addresses.destroy("some-address-id")
289
+ ```
290
+
291
+ #### lob.addresses.verify
292
+
293
+ ```ruby
294
+ # verifies and returns an address with more details
295
+ @lob.addresses.verify(
296
+ address_line1: "220 WILLIAM T MORRISSEY BLVD",
297
+ city: "Boston",
298
+ state: "MA",
299
+ zip: "02125"
300
+ )
301
+ ```
302
+
303
+ ### lob.objects
304
+
305
+ #### lob.objects.create
267
306
 
268
307
  ```ruby
269
308
  # You can create an onject by passing the name, file url and setting ID, quantity is defaulted to 1
@@ -283,7 +322,7 @@ end
283
322
  )
284
323
  ```
285
324
 
286
- #### List objects
325
+ #### lob.objects.list
287
326
 
288
327
  ```ruby
289
328
  # returns an array of objects
@@ -293,32 +332,57 @@ end
293
332
  @lob.objects.list(count: 10, offset: 3)
294
333
  ```
295
334
 
296
- #### Find a specific object
335
+ #### lob.objects.find
297
336
 
298
337
  ```ruby
299
338
  # returns the object with the corresponding ID
300
339
  @lob.objects.find("some-object-id")
301
340
  ```
302
341
 
303
- #### Delete a specific object
342
+ #### lob.objects.destroy
304
343
 
305
344
  ```ruby
306
345
  # deletes the object with the corresponding ID
307
346
  @lob.objects.destroy("some-object-id")
308
347
  ```
309
348
 
310
- ### Packagings
349
+ ### lob.settings
350
+
351
+ #### lob.settings.list
352
+ ```ruby
353
+ # returns an array of settings
354
+ @lob.settings.list
355
+ ```
356
+
357
+ #### lob.settings.find
358
+ ```ruby
359
+ # returns a setting object
360
+ @lob.settings.find("setting_id")
361
+ ```
311
362
 
312
- #### List packagings
363
+ ### lob.packagings
364
+
365
+ #### lob.packagings.list
313
366
 
314
367
  ```ruby
315
368
  # returns a list of packagings
316
369
  @lob.packagings.list
317
370
  ```
318
371
 
319
- ### Postcards
372
+ ### lob.services
320
373
 
321
- #### Creating postcards
374
+ #### lob.services.list
375
+
376
+ ```ruby
377
+ # returns a list of services
378
+ @lob.services.list
379
+ ```
380
+
381
+ ## Simple Postcard Service
382
+
383
+ ### lob.postcards
384
+
385
+ #### lob.postcards.create
322
386
 
323
387
  You'll have to specify either the `message` option or the `back` option.
324
388
 
@@ -381,7 +445,7 @@ You'll have to specify either the `message` option or the `back` option.
381
445
  )
382
446
  ```
383
447
 
384
- #### List postcards
448
+ #### lob.postcards.list
385
449
 
386
450
  ```ruby
387
451
  @lob.postcards.list
@@ -390,21 +454,111 @@ You'll have to specify either the `message` option or the `back` option.
390
454
  @lob.postcards.list(count: 10, offset: 3)
391
455
  ```
392
456
 
393
- #### Find a postcard
457
+ #### lob.postcards.find
394
458
 
395
459
  ```ruby
396
460
  @lob.postcards.find("post-card-id")
397
461
  ```
398
462
 
399
- ### Simple Area Mail
463
+ ## Simple Check Service
400
464
 
401
- #### Create areas
465
+ ### lob.checks
466
+
467
+ #### lob.checks.create
468
+
469
+ ```ruby
470
+ # For the "to" address, you can pass params
471
+ # Transfer $5000 to a bank account.
472
+ @lob.checks.create(
473
+ bank_account: "bank-account-id",
474
+ to: {
475
+ name: "FromAddress",
476
+ address_line1: "120, 6th Ave",
477
+ city: "Boston",
478
+ state: "MA",
479
+ country: "US",
480
+ zip: 12345
481
+ },
482
+ amount: 5000
483
+ )
484
+
485
+ # or an address ID
486
+ @lob.checks.create(
487
+ bank_account: "bank-account-id",
488
+ to: "to-address-ID",
489
+ amount: 5000
490
+ )
491
+
492
+ # You can also specify an optional 4th argument, with other options.
493
+ ```
494
+
495
+ #### lob.checks.list
496
+
497
+ ```ruby
498
+ @lob.checks.list
499
+ ```
500
+
501
+ #### lob.checks.find
502
+
503
+ ```ruby
504
+ @lob.checks.find("check-id")
505
+ ```
506
+
507
+ ### lob.bank_accounts
508
+
509
+ #### lob.bank_accounts.create
510
+
511
+ ```ruby
512
+ bank_address =
513
+
514
+ account_address =
515
+
516
+ # Pass address params or address IDs
517
+ # The 5th argument is the options argument and is optional
518
+ @lob.bank_accounts.create(
519
+ routing_number: "routing_number",
520
+ account_number: "account_number",
521
+ bank_address: {
522
+ name: "ToAddress",
523
+ address_line1: "120 6th Ave",
524
+ city: "Boston",
525
+ country: "US",
526
+ zip: 12345
527
+ },
528
+ account_address: {
529
+ name: "ToAddress",
530
+ address_line1: "120 6th Ave",
531
+ city: "Boston",
532
+ country: "US",
533
+ zip: 12345
534
+ }
535
+ )
536
+ ```
537
+
538
+ #### lob.bank_accounts.list
539
+
540
+ ```ruby
541
+ # returns a list of accounts
542
+ @lob.bank_accounts.list
543
+ ```
544
+
545
+ #### lob.bank_accounts.find
546
+
547
+ ```ruby
548
+ @lob.bank_accounts.find("bank-account-id")
549
+ ```
550
+
551
+ ## Simple Area Mail
552
+
553
+ ### lob.areas
554
+
555
+ #### lob.areas.create
402
556
 
403
557
  You'll have to specify front, back, and either zip_codes or routes
404
558
 
405
559
  ```ruby
406
560
  # create an area request with routes
407
- @lob.area.create(
561
+ @lob.areas.create(
408
562
  name: "My Area",
409
563
  front: "https://www.lob.com/areafront.pdf",
410
564
  back: "https://www.lob.com/areaback.pdf",
@@ -414,7 +568,7 @@ You'll have to specify front, back, and either zip_codes or routes
414
568
  )
415
569
 
416
570
  # create an area request with zip_codes
417
- @lob.area.create(
571
+ @lob.areas.create(
418
572
  name: "My Area",
419
573
  front: "https://www.lob.com/areafront.pdf",
420
574
  back: "https://www.lob.com/areaback.pdf",
@@ -426,7 +580,7 @@ You'll have to specify front, back, and either zip_codes or routes
426
580
 
427
581
  zip_codes and routes can be a string or an array of strings
428
582
 
429
- #### List areas
583
+ #### lob.areas.list
430
584
  ```ruby
431
585
  @lob.areas.list
432
586
 
@@ -434,17 +588,16 @@ zip_codes and routes can be a string or an array of strings
434
588
  @lob.areas.list(count: 10, offset: 3)
435
589
  ```
436
590
 
437
-
438
- #### Find an area
591
+ #### lob.areas.find
439
592
  ```ruby
440
593
  @lob.areas.find("area_id")
441
594
  ```
442
595
 
443
- ### Routes
596
+ ### lob.routes
444
597
 
445
598
  You'll have to specify zip_codes
446
599
 
447
- #### Find routes
600
+ #### lob.routes.find
448
601
 
449
602
  ```ruby
450
603
  @lob.routes.find(
@@ -454,81 +607,24 @@ You'll have to specify zip_codes
454
607
 
455
608
  zip_codes can be a string or an array of strings
456
609
 
457
- ### Services
458
-
459
- #### List services
460
-
461
- ```ruby
462
- # returns a list of services
463
- @lob.services.list
464
- ```
465
-
466
- ### Bank accounts
467
-
468
- #### List bank accounts
469
-
470
- ```ruby
471
- # returns a list of accounts
472
- @lob.bank_accounts.list
473
- ```
474
-
475
- #### Add a bank account
476
-
477
- ```ruby
478
- bank_address = {name: "ToAddress", address_line1: "120, 6th Ave", city: "Boston", country: "US", zip: 12345}
479
- account_address = {name: "ToAddress", address_line1: "120, 6th Ave", city: "Boston", country: "US", zip: 12345}
480
-
481
- # Pass address params or address IDs
482
- # The 5th argument is the options argument and is optional
483
- @lob.bank_accounts.create(
484
- routing_number: "routing_number",
485
- bank_address: bank_address,
486
- account_number: "account_number",
487
- account_address: account_address
488
- )
489
- ```
490
-
491
- #### Find a bank account
492
-
493
- ```ruby
494
- @lob.bank_accounts.find("bank-account-id")
495
- ```
496
-
497
- ### Checks
498
-
499
- #### Create a check
500
-
501
- ```ruby
502
- # Transfer $5000 to a bank account.
503
- @lob.checks.create(
504
- bank_account: "bank-account-id",
505
- to: "to-address-ID",
506
- amount: 5000
507
- )
508
-
509
- # For the "to" address, you can pass params or an address ID
510
- # You can also specify an optional 4th argument, with other options.
511
- ```
512
-
513
- #### List checks
610
+ ## Resources
514
611
 
515
- ```ruby
516
- @lob.checks.list
517
- ```
612
+ ### lob.countries
518
613
 
519
- #### Find a check
614
+ #### lob.countries.list
520
615
 
521
616
  ```ruby
522
- @lob.checks.find("check-id")
617
+ # returns a list of countries
618
+ @lob.countries.list
523
619
  ```
524
620
 
525
- ### Supported countries
621
+ ### lob.states
526
622
 
527
- #### List supported countries
623
+ #### lob.states.list
528
624
 
529
625
  ```ruby
530
- # returns a list of countries
531
- @lob.countries.list
626
+ # returns a list of states
627
+ @lob.states.list
532
628
  ```
533
629
 
534
630
  ## Developing
@@ -541,7 +637,7 @@ Make sure you have Ruby 2.0 installed. Copy and paste the following commands in
541
637
 
542
638
  You are powered up and ready to roll ~!
543
639
 
544
- ## Running the test-suite
640
+ ## Testing
545
641
 
546
642
  To run the tests, download the required sample files by running the following command:
547
643
 
@@ -5,13 +5,45 @@ require 'lob'
5
5
  Lob.api_key = 'test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc'
6
6
  @lob = Lob.load
7
7
 
8
+ # create an address
9
+ to_address = @lob.addresses.create(
10
+ name: "John Doe",
11
+ address_line1: "104 Printing Boulevard",
12
+ city: "Boston",
13
+ state: "MA",
14
+ country: "US",
15
+ zip: 12345
16
+ )
17
+
18
+ # create a bank account
19
+ bank_account = @lob.bank_accounts.create(
20
+ routing_number: "322271627",
21
+ account_number: "123456789",
22
+ bank_address: {
23
+ name: "Bank Address",
24
+ address_line1: "120 6th Ave",
25
+ city: "Boston",
26
+ state: "MA",
27
+ country: "US",
28
+ zip: 12345
29
+ },
30
+ account_address: {
31
+ name: "Account Address",
32
+ address_line1: "120 6th Ave",
33
+ city: "Boston",
34
+ state: "MA",
35
+ country: "US",
36
+ zip: 12345
37
+ }
38
+ )
39
+
8
40
  # send a $1000 check using an already created bank and address
9
41
  puts @lob.checks.create(
10
- name: 'Test Check',
11
- check_number: '10000',
12
- bank_account: 'bank_3e64d9904356b20',
13
- to: 'adr_0e418aa8d1eb41fb',
42
+ name: "Test Check",
43
+ check_number: "10000",
44
+ bank_account: bank_account["id"],
45
+ to: to_address["id"],
14
46
  amount: 100,
15
- memo: 'This is my first Check',
16
- message: 'This check is for laundry'
47
+ memo: "This is my first Check",
48
+ message: "This check is for laundry"
17
49
  )
@@ -10,37 +10,38 @@ settings = @lob.settings.list
10
10
  setting_index = settings.find_index { |setting| setting["type"] === "documents" }
11
11
  setting_id = settings[setting_index]["id"]
12
12
 
13
- # create a file object to user laterA
13
+ # create a file object to user later
14
14
  michigan_logo = @lob.objects.create(
15
15
  name: "Michigan Logo Document",
16
+ file: "https://www.lob.com/goblue.pdf",
17
+ setting_id: setting_id
18
+ )
19
+
20
+ # create a to address
21
+ to_address = @lob.addresses.create(
22
+ name: "ToAddress",
23
+ address_line1: "120 6th Ave",
24
+ city: "Boston",
25
+ state: "MA",
26
+ country: "US",
27
+ zip: 12345
28
+ )
29
+
30
+ # create a from address
31
+ from_address = @lob.addresses.create(
32
+ name: "FromAddress",
33
+ address_line1: "120 6th Ave",
34
+ city: "Boston",
35
+ state: "MA",
36
+ country: "US",
37
+ zip: 12345
16
38
  )
17
39
 
18
40
 
19
- @lob.jobs.create(
41
+ # send the object you created
42
+ puts @lob.jobs.create(
20
43
  name: "Michigan Logo to Harry",
21
- from: {
22
- name: "Leore Avidar",
23
- email: "test@test.com",
24
- address_line1: "123 Test Street",
25
- address_line2: "Unit 199",
26
- city: "Mountain View",
27
- state: "CA",
28
- country: "US",
29
- zip: 94085
30
- },
31
- to: {
32
- name: "Harry Avidar",
33
- email: "test@test.com",
34
- address_line1: "123 Test Street",
35
- address_line2: "Unit 199",
36
- city: "Mountain View",
37
- state: "CA",
38
- country: "US",
39
- zip: 94085
40
- },
41
- objects: {
42
- name: "Michigan Logo",
43
- file: "https://www.lob.com/goblue.pdf",
44
- setting_id: setting_id
45
- }
44
+ to: to_address["id"],
45
+ from: from_address["id"],
46
+ objects: michigan_logo["id"]
46
47
  )
@@ -5,53 +5,31 @@ require 'lob'
5
5
  Lob.api_key = 'test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc'
6
6
  @lob = Lob.load
7
7
 
8
- # create a postcard with in-line addresses
9
- puts @lob.postcards.create(
10
- name: "John Joe",
11
- to: {
12
- name: "ToAddress",
13
- address_line1: "120, 6th Ave",
14
- city: "Boston",
15
- state: "MA",
16
- country: "US",
17
- zip: 12345
18
- },
19
- from: {
20
- name: "FromAddress",
21
- address_line1: "120, 6th Ave",
22
- city: "Boston",
23
- state: "MA",
24
- country: "US",
25
- zip: 12345
26
- },
27
- front: "https://www.lob.com/postcardfront.pdf",
28
- back: File.new("../spec/samples/postcardback.pdf")
29
- )
30
-
31
- # create a postcard with stored addresses
32
-
8
+ # create a to address
33
9
  to_address = @lob.addresses.create(
34
10
  name: "ToAddress",
35
- address_line1: "120, 6th Ave",
11
+ address_line1: "120 6th Ave",
36
12
  city: "Boston",
37
13
  state: "MA",
38
14
  country: "US",
39
15
  zip: 12345
40
16
  )
41
17
 
18
+ # create a from address
42
19
  from_address = @lob.addresses.create(
43
20
  name: "FromAddress",
44
- address_line1: "120, 6th Ave",
21
+ address_line1: "120 6th Ave",
45
22
  city: "Boston",
46
23
  state: "MA",
47
24
  country: "US",
48
25
  zip: 12345
49
26
  )
50
27
 
28
+ # send a postcard
51
29
  puts @lob.postcards.create(
52
30
  name: "John Joe",
53
31
  to: to_address["id"],
54
32
  from: from_address["id"],
55
33
  front: "https://www.lob.com/postcardfront.pdf",
56
- back: File.new("../spec/samples/postcardback.pdf")
34
+ back: "https://www.lob.com/postcardback.pdf"
57
35
  )
data/lib/lob.rb CHANGED
@@ -6,7 +6,6 @@ require "lob/lob_error"
6
6
  Dir[File.join(File.dirname(__FILE__), 'lob', 'v*', '*.rb')].each {|file| require file }
7
7
 
8
8
  module Lob
9
-
10
9
  class << self
11
10
  attr_accessor :api_key,
12
11
  :api_version,
@@ -29,8 +28,18 @@ module Lob
29
28
 
30
29
 
31
30
  def self.submit(method, url, parameters={})
32
- parameters = {:params => parameters} if method == :get
33
- JSON(RestClient.send(method, url, parameters))
31
+ clientVersion = Gem.latest_spec_for('lob').version.to_s
32
+
33
+ if method == :get || method == :delete
34
+ JSON(RestClient.send(method, url, {
35
+ user_agent: 'Lob/v1 RubyBindings/' + clientVersion,
36
+ params: parameters
37
+ }))
38
+ else
39
+ JSON(RestClient.send(method, url, parameters, {
40
+ user_agent: 'Lob/v1 RubyBindings/' + clientVersion
41
+ }))
42
+ end
34
43
  # :nocov:
35
44
  rescue => e
36
45
  begin
@@ -16,6 +16,18 @@ module Lob
16
16
  Lob::V1::Address.new(self)
17
17
  end
18
18
 
19
+ def bank_accounts
20
+ Lob::V1::BankAccount.new(self)
21
+ end
22
+
23
+ def checks
24
+ Lob::V1::Check.new(self)
25
+ end
26
+
27
+ def countries
28
+ Lob::V1::Country.new(self)
29
+ end
30
+
19
31
  def jobs
20
32
  Lob::V1::Job.new(self)
21
33
  end
@@ -44,19 +56,10 @@ module Lob
44
56
  Lob::V1::Setting.new(self)
45
57
  end
46
58
 
47
- def countries
48
- Lob::V1::Country.new(self)
49
- end
50
-
51
- def checks
52
- Lob::V1::Check.new(self)
59
+ def states
60
+ Lob::V1::State.new(self)
53
61
  end
54
62
 
55
- def bank_accounts
56
- Lob::V1::BankAccount.new(self)
57
- end
58
-
59
-
60
63
  def base_url
61
64
  "#{@options[:protocol]}://#{@options[:api_key]}:@#{@options[:api_host]}/v1"
62
65
  end
@@ -0,0 +1,21 @@
1
+ module Lob
2
+ module V1
3
+ class State
4
+
5
+ def initialize(resource)
6
+ @resource = resource
7
+ end
8
+
9
+ def list(options={})
10
+ Lob.submit(:get, state_url, options)["data"] || []
11
+ end
12
+
13
+ private
14
+
15
+ def state_url
16
+ @resource.construct_url("states")
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -5,7 +5,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "lob"
8
- spec.version = "1.5"
8
+ spec.version = "1.6"
9
9
  spec.authors = ["Lob"]
10
10
  spec.email = ["support@lob.com"]
11
11
  spec.description = %q{Lob API Ruby wrapper}
@@ -1,7 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Lob::V1::Country do
4
-
5
4
  subject { Lob(api_key: ENV["LOB_API_KEY"], api_version: "v1") }
6
5
 
7
6
  describe "list" do
@@ -12,5 +11,4 @@ describe Lob::V1::Country do
12
11
  end
13
12
  end
14
13
  end
15
-
16
14
  end
@@ -0,0 +1,14 @@
1
+ require "spec_helper"
2
+
3
+ describe Lob::V1::State do
4
+ subject { Lob(api_key: ENV["LOB_API_KEY"], api_version: "v1") }
5
+
6
+ describe "list" do
7
+ it "should list states" do
8
+ VCR.use_cassette('list_states') do
9
+ result = subject.states.list
10
+ result.length.must_be :>, 0
11
+ end
12
+ end
13
+ end
14
+ end
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: '1.5'
4
+ version: '1.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-01 00:00:00.000000000 Z
11
+ date: 2014-10-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -163,12 +163,10 @@ files:
163
163
  - LICENSE.txt
164
164
  - README.md
165
165
  - Rakefile
166
- - examples/addresses.rb
167
166
  - examples/checks.rb
168
167
  - examples/create_pdf.rb
169
168
  - examples/jobs.rb
170
169
  - examples/postcards.rb
171
- - examples/verification.rb
172
170
  - lib/lob.rb
173
171
  - lib/lob/lob_error.rb
174
172
  - lib/lob/v1/address.rb
@@ -184,6 +182,7 @@ files:
184
182
  - lib/lob/v1/route.rb
185
183
  - lib/lob/v1/service.rb
186
184
  - lib/lob/v1/setting.rb
185
+ - lib/lob/v1/state.rb
187
186
  - lob.gemspec
188
187
  - spec/lob/v1/address_spec.rb
189
188
  - spec/lob/v1/area_spec.rb
@@ -198,6 +197,7 @@ files:
198
197
  - spec/lob/v1/route_spec.rb
199
198
  - spec/lob/v1/service_spec.rb
200
199
  - spec/lob/v1/setting_spec.rb
200
+ - spec/lob/v1/state_spec.rb
201
201
  - spec/lob_spec.rb
202
202
  - spec/spec_helper.rb
203
203
  homepage: https://github.com/lob/lob-ruby
@@ -238,5 +238,6 @@ test_files:
238
238
  - spec/lob/v1/route_spec.rb
239
239
  - spec/lob/v1/service_spec.rb
240
240
  - spec/lob/v1/setting_spec.rb
241
+ - spec/lob/v1/state_spec.rb
241
242
  - spec/lob_spec.rb
242
243
  - spec/spec_helper.rb
@@ -1,16 +0,0 @@
1
- $:.unshift File.expand_path("../lib", File.dirname(__FILE__))
2
- require 'lob'
3
-
4
- # initialize Lob object
5
- Lob.api_key = 'test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc'
6
- @lob = Lob.load
7
-
8
- # create an address
9
- puts @lob.addresses.create(
10
- name: "John Doe",
11
- address_line1: "104, Printing Boulevard",
12
- city: "Boston",
13
- state: "MA",
14
- country: "US",
15
- zip: 12345
16
- )
@@ -1,14 +0,0 @@
1
- $:.unshift File.expand_path("../lib", File.dirname(__FILE__))
2
- require 'lob'
3
-
4
- # initialize Lob object
5
- Lob.api_key = 'test_0dc8d51e0acffcb1880e0f19c79b2f5b0cc'
6
- @lob = Lob.load
7
-
8
- # verify an address
9
- puts @lob.addresses.verify(
10
- address_line1: "220 WILLIAM T MORRISSEY BLVD",
11
- city: "Boston",
12
- state: "MA",
13
- zip: "02125"
14
- )