aixm 1.3.2 → 1.3.4

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
  SHA256:
3
- metadata.gz: 6fa3066c9e65afaa76e4327da9a11a42c27f1baad1a712de3fee6400765c0b6a
4
- data.tar.gz: 6c0d4261d076fddc05b150b5c1851a61ffa011ff6b8f15f254492987e4f80fb4
3
+ metadata.gz: 9fe9565888ad7ed4bcf509211380c7b7102551ebe9ae30a3aa18810e51eb6c30
4
+ data.tar.gz: 4b2d98978eeedb786c6df9ee15d1a58965da68661e8e8fe3e74706d5f2d403bc
5
5
  SHA512:
6
- metadata.gz: 88bcefbea10f86f6f5b3c483f546197409dcd06b8751b8f0ced1d2e3730e27559a248486015a0673685d24afb04f306df4ea0acf3f14fe5347c3c9f89d72e23c
7
- data.tar.gz: 067ee1c2ffc6b251a9063982ee4e5d07492746aa0d780be020b46f549868992397348054c09d08704bb5e4744a0a78da8936ee739870822029a8eb32776c10c0
6
+ metadata.gz: 0437a116319aaa8aef2bb8107b6d86481686a735734ba172ed451cc73924389fb4a160d518d87d817ef7a79f84c3388b9d39f3d925bab8329b93c84e3b92c1bb
7
+ data.tar.gz: c8fdeec76012ffe37a66096f6e57f620ea9a2c0b731ff569f8b325fec2a315cdab74080ddf53553880c5acfa7df17b24059047dd935802821c0d637955cc54ec
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -2,6 +2,16 @@
2
2
 
3
3
  Nothing so far
4
4
 
5
+ ## 1.3.4
6
+
7
+ #### Additions
8
+ * `ckmid` skips XML schema validation if `-s` argument is set.
9
+
10
+ ## 1.3.3
11
+
12
+ #### Changes
13
+ * Extend `ckmid` and `mkmid` to accept multiple files and globbing.
14
+
5
15
  ## 1.3.2
6
16
 
