lob 2.5.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/CHANGELOG.md +9 -0
  4. data/CONTRIBUTING.md +19 -0
  5. data/Gemfile +0 -2
  6. data/README.md +19 -36
  7. data/examples/README.md +14 -6
  8. data/examples/checks.rb +6 -7
  9. data/examples/csv_checks/create_checks.rb +47 -0
  10. data/examples/csv_checks/input.csv +6 -0
  11. data/examples/csv_letters/create_letters.rb +40 -0
  12. data/examples/csv_letters/input.csv +6 -0
  13. data/examples/csv_letters/letter_template.html +33 -0
  14. data/examples/csv_postcards/create_postcards.rb +2 -3
  15. data/examples/letters.rb +4 -5
  16. data/examples/postcards.rb +4 -5
  17. data/examples/verify/verify.rb +3 -4
  18. data/lib/lob.rb +1 -91
  19. data/lib/lob/client.rb +61 -0
  20. data/lib/lob/resources/address.rb +24 -0
  21. data/lib/lob/resources/area.rb +16 -0
  22. data/lib/lob/resources/bank_account.rb +24 -0
  23. data/lib/lob/resources/check.rb +14 -0
  24. data/lib/lob/resources/country.rb +16 -0
  25. data/lib/lob/resources/letter.rb +14 -0
  26. data/lib/lob/resources/postcard.rb +14 -0
  27. data/lib/lob/resources/resource_base.rb +108 -0
  28. data/lib/lob/resources/route.rb +24 -0
  29. data/lib/lob/resources/state.rb +16 -0
  30. data/lib/lob/version.rb +1 -1
  31. data/spec/lob/{v1 → resources}/address_spec.rb +15 -14
  32. data/spec/lob/{v1 → resources}/area_spec.rb +2 -2
  33. data/spec/lob/{v1 → resources}/bank_account_spec.rb +2 -2
  34. data/spec/lob/{v1 → resources}/check_spec.rb +3 -2
  35. data/spec/lob/{v1 → resources}/country_spec.rb +2 -2
  36. data/spec/lob/{v1 → resources}/letter_spec.rb +2 -2
  37. data/spec/lob/{v1 → resources}/postcard_spec.rb +2 -2
  38. data/spec/lob/resources/resource_base_spec.rb +53 -0
  39. data/spec/lob/{v1 → resources}/route_spec.rb +2 -2
  40. data/spec/lob/{v1 → resources}/state_spec.rb +2 -2
  41. data/spec/lob_spec.rb +12 -45
  42. data/spec/spec_helper.rb +2 -0
  43. metadata +86 -89
  44. data/examples/jobs.rb +0 -91
  45. data/lib/lob/v1/address.rb +0 -41
  46. data/lib/lob/v1/area.rb +0 -27
  47. data/lib/lob/v1/bank_account.rb +0 -37
  48. data/lib/lob/v1/check.rb +0 -33
  49. data/lib/lob/v1/country.rb +0 -21
  50. data/lib/lob/v1/job.rb +0 -39
  51. data/lib/lob/v1/letter.rb +0 -33
  52. data/lib/lob/v1/object.rb +0 -33
  53. data/lib/lob/v1/postcard.rb +0 -33
  54. data/lib/lob/v1/resource.rb +0 -69
  55. data/lib/lob/v1/route.rb +0 -27
  56. data/lib/lob/v1/setting.rb +0 -25
  57. data/lib/lob/v1/state.rb +0 -21
  58. data/spec/lob/v1/job_spec.rb +0 -161
  59. data/spec/lob/v1/object_spec.rb +0 -72
  60. data/spec/lob/v1/resource_spec.rb +0 -41
  61. data/spec/lob/v1/setting_spec.rb +0 -21
