hellosign-api 1.0.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 (75) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +15 -0
  5. data/CONTRIBUTING.md +42 -0
  6. data/Gemfile +13 -0
  7. data/Guardfile +14 -0
  8. data/LICENSE +21 -0
  9. data/README.md +112 -0
  10. data/Rakefile +16 -0
  11. data/hellosign-api.gemspec +54 -0
  12. data/lib/hello_sign/.error.rb.swp +0 -0
  13. data/lib/hello_sign/api/account.rb +78 -0
  14. data/lib/hello_sign/api/api_app.rb +121 -0
  15. data/lib/hello_sign/api/bulk_send_job.rb +62 -0
  16. data/lib/hello_sign/api/embedded.rb +68 -0
  17. data/lib/hello_sign/api/oauth.rb +95 -0
  18. data/lib/hello_sign/api/signature_request.rb +691 -0
  19. data/lib/hello_sign/api/team.rb +107 -0
  20. data/lib/hello_sign/api/template.rb +227 -0
  21. data/lib/hello_sign/api/unclaimed_draft.rb +328 -0
  22. data/lib/hello_sign/api.rb +31 -0
  23. data/lib/hello_sign/client.rb +372 -0
  24. data/lib/hello_sign/configuration.rb +78 -0
  25. data/lib/hello_sign/error.rb +99 -0
  26. data/lib/hello_sign/resource/account.rb +43 -0
  27. data/lib/hello_sign/resource/api_app.rb +43 -0
  28. data/lib/hello_sign/resource/base_resource.rb +73 -0
  29. data/lib/hello_sign/resource/bulk_send_job.rb +43 -0
  30. data/lib/hello_sign/resource/embedded.rb +43 -0
  31. data/lib/hello_sign/resource/resource_array.rb +56 -0
  32. data/lib/hello_sign/resource/signature_request.rb +43 -0
  33. data/lib/hello_sign/resource/team.rb +43 -0
  34. data/lib/hello_sign/resource/template.rb +43 -0
  35. data/lib/hello_sign/resource/template_draft.rb +44 -0
  36. data/lib/hello_sign/resource/unclaimed_draft.rb +44 -0
  37. data/lib/hello_sign/resource.rb +33 -0
  38. data/lib/hello_sign/version.rb +25 -0
  39. data/lib/hello_sign.rb +50 -0
  40. data/lib/hellosign-ruby-sdk.rb +4 -0
  41. data/spec/fixtures/account.json +15 -0
  42. data/spec/fixtures/api_app.json +16 -0
  43. data/spec/fixtures/api_apps.json +43 -0
  44. data/spec/fixtures/bulk_send_job.json +88 -0
  45. data/spec/fixtures/bulk_send_jobs.json +22 -0
  46. data/spec/fixtures/embedded.json +6 -0
  47. data/spec/fixtures/empty.pdf +0 -0
  48. data/spec/fixtures/error.json +6 -0
  49. data/spec/fixtures/file.json +0 -0
  50. data/spec/fixtures/headers.json +18 -0
  51. data/spec/fixtures/nda.pdf +0 -0
  52. data/spec/fixtures/signature_request.json +45 -0
  53. data/spec/fixtures/signature_requests.json +44 -0
  54. data/spec/fixtures/team.json +15 -0
  55. data/spec/fixtures/template.json +53 -0
  56. data/spec/fixtures/templates.json +59 -0
  57. data/spec/fixtures/token.json +14 -0
  58. data/spec/fixtures/unclaimed_draft.json +6 -0
  59. data/spec/hello_sign/.error_spec.rb.swp +0 -0
  60. data/spec/hello_sign/api/account_spec.rb +42 -0
  61. data/spec/hello_sign/api/api_app_spec.rb +104 -0
  62. data/spec/hello_sign/api/bulk_send_job_spec.rb +53 -0
  63. data/spec/hello_sign/api/embedded_spec.rb +23 -0
  64. data/spec/hello_sign/api/oauth_spec.rb +27 -0
  65. data/spec/hello_sign/api/signature_request_spec.rb +268 -0
  66. data/spec/hello_sign/api/team_spec.rb +101 -0
  67. data/spec/hello_sign/api/template_spec.rb +172 -0
  68. data/spec/hello_sign/api/unclaimed_draft_spec.rb +145 -0
  69. data/spec/hello_sign/client_spec.rb +191 -0
  70. data/spec/hello_sign/error_spec.rb +10 -0
  71. data/spec/hello_sign/resource/base_resource_spec.rb +53 -0
  72. data/spec/hello_sign_spec.rb +57 -0
  73. data/spec/scenarios/uploads_spec.rb +19 -0
  74. data/spec/spec_helper.rb +104 -0
  75. metadata +261 -0
