hello_sign 0.5.0 → 0.6.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.
@@ -12,9 +12,14 @@ module HelloSign
12
12
 
13
13
  attr_reader :email_address, :password
14
14
 
15
- def initialize(email_address, password)
16
- @email_address = email_address
17
- @password = password
15
+ def initialize(email_address_or_hash, password = nil)
16
+ if email_address_or_hash.is_a? Hash
17
+ @email_address = email_address_or_hash.fetch(:email_address) { raise ArgumentError }
18
+ @password = email_address_or_hash.fetch(:password) { raise ArgumentError }
19
+ else
20
+ @email_address = email_address_or_hash
21
+ @password = password
22
+ end
18
23
  end
19
24
 
20
25
  def get(path, options = {})
@@ -42,6 +47,7 @@ module HelloSign
42
47
 
43
48
  connection.request :multipart
44
49
  connection.request :url_encoded
50
+ connection.response :raise_error
45
51
  connection.response :multi_json, :symbolize_keys => true
46
52
  connection.adapter :net_http
47
53
  end
@@ -0,0 +1,13 @@
1
+ module HelloSign
2
+ class Error < StandardError
3
+ class BadRequest < HelloSign::Error; end
4
+ class Unauthorized < HelloSign::Error; end
5
+ class Forbidden < HelloSign::Error; end
6
+ class NotFound < HelloSign::Error; end
7
+ class Unknown < HelloSign::Error; end
8
+ class TeamInviteFailed < HelloSign::Error; end
9
+ class InvalidRecipient < HelloSign::Error; end
10
+ class ConvertFailed < HelloSign::Error; end
11
+ class SignatureRequestCancelFailed < HelloSign::Error; end
12
+ end
13
+ end
@@ -0,0 +1,29 @@
1
+ require 'hello_sign/error'
2
+
3
+ require 'faraday'
4
+
5
+ module HelloSign
6
+ module Middleware
7
+ class RaiseError < Faraday::Response::Middleware
8
+
9
+ def on_complete(env)
10
+ body = env[:body] or return
11
+
12
+ if error = body[:error]
13
+ case error[:error_name]
14
+ when 'bad_request' then raise HelloSign::Error::BadRequest
15
+ when 'unauthorized' then raise HelloSign::Error::Unauthorized
16
+ when 'forbidden' then raise HelloSign::Error::Forbidden
17
+ when 'not_found' then raise HelloSign::Error::NotFound
18
+ when 'unknown' then raise HelloSign::Error::Unknown
19
+ when 'team_invite_failed' then raise HelloSign::Error::TeamInviteFailed
20
+ when 'invalid_recipient' then raise HelloSign::Error::InvalidRecipient
21
+ when 'convert_failed' then raise HelloSign::Error::ConvertFailed
22
+ when 'signature_request_cancel_failed' then raise HelloSign::Error::SignatureRequestCancelFailed
23
+ end
24
+ end
25
+ end
26
+
27
+ end
28
+ end
29
+ end
@@ -1,8 +1,23 @@
1
1
  module HelloSign
2
2
  module Parameters
3
3
  class ReusableFormSignatureRequest
4
- attr_accessor :reusable_form_id, :title, :subject, :message
5
- attr_writer :ccs, :signers, :custom_fields
4
+ attr_writer :reusable_form_id, :title, :subject, :message, :ccs, :signers, :custom_fields
5
+
6
+ def formatted
7
+ {
8
+ :reusable_form_id => reusable_form_id,
9
+ :title => title,
10
+ :subject => subject,
11
+ :message => message,
12
+ :ccs => ccs,
13
+ :signers => signers,
14
+ :custom_fields => custom_fields
15
+ }
16
+ end
17
+
18
+ private
19
+
20
+ attr_reader :reusable_form_id, :title, :subject, :message
6
21
 
7
22
  def ccs
8
23
  @ccs.inject({}) do |parameter, cc|
@@ -25,17 +40,6 @@ module HelloSign
25
40
  end
