mifiel 1.0.3 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/Gemfile +10 -0
- data/Guardfile +37 -0
- data/README.md +5 -0
- data/Rakefile +1 -1
- data/lib/mifiel/base.rb +3 -3
- data/lib/mifiel/document.rb +26 -80
- data/lib/mifiel/version.rb +1 -1
- data/mifiel-ruby-api-client.sublime-project +22 -0
- data/mifiel.gemspec +1 -0
- data/spec/mifiel/base_spec.rb +31 -0
- data/spec/mifiel/certificate_spec.rb +12 -0
- data/spec/mifiel/document_spec.rb +20 -63
- data/spec/spec_helper.rb +8 -0
- data/spec/support/fake_mifiel.rb +35 -0
- metadata +22 -4
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 824c42905ab5539e1400765da354b7856b0867c5
|
4
|
+
data.tar.gz: b14bf9cd247bcb5908a236809f7a8d2b62d9585b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4967e263f0c34aa45c82e9771a2e3c53c9d894ff86b6cdc504a2c439c45de8e649b61966a8f905503c15af164de2128b7945ccb9d35d148b1da66d20058d0ef
|
7
|
+
data.tar.gz: 98a35a5cb8eca9ec7855fb52c4e110b7a3bfb5b8068a8feb8a51cd6e10c9e966c318e53e54572784daa38bbf26ec85b2b8e52f70c71a04e77ca0fb011b98fef4
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
@@ -2,3 +2,13 @@ source 'https://rubygems.org'
|
|
2
2
|
|
3
3
|
# Specify your gem's dependencies in mifiel.gemspec
|
4
4
|
gemspec
|
5
|
+
|
6
|
+
group :development, :test do
|
7
|
+
gem 'coveralls', require: false
|
8
|
+
gem 'guard', '2.13.0'
|
9
|
+
gem 'guard-rspec'
|
10
|
+
# compatible with ruby 2.2.1
|
11
|
+
gem 'listen', '3.1.1'
|
12
|
+
gem 'guard-rubocop'
|
13
|
+
gem 'terminal-notifier-guard'
|
14
|
+
end
|
data/Guardfile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
notification :terminal_notifier
|
2
|
+
|
3
|
+
rspec_options = {
|
4
|
+
all_after_pass: false,
|
5
|
+
cmd: 'rspec spec',
|
6
|
+
failed_mode: :focus
|
7
|
+
}
|
8
|
+
|
9
|
+
clearing :on
|
10
|
+
|
11
|
+
guard :rspec, rspec_options do
|
12
|
+
require 'ostruct'
|
13
|
+
|
14
|
+
# Generic Ruby apps
|
15
|
+
rspec = OpenStruct.new
|
16
|
+
rspec.spec = ->(m) { "spec/#{m}_spec.rb" }
|
17
|
+
rspec.spec_dir = 'spec'
|
18
|
+
rspec.spec_helper = 'spec/spec_helper.rb'
|
19
|
+
|
20
|
+
watch(%r{^spec/.+_spec\.rb$})
|
21
|
+
watch(%r{^lib/mifiel/(.+)\.rb$}) do |m|
|
22
|
+
"spec/mifiel/#{m[1]}_spec.rb"
|
23
|
+
end
|
24
|
+
watch(%r{^lib/mifiel/(.+)\.rb$}) do |m|
|
25
|
+
"spec/mifiel/integration/#{m[1]}_spec.rb"
|
26
|
+
end
|
27
|
+
watch(rspec.spec_helper) { rspec.spec_dir }
|
28
|
+
end
|
29
|
+
|
30
|
+
rubocop_opts = {
|
31
|
+
all_on_start: false,
|
32
|
+
cli: '--format html -o rubocop.html'
|
33
|
+
}
|
34
|
+
guard :rubocop, rubocop_opts do
|
35
|
+
watch(/.+\.rb$/)
|
36
|
+
watch(%r{(?:.+/)?\.rubocop\.yml$}) { |m| File.dirname(m[0]) }
|
37
|
+
end
|
data/README.md
CHANGED
@@ -58,9 +58,14 @@ Document methods:
|
|
58
58
|
|
59
59
|
- Create:
|
60
60
|
|
61
|
+
> Use only **hash** if you dont want us to have the file.<br>
|
62
|
+
> Either **file** or **hash** must be provided.
|
63
|
+
|
61
64
|
```ruby
|
62
65
|
document = Mifiel::Document.create(
|
63
66
|
file: 'path/to/my-file.pdf',
|
67
|
+
# OR
|
68
|
+
hash: Digest::SHA256.hexdigest(File.read('path/to/my-file.pdf')),
|
64
69
|
signatories: [
|
65
70
|
{ name: 'Signer 1', email: 'signer1@email.com', tax_id: 'AAA010101AAA' },
|
66
71
|
{ name: 'Signer 2', email: 'signer2@email.com', tax_id: 'AAA010102AAA' }
|
data/Rakefile
CHANGED
data/lib/mifiel/base.rb
CHANGED
@@ -5,12 +5,12 @@ module Mifiel
|
|
5
5
|
after_request :rescue_errors
|
6
6
|
|
7
7
|
def rescue_errors(_name, response)
|
8
|
-
if response.status
|
8
|
+
if (400..499).cover?(response.status)
|
9
9
|
result = JSON.load(response.body)
|
10
10
|
message = result['errors'] || [result['error']]
|
11
|
-
|
11
|
+
raise BadRequestError, message.to_a.join(', ')
|
12
12
|
elsif (500..599).cover?(response.status)
|
13
|
-
|
13
|
+
raise ServerError, "Could not process your request: status #{response.status}"
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
data/lib/mifiel/document.rb
CHANGED
@@ -7,94 +7,40 @@ module Mifiel
|
|
7
7
|
put :save, '/documents/:id'
|
8
8
|
delete :delete, '/documents/:id'
|
9
9
|
|
10
|
-
def self.create(signatories:, file:nil, hash:nil, callback_url:nil)
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
original_hash: hash,
|
21
|
-
signatories: sgries,
|
22
|
-
callback_url: callback_url
|
23
|
-
},
|
24
|
-
ssl_version: 'SSLv23'
|
25
|
-
)
|
26
|
-
req = ApiAuth.sign!(rest_request, Mifiel.config.app_id, Mifiel.config.app_secret)
|
27
|
-
JSON.load(req.execute)
|
28
|
-
end
|
29
|
-
|
30
|
-
def sign(certificate_id:nil, certificate:nil)
|
31
|
-
fail ArgumentError, 'Either certificate_id or certificate must be provided' if !certificate_id && !certificate
|
32
|
-
fail ArgumentError, 'Only one of certificate_id or certificate must be provided' if certificate_id && certificate
|
33
|
-
fail NoSignatureError, 'You must first call build_signature or provide a signature' unless signature
|
34
|
-
params = { signature: signature }
|
35
|
-
params[:key] = certificate_id if certificate_id
|
36
|
-
if certificate
|
37
|
-
params[:certificate] = if certificate.encoding.to_s == 'UTF-8'
|
38
|
-
certificate.unpack('H*')[0]
|
39
|
-
else
|
40
|
-
certificate
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
Mifiel::Document._request("#{Mifiel.config.base_url}/documents/#{id}/sign", :post, params)
|
45
|
-
rescue ActiveRestClient::HTTPClientException => e
|
46
|
-
message = e.result.errors || [e.result.error]
|
47
|
-
raise MifielError, message.to_a.join(', ')
|
48
|
-
rescue ActiveRestClient::HTTPServerException
|
49
|
-
raise MifielError, 'Server could not process request'
|
10
|
+
def self.create(signatories:, file: nil, hash: nil, callback_url: nil)
|
11
|
+
raise ArgumentError, 'Either file or hash must be provided' if !file && !hash
|
12
|
+
raise ArgumentError, 'Only one of file or hash must be provided' if file && hash
|
13
|
+
payload = {
|
14
|
+
signatories: build_signatories(signatories),
|
15
|
+
callback_url: callback_url,
|
16
|
+
file: (File.new(file) if file),
|
17
|
+
original_hash: hash
|
18
|
+
}
|
19
|
+
process_request('/documents', :post, payload)
|
50
20
|
end
|
51
21
|
|
52
|
-
def request_signature(email, cc:nil)
|
22
|
+
def request_signature(email, cc: nil)
|
53
23
|
params = { email: email }
|
54
24
|
params[:cc] = cc if cc.is_a?(Array)
|
55
25
|
Mifiel::Document._request("#{Mifiel.config.base_url}/documents/#{id}/request_signature", :post, params)
|
56
|
-
rescue ActiveRestClient::HTTPClientException => e
|
57
|
-
message = e.result.errors || [e.result.error]
|
58
|
-
raise MifielError, message.to_a.join(', ')
|
59
|
-
rescue ActiveRestClient::HTTPServerException
|
60
|
-
raise MifielError, 'Server could not process request'
|
61
26
|
end
|
62
27
|
|
63
|
-
def
|
64
|
-
|
28
|
+
def self.process_request(path, method, payload)
|
29
|
+
path[0] = '' if path[0] == '/'
|
30
|
+
rest_request = RestClient::Request.new(
|
31
|
+
url: "#{Mifiel.config.base_url}/#{path}",
|
32
|
+
method: method,
|
33
|
+
payload: payload,
|
34
|
+
ssl_version: 'SSLv23'
|
35
|
+
)
|
36
|
+
req = ApiAuth.sign!(rest_request, Mifiel.config.app_id, Mifiel.config.app_secret)
|
37
|
+
JSON.load(req.execute)
|
65
38
|
end
|
66
39
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
# @param hash [String] The hash or string to sign
|
73
|
-
#
|
74
|
-
# @return [String] Hex string of the signature
|
75
|
-
def sign_hash(key, pass, hash)
|
76
|
-
private_key = build_private_key(key, pass)
|
77
|
-
unless private_key.private?
|
78
|
-
fail NotPrivateKeyError, 'The private key is not valid'
|
79
|
-
end
|
80
|
-
signature = private_key.sign(OpenSSL::Digest::SHA256.new, hash)
|
81
|
-
signature.unpack('H*')[0]
|
82
|
-
end
|
83
|
-
|
84
|
-
def build_private_key(private_data, key_pass)
|
85
|
-
# create file so we can converted to pem
|
86
|
-
private_file = File.new("./tmp/tmp-#{rand(1000)}.key", 'w+')
|
87
|
-
private_file.write(private_data.force_encoding('UTF-8'))
|
88
|
-
private_file.close
|
89
|
-
|
90
|
-
key2pem_command = "openssl pkcs8 -in #{private_file.path} -inform DER -passin pass:#{key_pass}"
|
91
|
-
priv_pem_s, error, status = Open3.capture3(key2pem_command)
|
92
|
-
|
93
|
-
# delete file from file system
|
94
|
-
File.unlink private_file.path
|
95
|
-
fail PrivateKeyError, "#{error}, #{status}" unless error.empty?
|
96
|
-
|
97
|
-
OpenSSL::PKey::RSA.new priv_pem_s
|
98
|
-
end
|
40
|
+
def self.build_signatories(signatories)
|
41
|
+
sgries = {}
|
42
|
+
signatories.each_with_index { |s, i| sgries[i] = s }
|
43
|
+
sgries
|
44
|
+
end
|
99
45
|
end
|
100
46
|
end
|
data/lib/mifiel/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
{
|
2
|
+
|
3
|
+
"folders":
|
4
|
+
[
|
5
|
+
{
|
6
|
+
"file_exclude_patterns":
|
7
|
+
[
|
8
|
+
"*.sublime-workspace"
|
9
|
+
],
|
10
|
+
"folder_exclude_patterns":
|
11
|
+
[
|
12
|
+
"coverage",
|
13
|
+
".bundle",
|
14
|
+
"tmp"
|
15
|
+
],
|
16
|
+
"follow_symlinks": true,
|
17
|
+
"path": ".",
|
18
|
+
"tab_size": 2,
|
19
|
+
"translate_tabs_to_spaces": false,
|
20
|
+
}
|
21
|
+
]
|
22
|
+
}
|
data/mifiel.gemspec
CHANGED
@@ -32,4 +32,5 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_development_dependency 'webmock', '~> 1.22', '>= 1.22.2'
|
33
33
|
spec.add_development_dependency 'sinatra', '~> 1.4', '>= 1.4.7'
|
34
34
|
spec.add_development_dependency 'rubocop', '~> 0.36'
|
35
|
+
spec.add_development_dependency 'simplecov', '~> 0.11'
|
35
36
|
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
describe Mifiel::Base do
|
2
|
+
describe 'rescue_errors' do
|
3
|
+
describe 'when bad request' do
|
4
|
+
it 'should raise error' do
|
5
|
+
base = Mifiel::Base.new
|
6
|
+
expect do
|
7
|
+
base.rescue_errors('blah', FakeResponse.new(400))
|
8
|
+
end.to raise_error(Mifiel::BadRequestError)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe 'when server error' do
|
13
|
+
it 'should raise error' do
|
14
|
+
base = Mifiel::Base.new
|
15
|
+
expect do
|
16
|
+
base.rescue_errors('blah', FakeResponse.new(500))
|
17
|
+
end.to raise_error(Mifiel::ServerError)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class FakeResponse
|
24
|
+
attr_reader :status,
|
25
|
+
:body
|
26
|
+
|
27
|
+
def initialize(status)
|
28
|
+
@status = status
|
29
|
+
@body = '{"body": "some response"}'
|
30
|
+
end
|
31
|
+
end
|
@@ -19,83 +19,40 @@ describe Mifiel::Document do
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
describe '#
|
23
|
-
let!(:signature) { 'signature' }
|
22
|
+
describe '#request_signature' do
|
24
23
|
let!(:document) { Mifiel::Document.all.first }
|
25
|
-
let!(:
|
24
|
+
let!(:error_body) { { errors: ['some error'] }.to_json }
|
26
25
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end.to raise_error(Mifiel::NoSignatureError)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
context 'with build_signature called before' do
|
36
|
-
it do
|
37
|
-
document.build_signature(private_key, private_key_pass)
|
38
|
-
expect do
|
39
|
-
document.sign(certificate_id: certificate_id)
|
40
|
-
end.not_to raise_error
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
context 'with signature' do
|
45
|
-
it do
|
46
|
-
document.signature = signature
|
47
|
-
expect do
|
48
|
-
document.sign(certificate_id: certificate_id)
|
49
|
-
end.not_to raise_error
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
context 'with certificate' do
|
54
|
-
it do
|
55
|
-
document.build_signature(private_key, private_key_pass)
|
56
|
-
expect do
|
57
|
-
document.sign(certificate: certificate)
|
58
|
-
end.not_to raise_error
|
59
|
-
end
|
26
|
+
it '' do
|
27
|
+
expect do
|
28
|
+
document.request_signature('some@email.com')
|
29
|
+
end.not_to raise_error
|
60
30
|
end
|
61
31
|
|
62
|
-
context '
|
63
|
-
|
64
|
-
document.
|
65
|
-
|
66
|
-
document.sign(certificate: certificate.unpack('H*')[0])
|
67
|
-
end.not_to raise_error
|
32
|
+
context 'when bad request' do
|
33
|
+
before do
|
34
|
+
url = %r{mifiel.com\/api\/v1\/documents\/#{document.id}\/request_signature}
|
35
|
+
stub_request(:post, url).to_return(body: error_body, status: 404)
|
68
36
|
end
|
69
|
-
end
|
70
|
-
end
|
71
37
|
|
72
|
-
|
73
|
-
let!(:document) { Mifiel::Document.all.first }
|
74
|
-
|
75
|
-
context 'with a wrong private_key' do
|
76
|
-
it do
|
38
|
+
it '' do
|
77
39
|
expect do
|
78
|
-
document.
|
79
|
-
end.to raise_error(Mifiel::
|
40
|
+
document.request_signature('some@email.com')
|
41
|
+
end.to raise_error(Mifiel::BadRequestError)
|
80
42
|
end
|
81
43
|
end
|
82
44
|
|
83
|
-
context '
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
document.build_signature(cer.public_key.to_der, private_key_pass)
|
88
|
-
end.to raise_error(Mifiel::NotPrivateKeyError)
|
45
|
+
context 'when server error' do
|
46
|
+
before do
|
47
|
+
url = %r{mifiel.com\/api\/v1\/documents\/#{document.id}\/request_signature}
|
48
|
+
stub_request(:post, url).to_return(body: error_body, status: 500)
|
89
49
|
end
|
90
|
-
end
|
91
50
|
|
92
|
-
|
93
|
-
it do
|
51
|
+
it '' do
|
94
52
|
expect do
|
95
|
-
document.
|
96
|
-
end.to raise_error(Mifiel::
|
53
|
+
document.request_signature('some@email.com')
|
54
|
+
end.to raise_error(Mifiel::ServerError)
|
97
55
|
end
|
98
56
|
end
|
99
57
|
end
|
100
|
-
|
101
58
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -4,6 +4,13 @@ require 'pry-byebug'
|
|
4
4
|
require 'mifiel'
|
5
5
|
require 'webmock/rspec'
|
6
6
|
|
7
|
+
require 'simplecov'
|
8
|
+
require 'coveralls'
|
9
|
+
SimpleCov.start do
|
10
|
+
add_filter '/spec/'
|
11
|
+
end
|
12
|
+
Coveralls.wear!
|
13
|
+
|
7
14
|
Dir['./spec/support/**/*.rb'].each { |f| require f }
|
8
15
|
|
9
16
|
RSpec.configure do |config|
|
@@ -12,6 +19,7 @@ RSpec.configure do |config|
|
|
12
19
|
Mifiel.config do |conf|
|
13
20
|
conf.app_id = 'APP_ID'
|
14
21
|
conf.app_secret = 'APP_SECRET'
|
22
|
+
conf.base_url = 'http://www.mifiel.com/api/v1'
|
15
23
|
end
|
16
24
|
end
|
17
25
|
|
data/spec/support/fake_mifiel.rb
CHANGED
@@ -1,6 +1,21 @@
|
|
1
1
|
require 'sinatra/base'
|
2
2
|
|
3
3
|
class FakeMifiel < Sinatra::Base
|
4
|
+
get '/api/v1/keys' do
|
5
|
+
content_type :json
|
6
|
+
status 200
|
7
|
+
[
|
8
|
+
key,
|
9
|
+
key
|
10
|
+
].to_json
|
11
|
+
end
|
12
|
+
|
13
|
+
post '/api/v1/keys' do
|
14
|
+
content_type :json
|
15
|
+
status 200
|
16
|
+
key(id: params[:id]).to_json
|
17
|
+
end
|
18
|
+
|
4
19
|
get '/api/v1/documents' do
|
5
20
|
content_type :json
|
6
21
|
status 200
|
@@ -30,8 +45,28 @@ class FakeMifiel < Sinatra::Base
|
|
30
45
|
).to_json
|
31
46
|
end
|
32
47
|
|
48
|
+
post '/api/v1/documents/:id/request_signature' do
|
49
|
+
content_type :json
|
50
|
+
status 200
|
51
|
+
{ bla: 'Correo enviado' }.to_json
|
52
|
+
end
|
53
|
+
|
33
54
|
private
|
34
55
|
|
56
|
+
def key(args={})
|
57
|
+
id = args[:id] || SecureRandom.uuid
|
58
|
+
{
|
59
|
+
id: id,
|
60
|
+
type_of: 'FIEL',
|
61
|
+
cer_hex: '308204cf30...1303030303030323',
|
62
|
+
owner: 'JORGE MORALES MENDEZ',
|
63
|
+
tax_id: 'MOMJ811012643',
|
64
|
+
expires_at: '2017-04-28T19:43:23.000Z',
|
65
|
+
expired: false
|
66
|
+
}
|
67
|
+
end
|
68
|
+
|
69
|
+
# rubocop:disable Metrics/MethodLength
|
35
70
|
def document(args={})
|
36
71
|
id = args[:id] || SecureRandom.uuid
|
37
72
|
{
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mifiel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genaro Madrid
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -228,6 +228,20 @@ dependencies:
|
|
228
228
|
- - "~>"
|
229
229
|
- !ruby/object:Gem::Version
|
230
230
|
version: '0.36'
|
231
|
+
- !ruby/object:Gem::Dependency
|
232
|
+
name: simplecov
|
233
|
+
requirement: !ruby/object:Gem::Requirement
|
234
|
+
requirements:
|
235
|
+
- - "~>"
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: '0.11'
|
238
|
+
type: :development
|
239
|
+
prerelease: false
|
240
|
+
version_requirements: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - "~>"
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '0.11'
|
231
245
|
description:
|
232
246
|
email:
|
233
247
|
- genmadrid@gmail.com
|
@@ -239,10 +253,9 @@ files:
|
|
239
253
|
- ".gitignore"
|
240
254
|
- ".rspec"
|
241
255
|
- ".rubocop.yml"
|
242
|
-
- ".ruby-gemset"
|
243
|
-
- ".ruby-version"
|
244
256
|
- ".travis.yml"
|
245
257
|
- Gemfile
|
258
|
+
- Guardfile
|
246
259
|
- LICENSE.txt
|
247
260
|
- README.md
|
248
261
|
- Rakefile
|
@@ -254,10 +267,13 @@ files:
|
|
254
267
|
- lib/mifiel/document.rb
|
255
268
|
- lib/mifiel/errors.rb
|
256
269
|
- lib/mifiel/version.rb
|
270
|
+
- mifiel-ruby-api-client.sublime-project
|
257
271
|
- mifiel.gemspec
|
258
272
|
- spec/fixtures/FIEL_AAA010101AAA.cer
|
259
273
|
- spec/fixtures/FIEL_AAA010101AAA.key
|
260
274
|
- spec/fixtures/example.pdf
|
275
|
+
- spec/mifiel/base_spec.rb
|
276
|
+
- spec/mifiel/certificate_spec.rb
|
261
277
|
- spec/mifiel/document_spec.rb
|
262
278
|
- spec/spec_helper.rb
|
263
279
|
- spec/support/fake_mifiel.rb
|
@@ -289,6 +305,8 @@ test_files:
|
|
289
305
|
- spec/fixtures/FIEL_AAA010101AAA.cer
|
290
306
|
- spec/fixtures/FIEL_AAA010101AAA.key
|
291
307
|
- spec/fixtures/example.pdf
|
308
|
+
- spec/mifiel/base_spec.rb
|
309
|
+
- spec/mifiel/certificate_spec.rb
|
292
310
|
- spec/mifiel/document_spec.rb
|
293
311
|
- spec/spec_helper.rb
|
294
312
|
- spec/support/fake_mifiel.rb
|
data/.ruby-gemset
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
mifiel_api_client
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.1.2
|