@@ -0,0 +1,191 @@
1
+ require 'spec_helper'
2
+
3
+ describe HelloSign::Client do
4
+ describe '#initialize' do
5
+ context 'with default values' do
6
+ subject(:client) { HelloSign::Client.new }
7
+ HelloSign::Configuration::VALID_OPTIONS_KEYS.each do |key|
8
+ it "should set #{key}" do
9
+ expect(client.send(key)).to eql(HelloSign.send(key))
10
+ end
11
+ end
12
+ end
13
+
14
+ context 'with custom values' do
15
+ let(:custom_client){
16
+ {
17
+ :email_address => 'email_address',
18
+ :password => 'password',
19
+ :api_key => 'api_key',
20
+ :user_agent => 'user_agent',
21
+ :end_point => 'end_point',
22
+ :oauth_end_point => 'oauth_end_point',
23
+ :api_version => 'api_version',
24
+ :client_id => 'client_id',
25
+ :client_secret => 'client_secret',
26
+ :auth_token => 'auth_token',
27
+ :log_level => 5,
28
+ :logging => false,
29
+ :proxy_uri => 'proxy_uri',
30
+ :proxy_user => 'proxy_user',
31
+ :proxy_pass => 'proxy_pass',
32
+ :timeout => 240
33
+ }
34
+ }
35
+ subject(:client) { HelloSign::Client.new custom_client }
36
+ HelloSign::Configuration::VALID_OPTIONS_KEYS.each do |key|
37
+ it "should set #{key}" do
38
+ expect(client.send(key)).to eql(custom_client[key])
39
+ end
40
+ end
41
+
42
+ it "should create a new HelloSign Client" do
43
+ expect(client).to be_an_instance_of(HelloSign::Client)
44
+ end
45
+
46
+ it "should have 'timeout' as a parameter" do
47
+ expect(client.timeout).to eq(240)
48
+ end
49
+ end
50
+ end
51
+
52
+ describe '#request' do
53
+ def post_request(key)
54
+ stub_post('/account/create', 'error', key)
55
+ HelloSign.create_account :email_address => 'test@example.com', :password => 'password'
56
+ end
57
+
58
+ def get_request(key)
59
+ stub_get('/account', 'error', key)
60
+ HelloSign.get_account
61
+ end
62
+
63
+ HelloSign::Client::ERRORS.keys.each do |key|
64
+ context "when response status #{key}" do
65
+ it "raise #{HelloSign::Client::ERRORS[key].to_s} on post" do
66
+ expect { post_request(key) }.to raise_error(HelloSign::Client::ERRORS[key])
67
+ end
68
+
69
+ it "raise #{HelloSign::Client::ERRORS[key].to_s} on get" do
70
+ expect { get_request(key) }.to raise_error(HelloSign::Client::ERRORS[key])
71
+ end
72
+ end
73
+ end
74
+
75
+ context 'when response status not listed' do
76
+ it 'raise UnknownError for post' do
77
+ expect { post_request(504) }.to raise_error(HelloSign::Error::UnknownError)
78
+ end
79
+
80
+ it 'raise UnknownError for get' do
81
+ expect { get_request(504) }.to raise_error(HelloSign::Error::UnknownError)
82
+ end
83
+ end
84
+
85
+ describe 'error keys are set' do
86
+ let(:error) do
87
+ begin
88
+ get_request(400)
89
+ rescue => e
90
+ e
91
+ else
92
+ # Defense exception:
93
+ raise 'Expected stub to throw exception'
94
+ end
95
+ end
96
+
97
+ describe 'message' do
98
+ subject { error.message }
99
+ # Following test proves backwards compatibility
100
+ it { is_expected.to match(/Server responded.*/) }
101
+ end
102
+
103
+ describe 'response_body' do
104
+ subject { error.response_body }
105
+ it { is_expected.to eql(load_fixture('error').read) }
106
+ end
107
+
108
+ describe 'response_status' do
109
+ subject { error.response_status }
110
+ it { is_expected.to eql(400) }
111
+ end
112
+
113
+ describe 'request_uri' do
114
+ subject { error.request_uri }
115
+ it { is_expected.to eql('https://api.hellosign.com/v3/account') }
116
+ end
117
+ end
118
+ end
119
+
120
+ describe 'prepare' do
121
+ context 'signers' do
122
+ describe 'is an array' do
123
+ before do
124
+ stub_post('/signature_request/send', 'signature_request')
125
+ end
126
+
127
+ it 'work correctly' do
128
+ expect(lambda{ HelloSign.send_signature_request(
129
+ :files_url => ['http://hellosign.com/test.pdf'],
130
+ :signers => ['sss']
131
+ ) }).not_to raise_error
132
+ end
133
+ end
134
+
135
+ describe 'is an Hash' do
136
+ before do
137
+ stub_post('/signature_request/send', 'signature_request')
138
+ end
139
+
140
+ it 'work correctly' do
141
+ expect(lambda{ HelloSign.send_signature_request(
142
+ :files_url => ['http://hellosign.com/test.pdf'],
143
+ :signers => [{
144
+ :email_address => 'jack@example.com',
145
+ :name => 'Jack',
146
+ :order => 0
147
+ }, {
148
+ :email_address => 'jill@example.com',
149
+ :name => 'Jill',
150
+ :order => 1
151
+ }]
152
+ ) }).not_to raise_error
153
+ end
154
+ end
155
+ end
156
+
157
+ context 'ccs' do
158
+ describe 'is an array' do
159
+ before do
160
+ stub_post('/signature_request/send_with_template', 'signature_request')
161
+ end
162
+
163
+ it 'work correctly' do
164
+ expect(lambda{ HelloSign.send_signature_request_with_template(
165
+ :ccs => ['sss']
166
+ ) }).not_to raise_error
167
+ end
168
+ end
169
+
170
+ describe 'is an Hash' do
171
+ before do
172
+ stub_post('/signature_request/send_with_template', 'signature_request')
173
+ end
174
+
175
+ it 'work correctly' do
176
+ expect(lambda{ HelloSign.send_signature_request_with_template(
177
+ :ccs => [{
178
+ :email_address => 'jack@example.com',
179
+ :name => 'Jack',
180
+ :role => 'Manager'
181
+ }, {
182
+ :email_address => 'jill@example.com',
183
+ :name => 'Jill',
184
+ :role => 'Client'
185
+ }]
186
+ ) }).not_to raise_error
187
+ end
188
+ end
189
+ end
190
+ end
191
+ end
@@ -0,0 +1,10 @@
1
+ require 'spec_helper'
2
+
3
+ describe HelloSign::Error do
4
+ # another test to prove backwards compatibility
5
+ it 'raises an error with any message' do
6
+ error = HelloSign::Error::Error.new(404, 'test error message', 'http://www.test.com')
7
+ expect(error).to be_instance_of(HelloSign::Error::Error)
8
+ end
9
+
10
+ end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ describe HelloSign::Resource::BaseResource do
4
+ let(:data){
5
+ { :body => {
6
+ :a => :a1,
7
+ :b => :b1,
8
+ :c => { :c1 => :c2 },
9
+ :d => [:d1, :d2, :d3],
10
+ :e => [{ :e1 => :e11 }, { :e2 => :e21 }, { :e3 => :e31 }]
11
+ }
12
+ }
13
+ }
14
+
15
+ describe 'methods' do
16
+ subject(:resource) { HelloSign::Resource::BaseResource.new data }
17
+
18
+ it 'can access attributes by calling method with the same name' do
19
+ data.keys.each do |key|
20
+ expect(resource.send key).not_to be_nil
21
+ end
22
+ end
23
+
24
+ it 'make a hash value into a new HelloSign::Resource::BaseResource' do
25
+ expect(resource.data["body"].data["c"]).to be_an HelloSign::Resource::BaseResource
26
+ end
27
+
28
+ it 'do not touch array value with basic type' do
29
+ expect(resource.d).to eql(data[:d])
30
+ end
31
+
32
+ it 'make a array value with each item is a hash into array of HelloSign::Resource::BaseResource' do
33
+ expect(resource.data["body"].data["e"]).to be_an Array
34
+ expect(resource.data["body"].data["e"][0]).to be_an HelloSign::Resource::BaseResource
35
+ end
36
+ end
37
+
38
+ describe '#initialize' do
39
+ context 'without key params' do
40
+ subject(:resource) { HelloSign::Resource::BaseResource.new data }
41
+ it 'have correct data' do
42
+ expect(resource.raw_data).to eql(data)
43
+ end
44
+ end
45
+
46
+ context 'with key params' do
47
+ subject(:resource) { HelloSign::Resource::BaseResource.new data, :e }
48
+ it 'have correct data' do
49
+ expect(resource.raw_data).to eql(data[:body][:e])
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ # The MIT License (MIT)
4
+ #
5
+ # Copyright (C) 2014 hellosign.com
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the "Software"), to deal
9
+ # in the Software without restriction, including without limitation the rights
10
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ # copies of the Software, and to permit persons to whom the Software is
12
+ # furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included in all
15
+ # copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
+ # SOFTWARE.
24
+
25
+ describe HelloSign do
26
+ after { HelloSign.reset }
27
+
28
+ describe '.client' do
29
+ it 'should be a HelloSign::Client' do
30
+ expect(HelloSign.client).to be_a(HelloSign::Client)
31
+ end
32
+ end
33
+
34
+ describe '.configure' do
35
+ HelloSign::Configuration::VALID_OPTIONS_KEYS.each do |key|
36
+ it "should set #{key}" do
37
+ HelloSign.configure do |config|
38
+ config.send("#{key}=", key)
39
+ expect(HelloSign.send(key)).to eql(key)
40
+ end
41
+ end
42
+ end
43
+ end
44
+
45
+ describe '.user_agent=' do
46
+ it 'should set user_agent' do
47
+ HelloSign.user_agent = 'Custom User Agent'
48
+ expect(HelloSign.user_agent).to eql('Custom User Agent')
49
+ end
50
+ end
51
+
52
+ describe '.user_agent' do
53
+ it 'should return default user_agent' do
54
+ expect(HelloSign.user_agent).to eql(HelloSign::Configuration::DEFAULT_USER_AGENT)
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Uploading File' do
4
+ describe 'Create Embedded Signature Request' do
5
+ before { stub_post('/signature_request/create_embedded', 'signature_request') }
6
+
7
+ it 'works with simple pdf' do
8
+ expect(HelloSign.create_embedded_signature_request({files: ['spec/fixtures/nda.pdf']}))
9
+ end
10
+ end
11
+
12
+ describe 'Create Unclaimed Draft' do
13
+ before { stub_post('/unclaimed_draft/create', 'unclaimed_draft') }
14
+
15
+ it 'works with simple pdf' do
16
+ expect(HelloSign.create_unclaimed_draft({files: ['spec/fixtures/nda.pdf']}))
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,104 @@
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+
7
+ # The MIT License (MIT)
8
+ #
9
+ # Copyright (C) 2014 hellosign.com
10
+ #
11
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
12
+ # of this software and associated documentation files (the "Software"), to deal
13
+ # in the Software without restriction, including without limitation the rights
14
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
+ # copies of the Software, and to permit persons to whom the Software is
16
+ # furnished to do so, subject to the following conditions:
17
+ #
18
+ # The above copyright notice and this permission notice shall be included in all
19
+ # copies or substantial portions of the Software.
20
+ #
21
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
+ # SOFTWARE.
28
+
29
+ if ENV['TRAVIS']
30
+ require 'coveralls'
31
+ Coveralls.wear!
32
+ end
33
+
34
+ require 'webmock/rspec'
35
+ require 'pry'
36
+ require File.expand_path('../../lib/hello_sign', __FILE__)
37
+
38
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
39
+ RSpec.configure do |config|
40
+ config.expect_with :rspec do |c|
41
+ c.syntax = :expect
42
+ end
43
+ config.run_all_when_everything_filtered = true
44
+ config.filter_run :focus
45
+
46
+ # Run specs in random order to surface order dependencies. If you find an
47
+ # order dependency and want to debug it, you can fix the order by providing
48
+ # the seed, which is printed after each run.
49
+ # --seed 1234
50
+ config.order = 'random'
51
+ end
52
+
53
+ def load_fixture(name)
54
+ File.new(File.dirname(__FILE__) + "/fixtures/#{name}.json")
55
+ end
56
+
57
+ def load_file(name)
58
+ File.read(File.new(File.dirname(__FILE__) + "/fixtures/#{name}"))
59
+ end
60
+
61
+ def stub_get(path, fixture, status_code=200)
62
+ stub_request(:get, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}").
63
+ to_return(:headers => load_fixture("headers"), :body => load_fixture(fixture), :status => status_code)
64
+ end
65
+
66
+ def a_get(path)
67
+ a_request(:get, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}")
68
+ end
69
+
70
+ def stub_post(path, fixture, status_code=200)
71
+ stub_request(:post, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}").
72
+ to_return(:headers => load_fixture("headers"), :body => load_fixture(fixture), :status => status_code)
73
+ end
74
+
75
+ def stub_post_oauth(path, fixture, status_code=200)
76
+ stub_request(:post, "#{HelloSign.oauth_end_point}#{path}").
77
+ to_return(:body => load_fixture(fixture), :status => status_code)
78
+ end
79
+
80
+ def a_post(path)
81
+ a_request(:post, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}")
82
+ end
83
+
84
+ def a_post_oauth(path)
85
+ a_request(:post, "#{HelloSign.oauth_end_point}#{path}")
86
+ end
87
+
88
+ def stub_put(path, fixture)
89
+ stub_request(:put, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}").
90
+ to_return(:body => load_fixture(fixture))
91
+ end
92
+
93
+ def a_put(path)
94
+ a_request(:put, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}")
95
+ end
96
+
97
+ def stub_delete(path, fixture)
98
+ stub_request(:delete, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}").
99
+ to_return(:body => load_fixture(fixture))
100
+ end
101
+
102
+ def a_delete(path)
103
+ a_request(:delete, "#{HelloSign.end_point}#{HelloSign.api_version}#{path}")
104
+ end
metadata ADDED
@@ -0,0 +1,261 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hellosign-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - HelloSign, Aubrey Holland
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2022-03-10 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.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 13.0.0
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 13.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 3.0.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: webmock
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 3.0.0
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 3.0.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: faraday
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 2.2.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 2.2.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: faraday-multipart
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: 1.0.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 1.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: multi_json
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 1.0.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 1.0.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: mime-types
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: 3.0.0
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 3.0.0
125
+ description: ''
126
+ email: aubrey@withgrayce.com
127
+ executables: []
128
+ extensions: []
129
+ extra_rdoc_files: []
130
+ files:
131
+ - ".gitignore"
132
+ - ".rspec"
133
+ - ".travis.yml"
134
+ - CONTRIBUTING.md
135
+ - Gemfile
136
+ - Guardfile
137
+ - LICENSE
138
+ - README.md
139
+ - Rakefile
140
+ - hellosign-api.gemspec
141
+ - lib/hello_sign.rb
142
+ - lib/hello_sign/.error.rb.swp
143
+ - lib/hello_sign/api.rb
144
+ - lib/hello_sign/api/account.rb
145
+ - lib/hello_sign/api/api_app.rb
146
+ - lib/hello_sign/api/bulk_send_job.rb
147
+ - lib/hello_sign/api/embedded.rb
148
+ - lib/hello_sign/api/oauth.rb
149
+ - lib/hello_sign/api/signature_request.rb
150
+ - lib/hello_sign/api/team.rb
151
+ - lib/hello_sign/api/template.rb
152
+ - lib/hello_sign/api/unclaimed_draft.rb
153
+ - lib/hello_sign/client.rb
154
+ - lib/hello_sign/configuration.rb
155
+ - lib/hello_sign/error.rb
156
+ - lib/hello_sign/resource.rb
157
+ - lib/hello_sign/resource/account.rb
158
+ - lib/hello_sign/resource/api_app.rb
159
+ - lib/hello_sign/resource/base_resource.rb
160
+ - lib/hello_sign/resource/bulk_send_job.rb
161
+ - lib/hello_sign/resource/embedded.rb
162
+ - lib/hello_sign/resource/resource_array.rb
163
+ - lib/hello_sign/resource/signature_request.rb
164
+ - lib/hello_sign/resource/team.rb
165
+ - lib/hello_sign/resource/template.rb
166
+ - lib/hello_sign/resource/template_draft.rb
167
+ - lib/hello_sign/resource/unclaimed_draft.rb
168
+ - lib/hello_sign/version.rb
169
+ - lib/hellosign-ruby-sdk.rb
170
+ - spec/fixtures/account.json
171
+ - spec/fixtures/api_app.json
172
+ - spec/fixtures/api_apps.json
173
+ - spec/fixtures/bulk_send_job.json
174
+ - spec/fixtures/bulk_send_jobs.json
175
+ - spec/fixtures/embedded.json
176
+ - spec/fixtures/empty.pdf
177
+ - spec/fixtures/error.json
178
+ - spec/fixtures/file.json
179
+ - spec/fixtures/headers.json
180
+ - spec/fixtures/nda.pdf
181
+ - spec/fixtures/signature_request.json
182
+ - spec/fixtures/signature_requests.json
183
+ - spec/fixtures/team.json
184
+ - spec/fixtures/template.json
185
+ - spec/fixtures/templates.json
186
+ - spec/fixtures/token.json
187
+ - spec/fixtures/unclaimed_draft.json
188
+ - spec/hello_sign/.error_spec.rb.swp
189
+ - spec/hello_sign/api/account_spec.rb
190
+ - spec/hello_sign/api/api_app_spec.rb
191
+ - spec/hello_sign/api/bulk_send_job_spec.rb
192
+ - spec/hello_sign/api/embedded_spec.rb
193
+ - spec/hello_sign/api/oauth_spec.rb
194
+ - spec/hello_sign/api/signature_request_spec.rb
195
+ - spec/hello_sign/api/team_spec.rb
196
+ - spec/hello_sign/api/template_spec.rb
197
+ - spec/hello_sign/api/unclaimed_draft_spec.rb
198
+ - spec/hello_sign/client_spec.rb
199
+ - spec/hello_sign/error_spec.rb
200
+ - spec/hello_sign/resource/base_resource_spec.rb
201
+ - spec/hello_sign_spec.rb
202
+ - spec/scenarios/uploads_spec.rb
203
+ - spec/spec_helper.rb
204
+ homepage: http://www.hellosign.com
205
+ licenses:
206
+ - MIT
207
+ metadata: {}
208
+ post_install_message:
209
+ rdoc_options: []
210
+ require_paths:
211
+ - lib
212
+ required_ruby_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">="
215
+ - !ruby/object:Gem::Version
216
+ version: '0'
217
+ required_rubygems_version: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - ">="
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubygems_version: 3.2.32
224
+ signing_key:
225
+ specification_version: 4
226
+ summary: A Ruby SDK for the HelloSign API.
227
+ test_files:
228
+ - spec/fixtures/account.json
229
+ - spec/fixtures/api_app.json
230
+ - spec/fixtures/api_apps.json
231
+ - spec/fixtures/bulk_send_job.json
232
+ - spec/fixtures/bulk_send_jobs.json
233
+ - spec/fixtures/embedded.json
234
+ - spec/fixtures/empty.pdf
235
+ - spec/fixtures/error.json
236
+ - spec/fixtures/file.json
237
+ - spec/fixtures/headers.json
238
+ - spec/fixtures/nda.pdf
239
+ - spec/fixtures/signature_request.json
240
+ - spec/fixtures/signature_requests.json
241
+ - spec/fixtures/team.json
242
+ - spec/fixtures/template.json
243
+ - spec/fixtures/templates.json
244
+ - spec/fixtures/token.json
245
+ - spec/fixtures/unclaimed_draft.json
246
+ - spec/hello_sign/.error_spec.rb.swp
247
+ - spec/hello_sign/api/account_spec.rb
248
+ - spec/hello_sign/api/api_app_spec.rb
249
+ - spec/hello_sign/api/bulk_send_job_spec.rb
250
+ - spec/hello_sign/api/embedded_spec.rb
251
+ - spec/hello_sign/api/oauth_spec.rb
252
+ - spec/hello_sign/api/signature_request_spec.rb
253
+ - spec/hello_sign/api/team_spec.rb
254
+ - spec/hello_sign/api/template_spec.rb
255
+ - spec/hello_sign/api/unclaimed_draft_spec.rb
256
+ - spec/hello_sign/client_spec.rb
257
+ - spec/hello_sign/error_spec.rb
258
+ - spec/hello_sign/resource/base_resource_spec.rb
259
+ - spec/hello_sign_spec.rb
260
+ - spec/scenarios/uploads_spec.rb
261
+ - spec/spec_helper.rb