26
41
  end
27
42
 
28
- def formatted
29
- {
30
- :reusable_form_id => reusable_form_id,
31
- :title => title,
32
- :subject => subject,
33
- :message => message,
34
- :ccs => ccs,
35
- :signers => signers,
36
- :custom_fields => custom_fields
37
- }
38
- end
39
43
  end
40
44
  end
41
45
  end
@@ -5,6 +5,12 @@ module HelloSign
5
5
  class UnclaimedDraft
6
6
  attr_writer :files
7
7
 
8
+ def formatted
9
+ {:file => files}
10
+ end
11
+
12
+ private
13
+
8
14
  def files
9
15
  @files.each_with_index.inject({}) do |parameter, (file, index)|
10
16
  parameter[index] = upload_io.new(file[:io], file[:mime], file[:name])
@@ -12,12 +18,6 @@ module HelloSign
12
18
  end
13
19
  end
14
20
 
15
- def formatted
16
- {:file => files}
17
- end
18
-
19
- private
20
-
21
21
  def upload_io
22
22
  Faraday::UploadIO
23
23
  end
@@ -1,3 +1,3 @@
1
1
  module HelloSign
2
- VERSION = '0.5.0'
2
+ VERSION = '0.6.0'
3
3
  end
data/lib/hello_sign.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'hello_sign/middleware/raise_error'
1
2
  require 'hello_sign/client'
2
3
  require 'hello_sign/version'
3
4
 
@@ -9,16 +10,15 @@ module HelloSign
9
10
 
10
11
  attr_accessor :email_address, :password
11
12
 
12
- delegate [:account, :signature_request, :reusable_form, :team,
13
- :unclaimed_draft] => :client
13
+ delegate [:account, :signature_request, :reusable_form, :team, :unclaimed_draft] => :client
14
14
 
15
15
  def client
16
- @client = Client.new(email_address, password) unless credentials_match?
16
+ @client = client_source.new(email_address, password) unless credentials_match?
17
17
  @client
18
18
  end
19
19
 
20
20
  def configure
21
- yield(self)
21
+ yield self
22
22
  end
23
23
 
24
24
  private
@@ -27,5 +27,11 @@ module HelloSign
27
27
  @client && [@client.email_address, @client.password].hash == [email_address, password].hash
28
28
  end
29
29
 
30
+ def client_source
31
+ @client_source || HelloSign::Client
32
+ end
33
+
34
+ Faraday.register_middleware :response, :raise_error => HelloSign::Middleware::RaiseError
35
+
30
36
  end
31
37
  end
data/spec/helper.rb CHANGED
@@ -6,3 +6,11 @@ RSpec.configure do |config|
6
6
  config.color_enabled = true
7
7
  config.tty = true
8
8
  end
9
+
10
+ class Module
11
+
12
+ def _set_internal_collaborator(role, collaborator)
13
+ instance_variable_set("@#{role.to_s}", collaborator)
14
+ end
15
+
16
+ end
@@ -0,0 +1,50 @@
1
+ require 'integration/helper'
2
+
3
+ describe HelloSign do
4
+ let(:any_call) { HelloSign.team.show }
5
+
6
+ specify do
7
+ stub_request_with_error('bad_request')
8
+ expect { any_call }.to raise_error HelloSign::Error::BadRequest
9
+ end
10
+
11
+ specify do
12
+ stub_request_with_error('unauthorized')
13
+ expect { any_call }.to raise_error HelloSign::Error::Unauthorized
14
+ end
15
+
16
+ specify do
17
+ stub_request_with_error('forbidden')
18
+ expect { any_call }.to raise_error HelloSign::Error::Forbidden
19
+ end
20
+
21
+ specify do
22
+ stub_request_with_error('not_found')
23
+ expect { any_call }.to raise_error HelloSign::Error::NotFound
24
+ end
25
+
26
+ specify do
27
+ stub_request_with_error('unknown')
28
+ expect { any_call }.to raise_error HelloSign::Error::Unknown
29
+ end
30
+
31
+ specify do
32
+ stub_request_with_error('team_invite_failed')
33
+ expect { any_call }.to raise_error HelloSign::Error::TeamInviteFailed
34
+ end
35
+
36
+ specify do
37
+ stub_request_with_error('invalid_recipient')
38
+ expect { any_call }.to raise_error HelloSign::Error::InvalidRecipient
39
+ end
40
+
41
+ specify do
42
+ stub_request_with_error('convert_failed')
43
+ expect { any_call }.to raise_error HelloSign::Error::ConvertFailed
44
+ end
45
+
46
+ specify do
47
+ stub_request_with_error('signature_request_cancel_failed')
48
+ expect { any_call }.to raise_error HelloSign::Error::SignatureRequestCancelFailed
49
+ end
50
+ end
@@ -24,6 +24,10 @@ def stub_post_with_auth(path)
24
24
  stub_request(:post, "https://david@bowman.com:foobar@api.hellosign.com/v3#{path}")
25
25
  end
26
26
 
27
+ def stub_request_with_error(error)
28
+ stub_request(:any, /api\.hellosign\.com/).to_return(:body => {:error => {:error_name => error}})
29
+ end
30
+
27
31
  def a_get(path)
28
32
  a_request(:get, "https://api.hellosign.com/v3#{path}")
29
33
  end
@@ -3,12 +3,59 @@ require 'hello_sign/client'
3
3
  require 'shared_examples/proxy'
4
4
 
5
5
  describe HelloSign::Client do
6
- subject(:hs_client) { HelloSign::Client.new('david@bowman.com', 'space') }
6
+ let(:email_address) { double('email_address') }
7
+ let(:password) { double('password') }
8
+ subject(:hs_client) { HelloSign::Client.new(email_address, password) }
7
9
 
8
- its(:email_address) { should eq 'david@bowman.com' }
9
- its(:password) { should eq 'space' }
10
+ its(:email_address) { should eq email_address }
11
+ its(:password) { should eq password }
10
12
 
11
13
  it_behaves_like 'a proxy' do
12
14
  let(:client) { hs_client }
13
15
  end
16
+
17
+ describe "request methods" do
18
+ let(:path) { double('path') }
19
+ let(:options) { double('options') }
20
+ let(:response) { double('response') }
21
+
22
+ before { hs_client.stub(:request).and_return(response) }
23
+
24
+ describe "#get" do
25
+ it "sends a request" do
26
+ hs_client.should_receive(:request).with(:get, path, options)
27
+ hs_client.get(path, options)
28
+ end
29
+
30
+ it "returns the response" do
31
+ expect(hs_client.get(path, options)).to eq response
32
+ end
33
+ end
34
+
35
+ describe "#post" do
36
+ it "sends a request" do
37
+ hs_client.should_receive(:request).with(:post, path, options)
38
+ hs_client.post(path, options)
39
+ end
40
+
41
+ it "returns the response" do
42
+ expect(hs_client.post(path, options)).to eq response
43
+ end
44
+ end
45
+ end
46
+
47
+ context "when a hash is passed to the constructor" do
48
+ subject(:hs_client) { HelloSign::Client.new(:email_address => email_address, :password => password) }
49
+
50
+ its(:email_address) { should eq email_address }
51
+ its(:password) { should eq password }
52
+
53
+ it "raises an exception if an email address is not provided" do
54
+ expect { HelloSign::Client.new(:password => 'space') }.to raise_error ArgumentError
55
+ end
56
+
57
+ it "raises an exception if a password is not provided" do
58
+ expect { HelloSign::Client.new(:email_address => 'david@bowman.com') }.to raise_error ArgumentError
59
+ end
60
+ end
14
61
  end
