hello_sign 1.2.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,6 @@
1
+ require 'hello_sign/response'
1
2
  require 'faraday'
3
+ require 'faraday_middleware'
2
4
 
3
5
  module HelloSign
4
6
  class Connection
@@ -37,6 +39,7 @@ module HelloSign
37
39
  connection.request :multipart
38
40
  connection.request :url_encoded
39
41
  connection.response :raise_error
42
+ connection.response :mashify, mash_class: HelloSign::Response
40
43
  connection.response :json
41
44
  connection.adapter :net_http
42
45
  end
@@ -1,13 +1,14 @@
1
1
  module HelloSign
2
2
  module Parameters
3
3
  class ReusableFormSignatureRequest
4
- attr_accessor :reusable_form_id, :title, :subject, :message
5
- private :reusable_form_id, :title, :subject, :message
4
+ attr_accessor :reusable_form_id, :title, :subject, :message, :test_mode
5
+ private :reusable_form_id, :title, :subject, :message, :test_mode
6
6
 
7
7
  attr_writer :ccs, :signers, :custom_fields
8
8
 
9
9
  def formatted
10
10
  {
11
+ test_mode: test_mode || 0,
11
12
  reusable_form_id: reusable_form_id,
12
13
  title: title,
13
14
  subject: subject,
@@ -4,13 +4,14 @@ require 'json'
4
4
  module HelloSign
5
5
  module Parameters
6
6
  class SignatureRequest
7
- attr_accessor :title, :subject, :message, :ccs
8
- private :title, :subject, :message, :ccs
7
+ attr_accessor :title, :subject, :message, :ccs, :test_mode
8
+ private :title, :subject, :message, :ccs, :test_mode
9
9
 
10
- attr_writer :signers, :files, :form_fields_per_document
10
+ attr_writer :signers, :files, :form_fields_per_document, :test_mode
11
11
 
12
12
  def formatted
13
13
  {
14
+ test_mode: test_mode || 0,
14
15
  title: title,
15
16
  subject: subject,
16
17
  message: message,
@@ -0,0 +1,12 @@
1
+ require 'hashie'
2
+ require 'pp'
3
+
4
+ module HelloSign
5
+ class Response < Hashie::Mash
6
+
7
+ def to_s
8
+ pretty_inspect
9
+ end
10
+
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
1
  module HelloSign
2
- VERSION = '1.2.1'
2
+ VERSION = '1.3.0'
3
3
  end
@@ -3,6 +3,8 @@ require 'json'
3
3
 
4
4
  describe HelloSign do
5
5
  context "when returning a response with a body" do
6
+ let(:response) { HelloSign.client.get('/json') }
7
+
6
8
  before do
7
9
  stub_get_with_auth('/json')
8
10
  .to_return(
@@ -11,8 +13,16 @@ describe HelloSign do
11
13
  )
12
14
  end
13
15
 
14
- it "parses the body into a hash with symbols as keys" do
15
- expect(HelloSign.client.get('/json')).to eq({account_id: 1})
16
+ it "returns a HelloSign::Response object" do
17
+ expect(response).to be_a HelloSign::Response
18
+ end
19
+
20
+ it "is accessible by indexing" do
21
+ expect(response[:account_id]).to eq 1
22
+ end
23
+
24
+ it "is accessible by method calls" do
25
+ expect(response.account_id).to eq 1
16
26
  end
17
27
  end
18
28
 
@@ -73,6 +73,7 @@ describe HelloSign do
73
73
 
74
74
  expect(a_post_with_auth('/signature_request/send_with_reusable_form')
75
75
  .with(body: {
76
+ test_mode: '0',
76
77
  reusable_form_id: 'form_id',
77
78
  title: 'Lease',
78
79
  subject: 'Sign this',
@@ -23,11 +23,13 @@ describe HelloSign::Parameters::ReusableFormSignatureRequest do
23
23
  custom_fields: {
24
24
  'cost' => '$20,000',
25
25
  'time' => 'two weeks'
26
- }
26
+ },
27
+ test_mode: 1
27
28
  }
28
29
  end
29
30
 
30
31
  before do
32
+ request_parameters.test_mode = 1
31
33
  request_parameters.reusable_form_id = 'form_id'
32
34
  request_parameters.title = 'Lease'
33
35
  request_parameters.subject = 'Sign this'
@@ -11,6 +11,7 @@ describe HelloSign::Parameters::SignatureRequest do
11
11
  context "when all required arguments are set" do
12
12
  let(:expected) do
13
13
  {
14
+ test_mode: 1,
14
15
  title: 'Lease',
15
16
  subject: 'Sign this',
16
17
  message: 'You must sign this.',
@@ -38,15 +39,16 @@ describe HelloSign::Parameters::SignatureRequest do
38
39
  end
39
40
 
40
41
  before do
41
- request_parameters.title = 'Lease'
42
- request_parameters.subject = 'Sign this'
43
- request_parameters.message = 'You must sign this.'
44
- request_parameters.ccs = ['lawyer@lawfirm.com', 'spouse@family.com']
45
- request_parameters.signers = [
42
+ request_parameters.test_mode = 1
43
+ request_parameters.title = 'Lease'
44
+ request_parameters.subject = 'Sign this'
45
+ request_parameters.message = 'You must sign this.'
46
+ request_parameters.ccs = ['lawyer@lawfirm.com', 'spouse@family.com']
47
+ request_parameters.signers = [
46
48
  {name: 'Jack', email_address: 'jack@hill.com'},
47
49
  {name: 'Jill', email_address: 'jill@hill.com'}
48
50
  ]
49
- request_parameters.files = [
51
+ request_parameters.files = [
50
52
  @file_data_1 = {filename: 'test.txt', io: 'text file IO object', mime: 'text/plain'},
51
53
  @file_data_2 = {filename: 'test.jpg', io: 'image file IO object', mime: 'image/jpeg'}
52
54
  ]
@@ -89,6 +91,7 @@ describe HelloSign::Parameters::SignatureRequest do
89
91
  message: nil,
90
92
  cc_email_addresses: nil,
91
93
  signers: {},
94
+ test_mode: 0,
92
95
  file: {},
93
96
  form_fields_per_document: [].to_json
94
97
  }
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.2.1
4
+ version: 1.3.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-14 00:00:00.000000000 Z
12
+ date: 2013-10-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -28,13 +28,32 @@ dependencies:
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0.8'
30
30
  - !ruby/object:Gem::Dependency
31
- name: json
31
+ name: faraday_middleware
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '0.9'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.9'
46
+ - !ruby/object:Gem::Dependency
47
+ name: hashie
32
48
  requirement: !ruby/object:Gem::Requirement
33
49
  none: false
34
50
  requirements:
35
51
  - - ! '>='
36
52
  - !ruby/object:Gem::Version
37
- version: '0'
53
+ version: '1.0'
54
+ - - <
55
+ - !ruby/object:Gem::Version
56
+ version: '3.0'
38
57
  type: :runtime
39
58
  prerelease: false
40
59
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +61,10 @@ dependencies:
42
61
  requirements:
43
62
  - - ! '>='
44
63
  - !ruby/object:Gem::Version
45
- version: '0'
64
+ version: '1.0'
65
+ - - <
66
+ - !ruby/object:Gem::Version
67
+ version: '3.0'
46
68
  - !ruby/object:Gem::Dependency
47
69
  name: rake
48
70
  requirement: !ruby/object:Gem::Requirement
@@ -115,6 +137,7 @@ files:
115
137
  - lib/hello_sign/proxy/team.rb
116
138
  - lib/hello_sign/proxy/unclaimed_draft.rb
117
139
  - lib/hello_sign/proxy.rb
140
+ - lib/hello_sign/response.rb
118
141
  - lib/hello_sign/version.rb
119
142
  - lib/hello_sign.rb
120
143
  - spec/fixtures/test.jpg