einvoice 1.4.0 → 1.5.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.
@@ -1,7 +1,6 @@
1
1
  module Einvoice
2
2
  class Provider
3
- attr_accessor *Configuration::VALID_OPTIONS_KEYS
4
- attr_accessor :provider
3
+ attr_accessor(*Configuration::VALID_OPTIONS_KEYS)
5
4
 
6
5
  def initialize(options={})
7
6
  options = Einvoice.options.merge(options)
@@ -52,7 +52,7 @@ module Einvoice
52
52
  :itemList
53
53
  ].freeze
54
54
 
55
- attr_accessor *VALID_OPTIONS_KEYS
55
+ attr_accessor(*VALID_OPTIONS_KEYS)
56
56
 
57
57
  validates :companyUn, presence: true, length: { is: 8 }
58
58
  validates :orgId, presence: true, length: { is: 5 }
@@ -121,7 +121,7 @@ module Einvoice
121
121
  validates :invoiceType, allow_blank: true, length: { is: 2 }, inclusion: { in: %w(07 08) }, if: proc { self.type == 'G' }
122
122
 
123
123
  def payload
124
- serializable_hash(except: [:errors, :validation_context], include: [:itemList])
124
+ serializable_hash(except: [:errors, :validation_context, :context_for_validation], include: [:itemList])
125
125
  end
126
126
  end
127
127
  end
@@ -19,7 +19,7 @@ module Einvoice
19
19
  :description
20
20
  ]
21
21
 
22
- attr_accessor *VALID_OPTIONS_KEYS
22
+ attr_accessor(*VALID_OPTIONS_KEYS)
23
23
 
24
24
  validates :saleIdentifier, presence: true, length: { maximum: 100 }
25
25
  validates :serialNumber, presence: true, length: { is: 4 }, numericality: true
@@ -12,7 +12,7 @@ module Einvoice
12
12
  :companyUn
13
13
  ].freeze
14
14
 
15
- attr_accessor *VALID_OPTIONS_KEYS
15
+ attr_accessor(*VALID_OPTIONS_KEYS)
16
16
 
17
17
  validates :type, presence: true, length: { is: 1 }, inclusion: { in: %w(C I A) }
18
18
 
@@ -27,7 +27,7 @@ module Einvoice
27
27
  validates :allowancePaperReturned, presence: true, length: { is: 1 }, inclusion: { in: %w(Y N) }, if: proc { self.type == 'A' }
28
28
 
29
29
  def payload
30
- serializable_hash(except: [:errors, :validation_context, :itemList])
30
+ serializable_hash(except: [:errors, :validation_context, :context_for_validation, :itemList])
31
31
  end
32
32
  end
33
33
  end
@@ -1,7 +1,6 @@
1
1
  require 'base64'
2
2
  require 'openssl'
3
3
 
4
- require "einvoice/utils"
5
4
 
6
5
  require "einvoice/tradevan/model/base"
7
6
  require "einvoice/tradevan/model/issue_data"
@@ -1,3 +1,3 @@
1
1
  module Einvoice
2
- VERSION = "1.4.0"
2
+ VERSION = "1.5.0"
3
3
  end
data/lib/einvoice.rb CHANGED
@@ -5,7 +5,6 @@ require "einvoice/configuration"
5
5
  require "einvoice/connection"
6
6
  require "einvoice/provider"
7
7
  require "einvoice/result"
8
- require "einvoice/utils"
9
8
  require "einvoice/version"
10
9
 
11
10
  require "einvoice/tradevan/provider"
@@ -1,12 +1,11 @@
1
+ require 'base64'
2
+ require 'json'
3
+ require 'openssl'
4
+
1
5
  require 'faraday'
2
6
 
3
7
  module Faraday
4
8
  class Response::DecodeTradevan < Faraday::Middleware
5
- dependency do
6
- require 'base64' unless defined?(::Base64)
7
- require 'openssl' unless defined?(::OpenSSL)
8
- end
9
-
10
9
  def initialize(app, key)
11
10
  super(app)
12
11
  @key = key
@@ -0,0 +1,14 @@
1
+ require 'faraday'
2
+ require 'multi_xml'
3
+
4
+ module Faraday
5
+ class Response::ParseXml < Faraday::Middleware
6
+ def on_complete(env)
7
+ return unless env[:body].is_a?(String) && !env[:body].strip.empty?
8
+
9
+ env[:body] = ::MultiXml.parse(env[:body])
10
+ end
11
+ end
12
+ end
13
+
14
+ Faraday::Response.register_middleware xml: Faraday::Response::ParseXml
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: einvoice
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Yun
@@ -13,30 +13,16 @@ dependencies:
13
13
  name: faraday
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ">="
17
- - !ruby/object:Gem::Version
18
- version: '0'
19
- type: :runtime
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - ">="
24
- - !ruby/object:Gem::Version
25
- version: '0'
26
- - !ruby/object:Gem::Dependency
27
- name: faraday_middleware
28
- requirement: !ruby/object:Gem::Requirement
29
- requirements:
30
- - - ">="
16
+ - - "~>"
31
17
  - !ruby/object:Gem::Version