@@ -0,0 +1,15 @@
1
+ require 'helper'
2
+ require 'hello_sign/error'
3
+
4
+ describe HelloSign::Error do
5
+ specify { expect { raise HelloSign::Error }.to raise_error StandardError }
6
+ specify { expect { raise HelloSign::Error::BadRequest }.to raise_error HelloSign::Error }
7
+ specify { expect { raise HelloSign::Error::Unauthorized }.to raise_error HelloSign::Error }
8
+ specify { expect { raise HelloSign::Error::Forbidden }.to raise_error HelloSign::Error }
9
+ specify { expect { raise HelloSign::Error::NotFound }.to raise_error HelloSign::Error }
10
+ specify { expect { raise HelloSign::Error::Unknown }.to raise_error HelloSign::Error }
11
+ specify { expect { raise HelloSign::Error::TeamInviteFailed }.to raise_error HelloSign::Error }
12
+ specify { expect { raise HelloSign::Error::InvalidRecipient }.to raise_error HelloSign::Error }
13
+ specify { expect { raise HelloSign::Error::ConvertFailed }.to raise_error HelloSign::Error }
14
+ specify { expect { raise HelloSign::Error::SignatureRequestCancelFailed }.to raise_error HelloSign::Error }
15
+ end
@@ -2,43 +2,95 @@ require 'helper'
2
2
  require 'hello_sign'
3
3
 
4
4
  describe HelloSign do
5
+ let(:email_address) { double('email address') }
6
+ let(:password) { double('password') }
7
+
5
8
  before do
6
- HelloSign.email_address = 'hal@jupiter.com'
7
- HelloSign.password = 'human_domination'
9
+ HelloSign.email_address = email_address
10
+ HelloSign.password = password
8
11
  end
9
12
 
10
- its(:email_address) { should eq 'hal@jupiter.com' }
11
- its(:password) { should eq 'human_domination' }
13
+ its(:email_address) { should eq email_address }
14
+ its(:password) { should eq password }
12
15
 
13
16
  describe "::client" do
14
- context "when it has not previously been called" do
15
- it "returns a new client" do
16
- expect(HelloSign.client).to be_a HelloSign::Client
17
- end
17
+ let(:client_source) { double('client_source') }
18
+ let(:client) { double('client') }
19
+
20
+ before do
21
+ HelloSign._set_internal_collaborator(:client_source, client_source)
22
+ client_source.stub(:new).and_return(client)
23
+ end
24
+
25
+ after { HelloSign.instance_variable_set(:@client, nil) }
26
+
27
+ its(:client) { should be client }
28
+
29
+ it "passes the credentials when creating the client" do
30
+ client_source.should_receive(:new).with(email_address, password)
31
+ HelloSign.client
18
32
  end
19
33
 
20
34
  context "when it has previously been called" do
21
- before { @client = HelloSign.client }
35
+ let(:new_client) { double('new client') }
22
36
 
23
- it "returns the same client" do
24
- expect(HelloSign.client).to be @client
37
+ before do
38
+ client_source.stub(:new).and_return(client, new_client)
39
+ client.stub(:email_address).and_return(email_address)
40
+ client.stub(:password).and_return(password)
41
+ HelloSign.client
25
42
  end
26
43
 
27
- context "and the email and password changes" do
44
+ its(:client) { should be client }
45
+
46
+ context "and the credentials change" do
28
47
  before do
29
48
  HelloSign.email_address = 'bob@earth.com'
30
49
  HelloSign.password = 'being_human'
31
50
  end
32
51
 
33
- it "creates a new client with the new credentials" do
34
- expect(HelloSign.client).to_not be @client
35
- expect(HelloSign.client.email_address).to eq 'bob@earth.com'
36
- expect(HelloSign.client.password).to eq 'being_human'
37
- end
52
+ its(:client) { should be new_client }
38
53
  end
39
54
  end
40
55
  end
41
56
 
