nubefact 0.0.10 → 0.0.11

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b7f013e1331568efa11cdc6f32639e4dbff3f519
4
- data.tar.gz: a00ca260534596ea4c9737c855c8348a7c811981
3
+ metadata.gz: 4c1c0aa28a70c1fa38340c9c188abcee2ae86842
4
+ data.tar.gz: a5e903b0914c56168771bab9d9011135f58dfb85
5
5
  SHA512:
6
- metadata.gz: 7a442c25612769f7de73acdf0d48e5377a869ea4ff9c0d1189df4c0a3579090e3073a6fe163149f85d829b468ed7c1243e640306094408c9510d54e25a2725ae
7
- data.tar.gz: d1d34302e2846f8bd3675eb112534151bd2502c8a276ae1a583e9f28c6e6f9d3c5d105e23541d5e6f0ca49d0aed2dfa7fade5162bd5fff766fb92d1556843988
6
+ metadata.gz: 73f33c18d59b73010a76721f97698387d9ecda27e5ba29a9a7642379579e5acda7ad3fb5aef9f835923ba02035b7f4ebcaf245ac455c43f512754d4f460c9b84
7
+ data.tar.gz: f98e73610156182e553e73e8dbd1834a57dbb898053bb8a466c1a690131aca3c54f6a3e23d725ef2094849079baad77134b98cabf4b88d74ad96c64b8de1fbf4
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- nubefact (0.0.10)
4
+ nubefact (0.0.11)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -8,7 +8,7 @@ class NubeFact::CreditNote < NubeFact::Document
8
8
 
9
9
  DEFAULT_DATA = {
10
10
  operacion: 'generar_comprobante',
11
- tipo_de_comprobante: 3,
11
+ tipo_de_comprobante: TIPO_DE_COMPROBANTE,
12
12
  serie: 'F',
13
13
  sunat_transaction: 1,
14
14
  fecha_de_emision: ->(_i) { Date.today },
@@ -106,7 +106,7 @@ class NubeFact::Document
106
106
 
107
107
  attr_accessor *FIELDS
108
108
 
109
- REQUIRED_FIELDS = %i(
109
+ add_required_fields *%i(
110
110
  serie
111
111
  numero
112
112
  sunat_transaction
@@ -44,7 +44,7 @@ class NubeFact::Document::Item
44
44
  ]
45
45
  attr_accessor *FIELDS
46
46
 
47
- REQUIRED_FIELDS = %i(
47
+ add_required_fields *%i(
48
48
  unidad_de_medida
49
49
  descripcion
50
50
  cantidad
@@ -3,8 +3,8 @@ class NubeFact::Invoice < NubeFact::Document
3
3
 
4
4
  DEFAULT_DATA = {
5
5
  operacion: 'generar_comprobante',
6
- tipo_de_comprobante: 1,
7
- serie: 'F',
6
+ tipo_de_comprobante: TIPO_DE_COMPROBANTE,
7
+ serie: 'F',
8
8
  sunat_transaction: 1,
9
9
  fecha_de_emision: ->(_i) { Date.today },
10
10
  porcentaje_de_igv: 18,
@@ -1,3 +1,3 @@
1
1
  module NubeFact
2
- VERSION = "0.0.10"
2
+ VERSION = "0.0.11"
3
3
  end
@@ -1,21 +1,24 @@
1
1
  module NubeFact::Validator
2
+ # Following methods solve the issue of having required fields inherits from a base class
3
+
2
4
  def self.included(klass)
3
5
  klass.extend ClassMethods
4
- klass.class_variable_set :@@required_fields, []
5
6
  end
6
7
 
7
8
  module ClassMethods
9
+ # When a class is inherited eg. Invoice, it sets the required fields from
10
+ # the base class eg. Document to use it as a base
11
+ def inherited(child_class)
12
+ child_class.instance_variable_set :@required_fields, self.required_fields
13
+ end
14
+
8
15
  def add_required_fields(*fields)
9
- base = required_fields
10
-
11
- self.class_variable_set :@@required_fields, \
12
- required_fields + fields
16
+ base = required_fields
17
+ @required_fields = required_fields + fields
13
18
  end
14
19
 
15
20
  def required_fields
16
- required_fields = self.class_variable_get :@@required_fields
17
- return self::REQUIRED_FIELDS if required_fields.empty?
18
- required_fields
21
+ @required_fields || []
19
22
  end
20
23
  end
21
24
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nubefact
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arnold Roa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-04 00:00:00.000000000 Z
11
+ date: 2017-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler