myfinance-rails 0.4.8 → 0.5.2
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/lib/myfinance.rb +55 -9
- data/lib/myfinance/account.rb +16 -0
- data/lib/myfinance/anexo.rb +33 -0
- data/lib/myfinance/conta_a_pagar.rb +27 -4
- data/lib/myfinance/conta_deposito.rb +15 -4
- data/lib/myfinance/version.rb +1 -1
- data/myfinance-rails.gemspec +7 -5
- data/spec/features/account_spec.rb +19 -19
- data/spec/features/contas_a_receber_spec.rb +11 -3
- metadata +24 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40ca5caa6b36f4bd7a68db1a620b4d24722cb2b7
|
4
|
+
data.tar.gz: 259d31f3a117393d11752e7536ce7689e60b1cec
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7156beb008367522c50944b8b80e2131c8509de618b9db9ec8bdc5cd7b698497a8d47f42714f7927eea7ccf471e0e3d7173698d69455706dfb9828a9b10e69b1
|
7
|
+
data.tar.gz: e2692cd1d3638386ee74df64fd9068389efb48ddf05f64cb33fb187ab6d48a903e911cdfdff5a1b619084fdcabee813de405709cdfcd85c74af0cdec53b6b81b
|
data/lib/myfinance.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'httparty'
|
2
|
+
require 'httmultiparty'
|
2
3
|
require 'myfinance/version'
|
3
4
|
require 'myfinance/entidade'
|
4
5
|
require 'myfinance/pessoa'
|
6
|
+
require 'myfinance/conta_a_pagar'
|
5
7
|
require 'myfinance/conta_a_receber'
|
6
8
|
require 'myfinance/imposto'
|
7
9
|
require 'myfinance/categoria'
|
@@ -9,21 +11,27 @@ require 'myfinance/centro_receita_custo'
|
|
9
11
|
require 'myfinance/account'
|
10
12
|
require 'myfinance/conta_deposito'
|
11
13
|
require 'myfinance/webhook'
|
14
|
+
require 'myfinance/anexo'
|
12
15
|
require 'json'
|
13
16
|
|
14
17
|
module Myfinance
|
15
18
|
|
16
|
-
include HTTParty
|
19
|
+
# include HTTParty
|
20
|
+
include HTTMultiParty
|
17
21
|
|
18
22
|
attr_accessor :token, :endpoint, :account_id
|
19
23
|
|
20
|
-
|
24
|
+
# se o usuario tiver mais de um account e não informarmos o account id,
|
25
|
+
# ele pega o primeiro
|
26
|
+
# se tiver mais de um, precisamos informar
|
27
|
+
def self.setup(token, production=false, account=nil, logger=nil)
|
21
28
|
logger(logger, :info, :curl) if logger
|
22
29
|
|
23
30
|
if production
|
24
31
|
@endpoint = 'https://app.myfinance.com.br'
|
25
32
|
else
|
26
33
|
@endpoint = 'https://sandbox.myfinance.com.br'
|
34
|
+
# @endpoint = 'https://app.myfinance.com.br'
|
27
35
|
end
|
28
36
|
base_uri @endpoint
|
29
37
|
@token = token
|
@@ -33,15 +41,36 @@ module Myfinance
|
|
33
41
|
unless response.code == 200
|
34
42
|
raise "Erro ao inicializar a API do MyFinance: #{response.code} : #{response.parsed_response}"
|
35
43
|
end
|
36
|
-
|
44
|
+
if account and account.is_a?(String)
|
45
|
+
@account_id = account_id(account)
|
46
|
+
# else
|
47
|
+
# @account_id = get_account_id(account, response)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def account_id
|
52
|
+
@account_id
|
53
|
+
end
|
54
|
+
|
55
|
+
def set_account_id(account_id)
|
56
|
+
@account_id = account_id
|
57
|
+
end
|
58
|
+
|
59
|
+
def set_account_id_by_name(account_name)
|
60
|
+
@account_id = Myfinance.account_id(account_name)
|
37
61
|
end
|
38
62
|
|
39
63
|
private
|
40
64
|
|
65
|
+
def self.header_info
|
66
|
+
# { 'Content-Type' => 'application/json', 'Accept' => 'application/json' }
|
67
|
+
{ 'Content-Type' => 'application/json' }
|
68
|
+
end
|
69
|
+
|
41
70
|
def self.lget(url)
|
42
71
|
options = {
|
43
72
|
:basic_auth => {:username => @token, :password => 'x'},
|
44
|
-
:headers =>
|
73
|
+
:headers => header_info
|
45
74
|
}
|
46
75
|
add_account_id options
|
47
76
|
get url, options
|
@@ -51,18 +80,32 @@ module Myfinance
|
|
51
80
|
options = {
|
52
81
|
:basic_auth => {:username => @token, :password => 'x'},
|
53
82
|
:body => post_data.to_json,
|
54
|
-
:headers =>
|
83
|
+
:headers => header_info
|
55
84
|
}
|
56
85
|
add_account_id options
|
57
86
|
response = post url, options
|
58
87
|
response
|
59
88
|
end
|
60
89
|
|
90
|
+
def self.multi_party_post(url,post_data)
|
91
|
+
options = {
|
92
|
+
:basic_auth => {:username => @token, :password => 'x'},
|
93
|
+
:body => post_data,
|
94
|
+
:headers => { 'Content-Type' => 'application/json', 'Accept' => 'application/json' },
|
95
|
+
:detect_mime_type => true
|
96
|
+
}
|
97
|
+
add_account_id options
|
98
|
+
# puts options.inspect
|
99
|
+
response = post url, options
|
100
|
+
response
|
101
|
+
end
|
102
|
+
|
103
|
+
|
61
104
|
def self.lput(url,post_data)
|
62
105
|
options = {
|
63
106
|
:basic_auth => {:username => @token, :password => 'x'},
|
64
107
|
:body => post_data.to_json,
|
65
|
-
:headers =>
|
108
|
+
:headers => header_info
|
66
109
|
}
|
67
110
|
add_account_id options
|
68
111
|
response = put url, options
|
@@ -72,7 +115,7 @@ module Myfinance
|
|
72
115
|
def self.ldelete(url)
|
73
116
|
options = {
|
74
117
|
:basic_auth => {:username => @token, :password => 'x'},
|
75
|
-
:headers =>
|
118
|
+
:headers => header_info
|
76
119
|
}
|
77
120
|
add_account_id options
|
78
121
|
response = delete url, options
|
@@ -88,7 +131,10 @@ module Myfinance
|
|
88
131
|
end
|
89
132
|
|
90
133
|
def self.get_account_id(account_id, accounts_response)
|
91
|
-
return account_id
|
92
|
-
accounts_response.
|
134
|
+
return account_id if account_id
|
135
|
+
qtd_de_contas = accounts_response.size
|
136
|
+
raise 'Esse usuário não tem uma Conta associada ao seu usuário, por favor defina qual conta usar no acesso da API' if qtd_de_contas == 0
|
137
|
+
raise 'Esse usuário tem mais de uma Conta associada ao seu usuário, por favor defina qual conta usar no acesso da API' if qtd_de_contas > 1
|
138
|
+
accounts_response.first['account']['id']
|
93
139
|
end
|
94
140
|
end
|
data/lib/myfinance/account.rb
CHANGED
@@ -1,7 +1,23 @@
|
|
1
1
|
module Myfinance
|
2
2
|
|
3
|
+
def self.account_id(nome)
|
4
|
+
mid = nil
|
5
|
+
available_accounts = accounts
|
6
|
+
available_accounts.each do | item |
|
7
|
+
item = item['account']
|
8
|
+
if item['name'] == nome
|
9
|
+
mid = item['id']
|
10
|
+
break
|
11
|
+
end
|
12
|
+
end
|
13
|
+
mid
|
14
|
+
rescue => e
|
15
|
+
raise "Não foi retornado um array de contas como esperado: #{available_accounts.inspect}. #{e.message}"
|
16
|
+
end
|
17
|
+
|
3
18
|
def self.accounts
|
4
19
|
lget '/accounts.json'
|
5
20
|
end
|
21
|
+
|
6
22
|
end
|
7
23
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Myfinance
|
2
|
+
|
3
|
+
require 'tempfile'
|
4
|
+
|
5
|
+
def self.cria_e_anexa_arquivo(entity_id, receivable_id, nome_do_arquivo, conteudo_do_arquivo)
|
6
|
+
file = nome_do_arquivo.split('.')
|
7
|
+
#:encoding => 'ascii-8bit' -- na verdade não altere o arquivo original
|
8
|
+
attached_file = Tempfile.new([file[0], ".#{file[1]}"])
|
9
|
+
attached_file << conteudo_do_arquivo.encode('UTF-8', :invalid => :replace, :undef => :replace )
|
10
|
+
attached_file.rewind
|
11
|
+
response = anexa_arquivo(entity_id, receivable_id, nome_do_arquivo, attached_file)
|
12
|
+
# attached_file.close
|
13
|
+
# attached_file.unlink
|
14
|
+
response
|
15
|
+
end
|
16
|
+
|
17
|
+
|
18
|
+
def self.anexa_arquivo(entity_id, receivable_id, titulo, arquivo)
|
19
|
+
post_data = { attachment: {
|
20
|
+
attachment: arquivo,
|
21
|
+
title: titulo,
|
22
|
+
associated_financial_account_ids: [receivable_id]
|
23
|
+
}
|
24
|
+
}
|
25
|
+
response = multi_party_post( "/entities/#{entity_id}/attachments",post_data)
|
26
|
+
if response['attachment'][0] == "não pode ser vazio."
|
27
|
+
raise "O arquivo anexado foi vazio: #{arquivo}"
|
28
|
+
end
|
29
|
+
response
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
@@ -1,13 +1,36 @@
|
|
1
1
|
module Myfinance
|
2
2
|
|
3
|
-
def self.
|
3
|
+
def self.cria_conta_a_pagar_entidade(nome_da_entidade,faturamento)
|
4
4
|
entity_id = entidade_id(nome_da_entidade)
|
5
|
-
|
5
|
+
cria_conta_a_pagar(entity_id,faturamento)
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.busca_conta_a_pagar(entity_id, nfe_id, search_field = 'description')
|
9
|
+
raise 'Enitidade não informada!' unless entity_id
|
10
|
+
lget "/entities/#{entity_id}/payable_accounts.json?search[#{search_field}_like]=#{nfe_id}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.cria_conta_a_pagar(entity_id,pagamento)
|
14
|
+
raise 'Enitidade não informada!' unless entity_id
|
15
|
+
response = lpost "/entities/#{entity_id}/payable_accounts.json", parametro_conta_a_pagar(pagamento)
|
16
|
+
response
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.apaga_conta_a_pagar(id, entity_id)
|
20
|
+
ldelete "/entities/#{entity_id}/payable_accounts/#{id}.json"
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.conta_a_pagar(id, entity_id)
|
24
|
+
lget "/entities/#{entity_id}/payable_accounts/#{id}.json"
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.parametro_conta_a_pagar(pagamento)
|
28
|
+
{
|
6
29
|
'payable_account' => pagamento
|
7
30
|
}
|
8
|
-
response = lpost "/entities/#{entity_id}/payable_accounts.json", payable_account
|
9
|
-
response
|
10
31
|
end
|
11
32
|
|
33
|
+
private_class_method :parametro_conta_a_pagar
|
34
|
+
|
12
35
|
end
|
13
36
|
|
@@ -5,14 +5,25 @@ module Myfinance
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def self.conta_deposito_id(entity_id, nome)
|
8
|
-
mid = nil
|
9
8
|
contas_deposito(entity_id).each do | item |
|
10
9
|
conta = item["deposit_account"]
|
11
|
-
if conta["name"].strip == nome.strip
|
12
|
-
|
10
|
+
if conta["name"].strip.downcase == nome.strip.downcase
|
11
|
+
return conta["id"]
|
13
12
|
break
|
14
13
|
end
|
15
14
|
end
|
16
|
-
|
15
|
+
nil
|
17
16
|
end
|
17
|
+
|
18
|
+
def self.contas_deposito_like(entity_id, like_str)
|
19
|
+
contas = []
|
20
|
+
contas_deposito(entity_id).each do | item |
|
21
|
+
conta = item["deposit_account"]
|
22
|
+
if conta["name"].strip.downcase.include?(like_str.downcase)
|
23
|
+
contas << conta
|
24
|
+
end
|
25
|
+
end
|
26
|
+
contas
|
27
|
+
end
|
28
|
+
|
18
29
|
end
|
data/lib/myfinance/version.rb
CHANGED
data/myfinance-rails.gemspec
CHANGED
@@ -5,12 +5,12 @@ require 'myfinance/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = 'myfinance-rails'
|
8
|
-
spec.version =
|
8
|
+
spec.version = '0.5.2'
|
9
9
|
spec.authors = ['José Lopes Neto']
|
10
10
|
spec.email = ['jose.neto@taxweb.com.br']
|
11
11
|
spec.summary = %q{GEM para facilitar a uso da API do Myfinance em Aplicativos Rails}
|
12
12
|
spec.description = %q{GEM para facilitar a uso da API do Myfinance em Aplicativos Rails usando HTTParty}
|
13
|
-
spec.homepage = ''
|
13
|
+
spec.homepage = 'http://wwww.taxweb.com.br'
|
14
14
|
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -19,7 +19,9 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ['lib']
|
20
20
|
|
21
21
|
spec.add_development_dependency 'bundler', '~> 1.6'
|
22
|
-
spec.add_development_dependency 'rake'
|
23
|
-
spec.add_development_dependency 'rspec'
|
24
|
-
spec.add_dependency 'httparty','~> 0.13
|
22
|
+
spec.add_development_dependency 'rake', '~> 0'
|
23
|
+
spec.add_development_dependency 'rspec', '~> 0'
|
24
|
+
spec.add_dependency 'httparty','~> 0.13'
|
25
|
+
spec.add_dependency 'httmultiparty', '~> 0'
|
26
|
+
|
25
27
|
end
|
@@ -3,47 +3,47 @@ describe 'Account', type: :feature do
|
|
3
3
|
require 'myfinance'
|
4
4
|
|
5
5
|
it '#accounts' do
|
6
|
-
double accounts_double = double('account')
|
6
|
+
# double accounts_double = double('account')
|
7
7
|
expect(Myfinance).to receive(:lget).once.with('/accounts.json').and_return accounts_double
|
8
8
|
expect(Myfinance.accounts).to eql(accounts_double)
|
9
9
|
end
|
10
10
|
|
11
|
-
describe
|
12
|
-
let(:response_double) { double(
|
13
|
-
describe
|
11
|
+
describe 'specific account' do
|
12
|
+
let(:response_double) { double('response', code: 200) }
|
13
|
+
describe 'informed' do
|
14
14
|
before do
|
15
15
|
expect(Myfinance).to receive(:accounts).and_return response_double
|
16
|
-
Myfinance.setup
|
16
|
+
Myfinance.setup '123456', false, 25
|
17
17
|
end
|
18
|
-
it
|
19
|
-
expect(Myfinance).to receive(:get).with(
|
18
|
+
it 'get' do
|
19
|
+
expect(Myfinance).to receive(:get).with('/entities.json', {:basic_auth=>{:username=> '123456', :password=> 'x'}, :headers=>{'Content-Type' => 'application/json', 'ACCOUNT_ID' => '25'}})
|
20
20
|
Myfinance.entidades
|
21
21
|
end
|
22
|
-
it
|
23
|
-
expect(Myfinance).to receive(:post).with(
|
22
|
+
it 'post' do
|
23
|
+
expect(Myfinance).to receive(:post).with('/people.json', {:basic_auth=>{:username=> '123456', :password=> 'x'}, :body=>"{\"person\":{}}", :headers=>{'Content-Type' => 'application/json', 'ACCOUNT_ID' => '25'}})
|
24
24
|
Myfinance.cria_pessoa({})
|
25
25
|
end
|
26
|
-
it
|
27
|
-
expect(Myfinance).to receive(:put).with(
|
26
|
+
it 'put' do
|
27
|
+
expect(Myfinance).to receive(:put).with('/people/30.json', {:basic_auth=>{:username=> '123456', :password=> 'x'}, :body=> '{}', :headers=>{'Content-Type' => 'application/json', 'ACCOUNT_ID' => '25'}})
|
28
28
|
Myfinance.atualiza_pessoa(30, {})
|
29
29
|
end
|
30
30
|
end
|
31
|
-
describe
|
31
|
+
describe 'not informed' do
|
32
32
|
before do
|
33
33
|
expect(Myfinance).to receive(:accounts).and_return response_double
|
34
34
|
expect(Myfinance).to receive(:get_account_id).and_return nil
|
35
|
-
Myfinance.setup
|
35
|
+
Myfinance.setup '123456', false
|
36
36
|
end
|
37
|
-
it
|
38
|
-
expect(Myfinance).to receive(:get).with(
|
37
|
+
it 'get' do
|
38
|
+
expect(Myfinance).to receive(:get).with('/entities.json', {:basic_auth=>{:username=> '123456', :password=> 'x'}, :headers=>{'Content-Type' => 'application/json'}})
|
39
39
|
Myfinance.entidades
|
40
40
|
end
|
41
|
-
it
|
42
|
-
expect(Myfinance).to receive(:post).with(
|
41
|
+
it 'post' do
|
42
|
+
expect(Myfinance).to receive(:post).with('/people.json', {:basic_auth=>{:username=> '123456', :password=> 'x'}, :body=>"{\"person\":{}}", :headers=>{'Content-Type' => 'application/json'}})
|
43
43
|
Myfinance.cria_pessoa({})
|
44
44
|
end
|
45
|
-
it
|
46
|
-
expect(Myfinance).to receive(:put).with(
|
45
|
+
it 'put' do
|
46
|
+
expect(Myfinance).to receive(:put).with('/people/30.json', {:basic_auth=>{:username=> '123456', :password=> 'x'}, :body=> '{}', :headers=>{'Content-Type' => 'application/json'}})
|
47
47
|
Myfinance.atualiza_pessoa(30, {})
|
48
48
|
end
|
49
49
|
end
|
@@ -10,7 +10,8 @@ describe 'Manipulando Contas a Receber', type: :feature do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'deve poder criar uma conta a receber para uma entidade e um cliente' do
|
13
|
-
|
13
|
+
token = '2acecbb483842ebbfb2c638070bf019b70e757190166d277'
|
14
|
+
Myfinance.setup(token)
|
14
15
|
|
15
16
|
# entidade_id = Myfinance.entidade_id('06604529878')
|
16
17
|
entidade_id = Myfinance.entidade_id('11.023.029/0001-05')
|
@@ -18,6 +19,7 @@ describe 'Manipulando Contas a Receber', type: :feature do
|
|
18
19
|
categoria_id = Myfinance.categoria_id('Alimentação / Restaurantes')
|
19
20
|
centro_de_receita_id = Myfinance.centro_de_receita_id('Projetos')
|
20
21
|
|
22
|
+
|
21
23
|
faturamento = {
|
22
24
|
'entity_id' => entidade_id,
|
23
25
|
'due_date' => (Date.today + 30),
|
@@ -56,10 +58,16 @@ describe 'Manipulando Contas a Receber', type: :feature do
|
|
56
58
|
]
|
57
59
|
}
|
58
60
|
conta_a_receber = Myfinance.cria_conta_a_receber_entidade('Minhas Finanças', faturamento)
|
59
|
-
expect(conta_a_receber
|
61
|
+
expect(conta_a_receber.code).to eql(201)
|
60
62
|
|
61
63
|
conta_a_receber = Myfinance.cria_conta_a_receber(entidade_id, faturamento)
|
62
|
-
expect(conta_a_receber
|
64
|
+
expect(conta_a_receber.code).to eql(201)
|
65
|
+
|
66
|
+
# devo poder anexar um arquivo
|
67
|
+
cr_id = conta_a_receber['receivable_account']['id']
|
68
|
+
anexo = Myfinance.cria_e_anexa_arquivo(entidade_id, cr_id, 'teste.txt', '********** Conteúdo do Arquivo de Teste *************')
|
69
|
+
expect(anexo.code).to eql(201)
|
70
|
+
|
63
71
|
end
|
64
72
|
|
65
73
|
it '.conta_a_receber' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: myfinance-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- José Lopes Neto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,28 +28,28 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
@@ -58,14 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.13
|
61
|
+
version: '0.13'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.13
|
68
|
+
version: '0.13'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: httmultiparty
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
description: GEM para facilitar a uso da API do Myfinance em Aplicativos Rails usando
|
70
84
|
HTTParty
|
71
85
|
email:
|
@@ -82,6 +96,7 @@ files:
|
|
82
96
|
- Rakefile
|
83
97
|
- lib/myfinance.rb
|
84
98
|
- lib/myfinance/account.rb
|
99
|
+
- lib/myfinance/anexo.rb
|
85
100
|
- lib/myfinance/categoria.rb
|
86
101
|
- lib/myfinance/centro_receita_custo.rb
|
87
102
|
- lib/myfinance/conta_a_pagar.rb
|
@@ -103,7 +118,7 @@ files:
|
|
103
118
|
- spec/features/pessoas_spec.rb
|
104
119
|
- spec/features/webhooks_spec.rb
|
105
120
|
- spec/spec_helper.rb
|
106
|
-
homepage:
|
121
|
+
homepage: http://wwww.taxweb.com.br
|
107
122
|
licenses:
|
108
123
|
- MIT
|
109
124
|
metadata: {}
|