57
+ context "when calling delegated methods" do
58
+ let(:client_source) { double('client_source') }
59
+ let(:client) { double('client') }
60
+
61
+ before do
62
+ HelloSign._set_internal_collaborator(:client_source, client_source)
63
+ client_source.stub(:new).and_return(client)
64
+ end
65
+
66
+ after { HelloSign.instance_variable_set(:@client, nil) }
67
+
68
+ it "delegates ::account to the client" do
69
+ client.should_receive(:account)
70
+ HelloSign.account
71
+ end
72
+
73
+ it "delegates ::signature_request to the client" do
74
+ client.should_receive(:signature_request)
75
+ HelloSign.signature_request
76
+ end
77
+
78
+ it "delegates ::reusable_form to the client" do
79
+ client.should_receive(:reusable_form)
80
+ HelloSign.reusable_form
81
+ end
82
+
83
+ it "delegates ::team to the client" do
84
+ client.should_receive(:team)
85
+ HelloSign.team
86
+ end
87
+
88
+ it "delegates ::unclaimed_draft to the client" do
89
+ client.should_receive(:unclaimed_draft)
90
+ HelloSign.unclaimed_draft
91
+ end
92
+ end
93
+
42
94
  describe "::configure" do
43
95
  it "yields itself to the block" do
44
96
  HelloSign.configure do |hs|
@@ -0,0 +1,28 @@
1
+ require 'helper'
2
+ require 'hello_sign/middleware/raise_error'
3
+
4
+ describe HelloSign::Middleware::RaiseError do
5
+ let(:middleware) { HelloSign::Middleware::RaiseError.new(lambda { |env| Faraday::Response.new(env) }) }
6
+
7
+ specify { expect { call_with_error('bad_request') }.to raise_error HelloSign::Error::BadRequest }
8
+ specify { expect { call_with_error('unauthorized') }.to raise_error HelloSign::Error::Unauthorized }
9
+ specify { expect { call_with_error('forbidden') }.to raise_error HelloSign::Error::Forbidden }
10
+ specify { expect { call_with_error('not_found') }.to raise_error HelloSign::Error::NotFound }
11
+ specify { expect { call_with_error('unknown') }.to raise_error HelloSign::Error::Unknown }
12
+ specify { expect { call_with_error('team_invite_failed') }.to raise_error HelloSign::Error::TeamInviteFailed }
13
+ specify { expect { call_with_error('invalid_recipient') }.to raise_error HelloSign::Error::InvalidRecipient }
14
+ specify { expect { call_with_error('convert_failed') }.to raise_error HelloSign::Error::ConvertFailed }
15
+ specify { expect { call_with_error('signature_request_cancel_failed') }.to raise_error HelloSign::Error::SignatureRequestCancelFailed }
16
+
17
+ it 'does not blow up if there is not a body' do
18
+ expect { middleware.call({}) }.to_not raise_error
19
+ end
20
+
21
+ private
22
+
23
+ def call_with_error(error)
24
+ env = {:body => {:error => {:error_name => error}}}
25
+ middleware.call(env)
26
+ end
27
+
28
+ end
@@ -4,26 +4,6 @@ require 'hello_sign/parameters/reusable_form_signature_request'
4
4
  describe HelloSign::Parameters::ReusableFormSignatureRequest do
5
5
  describe "#formatted" do
6
6
  let(:request_parameters) { HelloSign::Parameters::ReusableFormSignatureRequest.new }
7
- let(:expected) do
8
- {
9
- :reusable_form_id => 'form_id',
10
- :title => 'Lease',
11
- :subject => 'Sign this',
12
- :message => 'You must sign this.',
13
- :ccs => {
14
- 'lawyer' => {:email_address => 'lawyer@lawfirm.com'},
15
- 'accountant' => {:email_address => 'accountant@llc.com'}
16
- },
17
- :signers => {
18
- 'consultant' => {:name => 'Jack', :email_address => 'jack@hill.com'},
19
- 'client' => {:name => 'Jill', :email_address => 'jill@hill.com'}
20
- },
21
- :custom_fields => {
22
- 'cost' => '$20,000',
23
- 'time' => 'two weeks'
24
- }
25
- }
26
- end
27
7
 