data/examples/jobs.rb DELETED
@@ -1,91 +0,0 @@
1
- $:.unshift File.expand_path("../lib", File.dirname(__FILE__))
2
- require 'open-uri'
3
- require 'lob'
4
-
5
- # initialize Lob object
6
- Lob.api_key = 'test_799ff27291c166d10ba191902ad02fb059c'
7
- @lob = Lob.load
8
-
9
- html = %{
10
- <html>
11
- <head>
12
- <title>Lob.com Sample Photo</title>
13
- <style>
14
- *, *:before, *:after {
15
- -webkit-box-sizing: border-box;
16
- -moz-box-sizing: border-box;
17
- box-sizing: border-box;
18
- }
19
-
20
- @font-face {
21
- font-family: 'Loved by the King';
22
- font-style: normal;
23
- font-weight: 400;
24
- src: url('https://s3-us-west-2.amazonaws.com/lob-assets/LovedbytheKing.ttf') format('truetype');
25
- }
26
-
27
- body {
28
- width: 6.25in;
29
- height: 4.25in;
30
- margin: 0;
31
- padding: 0;
32
- /* If using an image, the background image should have dimensions of 1875x1275 pixels. */
33
- background-image: url(https://s3-us-west-2.amazonaws.com/lob-assets/beach.jpg);
34
- background-size: 6.25in 4.25in;
35
- background-repeat: no-repeat;
36
- }
37
-
38
- .text {
39
- margin: 50px;
40
- width: 400px;
41
- font-family: 'Loved by the King';
42
- font-size: 50px;
43
- font-weight: 700;
44
- color: white;
45
- text-shadow: 3px 3px black;
46
- }
47
- </style>
48
- </head>
49
-
50
- <body>
51
- <h1 class="text">Hello {{name}}!</h1>
52
- <p class="text">Join us for the {{event}}!</p>
53
- </body>
54
-
55
- </html>
56
- }
57
-
58
- object = @lob.objects.create(
59
- description: 'Test Object',
60
- file: html,
61
- data: { name: "Albert", event: "Summer 2015 Beach-athon" },
62
- setting: 201
63
- )
64
-
65
- # create a to address
66
- to_address = @lob.addresses.create(
67
- name: "ToAddress",
68
- address_line1: "120 6th Ave",
69
- address_city: "Boston",
70
- address_state: "MA",
71
- address_country: "US",
72
- address_zip: 12345
73
- )
74
-
75
- # create a from address
76
- from_address = @lob.addresses.create(
77
- name: "FromAddress",
78
- address_line1: "120 6th Ave",
79
- address_city: "Boston",
80
- address_state: "MA",
81
- address_country: "US",
82
- address_zip: 12345
83
- )
84
-
85
- # send the object you created
86
- puts @lob.jobs.create(
87
- description: "Michigan Logo to Harry",
88
- to: to_address["id"],
89
- from: from_address["id"],
90
- objects: object["id"]
91
- )
@@ -1,41 +0,0 @@
1
- module Lob
2
- module V1
3
- class Address
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def verify(options={})
10
- Lob.submit(:post, address_verify_url, options)
11
- end
12
-
13
- def list(options={})
14
- Lob.submit(:get, address_url, options)
15
- end
16
-
17
- def find(address_id)
18
- Lob.submit :get, address_url(address_id)
19
- end
20
-
21
- def create(options = {})
22
- Lob.submit :post, address_url, options
23
- end
24
-
25
- def destroy(address_id)
26
- Lob.submit :delete, address_url(address_id)
27
- end
28
-
29
- private
30
-
31
- def address_url(address_id = nil)
32
- @resource.construct_url("addresses", address_id)
33
- end
34
-
35
- def address_verify_url
36
- @resource.construct_url("verify")
37
- end
38
-
39
- end
40
- end
41
- end
data/lib/lob/v1/area.rb DELETED
@@ -1,27 +0,0 @@
1
- module Lob
2
- module V1
3
- class Area
4
- def initialize(resource)
5
- @resource = resource
6
- end
7
-
8
- def list(options = {})
9
- Lob.submit(:get, area_url, options)
10
- end
11
-
12
- def find(lob_object_id)
13
- Lob.submit :get, area_url(lob_object_id)
14
- end
15
-
16
- def create(options = {})
17
- Lob.submit :post, area_url, options
18
- end
19
-
20
- private
21
-
22
- def area_url(area_id = nil)
23
- @resource.construct_url("areas", area_id)
24
- end
25
- end
26
- end
27
- end
@@ -1,37 +0,0 @@
1
- module Lob
2
- module V1
3
- class BankAccount
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def list(options={})
10
- Lob.submit(:get, bank_account_url, options)
11
- end
12
-
13
- def find(bank_account_id)
14
- Lob.submit :get, bank_account_url(bank_account_id)
15
- end
16
-
17
- def create(options = {})
18
- Lob.submit :post, bank_account_url, options
19
- end
20
-
21
- def destroy(bank_account_id)
22
- Lob.submit :delete, bank_account_url(bank_account_id)
23
- end
24
-
25
- def verify(bank_account_id, options = {})
26
- Lob.submit :post, "#{bank_account_url(bank_account_id)}/verify", options
27
- end
28
-
29
- private
30
-
31
- def bank_account_url(bank_account_id = nil)
32
- @resource.construct_url("bank_accounts", bank_account_id)
33
- end
34
-
35
- end
36
- end
37
- end
data/lib/lob/v1/check.rb DELETED
@@ -1,33 +0,0 @@
1
- module Lob
2
- module V1
3
- class Check
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def list(options={})
10
- Lob.submit(:get, check_url, options)
11
- end
12
-
13
- def find(check_id)
14
- Lob.submit :get, check_url(check_id)
15
- end
16
-
17
- def create(options = {})
18
- Lob.submit :post, check_url, options
19
- end
20
-
21
- def destroy(check_id)
22
- Lob.submit :delete, check_url(check_id)
23
- end
24
-
25
- private
26
-
27
- def check_url(check_id = nil)
28
- @resource.construct_url("checks", check_id)
29
- end
30
-
31
- end
32
- end
33
- end
@@ -1,21 +0,0 @@
1
- module Lob
2
- module V1
3
- class Country
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def list(options={})
10
- Lob.submit(:get, country_url, options)
11
- end
12
-
13
- private
14
-
15
- def country_url
16
- @resource.construct_url("countries")
17
- end
18
-
19
- end
20
- end
21
- end
data/lib/lob/v1/job.rb DELETED
@@ -1,39 +0,0 @@
1
- module Lob
2
- module V1
3
- class Job
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def list(options={})
10
- Lob.submit(:get, job_url, options)
11
- end
12
-
13
- def find(job_id)
14
- Lob.submit :get, job_url(job_id)
15
- end
16
-
17
- def create(options = {})
18
- if options[:objects].is_a?(Array)
19
- options[:objects].each_with_index do |object, index|
20
- options["object#{index+1}"] = object
21
- end
22
- else
23
- options["object1"] = options[:objects]
24
- end
25
- options.delete(:objects)
26
-
27
- Lob.submit :post, job_url, options
28
- end
29
-
30
-
31
- private
32
-
33
- def job_url(job_id = nil)
34
- @resource.construct_url("jobs", job_id)
35
- end
36
-
37
- end
38
- end
39
- end
data/lib/lob/v1/letter.rb DELETED
@@ -1,33 +0,0 @@
1
- module Lob
2
- module V1
3
- class Letter
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def list(options={})
10
- Lob.submit(:get, letter_url, options)
11
- end
12
-
13
- def find(letter_id)
14
- Lob.submit :get, letter_url(letter_id)
15
- end
16
-
17
- def create(options = {})
18
- Lob.submit :post, letter_url, options
19
- end
20
-
21
- def destroy(letter_id)
22
- Lob.submit :delete, letter_url(letter_id)
23
- end
24
-
25
- private
26
-
27
- def letter_url(job_id = nil)
28
- @resource.construct_url("letters", job_id)
29
- end
30
-
31
- end
32
- end
33
- end
data/lib/lob/v1/object.rb DELETED
@@ -1,33 +0,0 @@
1
- module Lob
2
- module V1
3
- class Object
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def list(options = {})
10
- Lob.submit(:get, object_url, options)
11
- end
12
-
13
- def find(lob_object_id)
14
- Lob.submit :get, object_url(lob_object_id)
15
- end
16
-
17
- def create(options = {})
18
- Lob.submit :post, object_url, options
19
- end
20
-
21
- def destroy(lob_object_id)
22
- Lob.submit :delete, object_url(lob_object_id)
23
- end
24
-
25
- private
26
-
27
- def object_url(lob_object_id = nil)
28
- @resource.construct_url("objects", lob_object_id)
29
- end
30
-
31
- end
32
- end
33
- end
@@ -1,33 +0,0 @@
1
- module Lob
2
- module V1
3
- class Postcard
4
-
5
- def initialize(resource)
6
- @resource = resource
7
- end
8
-
9
- def list(options={})
10
- Lob.submit(:get, postcard_url, options)
11
- end
12
-
13
- def find(postcard_id)
14
- Lob.submit :get, postcard_url(postcard_id)
15
- end
16
-
17
- def create(options = {})
18
- Lob.submit :post, postcard_url, options
19
- end
20
-
21
- def destroy(postcard_id)
22
- Lob.submit :delete, postcard_url(postcard_id)
23
- end
24
-
25
- private
26
-
27
- def postcard_url(postcard_id = nil)
28
- @resource.construct_url("postcards", postcard_id)
29
- end
30
-
31
- end
32
- end
33
- end
@@ -1,69 +0,0 @@
1
- module Lob
2
- module V1
3
- class Resource
4
-
5
- attr_accessor :options
6
-
7
- def initialize(options)
8
- @options = options
9
- end
10
-
11
- def areas
12
- Lob::V1::Area.new(self)
13
- end
14
-
15
- def addresses
16
- Lob::V1::Address.new(self)
17
- end
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
-
31
- def jobs
32
- Lob::V1::Job.new(self)
33
- end
34
-
35
- def letters
36
- Lob::V1::Letter.new(self)
37
- end
38
-
39
- def objects
40
- Lob::V1::Object.new(self)
41
- end
42
-
43
- def postcards
44
- Lob::V1::Postcard.new(self)
45
- end
46
-
47
- def routes
48
- Lob::V1::Route.new(self)
49
- end
50
-
51
- def settings
52
- Lob::V1::Setting.new(self)
53
- end
54
-
55
- def states
56
- Lob::V1::State.new(self)
57
- end
58
-
59
- def base_url
60
- "#{@options[:protocol]}://#{@options[:api_key]}:@#{@options[:api_host]}/v1"
61
- end
62
-
63
- def construct_url(resource_type, resource_id=nil)
64
- "#{base_url}/#{resource_type}#{'/' + resource_id if resource_id}"
65
- end
66
-
67
- end
68
- end
69
- end