hello_sign 1.2.1 → 1.3.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.
@@ -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