32
- version: '0'
18
+ version: '2.1'
33
19
  type: :runtime
34
20
  prerelease: false
35
21
  version_requirements: !ruby/object:Gem::Requirement
36
22
  requirements:
37
- - - ">="
23
+ - - "~>"
38
24
  - !ruby/object:Gem::Version
39
- version: '0'
25
+ version: '2.1'
40
26
  - !ruby/object:Gem::Dependency
41
27
  name: multi_xml
42
28
  requirement: !ruby/object:Gem::Requirement
@@ -79,20 +65,6 @@ dependencies:
79
65
  - - ">="
80
66
  - !ruby/object:Gem::Version
81
67
  version: '0'
82
- - !ruby/object:Gem::Dependency
83
- name: gyoku
84
- requirement: !ruby/object:Gem::Requirement
85
- requirements:
86
- - - ">="
87
- - !ruby/object:Gem::Version
88
- version: '0'
89
- type: :runtime
90
- prerelease: false
91
- version_requirements: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - ">="
94
- - !ruby/object:Gem::Version
95
- version: '0'
96
68
  - !ruby/object:Gem::Dependency
97
69
  name: bundler
98
70
  requirement: !ruby/object:Gem::Requirement
@@ -113,14 +85,14 @@ dependencies:
113
85
  requirements:
114
86
  - - "~>"
115
87
  - !ruby/object:Gem::Version
116
- version: '12.3'
88
+ version: '13.0'
117
89
  type: :development
118
90
  prerelease: false
119
91
  version_requirements: !ruby/object:Gem::Requirement
120
92
  requirements:
121
93
  - - "~>"
122
94
  - !ruby/object:Gem::Version
123
- version: '12.3'
95
+ version: '13.0'
124
96
  - !ruby/object:Gem::Dependency
125
97
  name: pry
126
98
  requirement: !ruby/object:Gem::Requirement
@@ -211,6 +183,7 @@ executables: []
211
183
  extensions: []
212
184
  extra_rdoc_files: []
213
185
  files:
186
+ - ".coderabbit.yaml"
214
187
  - ".github/workflows/build.yml"
215
188
  - ".github/workflows/cron.yml"
216
189
  - ".gitignore"
@@ -239,13 +212,17 @@ files:
239
212
  - lib/einvoice/tradevan/provider.rb
240
213
  - lib/einvoice/tradevan/result.rb
241
214
  - lib/einvoice/tradevan/validator/issue_data_validator.rb
242
- - lib/einvoice/utils.rb
243
215
  - lib/einvoice/version.rb
244
216
  - lib/faraday/response/decode_tradevan.rb
217
+ - lib/faraday/response/parse_xml.rb
245
218
  homepage: https://github.com/abookyun/einvoice
246
219
  licenses:
247
220
  - MIT
248
- metadata: {}
221
+ metadata:
222
+ source_code_uri: https://github.com/abookyun/einvoice
223
+ changelog_uri: https://github.com/abookyun/einvoice/blob/main/CHANGELOG.md
224
+ bug_tracker_uri: https://github.com/abookyun/einvoice/issues
225
+ rubygems_mfa_required: 'true'
249
226
  rdoc_options: []
250
227
  require_paths:
251
228
  - lib
@@ -253,14 +230,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
253
230
  requirements:
254
231
  - - ">="
255
232
  - !ruby/object:Gem::Version
256
- version: 2.0.0
233
+ version: '3.1'
257
234
  required_rubygems_version: !ruby/object:Gem::Requirement
258
235
  requirements:
259
236
  - - ">="
260
237
  - !ruby/object:Gem::Version
261
238
  version: '0'
262
239
  requirements: []
263
- rubygems_version: 4.0.17
240
+ rubygems_version: 4.0.20
264
241
  specification_version: 4
265
- summary: A API wrapper for Taiwan e-invoice services.
242
+ summary: An API wrapper for Taiwan e-invoice services.
266
243
  test_files: []
@@ -1,13 +0,0 @@
1
- require "gyoku"
2
-
3
- module Einvoice
4
- module Utils
5
- def camelize(hash)
6
- hash.deep_transform_keys { |k| k.to_s.camelize }
7
- end
8
-
9
- def encode_xml(hash)
10
- ::Gyoku.xml(hash, key_converter: :none)
11
- end
12
- end
13
- end