eversign-sdk 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 5af06750d603bb41b4eed125818e0579adafb0c5f8ee697b53fc149a85d17d5b
4
+ data.tar.gz: ee662d44b412958dcf513570699180d8437f84791f80c426ee90ee1693e8526a
5
+ SHA512:
6
+ metadata.gz: 6b247028ac81c4accfe0a86c988345b693904f1c1dad8d45532570cdefc1fa2f57027b44acbd887ed57836295cce3eb6cb638ad7a79d9937743c8a50f1f9d95c
7
+ data.tar.gz: 30640dcaf8365d8986a5f95dd7f8afe12f974cff268025533b243ba44c0e603ee87110b426248a69ac0dac6a08530df112bb516b28ab6f1824a11355312a8439
data/lib/eversign.rb ADDED
@@ -0,0 +1,33 @@
1
+ require 'eversign/version'
2
+ require 'configurations'
3
+ require 'addressable/uri'
4
+ require_relative 'eversign/client'
5
+ require_relative 'eversign/models/business'
6
+ require_relative 'eversign/models/file'
7
+ require_relative 'eversign/models/field'
8
+ require_relative 'eversign/models/signer'
9
+ require_relative 'eversign/models/recipient'
10
+ require_relative 'eversign/models/document'
11
+ require_relative 'eversign/models/template'
12
+ require_relative 'eversign/models/error'
13
+ require_relative 'eversign/models/exception'
14
+ require_relative 'eversign/mappings/business'
15
+ require_relative 'eversign/mappings/file'
16
+ require_relative 'eversign/mappings/document'
17
+ require_relative 'eversign/mappings/exception'
18
+
19
+ module Eversign
20
+ include Configurations
21
+ configurable String, :access_key
22
+ configurable Integer, :business_id
23
+ configurable String, :oauth_base
24
+ configurable String, :api_base do |value|
25
+ value ||= 'https://api.eversign.com'
26
+ parsed = Addressable::URI.parse(value)
27
+ if %w(http https).include?(parsed.scheme)
28
+ value
29
+ else
30
+ raise ArgumentError 'Invalid API Base URL'
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,207 @@
1
+ require "addressable/template"
2
+ require "faraday"
3
+ require "json"
4
+ require "logger"
5
+
6
+ module Eversign
7
+ class FileNotFoundException < Exception
8
+ end
9
+
10
+ class Client
11
+ attr_accessor :access_key, :base_uri, :business_id, :token
12
+
13
+ def initialize()
14
+ self.base_uri = Eversign.configuration.api_base || "https://api.eversign.com"
15
+ access_key = Eversign.configuration.access_key
16
+ if access_key.start_with?("Bearer ")
17
+ self.set_oauth_access_token(access_key)
18
+ else
19
+ self.access_key = access_key
20
+ end
21
+ self.business_id = Eversign.configuration.business_id
22
+ end
23
+
24
+ def set_oauth_access_token(oauthtoken)
25
+ if oauthtoken.startswith("Bearer ")
26
+ self.token = oauthtoken
27
+ else
28
+ self.token = "Bearer " + oauthtoken
29
+ end
30
+ self.get_businesses()
31
+ end
32
+
33
+ def generate_oauth_authorization_url(options)
34
+ check_arguments(["client_id", "state"], options)
35
+ template = Addressable::Template.new(Eversign.configuration.oauth_base + "/authorize{?clinet_id,state}")
36
+ return template.partial_expand(clinet_id: options["client_id"], state: options["state"]).pattern
37
+ end
38
+
39
+ def request_oauth_token(options)
40
+ check_arguments(["client_id", "client_secret", "code", "state"], options)
41
+
42
+ req = execute_request(:post, "/token", options)
43
+ if req.status == 200
44
+ response_obj = JSON.parse(req.body)
45
+
46
+ if response_obj.key?("success")
47
+ raise response_obj["message"]
48
+ else
49
+ return response_obj["access_token"]
50
+ end
51
+ end
52
+ raise "no success"
53
+ end
54
+
55
+ def get_buisnesses
56
+ response = execute_request(:get, "/api/business?access_key=#{access_key}")
57
+ extract_response(response.body, Eversign::Mappings::Business)
58
+ end
59
+
60
+ def get_all_documents
61
+ get_documents("all")
62
+ end
63
+
64
+ def get_completed_documents
65
+ get_documents("completed")
66
+ end
67
+
68
+ def get_draft_documents
69
+ get_documents("draft")
70
+ end
71
+
72
+ def get_cancelled_documents
73
+ get_documents("cancelled")
74
+ end
75
+
76
+ def get_action_required_documents
77
+ get_documents("my_action_required")
78
+ end
79
+
80
+ def get_waiting_for_others_documents
81
+ get_documents("waiting_for_others")
82
+ end
83
+
84
+ def get_templates
85
+ get_documents("templates")
86
+ end
87
+
88
+ def get_archived_templates
89
+ get_documents("templates_archived")
90
+ end
91
+
92
+ def get_draft_templates
93
+ get_documents("template_draft")
94
+ end
95
+
96
+ def get_document(document_hash)
97
+ path = "/api/document?access_key=#{access_key}&business_id=#{business_id}&document_hash=#{document_hash}"
98
+ response = execute_request(:get, path)
99
+ extract_response(response.body, Eversign::Mappings::Document)
100
+ end
101
+
102
+ def create_document(document, isFromTemplate = false)
103
+ if document.files
104
+ for file in document.files
105
+ if file.file_url
106
+ file_response = self.upload_file(file.file_url)
107
+ file.file_url = nil
108
+ file.file_id = file_response.file_id
109
+ end
110
+ end
111
+ end
112
+ path = "/api/document?access_key=#{access_key}&business_id=#{business_id}"
113
+ data = Eversign::Mappings::Document.representation_for(document, isFromTemplate)
114
+ response = execute_request(:post, path, data)
115
+ extract_response(response.body, Eversign::Mappings::Document)
116
+ end
117
+
118
+ def create_document_from_template(template)
119
+ create_document(template, true)
120
+ end
121
+
122
+ def delete_document(document_hash)
123
+ path = "/api/document?access_key=#{access_key}&business_id=#{business_id}&document_hash=#{document_hash}"
124
+ delete(path, document_hash)
125
+ end
126
+
127
+ def cancel_document(document_hash)
128
+ path = "/api/document?access_key=#{access_key}&business_id=#{business_id}&document_hash=#{document_hash}&cancel=1"
129
+ delete(path, document_hash)
130
+ end
131
+
132
+ def download_raw_document_to_path(document_hash, path)
133
+ sub_uri = "/api/download_raw_document?access_key=#{access_key}&business_id=#{business_id}&document_hash=#{document_hash}"
134
+ download(sub_uri, path)
135
+ end
136
+
137
+ def download_final_document_to_path(document_hash, path, audit_trail = 1)
138
+ sub_uri = "/api/download_raw_document?access_key=#{access_key}&business_id=#{business_id}&document_hash=#{document_hash}&audit_trail=#{audit_trail}"
139
+ download(sub_uri, path)
140
+ end
141
+
142
+ def upload_file(file_path)
143
+ payload = { upload: Faraday::UploadIO.new(file_path, "text/plain") }
144
+ path = "/api/file?access_key=#{access_key}&business_id=#{business_id}"
145
+ response = execute_request(:post, path, payload, true)
146
+ extract_response(response.body, Eversign::Mappings::File)
147
+ end
148
+
149
+ def send_reminder_for_document(document_hash, signer_id)
150
+ path = "/api/send_reminder?access_key=#{access_key}&business_id=#{business_id}"
151
+ response = execute_request(:post, path, { document_hash: document_hash, signer_id: signer_id }.to_json)
152
+ eval(response.body)[:success] ? true : extract_response(response.body)
153
+ end
154
+
155
+ private
156
+
157
+ def execute_request(method, path, body = nil, multipart = false)
158
+ @faraday ||= Faraday.new(base_uri) do |conn|
159
+ conn.headers = {}
160
+ conn.headers["User-Agent"] = "Eversign_Ruby_SDK"
161
+ conn.headers["Authorization"] = token if token
162
+ conn.request :multipart if multipart
163
+ conn.adapter :net_http
164
+ end
165
+
166
+ @faraday.send(method) do |request|
167
+ request.url path
168
+ request.body = body if body
169
+ end
170
+ end
171
+
172
+ def check_arguments(arguments = [], options = {})
173
+ arguments.each do |argument|
174
+ raise ("Please specify " + argument) unless options.has_key?(argument.to_sym)
175
+ end
176
+ end
177
+
178
+ def delete(path, document_hash)
179
+ response = execute_request(:delete, path)
180
+ eval(response.body)[:success] ? true : extract_response(response.body)
181
+ end
182
+
183
+ def download(sub_uri, path)
184
+ response = execute_request(:get, sub_uri)
185
+ File.open(path, "wb") { |fp| fp.write(response.body) }
186
+ end
187
+
188
+ def get_documents(doc_type)
189
+ path = "/api/document?access_key=#{access_key}&business_id=#{business_id}&type=#{doc_type}"
190
+ response = execute_request(:get, path)
191
+ extract_response(response.body, Eversign::Mappings::Document)
192
+ end
193
+
194
+ def extract_response(body, mapping = nil)
195
+ data = JSON.parse(body)
196
+ if data.kind_of?(Array)
197
+ mapping.extract_collection(body, nil)
198
+ else
199
+ if data.key?("success")
200
+ Eversign::Mappings::Exception.extract_single(body, nil)
201
+ else
202
+ mapping.extract_single(body, nil)
203
+ end
204
+ end
205
+ end
206
+ end
207
+ end
@@ -0,0 +1,16 @@
1
+ require 'kartograph'
2
+ require_relative '../models/business'
3
+
4
+ module Eversign
5
+ module Mappings
6
+ class Business
7
+ include Kartograph::DSL
8
+
9
+ kartograph do
10
+ mapping Eversign::Models::Business
11
+
12
+ property :business_id, :business_status, :business_identifier, :business_name, :creation_time_stamp, :is_primary
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,105 @@
1
+ require "kartograph"
2
+ require_relative "../models/document"
3
+
4
+ module Eversign
5
+ module Mappings
6
+ class File
7
+ include Kartograph::DSL
8
+
9
+ kartograph do
10
+ mapping Eversign::Models::File
11
+
12
+ property :name, :file_id, :file_url, :file_base64
13
+ end
14
+ end
15
+
16
+ class Signer
17
+ include Kartograph::DSL
18
+
19
+ kartograph do
20
+ mapping Eversign::Models::Signer
21
+
22
+ property :id, :name, :email, :order, :pin, :message, :deliver_email, :role
23
+ end
24
+ end
25
+
26
+ class Field
27
+ include Kartograph::DSL
28
+
29
+ kartograph do
30
+ mapping Eversign::Models::Field
31
+
32
+ property :name, :type, :x, :y, :width, :height, :page, :signer, :identifier, :required, :readonly, :merge, :type,
33
+ :validation_type, :text_style, :text_font, :text_size, :text_color, :value, :options, :group
34
+ end
35
+ end
36
+
37
+ class Recipient
38
+ include Kartograph::DSL
39
+
40
+ kartograph do
41
+ mapping Eversign::Models::Recipient
42
+
43
+ property :name, :email, :role
44
+ end
45
+ end
46
+
47
+ class Document
48
+ include Kartograph::DSL
49
+
50
+ kartograph do
51
+ mapping Eversign::Models::Document
52
+
53
+ property :document_hash, :template_id, :sandbox, :is_draft, :title, :message, :use_signer_order, :reminders, :require_all_signers,
54
+ :redirect, :redirect_decline, :client, :expires, :embedded_signing_enabled, :requester_email, :is_template,
55
+ :is_completed, :is_archived, :is_deleted, :is_trashed, :is_cancelled, :embedded, :in_person, :permission
56
+ property :files, plural: true, include: File
57
+ property :signers, plural: true, include: Signer
58
+ property :recipients, plural: true, include: Recipient
59
+ end
60
+
61
+ def self.extract_collection(content, scope)
62
+ data = JSON.parse(content)
63
+ result = []
64
+ data.each do |item|
65
+ result << extract_single(item.to_json, nil)
66
+ end
67
+ result
68
+ end
69
+
70
+ def self.extract_single(content, scope)
71
+ obj = super(content, scope)
72
+ data = JSON.parse(content)
73
+ if data["fields"]
74
+ data["fields"].each do |field_list|
75
+ field_data = []
76
+ field_list.each do |field|
77
+ extracted_field = Field.extract_single(field.to_json, nil)
78
+ field_data << extracted_field if extracted_field
79
+ end
80
+ obj.add_field_list(field_data)
81
+ end
82
+ end
83
+ obj
84
+ end
85
+
86
+ def self.representation_for(document, isFromTemplate = false)
87
+ data = super(nil, document)
88
+ list = []
89
+ if document.fields
90
+ document.fields.each do |field_list|
91
+ field_data = []
92
+ field_list.each do |field|
93
+ field_data << JSON.parse(Field.representation_for(nil, field))
94
+ end
95
+ list << field_data
96
+ end
97
+ end
98
+ data = JSON.parse(data)
99
+ # Fix for issue 7. When we create a document from template (isFromTemplate=true) fields array is 1 dimentional, so we flatten it:
100
+ data["fields"] = isFromTemplate ? list.flatten : list
101
+ JSON.dump(data)
102
+ end
103
+ end
104
+ end
105
+ end
@@ -0,0 +1,27 @@
1
+ require 'kartograph'
2
+ #require_relative '../models/document'
3
+
4
+ module Eversign
5
+ module Mappings
6
+ class Error
7
+ include Kartograph::DSL
8
+
9
+ kartograph do
10
+ mapping Eversign::Models::Error
11
+
12
+ property :code, :type, :info
13
+ end
14
+ end
15
+
16
+ class Exception
17
+ include Kartograph::DSL
18
+
19
+ kartograph do
20
+ mapping Eversign::Models::Exception
21
+
22
+ property :success
23
+ property :error, include: Error
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ require 'kartograph'
2
+ require_relative '../models/file'
3
+
4
+ module Eversign
5
+ module Mappings
6
+ class File
7
+ include Kartograph::DSL
8
+
9
+ kartograph do
10
+ mapping Eversign::Models::File
11
+
12
+ property :name, :file_id, :file_url, :file_base64, :pages, :total_pages
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,7 @@
1
+ module Eversign
2
+ module Models
3
+ class Business
4
+ attr_accessor :business_id, :business_status, :business_identifier, :business_name, :creation_time_stamp, :is_primary
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,34 @@
1
+ module Eversign
2
+ module Models
3
+ class Document
4
+ attr_accessor :document_hash, :template_id, :sandbox, :is_draft, :title, :message, :use_signer_order, :reminders, :require_all_signers,
5
+ :redirect, :redirect_decline, :client, :expires, :embedded_signing_enabled, :requester_email, :is_template,
6
+ :is_completed, :is_archived, :is_deleted, :is_trashed, :is_cancelled, :embedded, :in_person, :permission,
7
+ :files, :signers, :recipients, :meta, :fields
8
+
9
+ def add_file(file)
10
+ self.files ||= []
11
+ self.files << file
12
+ end
13
+
14
+ def add_field(field)
15
+ add_field_list([field])
16
+ end
17
+
18
+ def add_field_list(field_list)
19
+ self.fields ||= []
20
+ self.fields << field_list
21
+ end
22
+
23
+ def add_recipient(recipient)
24
+ self.recipients ||= []
25
+ self.recipients << recipient
26
+ end
27
+
28
+ def add_signer(signer)
29
+ self.signers ||= []
30
+ self.signers << signer
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,7 @@
1
+ module Eversign
2
+ module Models
3
+ class Error
4
+ attr_accessor :code, :type, :info
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ module Eversign
2
+ module Models
3
+ class Exception
4
+ attr_accessor :success, :error
5
+ end
6
+ end
7
+ end
@@ -0,0 +1,8 @@
1
+ module Eversign
2
+ module Models
3
+ class Field
4
+ attr_accessor :name, :type, :x, :y, :width, :height, :page, :signer, :identifier, :required, :readonly, :merge, :type,
5
+ :validation_type, :text_style, :text_font, :text_size, :text_color, :value, :options, :group
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,30 @@
1
+ require 'active_model'
2
+ module Eversign
3
+ module Models
4
+ class File
5
+ include ActiveModel::Validations
6
+
7
+ attr_accessor :name, :file_id, :file_url, :file_base64, :pages, :total_pages
8
+
9
+ validate :only_one_option
10
+
11
+ def initialize(name=nil)
12
+ self.name = name
13
+ end
14
+
15
+ def only_one_option()
16
+ error = false
17
+ if file_id && !file_id.empty?
18
+ error = file_url || file_base64
19
+ elsif file_url && !file_url.empty?
20
+ error = file_id || file_base64
21
+ elsif file_base64 && !file_base64.empty?
22
+ error = file_id || file_url
23
+ else
24
+ error = true
25
+ end
26
+ errors.add('Please provide only one file option') if error
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,13 @@
1
+ module Eversign
2
+ module Models
3
+ class Recipient
4
+ attr_accessor :name, :email, :role
5
+
6
+ def initialize(name=nil, email=nil, role=nil)
7
+ self.name = name
8
+ self.email = email
9
+ self.role = role
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ module Eversign
2
+ module Models
3
+ class Signer
4
+ attr_accessor :id, :name, :email, :order, :pin, :message, :deliver_email, :role
5
+
6
+ def initialize(name=nil, email=nil, role=nil)
7
+ self.name = name
8
+ self.email = email
9
+ self.role = role
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ module Eversign
2
+ module Models
3
+ class Template < Document
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,3 @@
1
+ module Eversign
2
+ VERSION = '0.2.1'
3
+ end
metadata ADDED
@@ -0,0 +1,199 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: eversign-sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.1
5
+ platform: ruby
6
+ authors:
7
+ - eversign
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-04-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '4'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '4'
27
+ - !ruby/object:Gem::Dependency
28
+ name: faraday
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0.13'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0.13'
41
+ - !ruby/object:Gem::Dependency
42
+ name: addressable
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '2.5'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: kartograph
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 0.2.3
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 0.2.3
69
+ - !ruby/object:Gem::Dependency
70
+ name: configurations
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '2.2'
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'
83
+ - !ruby/object:Gem::Dependency
84
+ name: bundler
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '10.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '10.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '3.0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '3.0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: simplecov
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: dotenv-rails
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ description: Gem for Eversign API SDK.
154
+ email:
155
+ - support@eversign.com
156
+ executables: []
157
+ extensions: []
158
+ extra_rdoc_files: []
159
+ files:
160
+ - lib/eversign.rb
161
+ - lib/eversign/client.rb
162
+ - lib/eversign/mappings/business.rb
163
+ - lib/eversign/mappings/document.rb
164
+ - lib/eversign/mappings/exception.rb
165
+ - lib/eversign/mappings/file.rb
166
+ - lib/eversign/models/business.rb
167
+ - lib/eversign/models/document.rb
168
+ - lib/eversign/models/error.rb
169
+ - lib/eversign/models/exception.rb
170
+ - lib/eversign/models/field.rb
171
+ - lib/eversign/models/file.rb
172
+ - lib/eversign/models/recipient.rb
173
+ - lib/eversign/models/signer.rb
174
+ - lib/eversign/models/template.rb
175
+ - lib/eversign/version.rb
176
+ homepage: https://github.com/workatbest/eversign-ruby-sdk
177
+ licenses:
178
+ - MIT
179
+ metadata: {}
180
+ post_install_message:
181
+ rdoc_options: []
182
+ require_paths:
183
+ - lib
184
+ required_ruby_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - ">="
192
+ - !ruby/object:Gem::Version
193
+ version: '0'
194
+ requirements: []
195
+ rubygems_version: 3.1.2
196
+ signing_key:
197
+ specification_version: 4
198
+ summary: Gem for Eversign API Client.
199
+ test_files: []