hello_sign 1.1.1 → 1.2.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.
- data/lib/hello_sign.rb +2 -1
- data/lib/hello_sign/file.rb +2 -1
- data/lib/hello_sign/parameters/reusable_form_signature_request.rb +4 -4
- data/lib/hello_sign/parameters/signature_request.rb +11 -9
- data/lib/hello_sign/proxy/settings.rb +0 -2
- data/lib/hello_sign/version.rb +1 -1
- data/spec/integration/signature_request_spec.rb +15 -0
- data/spec/unit/hello_sign_spec.rb +6 -4
- data/spec/unit/middleware/raise_error_spec.rb +1 -1
- data/spec/unit/parameters/signature_request_spec.rb +36 -7
- metadata +8 -13
data/lib/hello_sign.rb
CHANGED
@@ -33,7 +33,8 @@ module HelloSign
|
|
33
33
|
private
|
34
34
|
|
35
35
|
def credentials_match?
|
36
|
-
|
36
|
+
instance_variable_defined?(:@client) &&
|
37
|
+
client_credentials.hash == provided_credentials.hash
|
37
38
|
end
|
38
39
|
|
39
40
|
def client_credentials
|
data/lib/hello_sign/file.rb
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
module HelloSign
|
2
2
|
module Parameters
|
3
3
|
class ReusableFormSignatureRequest
|
4
|
-
|
5
|
-
|
4
|
+
attr_accessor :reusable_form_id, :title, :subject, :message
|
5
|
+
private :reusable_form_id, :title, :subject, :message
|
6
|
+
|
7
|
+
attr_writer :ccs, :signers, :custom_fields
|
6
8
|
|
7
9
|
def formatted
|
8
10
|
{
|
@@ -18,8 +20,6 @@ module HelloSign
|
|
18
20
|
|
19
21
|
private
|
20
22
|
|
21
|
-
attr_reader :reusable_form_id, :title, :subject, :message
|
22
|
-
|
23
23
|
def formatted_ccs
|
24
24
|
ccs.each_with_object({}) do |cc, parameter|
|
25
25
|
parameter[cc[:role]] = {email_address: cc[:email_address]}
|
@@ -3,23 +3,25 @@ require 'hello_sign/file'
|
|
3
3
|
module HelloSign
|
4
4
|
module Parameters
|
5
5
|
class SignatureRequest
|
6
|
-
|
6
|
+
attr_accessor :title, :subject, :message, :ccs, :form_fields_per_document
|
7
|
+
private :title, :subject, :message, :ccs, :form_fields_per_document
|
8
|
+
|
9
|
+
attr_writer :signers, :files
|
7
10
|
|
8
11
|
def formatted
|
9
12
|
{
|
10
|
-
title:
|
11
|
-
subject:
|
12
|
-
message:
|
13
|
-
cc_email_addresses:
|
14
|
-
signers:
|
15
|
-
file:
|
13
|
+
title: title,
|
14
|
+
subject: subject,
|
15
|
+
message: message,
|
16
|
+
cc_email_addresses: ccs,
|
17
|
+
signers: formatted_signers,
|
18
|
+
file: formatted_files,
|
19
|
+
form_fields_per_document: form_fields_per_document
|
16
20
|
}
|
17
21
|
end
|
18
22
|
|
19
23
|
private
|
20
24
|
|
21
|
-
attr_reader :title, :subject, :message, :ccs
|
22
|
-
|
23
25
|
def formatted_signers
|
24
26
|
signers.each_with_index.each_with_object({}) do |(signer, i), parameter|
|
25
27
|
parameter[i] = {
|
data/lib/hello_sign/version.rb
CHANGED
@@ -24,6 +24,21 @@ describe HelloSign do
|
|
24
24
|
{filename: 'spec/fixtures/test.jpg'},
|
25
25
|
{io: image_io, mime: 'image/jpeg'}
|
26
26
|
]
|
27
|
+
request.form_fields_per_document = [
|
28
|
+
[],
|
29
|
+
[
|
30
|
+
{
|
31
|
+
type: 'text',
|
32
|
+
x: 112,
|
33
|
+
y: 328,
|
34
|
+
width: 100,
|
35
|
+
height: 16,
|
36
|
+
required: true,
|
37
|
+
signer: 1
|
38
|
+
}
|
39
|
+
]
|
40
|
+
]
|
41
|
+
|
27
42
|
end
|
28
43
|
|
29
44
|
expect(a_post_with_auth('/signature_request/send')
|
@@ -10,6 +10,12 @@ describe HelloSign do
|
|
10
10
|
HelloSign.password = password
|
11
11
|
end
|
12
12
|
|
13
|
+
after do
|
14
|
+
if HelloSign.instance_variable_defined?(:@client)
|
15
|
+
HelloSign.send(:remove_instance_variable, :@client)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
13
19
|
describe "::client" do
|
14
20
|
let(:client) { double('client') }
|
15
21
|
|
@@ -36,8 +42,6 @@ describe HelloSign do
|
|
36
42
|
HelloSign.client
|
37
43
|
end
|
38
44
|
|
39
|
-
after { HelloSign.instance_variable_set(:@client, nil) }
|
40
|
-
|
41
45
|
its(:client) { should be client }
|
42
46
|
|
43
47
|
context "and the credentials change" do
|
@@ -56,8 +60,6 @@ describe HelloSign do
|
|
56
60
|
|
57
61
|
before { allow(HelloSign::Client).to receive(:new).and_return(client) }
|
58
62
|
|
59
|
-
after { HelloSign.instance_variable_set(:@client, nil) }
|
60
|
-
|
61
63
|
describe "::account" do
|
62
64
|
before do
|
63
65
|
allow(client).to receive(:account)
|
@@ -36,7 +36,7 @@ describe HelloSign::Middleware::RaiseError do
|
|
36
36
|
).merge(response_headers)
|
37
37
|
)
|
38
38
|
rescue HelloSign::Error::BadRequest => e
|
39
|
-
expect("#{e}").to match
|
39
|
+
expect("#{e}").to match(/#{Regexp.escape("[Status code: 418] I'm a teapot")}/)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -18,7 +18,21 @@ describe HelloSign::Parameters::SignatureRequest do
|
|
18
18
|
0 => {name: 'Jack', email_address: 'jack@hill.com', order: 0},
|
19
19
|
1 => {name: 'Jill', email_address: 'jill@hill.com', order: 1}
|
20
20
|
},
|
21
|
-
file: {1 => text_file, 2 => image_file}
|
21
|
+
file: {1 => text_file, 2 => image_file},
|
22
|
+
form_fields_per_document: [
|
23
|
+
[],
|
24
|
+
[
|
25
|
+
{
|
26
|
+
type: 'text',
|
27
|
+
x: 112,
|
28
|
+
y: 328,
|
29
|
+
width: 100,
|
30
|
+
height: 16,
|
31
|
+
required: true,
|
32
|
+
signer: 1
|
33
|
+
}
|
34
|
+
]
|
35
|
+
]
|
22
36
|
}
|
23
37
|
end
|
24
38
|
|
@@ -35,6 +49,20 @@ describe HelloSign::Parameters::SignatureRequest do
|
|
35
49
|
@file_data_1 = {filename: 'test.txt', io: 'text file IO object', mime: 'text/plain'},
|
36
50
|
@file_data_2 = {filename: 'test.jpg', io: 'image file IO object', mime: 'image/jpeg'}
|
37
51
|
]
|
52
|
+
request_parameters.form_fields_per_document = [
|
53
|
+
[],
|
54
|
+
[
|
55
|
+
{
|
56
|
+
type: 'text',
|
57
|
+
x: 112,
|
58
|
+
y: 328,
|
59
|
+
width: 100,
|
60
|
+
height: 16,
|
61
|
+
required: true,
|
62
|
+
signer: 1
|
63
|
+
}
|
64
|
+
]
|
65
|
+
]
|
38
66
|
|
39
67
|
allow(HelloSign::File).to(
|
40
68
|
receive(:new).with(@file_data_1).and_return(text_file)
|
@@ -55,12 +83,13 @@ describe HelloSign::Parameters::SignatureRequest do
|
|
55
83
|
context "when required parameters are omitted" do
|
56
84
|
let(:expected) do
|
57
85
|
{
|
58
|
-
title:
|
59
|
-
subject:
|
60
|
-
message:
|
61
|
-
cc_email_addresses:
|
62
|
-
signers:
|
63
|
-
file:
|
86
|
+
title: nil,
|
87
|
+
subject: nil,
|
88
|
+
message: nil,
|
89
|
+
cc_email_addresses: nil,
|
90
|
+
signers: {},
|
91
|
+
file: {},
|
92
|
+
form_fields_per_document: nil
|
64
93
|
}
|
65
94
|
end
|
66
95
|
|
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: 1.
|
4
|
+
version: 1.2.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-09-
|
12
|
+
date: 2013-09-13 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|
@@ -32,17 +32,17 @@ dependencies:
|
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
none: false
|
34
34
|
requirements:
|
35
|
-
- -
|
35
|
+
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
37
|
+
version: '0'
|
38
38
|
type: :development
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
none: false
|
42
42
|
requirements:
|
43
|
-
- -
|
43
|
+
- - ! '>='
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: '
|
45
|
+
version: '0'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: rspec
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,7 +130,7 @@ files:
|
|
130
130
|
- spec/unit/proxy/team_spec.rb
|
131
131
|
- spec/unit/proxy/unclaimed_draft_spec.rb
|
132
132
|
- spec/unit/upload_io_spec.rb
|
133
|
-
homepage:
|
133
|
+
homepage: https://github.com/craiglittle/hello_sign
|
134
134
|
licenses:
|
135
135
|
- MIT
|
136
136
|
post_install_message:
|
@@ -143,18 +143,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
143
143
|
- - ! '>='
|
144
144
|
- !ruby/object:Gem::Version
|
145
145
|
version: '0'
|
146
|
-
segments:
|
147
|
-
- 0
|
148
|
-
hash: 1499078184543381550
|
149
146
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
147
|
none: false
|
151
148
|
requirements:
|
152
149
|
- - ! '>='
|
153
150
|
- !ruby/object:Gem::Version
|
154
151
|
version: '0'
|
155
|
-
segments:
|
156
|
-
- 0
|
157
|
-
hash: 1499078184543381550
|
158
152
|
requirements: []
|
159
153
|
rubyforge_project:
|
160
154
|
rubygems_version: 1.8.25
|
@@ -191,3 +185,4 @@ test_files:
|
|
191
185
|
- spec/unit/proxy/team_spec.rb
|
192
186
|
- spec/unit/proxy/unclaimed_draft_spec.rb
|
193
187
|
- spec/unit/upload_io_spec.rb
|
188
|
+
has_rdoc:
|