afipws 0.1.8 → 0.2.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.
- checksums.yaml +7 -0
- data/.ruby-version +1 -0
- data/Gemfile.lock +28 -23
- data/Guardfile +21 -0
- data/afipws.gemspec +2 -2
- data/lib/afipws.rb +1 -0
- data/lib/afipws/client.rb +3 -1
- data/lib/afipws/version.rb +1 -1
- data/lib/afipws/wsaa.rb +7 -7
- data/lib/afipws/wsfe.rb +25 -25
- data/spec/afipws/wsaa_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -1
- metadata +134 -109
- data/.rvmrc +0 -1
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: af0aba9e6eb57dd5305a4c8836a1a589b7001f89
|
4
|
+
data.tar.gz: 9a0f95b8ef6c03b321652802791a83cdcb0fc1ab
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c1d1f1441ad8d505028b3c3908583381627952ba538913b38d5c5ac80bc562f501dfc903a2bd7976ee85857c6bf1780f2c2c28759ea1577c08c8c688bf108ce5
|
7
|
+
data.tar.gz: 18cb3316c1d763e0172a676c78e2e960f09114953ec3b50fe30482f97aa630eadc74ccf665a322f96146a9c40f2edc5986c1958a6e40928cbfc2e3e6c495aa16
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.3.1
|
data/Gemfile.lock
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
afipws (0.
|
4
|
+
afipws (0.2.0)
|
5
5
|
activesupport
|
6
6
|
builder
|
7
7
|
httpclient
|
8
|
+
httpi (>= 2.4.2)
|
8
9
|
i18n
|
9
10
|
nokogiri
|
10
11
|
savon
|
@@ -12,25 +13,32 @@ PATH
|
|
12
13
|
GEM
|
13
14
|
remote: http://rubygems.org/
|
14
15
|
specs:
|
15
|
-
activesupport (
|
16
|
-
|
16
|
+
activesupport (5.0.0.1)
|
17
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
18
|
+
i18n (~> 0.7)
|
19
|
+
minitest (~> 5.1)
|
20
|
+
tzinfo (~> 1.1)
|
17
21
|
builder (3.0.0)
|
18
|
-
|
22
|
+
concurrent-ruby (1.0.2)
|
19
23
|
crack (0.1.8)
|
20
24
|
diff-lcs (1.1.2)
|
21
25
|
gyoku (0.2.0)
|
22
26
|
builder (>= 2.1.2)
|
23
|
-
httpclient (2.
|
24
|
-
httpi (
|
27
|
+
httpclient (2.8.2.4)
|
28
|
+
httpi (2.4.2)
|
25
29
|
rack
|
26
|
-
|
27
|
-
|
28
|
-
|
30
|
+
socksify
|
31
|
+
i18n (0.7.0)
|
32
|
+
mini_portile2 (2.1.0)
|
33
|
+
minitest (5.9.1)
|
29
34
|
mocha (0.9.10)
|
30
35
|
rake
|
31
|
-
nokogiri (1.
|
32
|
-
|
33
|
-
|
36
|
+
nokogiri (1.6.8)
|
37
|
+
mini_portile2 (~> 2.1.0)
|
38
|
+
pkg-config (~> 1.1.7)
|
39
|
+
pkg-config (1.1.7)
|
40
|
+
rack (2.0.1)
|
41
|
+
rake (10.4.2)
|
34
42
|
rspec (2.4.0)
|
35
43
|
rspec-core (~> 2.4.0)
|
36
44
|
rspec-expectations (~> 2.4.0)
|
@@ -39,16 +47,6 @@ GEM
|
|
39
47
|
rspec-expectations (2.4.0)
|
40
48
|
diff-lcs (~> 1.1.2)
|
41
49
|
rspec-mocks (2.4.0)
|
42
|
-
ruby-debug-base19 (0.11.24)
|
43
|
-
columnize (>= 0.3.1)
|
44
|
-
linecache19 (>= 0.5.11)
|
45
|
-
ruby_core_source (>= 0.1.4)
|
46
|
-
ruby-debug19 (0.11.6)
|
47
|
-
columnize (>= 0.3.1)
|
48
|
-
linecache19 (>= 0.5.11)
|
49
|
-
ruby-debug-base19 (>= 0.11.19)
|
50
|
-
ruby_core_source (0.1.4)
|
51
|
-
archive-tar-minitar (>= 0.5.2)
|
52
50
|
savon (0.8.3)
|
53
51
|
builder (>= 2.1.2)
|
54
52
|
crack (~> 0.1.8)
|
@@ -58,12 +56,19 @@ GEM
|
|
58
56
|
mocha (>= 0.9.8)
|
59
57
|
rspec (>= 2.0.0)
|
60
58
|
savon (~> 0.8.0)
|
59
|
+
socksify (1.7.0)
|
60
|
+
thread_safe (0.3.5)
|
61
|
+
tzinfo (1.2.2)
|
62
|
+
thread_safe (~> 0.1)
|
61
63
|
|
62
64
|
PLATFORMS
|
63
65
|
ruby
|
64
66
|
|
65
67
|
DEPENDENCIES
|
66
68
|
afipws!
|
69
|
+
rake (~> 10.4.2)
|
67
70
|
rspec
|
68
|
-
ruby-debug19
|
69
71
|
savon_spec
|
72
|
+
|
73
|
+
BUNDLED WITH
|
74
|
+
1.12.3
|
data/Guardfile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
## Uncomment and set this to only include directories you want to watch
|
5
|
+
# directories %w(app lib config test spec features) \
|
6
|
+
# .select{|d| Dir.exists?(d) ? d : UI.warning("Directory #{d} does not exist")}
|
7
|
+
|
8
|
+
## Note: if you are using the `directories` clause above and you are not
|
9
|
+
## watching the project directory ('.'), then you will want to move
|
10
|
+
## the Guardfile to a watched dir and symlink it back, e.g.
|
11
|
+
#
|
12
|
+
# $ mkdir config
|
13
|
+
# $ mv Guardfile config/
|
14
|
+
# $ ln -s config/Guardfile .
|
15
|
+
#
|
16
|
+
# and, you'll have to watch "config/Guardfile" instead of "Guardfile"
|
17
|
+
guard :rspec, cmd: 'rspec' do
|
18
|
+
watch(%r{^spec/.+_spec\.rb$})
|
19
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
20
|
+
watch('spec/spec_helper.rb') { "spec" }
|
21
|
+
end
|
data/afipws.gemspec
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
$:.push File.expand_path("../lib", __FILE__)
|
3
2
|
require "afipws/version"
|
4
3
|
|
@@ -20,12 +19,13 @@ Gem::Specification.new do |s|
|
|
20
19
|
s.require_paths = ["lib"]
|
21
20
|
|
22
21
|
s.add_development_dependency "rspec"
|
23
|
-
s.add_development_dependency "ruby-debug19"
|
24
22
|
s.add_development_dependency "savon_spec"
|
23
|
+
s.add_development_dependency "rake", '~> 10.4.2'
|
25
24
|
s.add_dependency "builder"
|
26
25
|
s.add_dependency "savon"
|
27
26
|
s.add_dependency "nokogiri"
|
28
27
|
s.add_dependency "activesupport"
|
29
28
|
s.add_dependency "i18n"
|
30
29
|
s.add_dependency "httpclient"
|
30
|
+
s.add_dependency "httpi", '>= 2.4.2'
|
31
31
|
end
|
data/lib/afipws.rb
CHANGED
data/lib/afipws/client.rb
CHANGED
@@ -3,7 +3,8 @@ module Afipws
|
|
3
3
|
def initialize wsdl_url, env
|
4
4
|
@client = Savon::Client.new do
|
5
5
|
wsdl.document = wsdl_url
|
6
|
-
http.auth.ssl.verify_mode = :none if env == :development #
|
6
|
+
http.auth.ssl.verify_mode = :none if env == :development # Esto está porque el certificado del WSAA había vencido durante las pruebas
|
7
|
+
http.auth.ssl.ssl_version = :SSLv3 if env == :development || Date.today >= Date.new(2016,11,1) # Esto es porque la afip cambió el algoritmo de cifrado de los certificados y sin esto no conectaba al WSFE. En el entorno de homologación ya está realizado el cambio pero en production recién el 1/11/2016.
|
7
8
|
end
|
8
9
|
end
|
9
10
|
|
@@ -29,6 +30,7 @@ module Afipws
|
|
29
30
|
end
|
30
31
|
|
31
32
|
private
|
33
|
+
|
32
34
|
def add_ns_to_keys body
|
33
35
|
case body
|
34
36
|
when Hash
|
data/lib/afipws/version.rb
CHANGED
data/lib/afipws/wsaa.rb
CHANGED
@@ -3,9 +3,9 @@ module Afipws
|
|
3
3
|
attr_reader :key, :cert, :service, :ta, :cuit, :client
|
4
4
|
|
5
5
|
WSDL = {
|
6
|
-
:
|
7
|
-
:
|
8
|
-
:
|
6
|
+
development: "https://wsaahomo.afip.gov.ar/ws/services/LoginCms?wsdl",
|
7
|
+
production: "https://wsaa.afip.gov.ar/ws/services/LoginCms?wsdl",
|
8
|
+
test: Root + "/spec/fixtures/wsaa.wsdl"
|
9
9
|
}
|
10
10
|
|
11
11
|
def initialize options = {}
|
@@ -49,9 +49,9 @@ module Afipws
|
|
49
49
|
def login
|
50
50
|
response = @client.raw_request :login_cms, 'in0' => tra(@key, @cert, @service, @ttl)
|
51
51
|
ta = Nokogiri::XML(Nokogiri::XML(response.to_xml).text)
|
52
|
-
{ :
|
53
|
-
:
|
54
|
-
:
|
52
|
+
{ token: ta.css('token').text, sign: ta.css('sign').text,
|
53
|
+
generation_time: from_xsd_datetime(ta.css('generationTime').text),
|
54
|
+
expiration_time: from_xsd_datetime(ta.css('expirationTime').text) }
|
55
55
|
rescue Savon::SOAP::Fault => f
|
56
56
|
raise WSError, f.message
|
57
57
|
end
|
@@ -60,7 +60,7 @@ module Afipws
|
|
60
60
|
# en los otros WS.
|
61
61
|
def auth
|
62
62
|
@ta = login if ta_expirado?
|
63
|
-
{ :
|
63
|
+
{ auth: { token: @ta[:token], sign: @ta[:sign], cuit: @cuit } }
|
64
64
|
end
|
65
65
|
|
66
66
|
private
|
data/lib/afipws/wsfe.rb
CHANGED
@@ -6,15 +6,15 @@ module Afipws
|
|
6
6
|
def_delegators :wsaa, :ta, :auth, :cuit
|
7
7
|
|
8
8
|
WSDL = {
|
9
|
-
:
|
10
|
-
# :
|
11
|
-
:
|
12
|
-
:
|
9
|
+
development: "https://wswhomo.afip.gov.ar/wsfev1/service.asmx?WSDL",
|
10
|
+
# production: "https://servicios1.afip.gov.ar/wsfev1/service.asmx?WSDL",
|
11
|
+
production: Root + "/lib/afipws/wsfev1.wsdl",
|
12
|
+
test: Root + "/spec/fixtures/wsfe.wsdl"
|
13
13
|
}
|
14
14
|
|
15
15
|
def initialize options = {}
|
16
16
|
@env = (options[:env] || :test).to_sym
|
17
|
-
@wsaa = options[:wsaa] || WSAA.new(options.merge(:
|
17
|
+
@wsaa = options[:wsaa] || WSAA.new(options.merge(service: 'wsfe'))
|
18
18
|
@client = Client.new WSDL[@env], @env
|
19
19
|
end
|
20
20
|
|
@@ -24,57 +24,57 @@ module Afipws
|
|
24
24
|
|
25
25
|
def tipos_comprobantes
|
26
26
|
r = @client.fe_param_get_tipos_cbte auth
|
27
|
-
x2r get_array(r, :cbte_tipo), :
|
27
|
+
x2r get_array(r, :cbte_tipo), id: :integer, fch_desde: :date, fch_hasta: :date
|
28
28
|
end
|
29
29
|
|
30
30
|
def tipos_documentos
|
31
31
|
r = @client.fe_param_get_tipos_doc auth
|
32
|
-
x2r get_array(r, :doc_tipo), :
|
32
|
+
x2r get_array(r, :doc_tipo), id: :integer, fch_desde: :date, fch_hasta: :date
|
33
33
|
end
|
34
34
|
|
35
35
|
def tipos_monedas
|
36
36
|
r = @client.fe_param_get_tipos_monedas auth
|
37
|
-
x2r get_array(r, :moneda), :
|
37
|
+
x2r get_array(r, :moneda), fch_desde: :date, fch_hasta: :date
|
38
38
|
end
|
39
39
|
|
40
40
|
def tipos_iva
|
41
41
|
r = @client.fe_param_get_tipos_iva auth
|
42
|
-
x2r get_array(r, :iva_tipo), :
|
42
|
+
x2r get_array(r, :iva_tipo), id: :integer, fch_desde: :date, fch_hasta: :date
|
43
43
|
end
|
44
44
|
|
45
45
|
def tipos_tributos
|
46
46
|
r = @client.fe_param_get_tipos_tributos auth
|
47
|
-
x2r get_array(r, :tributo_tipo), :
|
47
|
+
x2r get_array(r, :tributo_tipo), id: :integer, fch_desde: :date, fch_hasta: :date
|
48
48
|
end
|
49
49
|
|
50
50
|
def puntos_venta
|
51
51
|
r = @client.fe_param_get_ptos_venta auth
|
52
|
-
x2r get_array(r, :pto_venta), :
|
52
|
+
x2r get_array(r, :pto_venta), nro: :integer, fch_baja: :date, bloqueado: :boolean
|
53
53
|
end
|
54
54
|
|
55
55
|
def cotizacion moneda_id
|
56
|
-
@client.fe_param_get_cotizacion(auth.merge(:
|
56
|
+
@client.fe_param_get_cotizacion(auth.merge(mon_id: moneda_id))[:result_get][:mon_cotiz].to_f
|
57
57
|
end
|
58
58
|
|
59
59
|
def autorizar_comprobantes opciones
|
60
60
|
comprobantes = opciones[:comprobantes]
|
61
61
|
request = { 'FeCAEReq' => {
|
62
|
-
'FeCabReq' => opciones.select_keys(:cbte_tipo, :pto_vta).merge(:
|
62
|
+
'FeCabReq' => opciones.select_keys(:cbte_tipo, :pto_vta).merge(cant_reg: comprobantes.size),
|
63
63
|
'FeDetReq' => { 'FECAEDetRequest' => comprobantes.map { |comprobante| comprobante_to_request comprobante }
|
64
64
|
}}}
|
65
|
-
r = @client.fecae_solicitar auth.merge r2x(request, :
|
65
|
+
r = @client.fecae_solicitar auth.merge r2x(request, cbte_fch: :date)
|
66
66
|
r = Array.wrap(r[:fe_det_resp][:fecae_det_response]).map do |h|
|
67
67
|
obs = Array.wrap(h[:observaciones] ? h[:observaciones][:obs] : nil)
|
68
|
-
h.select_keys(:cae, :cae_fch_vto, :resultado).merge(:
|
68
|
+
h.select_keys(:cae, :cae_fch_vto, :resultado).merge(cbte_nro: h[:cbte_desde], observaciones: obs)
|
69
69
|
end
|
70
|
-
x2r r, :
|
70
|
+
x2r r, cae_fch_vto: :date, cbte_nro: :integer, code: :integer
|
71
71
|
end
|
72
72
|
|
73
73
|
def comprobante_to_request comprobante
|
74
74
|
nro = comprobante.delete :cbte_nro
|
75
75
|
iva = comprobante.delete :imp_iva
|
76
76
|
comprobante.delete :tributos if comprobante[:imp_trib] == 0
|
77
|
-
comprobante.merge :
|
77
|
+
comprobante.merge cbte_desde: nro, cbte_hasta: nro, 'ImpIVA' => iva
|
78
78
|
end
|
79
79
|
|
80
80
|
def solicitar_caea
|
@@ -94,17 +94,17 @@ module Afipws
|
|
94
94
|
def informar_comprobantes_caea opciones
|
95
95
|
comprobantes = opciones[:comprobantes]
|
96
96
|
request = { 'FeCAEARegInfReq' => {
|
97
|
-
'FeCabReq' => opciones.select_keys(:cbte_tipo, :pto_vta).merge(:
|
97
|
+
'FeCabReq' => opciones.select_keys(:cbte_tipo, :pto_vta).merge(cant_reg: comprobantes.size),
|
98
98
|
'FeDetReq' => { 'FECAEADetRequest' => comprobantes.map do |comprobante|
|
99
99
|
comprobante_to_request comprobante.merge('CAEA' => comprobante.delete(:caea))
|
100
100
|
end
|
101
101
|
}}}
|
102
|
-
r = @client.fecaea_reg_informativo auth.merge r2x(request, :
|
102
|
+
r = @client.fecaea_reg_informativo auth.merge r2x(request, cbte_fch: :date)
|
103
103
|
r = Array.wrap(r[:fe_det_resp][:fecaea_det_response]).map do |h|
|
104
104
|
obs = Array.wrap(h[:observaciones] ? h[:observaciones][:obs] : nil)
|
105
|
-
h.select_keys(:caea, :resultado).merge(:
|
105
|
+
h.select_keys(:caea, :resultado).merge(cbte_nro: h[:cbte_desde], observaciones: obs)
|
106
106
|
end
|
107
|
-
x2r r, :
|
107
|
+
x2r r, cbte_nro: :integer, code: :integer
|
108
108
|
end
|
109
109
|
|
110
110
|
def informar_caea_sin_movimientos caea, pto_vta
|
@@ -116,7 +116,7 @@ module Afipws
|
|
116
116
|
end
|
117
117
|
|
118
118
|
def consultar_comprobante opciones
|
119
|
-
@client.fe_comp_consultar(auth.merge(:
|
119
|
+
@client.fe_comp_consultar(auth.merge(fe_comp_cons_req: opciones))[:result_get]
|
120
120
|
end
|
121
121
|
|
122
122
|
def cant_max_registros_x_lote
|
@@ -129,12 +129,12 @@ module Afipws
|
|
129
129
|
|
130
130
|
def periodo_para_consulta_caea fecha
|
131
131
|
orden = fecha.day <= 15 ? 1 : 2
|
132
|
-
{ :
|
132
|
+
{ orden: orden, periodo: fecha.strftime('%Y%m') }
|
133
133
|
end
|
134
134
|
|
135
135
|
def fecha_inicio_quincena_siguiente
|
136
136
|
hoy = Date.today
|
137
|
-
hoy.day <= 15 ? hoy.change(:
|
137
|
+
hoy.day <= 15 ? hoy.change(day: 16) : hoy.next_month.change(day: 1)
|
138
138
|
end
|
139
139
|
|
140
140
|
private
|
@@ -143,7 +143,7 @@ module Afipws
|
|
143
143
|
end
|
144
144
|
|
145
145
|
def convertir_rta_caea r
|
146
|
-
x2r r[:result_get], :
|
146
|
+
x2r r[:result_get], fch_tope_inf: :date, fch_vig_desde: :date, fch_vig_hasta: :date
|
147
147
|
end
|
148
148
|
end
|
149
149
|
end
|
data/spec/afipws/wsaa_spec.rb
CHANGED
@@ -24,7 +24,7 @@ describe Afipws::WSAA do
|
|
24
24
|
|
25
25
|
context "codificación del tra" do
|
26
26
|
it "debería quitarle el header y footer" do
|
27
|
-
subject.codificar_tra(OpenSSL::PKCS7.new).should == "
|
27
|
+
subject.codificar_tra(OpenSSL::PKCS7.new).should == "MAIGAA==\n"
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,133 +1,169 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: afipws
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 0.1.8
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
6
|
+
authors:
|
8
7
|
- Emmanuel Nicolau
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
11
|
+
date: 2016-09-26 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
17
14
|
name: rspec
|
18
|
-
requirement:
|
19
|
-
|
20
|
-
requirements:
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
21
17
|
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
24
20
|
type: :development
|
25
21
|
prerelease: false
|
26
|
-
version_requirements:
|
27
|
-
|
28
|
-
name: ruby-debug19
|
29
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
-
none: false
|
31
|
-
requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
32
24
|
- - ">="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: savon_spec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
35
34
|
type: :development
|
36
35
|
prerelease: false
|
37
|
-
version_requirements:
|
38
|
-
|
39
|
-
name: savon_spec
|
40
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
43
38
|
- - ">="
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 10.4.2
|
46
48
|
type: :development
|
47
49
|
prerelease: false
|
48
|
-
version_requirements:
|
49
|
-
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 10.4.2
|
55
|
+
- !ruby/object:Gem::Dependency
|
50
56
|
name: builder
|
51
|
-
requirement:
|
52
|
-
|
53
|
-
requirements:
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
54
59
|
- - ">="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
57
62
|
type: :runtime
|
58
63
|
prerelease: false
|
59
|
-
version_requirements:
|
60
|
-
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
61
70
|
name: savon
|
62
|
-
requirement:
|
63
|
-
|
64
|
-
requirements:
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
65
73
|
- - ">="
|
66
|
-
- !ruby/object:Gem::Version
|
67
|
-
version:
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
68
76
|
type: :runtime
|
69
77
|
prerelease: false
|
70
|
-
version_requirements:
|
71
|
-
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
72
84
|
name: nokogiri
|
73
|
-
requirement:
|
74
|
-
|
75
|
-
requirements:
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
76
87
|
- - ">="
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version:
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
79
90
|
type: :runtime
|
80
91
|
prerelease: false
|
81
|
-
version_requirements:
|
82
|
-
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
83
98
|
name: activesupport
|
84
|
-
requirement:
|
85
|
-
|
86
|
-
requirements:
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
87
101
|
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version:
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
90
104
|
type: :runtime
|
91
105
|
prerelease: false
|
92
|
-
version_requirements:
|
93
|
-
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
94
112
|
name: i18n
|
95
|
-
requirement:
|
96
|
-
|
97
|
-
requirements:
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
98
115
|
- - ">="
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version:
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
101
118
|
type: :runtime
|
102
119
|
prerelease: false
|
103
|
-
version_requirements:
|
104
|
-
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
105
126
|
name: httpclient
|
106
|
-
requirement:
|
107
|
-
|
108
|
-
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :runtime
|
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: httpi
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
109
143
|
- - ">="
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version:
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 2.4.2
|
112
146
|
type: :runtime
|
113
147
|
prerelease: false
|
114
|
-
version_requirements:
|
115
|
-
|
116
|
-
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 2.4.2
|
153
|
+
description: ''
|
154
|
+
email:
|
117
155
|
- emmanicolau@gmail.com
|
118
156
|
executables: []
|
119
|
-
|
120
157
|
extensions: []
|
121
|
-
|
122
158
|
extra_rdoc_files: []
|
123
|
-
|
124
|
-
|
125
|
-
- .
|
126
|
-
- .
|
127
|
-
- .
|
128
|
-
- .rvmrc
|
159
|
+
files:
|
160
|
+
- ".autotest"
|
161
|
+
- ".gitignore"
|
162
|
+
- ".rspec"
|
163
|
+
- ".ruby-version"
|
129
164
|
- Gemfile
|
130
165
|
- Gemfile.lock
|
166
|
+
- Guardfile
|
131
167
|
- README.rdoc
|
132
168
|
- Rakefile
|
133
169
|
- afipws.gemspec
|
@@ -180,41 +216,30 @@ files:
|
|
180
216
|
- spec/manual/test.rb
|
181
217
|
- spec/spec_helper.rb
|
182
218
|
- spec/support/matchers.rb
|
183
|
-
|
184
|
-
homepage: ""
|
219
|
+
homepage: ''
|
185
220
|
licenses: []
|
186
|
-
|
221
|
+
metadata: {}
|
187
222
|
post_install_message:
|
188
223
|
rdoc_options: []
|
189
|
-
|
190
|
-
require_paths:
|
224
|
+
require_paths:
|
191
225
|
- lib
|
192
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
193
|
-
|
194
|
-
requirements:
|
226
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
227
|
+
requirements:
|
195
228
|
- - ">="
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
version: "0"
|
201
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
|
-
requirements:
|
229
|
+
- !ruby/object:Gem::Version
|
230
|
+
version: '0'
|
231
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
232
|
+
requirements:
|
204
233
|
- - ">="
|
205
|
-
- !ruby/object:Gem::Version
|
206
|
-
|
207
|
-
segments:
|
208
|
-
- 0
|
209
|
-
version: "0"
|
234
|
+
- !ruby/object:Gem::Version
|
235
|
+
version: '0'
|
210
236
|
requirements: []
|
211
|
-
|
212
237
|
rubyforge_project: afipws
|
213
|
-
rubygems_version:
|
238
|
+
rubygems_version: 2.6.6
|
214
239
|
signing_key:
|
215
|
-
specification_version:
|
240
|
+
specification_version: 4
|
216
241
|
summary: Ruby wrapper para los servicios web de la AFIP
|
217
|
-
test_files:
|
242
|
+
test_files:
|
218
243
|
- spec/afipws/core_ext/hash_spec.rb
|
219
244
|
- spec/afipws/test.crt
|
220
245
|
- spec/afipws/test.key
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm 1.9.2
|