28
8
  before do
29
9
  request_parameters.reusable_form_id = 'form_id'
@@ -45,6 +25,25 @@ describe HelloSign::Parameters::ReusableFormSignatureRequest do
45
25
  end
46
26
 
47
27
  it "returns formatted parameters" do
28
+ expected = {
29
+ :reusable_form_id => 'form_id',
30
+ :title => 'Lease',
31
+ :subject => 'Sign this',
32
+ :message => 'You must sign this.',
33
+ :ccs => {
34
+ 'lawyer' => {:email_address => 'lawyer@lawfirm.com'},
35
+ 'accountant' => {:email_address => 'accountant@llc.com'}
36
+ },
37
+ :signers => {
38
+ 'consultant' => {:name => 'Jack', :email_address => 'jack@hill.com'},
39
+ 'client' => {:name => 'Jill', :email_address => 'jill@hill.com'}
40
+ },
41
+ :custom_fields => {
42
+ 'cost' => '$20,000',
43
+ 'time' => 'two weeks'
44
+ }
45
+ }
46
+
48
47
  expect(request_parameters.formatted).to eq expected
49
48
  end
50
49
  end
@@ -1,17 +1,21 @@
1
1
  require 'helper'
2
2
  require 'hello_sign/parameters/unclaimed_draft'
3
3
 
4
+ require 'stringio'
5
+
4
6
  describe HelloSign::Parameters::UnclaimedDraft do
7
+ let(:draft_parameters) { HelloSign::Parameters::UnclaimedDraft.new }
8
+
9
+ it "interfaces with Faraday::UploadIO properly" do
10
+ draft_parameters.files = [{:name => 'test.txt', :io => StringIO.new('foobar'), :mime => 'text/plain'}]
11
+ expect(draft_parameters.formatted).to be_a Hash
12
+ end
13
+
5
14
  describe "#formatted" do
6
- let(:draft_parameters) { HelloSign::Parameters::UnclaimedDraft.new }
7
15
  let(:text_file) { double('text file') }
8
16
  let(:image_file) { double('image file') }
9
- let(:expected) { {:file => {0 => text_file, 1 => image_file}} }
10
17
 
11
18
  before do