7
17
  #### Changes
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  [![Version](https://img.shields.io/gem/v/aixm.svg?style=flat)](https://rubygems.org/gems/aixm)
2
- [![Tests](https://img.shields.io/github/workflow/status/svoop/aixm/Test.svg?style=flat&label=tests)](https://github.com/svoop/aixm/actions?workflow=Test)
2
+ [![Tests](https://img.shields.io/github/actions/workflow/status/svoop/aixm/test.yml?style=flat&label=tests)](https://github.com/svoop/aixm/actions?workflow=Test)
3
3
  [![Code Climate](https://img.shields.io/codeclimate/maintainability/svoop/aixm.svg?style=flat)](https://codeclimate.com/github/svoop/aixm/)
4
4
  [![Donorbox](https://img.shields.io/badge/donate-on_donorbox-yellow.svg)](https://donorbox.org/bitcetera)
5
5
 
@@ -291,7 +291,7 @@ By `using AIXM::Refinements` you get a few handy [extensions to Ruby core classe
291
291
 
292
292
  ### mkmid
293
293
 
294
- The `mkmid` executable reads an OFMX file, adds [OFMX-compliant `mid` values](https://gitlab.com/openflightmaps/ofmx/wikis/Features#mid) into all `*Uid` elements and validates the result against the schema.
294
+ The `mkmid` executable reads OFMX files, adds [OFMX-compliant `mid` values](https://gitlab.com/openflightmaps/ofmx/wikis/Features#mid) into all `*Uid` elements and validates the result against the schema.
295
295
 
296
296
  ```
297
297
  mkmid --help
@@ -299,7 +299,7 @@ mkmid --help
299
299
 
300
300
  ### ckmid
301
301
 
302
- The `chmid` executable reads an OFMX file, validates it against the schema and checks all `mid` attributes for [OFMX-compliance](https://gitlab.com/openflightmaps/ofmx/wikis/Features#mid).
302
+ The `chmid` executable reads OFMX files, validates them against the schema and checks all `mid` attributes for [OFMX-compliance](https://gitlab.com/openflightmaps/ofmx/wikis/Features#mid).
303
303
 
304
304
  ```
305
305
  ckmid --help
@@ -8,66 +8,74 @@ module AIXM
8
8
  @options = options
9
9
  OptionParser.new do |o|
10
10
  o.banner = <<~END
11
- Add mid attributes to a schema valid OFMX file.
12
- Usage: #{File.basename($0)} infile.ofmx
11
+ Add mid attributes to OFMX files.
12
+ Usage: #{File.basename($0)} files
13
13
  END
14
14
  o.on('-i', '--[no-]in-place', 'overwrite file instead of dumping to STDOUT (default: false)') { @options[:in_place] = _1 }
15
15
  o.on('-f', '--[no-]force', 'ignore XML schema validation errors (default: false)') { @options[:force] = _1 }
16
16
  o.on('-A', '--about', 'show author/license information and exit') { AIXM::Executables.about }
17
17
  o.on('-V', '--version', 'show version and exit') { AIXM::Executables.version }
18
18
  end.parse!
19
- @infile = ARGV.shift
19
+ @files = ARGV
20
20
  end
21
21
 
22
22
  def run
23
- fail 'cannot read file' unless @infile && File.readable?(@infile)
24
- fail 'file ist not OFMX' unless @infile.match?(/\.ofmx$/)
25
- AIXM.ofmx!
26
- document = File.open(@infile) { Nokogiri::XML(_1) }
27
- AIXM::PayloadHash::Mid.new(document).insert_mid
28
- errors = Nokogiri::XML::Schema(File.open(AIXM.schema(:xsd))).validate(document)
29
- case
30
- when errors.any? && !@options[:force]
31
- puts errors
32
- fail "OFMX file is not schema valid"
33
- when @options[:in_place]
34
- File.write(@infile, document.to_xml)
35
- else
36
- puts document.to_xml
23
+ @files.each do |file|
24
+ fail "cannot read #{file}" unless file && File.readable?(file)
25
+ fail "#{file} is not OFMX" unless file.match?(/\.ofmx$/)
26
+ AIXM.ofmx!
27
+ document = File.open(file) { Nokogiri::XML(_1) }
28
+ AIXM::PayloadHash::Mid.new(document).insert_mid
29
+ errors = Nokogiri::XML::Schema(File.open(AIXM.schema(:xsd))).validate(document)
30
+ case
31
+ when errors.any? && !@options[:force]
32
+ fail (["#{file} is not valid..."] + errors).join("\n")
33
+ when @options[:in_place]
34
+ File.write(file, document.to_xml)
35
+ else
36
+ puts document.to_xml
37
+ end
38
+ rescue => error
39
+ puts "ERROR: #{error.message}"
40
+ exit 1
37
41
  end
38
- rescue => error
39
- puts "ERROR: #{error.message}"
40
- exit 1
41
42
  end
42
43
  end
43
44
 
44
45
  class Ckmid
45
46
  def initialize(**options)
47
+ @options = options
46
48
  OptionParser.new do |o|
47
49
  o.banner = <<~END
48
- Check mid attributes of an OFMX file.
49
- Usage: #{File.basename($0)} infile.ofmx
50
+ Check mid attributes of OFMX files.
51
+ Usage: #{File.basename($0)} files
50
52
  END
53
+ o.on('-s', '--[no-]skip-validation', 'skip XML schema validation (default: false)') { @options[:skip_validation] = _1 }
51
54
  o.on('-A', '--about', 'show author/license information and exit') { AIXM::Executables.about }
52
55
  o.on('-V', '--version', 'show version and exit') { AIXM::Executables.version }
53
56
  end.parse!
54
- @infile = ARGV.shift
57
+ @files = ARGV
55
58
  end
56
59
 
57
60
  def run
58
- fail 'cannot read file' unless @infile && File.readable?(@infile)
59
- fail 'file ist not OFMX' unless @infile.match?(/\.ofmx$/)
60
- AIXM.ofmx!
61
- document = File.open(@infile) { Nokogiri::XML(_1) }
62
- errors = Nokogiri::XML::Schema(File.open(AIXM.schema(:xsd))).validate(document)
63
- errors += AIXM::PayloadHash::Mid.new(document).check_mid
64
- if errors.any?
65
- puts errors
66
- fail "OFMX file has errors"
67
- end
68
- rescue => error
69
- puts "ERROR: #{error.message}"
70
- exit 1
61
+ exit(
62
+ @files.reduce(true) do |success, file|
63
+ fail "cannot read #{file}" unless file && File.readable?(file)
64
+ fail "#{file} is not OFMX" unless file.match?(/\.ofmx$/)
65
+ AIXM.ofmx!
66
+ document = File.open(file) { Nokogiri::XML(_1) }
67
+ errors = []
68
+ unless @options[:skip_validation]
69
+ errors += Nokogiri::XML::Schema(File.open(AIXM.schema(:xsd))).validate(document)
70
+ end
71
+ errors += AIXM::PayloadHash::Mid.new(document).check_mid
72
+ fail (["#{file} is not valid..."] + errors).join("\n") if errors.any?
73
+ success && true
74
+ rescue RuntimeError => error
75
+ puts "ERROR: #{error.message}"
76
+ false
77
+ end
78
+ )
71
79
  end
72
80
  end
73
81
 
data/lib/aixm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module AIXM
2
- VERSION = "1.3.2".freeze
2
+ VERSION = "1.3.4".freeze
3
3
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aixm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.2
4
+ version: 1.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sven Schwyn
@@ -29,7 +29,7 @@ cert_chain:
29
29
  kAyiRqgxF4dJviwtqI7mZIomWL63+kXLgjOjMe1SHxfIPo/0ji6+r1p4KYa7o41v
30
30
  fwIwU1MKlFBdsjkd
31
31
  -----END CERTIFICATE-----
32
- date: 2022-11-18 00:00:00.000000000 Z
32
+ date: 2023-01-09 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: nokogiri
@@ -312,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
312
312
  - !ruby/object:Gem::Version
313
313
  version: '0'
314
314
  requirements: []
315
- rubygems_version: 3.3.26
315
+ rubygems_version: 3.4.3
316
316
  signing_key:
317
317
  specification_version: 4
318
318
  summary: Builder for AIXM/OFMX aeronautical information
metadata.gz.sig CHANGED
Binary file