mifiel 1.0.0 → 1.0.1
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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +8 -4
- data/.travis.yml +14 -0
- data/README.md +25 -0
- data/lib/mifiel.rb +1 -2
- data/lib/mifiel/base.rb +6 -5
- data/lib/mifiel/certificate.rb +4 -7
- data/lib/mifiel/document.rb +23 -10
- data/lib/mifiel/version.rb +1 -1
- data/mifiel.gemspec +13 -11
- data/spec/mifiel/document_spec.rb +37 -13
- data/spec/spec_helper.rb +12 -6
- data/spec/support/fake_mifiel.rb +68 -0
- metadata +39 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62a53025404e6eae0ad14166a1af2926695d4fae
|
4
|
+
data.tar.gz: f6ba1a0bd02be7b8211e6b404009942fb7f56e7d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1108db05b0ea2babce2d13fd32d9bc5ea4c6339cebbdee2db7b0a81b1bc42fe0f261390c0b6bfc39f17634741164fe2f2322444619003d54a43034421204d5a5
|
7
|
+
data.tar.gz: b614aba324ae18a85aa60551d7c428fdb0d234ca97351a445598469a703e5b3df26680a76cebf87785aaa1181ad07d4475f843fe5de4b82134dd9ff9a1b621c5
|
data/.gitignore
CHANGED
data/.rubocop.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
AllCops:
|
2
|
+
TargetRubyVersion: 2.1
|
3
3
|
|
4
|
-
Style/
|
4
|
+
Style/IndentationConsistency:
|
5
5
|
Enabled: false
|
6
6
|
|
7
7
|
Style/AlignHash:
|
@@ -17,4 +17,8 @@ Style/EmptyLinesAroundBlockBody:
|
|
17
17
|
Enabled: false
|
18
18
|
|
19
19
|
Metrics/LineLength:
|
20
|
-
Max:
|
20
|
+
Max: 190
|
21
|
+
|
22
|
+
Style/HashSyntax:
|
23
|
+
EnforcedStyle: ruby19
|
24
|
+
|
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Mifiel
|
2
2
|
|
3
|
+
[![Gem Version][gem-version-image]][gem-version-url]
|
4
|
+
[![Build Status][travis-image]][travis-url]
|
5
|
+
[![security][security-image]][security-url]
|
6
|
+
|
3
7
|
Ruby SDK for [Mifiel](https://www.mifiel.com) API.
|
4
8
|
Please read our [documentation](https://www.mifiel.com/api-docs/) for instructions on how to start using the API.
|
5
9
|
|
@@ -21,6 +25,19 @@ Or install it yourself as:
|
|
21
25
|
|
22
26
|
## Usage
|
23
27
|
|
28
|
+
To start using the API you will need an APP_ID and a APP_SECRET which will be provided upon request (contact us at hola@mifiel.com).
|
29
|
+
|
30
|
+
You will first need to create an account in [mifiel.com](https://www.mifiel.com) since the APP_ID and APP_SECRET will be linked to your account.
|
31
|
+
|
32
|
+
Then you can configure the gem with:
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
Mifiel.config do |config|
|
36
|
+
config.app_id = '<APP_ID>'
|
37
|
+
config.app_secret = '<APP_SECRET>'
|
38
|
+
end
|
39
|
+
```
|
40
|
+
|
24
41
|
Document methods:
|
25
42
|
|
26
43
|
- Find:
|
@@ -115,3 +132,11 @@ Certificate methods:
|
|
115
132
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
116
133
|
4. Push to the branch (`git push origin my-new-feature`)
|
117
134
|
5. Create a new Pull Request
|
135
|
+
|
136
|
+
|
137
|
+
[gem-version-image]: https://badge.fury.io/rb/mifiel.svg
|
138
|
+
[gem-version-url]: https://badge.fury.io/rb/mifiel
|
139
|
+
[security-url]: https://hakiri.io/github/Mifiel/ruby-api-client/master
|
140
|
+
[security-image]: https://hakiri.io/github/Mifiel/ruby-api-client/master.svg
|
141
|
+
[travis-image]: https://travis-ci.org/Mifiel/ruby-api-client.svg?branch=master
|
142
|
+
[travis-url]: https://travis-ci.org/Mifiel/ruby-api-client
|
data/lib/mifiel.rb
CHANGED
@@ -7,7 +7,7 @@ module Mifiel
|
|
7
7
|
autoload :Certificate, 'mifiel/certificate'
|
8
8
|
autoload :Config, 'mifiel/config'
|
9
9
|
|
10
|
-
BASE_URL = 'https://www.mifiel.com/api/v1'
|
10
|
+
BASE_URL = 'https://www.mifiel.com/api/v1'.freeze
|
11
11
|
|
12
12
|
def self.config
|
13
13
|
if block_given?
|
@@ -16,5 +16,4 @@ module Mifiel
|
|
16
16
|
Mifiel::Config
|
17
17
|
end
|
18
18
|
end
|
19
|
-
|
20
19
|
end
|
data/lib/mifiel/base.rb
CHANGED
@@ -1,16 +1,17 @@
|
|
1
|
+
require 'rest-client'
|
2
|
+
|
1
3
|
module Mifiel
|
2
4
|
class Base < ActiveRestClient::Base
|
3
5
|
after_request :rescue_errors
|
4
6
|
|
5
|
-
def rescue_errors(
|
7
|
+
def rescue_errors(_name, response)
|
6
8
|
if response.status == 400 # bad request
|
7
9
|
result = JSON.load(response.body)
|
8
10
|
message = result['errors'] || [result['error']]
|
9
|
-
|
10
|
-
elsif (500..599).
|
11
|
-
|
11
|
+
fail BadRequestError, message.to_a.join(', ')
|
12
|
+
elsif (500..599).cover?(response.status)
|
13
|
+
fail ServerError, "Could not process your request: status #{response.status}"
|
12
14
|
end
|
13
15
|
end
|
14
|
-
|
15
16
|
end
|
16
17
|
end
|
data/lib/mifiel/certificate.rb
CHANGED
@@ -1,24 +1,21 @@
|
|
1
1
|
module Mifiel
|
2
2
|
class Certificate < Mifiel::Base
|
3
|
-
|
4
3
|
get :all, '/keys'
|
5
4
|
get :find, '/keys/:id'
|
6
5
|
put :save, '/keys/:id'
|
7
6
|
get :sat, '/keys/sat'
|
8
7
|
|
9
|
-
def self.create(
|
8
|
+
def self.create(cer_file)
|
10
9
|
rest_request = RestClient::Request.new(
|
11
10
|
url: "#{Mifiel.config.base_url}/keys",
|
12
11
|
method: :post,
|
13
12
|
payload: {
|
14
|
-
cer_file: File.new(
|
13
|
+
cer_file: File.new(cer_file)
|
15
14
|
},
|
16
15
|
ssl_version: 'SSLv23'
|
17
16
|
)
|
18
|
-
|
19
|
-
JSON.load(
|
17
|
+
req = ApiAuth.sign!(rest_request, Mifiel.config.app_id, Mifiel.config.app_secret)
|
18
|
+
JSON.load(req.execute)
|
20
19
|
end
|
21
|
-
|
22
20
|
end
|
23
|
-
|
24
21
|
end
|
data/lib/mifiel/document.rb
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
require 'rest-client'
|
2
1
|
require 'open3'
|
3
2
|
|
4
3
|
module Mifiel
|
5
4
|
class Document < Mifiel::Base
|
6
|
-
|
7
5
|
get :all, '/documents'
|
8
6
|
get :find, '/documents/:id'
|
9
7
|
put :save, '/documents/:id'
|
@@ -11,7 +9,7 @@ module Mifiel
|
|
11
9
|
|
12
10
|
def self.create(file:, signatories:, hash:nil)
|
13
11
|
sgries = {}
|
14
|
-
signatories.each_with_index {|s, i| sgries[i] = s}
|
12
|
+
signatories.each_with_index { |s, i| sgries[i] = s }
|
15
13
|
rest_request = RestClient::Request.new(
|
16
14
|
url: "#{Mifiel.config.base_url}/documents",
|
17
15
|
method: :post,
|
@@ -22,8 +20,8 @@ module Mifiel
|
|
22
20
|
},
|
23
21
|
ssl_version: 'SSLv23'
|
24
22
|
)
|
25
|
-
|
26
|
-
JSON.load(
|
23
|
+
req = ApiAuth.sign!(rest_request, Mifiel.config.app_id, Mifiel.config.app_secret)
|
24
|
+
JSON.load(req.execute)
|
27
25
|
end
|
28
26
|
|
29
27
|
def sign(certificate_id:nil, certificate:nil)
|
@@ -32,7 +30,13 @@ module Mifiel
|
|
32
30
|
fail NoSignatureError, 'You must first call build_signature or provide a signature' unless signature
|
33
31
|
params = { signature: signature }
|
34
32
|
params[:key] = certificate_id if certificate_id
|
35
|
-
|
33
|
+
if certificate
|
34
|
+
params[:certificate] = if certificate.encoding.to_s == 'UTF-8'
|
35
|
+
certificate.unpack('H*')[0]
|
36
|
+
else
|
37
|
+
certificate
|
38
|
+
end
|
39
|
+
end
|
36
40
|
|
37
41
|
Mifiel::Document._request("#{Mifiel.config.base_url}/documents/#{id}/sign", :post, params)
|
38
42
|
rescue ActiveRestClient::HTTPClientException => e
|
@@ -42,6 +46,17 @@ module Mifiel
|
|
42
46
|
raise MifielError, 'Server could not process request'
|
43
47
|
end
|
44
48
|
|
49
|
+
def request_signature(email, cc:nil)
|
50
|
+
params = { email: email }
|
51
|
+
params[:cc] = cc if cc.is_a?(Array)
|
52
|
+
Mifiel::Document._request("#{Mifiel.config.base_url}/documents/#{id}/request_signature", :post, params)
|
53
|
+
rescue ActiveRestClient::HTTPClientException => e
|
54
|
+
message = e.result.errors || [e.result.error]
|
55
|
+
raise MifielError, message.to_a.join(', ')
|
56
|
+
rescue ActiveRestClient::HTTPServerException
|
57
|
+
raise MifielError, 'Server could not process request'
|
58
|
+
end
|
59
|
+
|
45
60
|
def build_signature(private_key, private_key_pass)
|
46
61
|
self.signature ||= sign_hash(private_key, private_key_pass, original_hash)
|
47
62
|
end
|
@@ -57,7 +72,7 @@ module Mifiel
|
|
57
72
|
def sign_hash(key, pass, hash)
|
58
73
|
private_key = build_private_key(key, pass)
|
59
74
|
unless private_key.private?
|
60
|
-
|
75
|
+
fail NotPrivateKeyError, 'The private key is not valid'
|
61
76
|
end
|
62
77
|
signature = private_key.sign(OpenSSL::Digest::SHA256.new, hash)
|
63
78
|
signature.unpack('H*')[0]
|
@@ -74,11 +89,9 @@ module Mifiel
|
|
74
89
|
|
75
90
|
# delete file from file system
|
76
91
|
File.unlink private_file.path
|
77
|
-
fail PrivateKeyError
|
92
|
+
fail PrivateKeyError, "#{error}, #{status}" unless error.empty?
|
78
93
|
|
79
94
|
OpenSSL::PKey::RSA.new priv_pem_s
|
80
95
|
end
|
81
|
-
|
82
96
|
end
|
83
|
-
|
84
97
|
end
|
data/lib/mifiel/version.rb
CHANGED
data/mifiel.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Mifiel::VERSION
|
9
9
|
spec.authors = ['Genaro Madrid']
|
10
10
|
spec.email = ['genmadrid@gmail.com']
|
11
|
-
spec.summary =
|
11
|
+
spec.summary = 'Ruby SDK for mifiel.com.'
|
12
12
|
spec.homepage = 'https://github.com/Mifiel/ruby-api-client'
|
13
13
|
spec.license = 'MIT'
|
14
14
|
|
@@ -17,16 +17,18 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
|
-
spec.add_runtime_dependency 'rest-client',
|
21
|
-
spec.add_runtime_dependency 'json',
|
22
|
-
spec.add_runtime_dependency 'api-auth',
|
20
|
+
spec.add_runtime_dependency 'rest-client', '~> 1.7'
|
21
|
+
spec.add_runtime_dependency 'json', '~> 1.8'
|
22
|
+
spec.add_runtime_dependency 'api-auth', '~> 1.4'
|
23
23
|
spec.add_runtime_dependency 'active_rest_client', '~> 1.2'
|
24
24
|
|
25
|
-
spec.add_development_dependency 'bundler',
|
26
|
-
spec.add_development_dependency 'rake',
|
27
|
-
spec.add_development_dependency 'rspec',
|
28
|
-
spec.add_development_dependency 'pry',
|
29
|
-
spec.add_development_dependency 'pry-byebug', '~> 3.3',
|
30
|
-
spec.add_development_dependency 'bump',
|
31
|
-
spec.add_development_dependency 'webmock',
|
25
|
+
spec.add_development_dependency 'bundler', '~> 1.6'
|
26
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
27
|
+
spec.add_development_dependency 'rspec', '~> 3.1', '>= 3.1.7'
|
28
|
+
spec.add_development_dependency 'pry', '~> 0.10', '>= 0.10.1'
|
29
|
+
spec.add_development_dependency 'pry-byebug', '~> 3.3', '>= 3.3.0'
|
30
|
+
spec.add_development_dependency 'bump', '~> 0.5', '>= 0.5.3'
|
31
|
+
spec.add_development_dependency 'webmock', '~> 1.22', '>= 1.22.2'
|
32
|
+
spec.add_development_dependency 'sinatra', '~> 1.4', '>= 1.4.7'
|
33
|
+
spec.add_development_dependency 'rubocop', '~> 0.36'
|
32
34
|
end
|
@@ -7,12 +7,12 @@ describe Mifiel::Document do
|
|
7
7
|
context 'with a document' do
|
8
8
|
let(:document) do
|
9
9
|
Mifiel::Document.create(
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
file: 'spec/fixtures/example.pdf',
|
11
|
+
signatories: [
|
12
|
+
{ name: 'Signer 1', email: 'signer1@email.com', tax_id: 'AAA010101AAA' },
|
13
|
+
{ name: 'Signer 2', email: 'signer2@email.com', tax_id: 'AAA010102AAA' }
|
14
|
+
]
|
15
|
+
)
|
16
16
|
end
|
17
17
|
|
18
18
|
it { expect(document).to be_a(Hash) }
|
@@ -22,31 +22,49 @@ describe Mifiel::Document do
|
|
22
22
|
describe '#sign' do
|
23
23
|
let!(:signature) { 'signature' }
|
24
24
|
let!(:document) { Mifiel::Document.all.first }
|
25
|
+
let!(:certificate_id) { SecureRandom.uuid }
|
25
26
|
|
26
27
|
context 'without build_signature first called' do
|
27
28
|
it do
|
28
|
-
expect
|
29
|
+
expect do
|
30
|
+
document.sign(certificate_id: certificate_id)
|
31
|
+
end.to raise_error(Mifiel::NoSignatureError)
|
29
32
|
end
|
30
33
|
end
|
31
34
|
|
32
35
|
context 'with build_signature called before' do
|
33
36
|
it do
|
34
37
|
document.build_signature(private_key, private_key_pass)
|
35
|
-
expect
|
38
|
+
expect do
|
39
|
+
document.sign(certificate_id: certificate_id)
|
40
|
+
end.not_to raise_error
|
36
41
|
end
|
37
42
|
end
|
38
43
|
|
39
44
|
context 'with signature' do
|
40
45
|
it do
|
41
46
|
document.signature = signature
|
42
|
-
expect
|
47
|
+
expect do
|
48
|
+
document.sign(certificate_id: certificate_id)
|
49
|
+
end.not_to raise_error
|
43
50
|
end
|
44
51
|
end
|
45
52
|
|
46
53
|
context 'with certificate' do
|
47
54
|
it do
|
48
55
|
document.build_signature(private_key, private_key_pass)
|
49
|
-
expect
|
56
|
+
expect do
|
57
|
+
document.sign(certificate: certificate)
|
58
|
+
end.not_to raise_error
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
context 'with certificate in hex' do
|
63
|
+
it do
|
64
|
+
document.build_signature(private_key, private_key_pass)
|
65
|
+
expect do
|
66
|
+
document.sign(certificate: certificate.unpack('H*')[0])
|
67
|
+
end.not_to raise_error
|
50
68
|
end
|
51
69
|
end
|
52
70
|
end
|
@@ -56,20 +74,26 @@ describe Mifiel::Document do
|
|
56
74
|
|
57
75
|
context 'with a wrong private_key' do
|
58
76
|
it do
|
59
|
-
expect
|
77
|
+
expect do
|
78
|
+
document.build_signature('asd', private_key_pass)
|
79
|
+
end.to raise_error(Mifiel::PrivateKeyError)
|
60
80
|
end
|
61
81
|
end
|
62
82
|
|
63
83
|
context 'with a private_key that is not a private_key' do
|
64
84
|
xit do
|
65
85
|
cer = OpenSSL::X509::Certificate.new(certificate)
|
66
|
-
expect
|
86
|
+
expect do
|
87
|
+
document.build_signature(cer.public_key.to_der, private_key_pass)
|
88
|
+
end.to raise_error(Mifiel::NotPrivateKeyError)
|
67
89
|
end
|
68
90
|
end
|
69
91
|
|
70
92
|
context 'with a wrong password' do
|
71
93
|
it do
|
72
|
-
expect
|
94
|
+
expect do
|
95
|
+
document.build_signature('asd', private_key_pass)
|
96
|
+
end.to raise_error(Mifiel::PrivateKeyError)
|
73
97
|
end
|
74
98
|
end
|
75
99
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,14 +2,20 @@ require 'pry'
|
|
2
2
|
require 'byebug'
|
3
3
|
require 'pry-byebug'
|
4
4
|
require 'mifiel'
|
5
|
-
|
5
|
+
require 'webmock/rspec'
|
6
6
|
|
7
7
|
Dir['./spec/support/**/*.rb'].each { |f| require f }
|
8
8
|
|
9
|
-
|
9
|
+
RSpec.configure do |config|
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
11
|
+
config.before(:suite) do
|
12
|
+
Mifiel.config do |conf|
|
13
|
+
conf.app_id = 'APP_ID'
|
14
|
+
conf.app_secret = 'APP_SECRET'
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
config.before(:each) do
|
19
|
+
stub_request(:any, /mifiel.com/).to_rack(FakeMifiel)
|
20
|
+
end
|
15
21
|
end
|
@@ -0,0 +1,68 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
|
3
|
+
class FakeMifiel < Sinatra::Base
|
4
|
+
get '/api/v1/documents' do
|
5
|
+
content_type :json
|
6
|
+
status 200
|
7
|
+
[
|
8
|
+
document,
|
9
|
+
document
|
10
|
+
].to_json
|
11
|
+
end
|
12
|
+
|
13
|
+
post '/api/v1/documents' do
|
14
|
+
content_type :json
|
15
|
+
status 200
|
16
|
+
document(
|
17
|
+
id: params[:id],
|
18
|
+
original_hash: Digest::SHA256.hexdigest(params[:file][:tempfile].read),
|
19
|
+
file_file_name: params[:file][:filename],
|
20
|
+
signed: false,
|
21
|
+
signed_at: nil
|
22
|
+
).to_json
|
23
|
+
end
|
24
|
+
|
25
|
+
post '/api/v1/documents/:id/sign' do
|
26
|
+
content_type :json
|
27
|
+
status 200
|
28
|
+
document(
|
29
|
+
id: params[:id]
|
30
|
+
).to_json
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def document(args={})
|
36
|
+
id = args[:id] || SecureRandom.uuid
|
37
|
+
{
|
38
|
+
id: id,
|
39
|
+
original_hash: Digest::SHA256.hexdigest(id),
|
40
|
+
file_file_name: 'test-pdf.pdf',
|
41
|
+
signed_by_all: true,
|
42
|
+
signed: true,
|
43
|
+
signed_at: Time.now.utc.iso8601,
|
44
|
+
status: [1, 'Firmado'],
|
45
|
+
owner: {
|
46
|
+
email: 'signer1@email.com',
|
47
|
+
name: 'Jorge Morales'
|
48
|
+
},
|
49
|
+
file: "/api/v1/documents/#{id}/file",
|
50
|
+
file_download: "/api/v1/documents/#{id}/file?download=true",
|
51
|
+
file_signed: "/api/v1/documents/#{id}/file_signed",
|
52
|
+
file_signed_download: "/api/v1/documents/#{id}/file_signed?download=true",
|
53
|
+
file_zipped: "/api/v1/documents/#{id}/zip",
|
54
|
+
signatures: [{
|
55
|
+
email: 'signer1@email.com',
|
56
|
+
signed: true,
|
57
|
+
signed_at: (Time.now.utc - 10_000).iso8601,
|
58
|
+
certificate_number: '20001000000200001410',
|
59
|
+
tax_id: 'AAA010101AAA',
|
60
|
+
signature: '77cd5156779c..4e276ef1056c1de11b7f70bed28',
|
61
|
+
user: {
|
62
|
+
email: 'signer1@email.com',
|
63
|
+
name: 'Jorge Morales'
|
64
|
+
}
|
65
|
+
}]
|
66
|
+
}
|
67
|
+
end
|
68
|
+
end
|
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.0.1
|
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-01-
|
11
|
+
date: 2016-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -194,6 +194,40 @@ dependencies:
|
|
194
194
|
- - ">="
|
195
195
|
- !ruby/object:Gem::Version
|
196
196
|
version: 1.22.2
|
197
|
+
- !ruby/object:Gem::Dependency
|
198
|
+
name: sinatra
|
199
|
+
requirement: !ruby/object:Gem::Requirement
|
200
|
+
requirements:
|
201
|
+
- - "~>"
|
202
|
+
- !ruby/object:Gem::Version
|
203
|
+
version: '1.4'
|
204
|
+
- - ">="
|
205
|
+
- !ruby/object:Gem::Version
|
206
|
+
version: 1.4.7
|
207
|
+
type: :development
|
208
|
+
prerelease: false
|
209
|
+
version_requirements: !ruby/object:Gem::Requirement
|
210
|
+
requirements:
|
211
|
+
- - "~>"
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '1.4'
|
214
|
+
- - ">="
|
215
|
+
- !ruby/object:Gem::Version
|
216
|
+
version: 1.4.7
|
217
|
+
- !ruby/object:Gem::Dependency
|
218
|
+
name: rubocop
|
219
|
+
requirement: !ruby/object:Gem::Requirement
|
220
|
+
requirements:
|
221
|
+
- - "~>"
|
222
|
+
- !ruby/object:Gem::Version
|
223
|
+
version: '0.36'
|
224
|
+
type: :development
|
225
|
+
prerelease: false
|
226
|
+
version_requirements: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
228
|
+
- - "~>"
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0.36'
|
197
231
|
description:
|
198
232
|
email:
|
199
233
|
- genmadrid@gmail.com
|
@@ -207,6 +241,7 @@ files:
|
|
207
241
|
- ".rubocop.yml"
|
208
242
|
- ".ruby-gemset"
|
209
243
|
- ".ruby-version"
|
244
|
+
- ".travis.yml"
|
210
245
|
- Gemfile
|
211
246
|
- LICENSE.txt
|
212
247
|
- README.md
|
@@ -225,6 +260,7 @@ files:
|
|
225
260
|
- spec/fixtures/example.pdf
|
226
261
|
- spec/mifiel/document_spec.rb
|
227
262
|
- spec/spec_helper.rb
|
263
|
+
- spec/support/fake_mifiel.rb
|
228
264
|
homepage: https://github.com/Mifiel/ruby-api-client
|
229
265
|
licenses:
|
230
266
|
- MIT
|
@@ -255,3 +291,4 @@ test_files:
|
|
255
291
|
- spec/fixtures/example.pdf
|
256
292
|
- spec/mifiel/document_spec.rb
|
257
293
|
- spec/spec_helper.rb
|
294
|
+
- spec/support/fake_mifiel.rb
|