12
- Faraday::UploadIO.should_receive(:new).with('text file IO object', 'text/plain', 'test.txt').and_return(text_file)
13
- Faraday::UploadIO.should_receive(:new).with('image file IO object', 'image/jpeg', 'test.jpg').and_return(image_file)
14
-
15
19
  draft_parameters.files = [
16
20
  {:name => 'test.txt', :io => 'text file IO object', :mime => 'text/plain'},
17
21
  {:name => 'test.jpg', :io => 'image file IO object', :mime => 'image/jpeg'}
@@ -19,7 +23,8 @@ describe HelloSign::Parameters::UnclaimedDraft do
19
23
  end
20
24
 
21
25
  it "returns formatted parameters" do
22
- expect(draft_parameters.formatted).to eq expected
26
+ Faraday::UploadIO.stub(:new).and_return(text_file, image_file)
27
+ expect(draft_parameters.formatted).to eq({:file => {0 => text_file, 1 => image_file}})
23
28
  end
24
29
  end
25
30
  end
@@ -6,15 +6,11 @@ describe HelloSign::Proxy::UnclaimedDraft do
6
6
  let(:api_response) { double('API response') }
7
7
  subject(:ud_proxy) { HelloSign::Proxy::UnclaimedDraft.new(client) }
8
8
 
9
- describe "#client" do
10
- it "returns the client" do
11
- expect(ud_proxy.client).to be client
12
- end
13
- end
9
+ its(:client) { should eq client }
14
10
 
15
11
  describe "#create" do
16
12
  let(:formatted_request_body) { double('formatted request body') }
17
- let(:draft_parameters) { double('draft parameters') }
13
+ let(:draft_parameters) { double('draft parameters') }
18
14
 
19
15
  before do
20
16
  ud_proxy.draft_parameters = draft_parameters
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hello_sign
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-06 00:00:00.000000000 Z
12
+ date: 2013-02-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -91,6 +91,22 @@ dependencies:
91
91
  - - ~>
92
92
  - !ruby/object:Gem::Version
93
93
  version: 10.0.3
94
+ - !ruby/object:Gem::Dependency
95
+ name: vcr
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: 2.4.0
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 2.4.0
94
110
  description: A Ruby interface to the HelloSign API.
95
111
  email:
96
112
  - craiglttl@gmail.com
@@ -99,6 +115,8 @@ extensions: []
99
115
  extra_rdoc_files: []
100
116
  files:
101
117
  - lib/hello_sign/client.rb
118
+ - lib/hello_sign/error.rb
119
+ - lib/hello_sign/middleware/raise_error.rb
102
120
  - lib/hello_sign/parameters/reusable_form_signature_request.rb
103
121
  - lib/hello_sign/parameters/signature_request.rb
104
122
  - lib/hello_sign/parameters/unclaimed_draft.rb
@@ -116,6 +134,7 @@ files:
116
134
  - spec/fixtures/test.txt
117
135
  - spec/helper.rb
118
136
  - spec/integration/account_spec.rb
137
+ - spec/integration/error_spec.rb
119
138
  - spec/integration/hello_sign_spec.rb
120
139
  - spec/integration/helper.rb
121
140
  - spec/integration/reusable_form_spec.rb
@@ -124,7 +143,9 @@ files:
124
143
  - spec/integration/unclaimed_draft_spec.rb
125
144
  - spec/shared_examples/proxy.rb
126
145
  - spec/unit/client_spec.rb
146
+ - spec/unit/error_spec.rb
127
147
  - spec/unit/hello_sign_spec.rb
148
+ - spec/unit/middleware/raise_error_spec.rb
128
149
  - spec/unit/parameters/reusable_form_signature_request_spec.rb
129
150
  - spec/unit/parameters/signature_request_spec.rb
130
151
  - spec/unit/parameters/unclaimed_draft_spec.rb
@@ -146,21 +167,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
146
167
  - - ! '>='
147
168
  - !ruby/object:Gem::Version
148
169
  version: '0'
149
- segments:
150
- - 0
151
- hash: -3035616681847644249
152
170
  required_rubygems_version: !ruby/object:Gem::Requirement
153
171
  none: false
154
172
  requirements:
155
173
  - - ! '>='
156
174
  - !ruby/object:Gem::Version
157
175
  version: '0'
158
- segments:
159
- - 0
160
- hash: -3035616681847644249
161
176
  requirements: []
162
177
  rubyforge_project:
163
- rubygems_version: 1.8.23
178
+ rubygems_version: 1.8.24
164
179
  signing_key:
165
180
  specification_version: 3
166
181
  summary: A Ruby interface to the HelloSign API.
@@ -170,6 +185,7 @@ test_files:
170
185
  - spec/fixtures/test.txt
171
186
  - spec/helper.rb
172
187
  - spec/integration/account_spec.rb
188
+ - spec/integration/error_spec.rb
173
189
  - spec/integration/hello_sign_spec.rb
174
190
  - spec/integration/helper.rb
175
191
  - spec/integration/reusable_form_spec.rb
@@ -178,7 +194,9 @@ test_files:
178
194
  - spec/integration/unclaimed_draft_spec.rb
179
195
  - spec/shared_examples/proxy.rb
180
196
  - spec/unit/client_spec.rb
197
+ - spec/unit/error_spec.rb
181
198
  - spec/unit/hello_sign_spec.rb
199
+ - spec/unit/middleware/raise_error_spec.rb
182
200
  - spec/unit/parameters/reusable_form_signature_request_spec.rb
183
201
  - spec/unit/parameters/signature_request_spec.rb
184
202
  - spec/unit/parameters/unclaimed_draft_spec.rb