uddf 0.1.0 → 0.2.1

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.
data/lib/uddf/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- module Uddf
4
- VERSION = "0.1.0"
3
+ module UDDF
4
+ VERSION = "0.2.1"
5
5
  end
data/lib/uddf.rb CHANGED
@@ -1,8 +1,71 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "uddf/version"
3
+ require "happymapper"
4
+ require "nokogiri"
4
5
 
5
- module Uddf
6
- class Error < StandardError; end
7
- # Your code goes here...
6
+ require "uddf/version"
7
+
8
+ # Universal Dive Data Format (UDDF) parser and validator
9
+ module UDDF
10
+ SUPPORTED_SCHEMA_VERSIONS = %w[3.0.0 3.0.1 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1].freeze
11
+ SUPPORTED_PARSER_VERSIONS = %w[3.2.3].freeze
12
+
13
+ @schema_cache_mutex = Mutex.new
14
+
15
+ def self.load(path, force_version: nil)
16
+ xml = File.read(path)
17
+ parse(xml, force_version: force_version)
18
+ end
19
+
20
+ def self.parse(xml, force_version: nil)
21
+ version = force_version || extract_version(xml)
22
+ model_class = load_models_for_version(version)
23
+
24
+ model_class.parse(xml)
25
+ end
26
+
27
+ def self.validate(xml, force_version: nil)
28
+ version = force_version || extract_version(xml)
29
+ schema = load_schema_for_version(version)
30
+ doc = Nokogiri::XML::Document.parse(xml)
31
+
32
+ schema.validate(doc)
33
+ end
34
+
35
+ def self.extract_version(xml)
36
+ doc = Nokogiri::XML(xml)
37
+ doc.root&.[]("version")
38
+ end
39
+
40
+ def self.load_schema_for_version(version)
41
+ @schema_cache_mutex.synchronize do
42
+ @schema_cache ||= {}
43
+ @schema_cache[version] ||= begin
44
+ validate_version_support(version, :schema)
45
+ schema_path = File.join(__dir__, "uddf", "v#{version.tr(".", "")}", "schema.xsd")
46
+ Nokogiri::XML::Schema.new(File.read(schema_path))
47
+ end
48
+ end
49
+ end
50
+
51
+ def self.load_models_for_version(version)
52
+ validate_version_support(version, :parse)
53
+
54
+ case version
55
+ when "3.2.3"
56
+ require "uddf/v323/models"
57
+ V323::Models::Uddf
58
+ end
59
+ end
60
+
61
+ def self.validate_version_support(version, operation)
62
+ supported = case operation
63
+ when :parse then SUPPORTED_PARSER_VERSIONS
64
+ when :schema then SUPPORTED_SCHEMA_VERSIONS
65
+ end
66
+
67
+ return if supported.include?(version)
68
+
69
+ raise "Unsupported UDDF version for #{operation}, got '#{version}'"
70
+ end
8
71
  end
@@ -0,0 +1,311 @@
1
+ <uddf version="3.3.0">
2
+ <!-- die <generator>-Sektion muß in jeder UDDF-Datei stehen -->
3
+ <generator>
4
+ <!-- Beschreibung des die UDDF-Datei erzeugenden Programmes -->
5
+ <name>STL - Super-Taucher-Logbuch</name>
6
+ <type>logbook</type>
7
+ <manufacturer id="tauchhelden-cmp">
8
+ <name>Tauchhelden-Company</name>
9
+ <address>
10
+ <!-- Adreßdaten des Herstellers -->
11
+ </address>
12
+ <contact>
13
+ <!-- Kontaktdaten des Herstellers -->
14
+ </contact>
15
+ </manufacturer>
16
+ <version>3.14159</version>
17
+ <datetime>2004-09-30</datetime>
18
+ </generator>
19
+ <mediadata>
20
+ <image id="img_arnos_plattfuesse">
21
+ <title>Arnos Plattfüße...</title>
22
+ <objectname>plattfuss.jpg</objectname>
23
+ </image>
24
+ </mediadata>
25
+ <maker>
26
+ <!-- Beschreibung von Herstellern - so kann nachfolgend darauf referenziert werden, -->
27
+ <!-- ohne daß die Daten eines Herstellers mehrmals bei verschiedenen Ausrüstungsteilen -->
28
+ <!-- angegeben werden müßten -->
29
+ <manufacturer id="hersteller_froschkoenig">
30
+ <name>Froschkönig AG</name>
31
+ <address>
32
+ <street>Teichstr. 12</street>
33
+ <city>Seeheim</city>
34
+ <postcode>91827</postcode>
35
+ <country>Deutschland</country>
36
+ <province>Berlin-Brandenburg</province>
37
+ </address>
38
+ <contact>
39
+ <language>deutsch</language>
40
+ <phone>01234/234567</phone>
41
+ <mobilephone>0123/123123123</mobilephone>
42
+ <email>info@froschkoenig-ag.de</email>
43
+ <homepage>http://www.froschkoenig-ag.de</homepage>
44
+ </contact>
45
+ </manufacturer>
46
+ <!-- hier können weitere Hersteller aufgeführt werden -->
47
+ </maker>
48
+ <business>
49
+ <!-- Beschreibung von Tauchgeschäften - so kann nachfolgend darauf referenziert werden, -->
50
+ <!-- ohne daß die Daten eines Geschäftes mehrmals bei verschiedenen Ausrüstungsteilen -->
51
+ <!-- bzw. Käufen angegeben werden müßten -->
52
+ <shop id="shop_fuw-gmbh">
53
+ <name>Freizeit und Wassersport GmbH</name>
54
+ <address>
55
+ <!-- Adresse des Geschäftes, in dem das Ausrüstungsteil gekauft wurde -->
56
+ <street>Hans Hass Str. 1</street>
57
+ <city>Seedorf</city>
58
+ <postcode>15243</postcode>
59
+ <country>Deutschland</country>
60
+ </address>
61
+ <contact>
62
+ <!-- weitere Angaben (Telefonnr., EMail-Adresse etc.) -->
63
+ <phone>03456/615243</phone>
64
+ <mobilephone>0123/567567567</mobilephone>
65
+ <email>info@fuw-gmbh.de</email>
66
+ <homepage>http://www.fuw-gmbh.de</homepage>
67
+ </contact>
68
+ <notes>
69
+ <!-- zusätzliche Bemerkungen, Bilder usw. -->
70
+ </notes>
71
+ </shop>
72
+ <shop id="shop_die-flachtaucher">
73
+ <name>Die Flachtaucher</name>
74
+ <address>
75
+ <!-- Adresse des Geschäftes, in dem das Ausrüstungsteil gekauft wurde -->
76
+ </address>
77
+ <contact>
78
+ <!-- weitere Angaben (Telefonnr., EMail-Adresse etc.) -->
79
+ </contact>
80
+ <notes>
81
+ <!-- zusätzliche Bemerkungen, Bilder usw. -->
82
+ </notes>
83
+ </shop>
84
+ </business>
85
+ <diver>
86
+ <!-- hier werden zunächst die eigenen Daten (soweit gewünscht) abgelegt... -->
87
+ <owner id="owner_arno">
88
+ <!-- Beschreibung des Besitzers der UDDF-Datei (also die -->
89
+ <!-- eigenen Daten angegeben) -->
90
+ <personal>
91
+ <firstname>Arno</firstname>
92
+ <middlename>Albert</middlename>
93
+ <lastname>Alzheimer</lastname>
94
+ <honorific>Dr.</honorific>
95
+ <sex>male</sex>
96
+ <birthdate>
97
+ <datetime>1919-02-30</datetime>
98
+ </birthdate
99
+ <passport>987654321</passport>
100
+ <height>1.8</height>
101
+ <weight>86.0</weight>
102
+ <smoking>0</smoking>
103
+ <bloodgroup>A</bloodgroup>
104
+ <numberofdives timeinterval="P13Y/2006-02-16" dives="1234"/>
105
+ <membership organisation=="VDST/CMAS" memberid="123456"/>
106
+ </personal>
107
+ <address>
108
+ <street>Auf der Heide 12</street>
109
+ <city>Aheim</city>
110
+ <postcode>12345</postcode>
111
+ <country>Deutschland</country>
112
+ <!-- Bundesland nicht angegeben -->
113
+ </address>
114
+ <contact>
115
+ <language>deutsch</language>
116
+ <phone>01234/567890</phone>
117
+ <email>arno@arno-alzheimer.org</email>
118
+ <homepage>http://www.tieftauchen.info/arno</homepage>
119
+ </contact>
120
+ <equipment>
121
+ <!-- Auflistung der Ausrüstungsteile des Besitzers der UDDF-Datei -->
122
+ <buoyancycontroldevice id="mein_jacket">
123
+ <name>ABC</name>
124
+ <manufacturer>
125
+ <!-- Referenzierung des in der <maker>-Sektion deklarierten Herstellers -->
126
+ <link ref="hersteller_froschkoenig"/>
127
+ </manufacturer>
128
+ <model>Underwater Camping Team</model>
129
+ <serialnumber>123456789</serialnumber>
130
+ <purchase>
131
+ <datetime>1960-05-31</datetime>
132
+ <price currency="DM">100.00</price>
133
+ <shop>
134
+ <!-- Referenzierung des in der <business>-Sektion deklarierten Tauchgeschäfts -->
135
+ <link ref="shop_fuw-gmbh"/>
136
+ </shop>
137
+ </purchase>
138
+ <!-- Wartung jedes Jahr -->
139
+ <serviceinterval>365</serviceinterval>
140
+ <nextservicedate>
141
+ <datetime>2006-05-31</datetime>
142
+ </nextservicedate>
143
+ </buoyancycontroldevice>
144
+ <boots id="meine_fuesslinge">
145
+ <name>noname</name>
146
+ <manufacturer>
147
+ <!-- Referenzierung des in der <maker>-Sektion deklarierten Herstellers -->
148
+ <link ref="hersteller_froschkoenig"/>
149
+ </manufacturer>
150
+ <model>Größe 48</model>
151
+ <!-- Seriennummer gibt es hier nicht :-) -->
152
+ <purchase>
153
+ <datetime>1970-10-07</datetime>
154
+ <price currency="DM">10.00</price>
155
+ <shop>
156
+ <!-- Referenzierung des in der <business>-Sektion deklarierten Tauchgeschäfts -->
157
+ <link ref="shop_die-flachtaucher"/>
158
+ </shop>
159
+ </purchase>
160
+ <!-- besser einmal pro Monat waschen... ;-) -->
161
+ <serviceinterval>30</serviceinterval>
162
+ <!-- genaues "Serviceintervall" existiert nicht ;-) -->
163
+ </boots>
164
+ <!-- hier die Auflistung weiterer Ausrüstungsteile des Besitzers der UDDF-Datei -->
165
+ </equipment>
166
+ <medical>
167
+ <examination>
168
+ <datetime>2003-04-12</datetime>
169
+ <doctor id="doctorDusel">
170
+ <personal>
171
+ <firstname>Dirk</firstname>
172
+ <lastname>Dusel</lastname>
173
+ <honorific>Dr.</honorific>
174
+ <sex>male</sex>
175
+ <birthdate>
176
+ <!-- falls Geburtsdaten bekannt, können sie hier angegeben werden -->
177
+ </birthdate
178
+ </personal>
179
+ <address>
180
+ <street>Duddelstr. 34</street>
181
+ <city>Dortmund</city>
182
+ <postcode>54321</postcode>
183
+ <country>Deutschland</country>
184
+ <province>Nordrhein-Westfalen</province>
185
+ </address>
186
+ <contact>
187
+ <language>deutsch</language>
188
+ <phone>01234/987654</phone>
189
+ <!-- weder EMail-Adresse noch Homepage bekannt -->
190
+ </contact>
191
+ </doctor>
192
+ <examinationresult>passed</examinationresult>
193
+ <notes>
194
+ <para>
195
+ Plattfüße scheinen die Tauchtauglichkeit nicht zu beeinflussen :-)
196
+ </para>
197
+ <link ref="img_arnos_plattfuesse"/>
198
+ </notes>
199
+ </examination>
200
+ <examination>
201
+ <datetime>2004-04-20</datetime>
202
+ <!-- nachfolgend eine Referenzierung auf den untersuchenden Arzt, -->
203
+ <!-- da die Angaben zur Person bereits oben erfolgten -->
204
+ <link ref="doctorDusel"/>
205
+ <examinationresult>passed</examinationresult>
206
+ </examination>
207
+ </medical>
208
+ <education>
209
+ <!-- alle Stufen der Tauchausbildung -> mehrere -->
210
+ <!-- <certification>-Elemente hintereinander -->
211
+ <certification>
212
+ <level>Bronze</level>
213
+ <certificatenumber>192837</certificatenumber>
214
+ <organisation>VDST/CMAS</organisation>
215
+ <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei -->
216
+ <!-- eingetragen wurde, entfällt auch die Referenz darauf -->
217
+ <!-- mittels <link ref="..."/> -->
218
+ <issuedate>
219
+ <datetime>1994-03-15</datetime>
220
+ </issuedate>
221
+ </certification>
222
+ <certification>
223
+ <specialty>Orientierung</specialty>
224
+ <organisation>VDST/CMAS</organisation>
225
+ <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei -->
226
+ <!-- eingetragen wurde, entfällt auch die Referenz darauf -->
227
+ <!-- mittels <link ref="..."/> -->
228
+ <issuedate>
229
+ <datetime>1995-01-22</datetime>
230
+ </issuedate>
231
+ </certification>
232
+ <certification>
233
+ <level>Silber</level>
234
+ <certificatenumber>283746</certificatenumber>
235
+ <organisation>VDST/CMAS</organisation>
236
+ <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei -->
237
+ <!-- eingetragen wurde, entfällt auch die Referenz darauf -->
238
+ <!-- mittels <link ref="..."/> -->
239
+ <issuedate>
240
+ <datetime>1997-11-26</datetime>
241
+ </issuedate>
242
+ </certification>
243
+ <certification>
244
+ <level>Gold</level>
245
+ <certificatenumber>374650</certificatenumber>
246
+ <organisation>VDST/CMAS</organisation>
247
+ <!-- da der damalige Tauchlehrer nicht in einer UDDF-Datei -->
248
+ <!-- eingetragen wurde, entfällt auch die Referenz darauf -->
249
+ <!-- mittels <link ref="..."/> -->
250
+ <issuedate>
251
+ <datetime>2000-05-10</datetime>
252
+ </issuedate>
253
+ </certification>
254
+ </education>
255
+ <divepermissions>
256
+ <!-- hier können beliebig viele Genehmigungen aufgelistet werden -->
257
+ <permit>
258
+ <name>DiveCard</name>
259
+ <region>Österreich</region>
260
+ <issuedate> <!-- Ausstellungsdatum -->
261
+ <datetime>2004-08-24</datetime>
262
+ </issuedate>
263
+ <validdate> <!-- Gültigkeitsdatum -->
264
+ <datetime>2005-08-23</datetime>
265
+ </validdate>
266
+ </permit>
267
+ <permit>
268
+ <name>Zeeland</name>
269
+ <region>Zeeland (Niederlande)</region>
270
+ <issuedate> <!-- Ausstellungsdatum -->
271
+ <datetime>1996-09-03</datetime>
272
+ </issuedate>
273
+ <validdate> <!-- Gültigkeitsdatum -->
274
+ <datetime>2001-08-31</datetime>
275
+ </validdate>
276
+ </permit>
277
+ <!-- hier gegebenenfalls weitere Genehmigungen -->
278
+ </divepermissions>
279
+ <!-- da keine zusätzlichen Tauchunfall-Versicherungen abgeschlossen -->
280
+ <!-- wurden, entfällt <diveinsurances>...</diveinsurances> -->
281
+ </owner>
282
+ <!-- ... und nun folgen die Daten aller Tauchpartner (soweit bekannt) -->
283
+ <buddy id="buddy_bert_der_luftsauger">
284
+ <!-- Daten des ersten Tauchpartners -->
285
+ <personal>
286
+ <firstname>Bert</firstname>
287
+ <lastname>Bammel</lastname>
288
+ </personal>
289
+ <!-- keine Adreßdaten angegeben - <address>...</address> entfällt -->
290
+ <contact>
291
+ <email>luftsauger@tieftauchen.de</email>
292
+ <homepage>http://www.tieftauchen.info/bert</homepage>
293
+ </contact>
294
+ </buddy>
295
+ <buddy id="buddyCarsten">
296
+ <!-- Beschreibung eines weiteren Tauchpartners -->
297
+ <personal>
298
+ <firstname>Carsten</firstname>
299
+ <lastname>Cabuff</lastname>
300
+ </personal>
301
+ <!-- Adreßdaten nicht bekannt - <address>...</address> entfällt -->
302
+ <contact>
303
+ <email>lurchi@abcde.com</email>
304
+ <homepage>http://www.tieftauchen.info/carsten</homepage>
305
+ </contact>
306
+ </buddy>
307
+ <!-- hier können noch Beschreibungen von weiteren Tauchpartnern eingefügt werden -->
308
+ </diver>
309
+ <!-- hier könnten weitere Sektionen folgen, z. B. die Tauchprofildaten -->
310
+ <!-- oder zur Generierung von Austauchtabellen -->
311
+ </uddf>
data/uddf.gemspec CHANGED
@@ -4,7 +4,7 @@ require_relative "lib/uddf/version"
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "uddf"
7
- spec.version = Uddf::VERSION
7
+ spec.version = UDDF::VERSION
8
8
  spec.authors = ["Flipez"]
9
9
  spec.email = ["gh@flipez.net"]
10
10
 
@@ -16,6 +16,7 @@ Gem::Specification.new do |spec|
16
16
  spec.metadata["homepage_uri"] = spec.homepage
17
17
  spec.metadata["source_code_uri"] = "https://github.com/Flipez/ruby-uddf"
18
18
  spec.metadata["changelog_uri"] = "https://github.com/Flipez/ruby-uddf"
19
+ spec.metadata["rubygems_mfa_required"] = "true"
19
20
 
20
21
  # Specify which files should be added to the gem when it is released.
21
22
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -26,9 +27,11 @@ Gem::Specification.new do |spec|
26
27
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
27
28
  spec.require_paths = ["lib"]
28
29
 
29
- # Uncomment to register a new dependency of your gem
30
- # spec.add_dependency "example-gem", "~> 1.0"
30
+ spec.add_dependency "nokogiri", "~> 1.18"
31
+ spec.add_dependency "nokogiri-happymapper"
31
32
 
32
- # For more information and examples about making a new gem, checkout our
33
- # guide at: https://bundler.io/guides/creating_gem.html
33
+ spec.add_development_dependency "irb"
34
+ spec.add_development_dependency "rake", "~> 13.0"
35
+ spec.add_development_dependency "rubocop", "~> 1.7"
36
+ spec.add_development_dependency "rubocop-rake", "~> 0.7"
34
37
  end
metadata CHANGED
@@ -1,15 +1,98 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: uddf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flipez
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2025-08-20 00:00:00.000000000 Z
12
- dependencies: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: nokogiri
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.18'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '1.18'
26
+ - !ruby/object:Gem::Dependency
27
+ name: nokogiri-happymapper
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: irb
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: '0'
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rake
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '13.0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '13.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rubocop
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '1.7'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '1.7'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rubocop-rake
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '0.7'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '0.7'
13
96
  description: A Ruby library for parsing and writing UDDF (Universal Data Description
14
97
  Format) files.
15
98
  email:
@@ -21,14 +104,31 @@ files:
21
104
  - ".github/workflows/main.yml"
22
105
  - ".gitignore"
23
106
  - ".rubocop.yml"
107
+ - ".ruby-version"
24
108
  - CHANGELOG.md
25
109
  - Gemfile
110
+ - Gemfile.lock
26
111
  - README.md
27
112
  - Rakefile
28
113
  - bin/console
29
114
  - bin/setup
115
+ - dive_files/BaMQZdEhp3djeDxQ5HyCreOntBm1-1753908953.uddf
116
+ - dive_files/Peregrine TX[93CBB2BB]#140_2025-03-21.uddf
117
+ - dive_files/Peregrine TX[93CBB2BB]#148_2025-06-26.uddf
30
118
  - lib/uddf.rb
119
+ - lib/uddf/base/models.rb
120
+ - lib/uddf/v300/schema.xsd
121
+ - lib/uddf/v301/schema.xsd
122
+ - lib/uddf/v310/schema.xsd
123
+ - lib/uddf/v320/schema.xsd
124
+ - lib/uddf/v321/schema.xsd
125
+ - lib/uddf/v322/schema.xsd
126
+ - lib/uddf/v323/models.rb
127
+ - lib/uddf/v323/schema.xsd
128
+ - lib/uddf/v330/schema.xsd
129
+ - lib/uddf/v331/schema.xsd
31
130
  - lib/uddf/version.rb
131
+ - test_files/v330/diver_data.uddf
32
132
  - uddf.gemspec
33
133
  homepage: https://github.com/Flipez/ruby-uddf
34
134
  licenses: []
@@ -36,7 +136,7 @@ metadata:
36
136
  homepage_uri: https://github.com/Flipez/ruby-uddf
37
137
  source_code_uri: https://github.com/Flipez/ruby-uddf
38
138
  changelog_uri: https://github.com/Flipez/ruby-uddf
39
- post_install_message:
139
+ rubygems_mfa_required: 'true'
40
140
  rdoc_options: []
41
141
  require_paths:
42
142
  - lib
@@ -51,8 +151,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
51
151
  - !ruby/object:Gem::Version
52
152
  version: '0'
53
153
  requirements: []
54
- rubygems_version: 3.2.4
55
- signing_key:
154
+ rubygems_version: 3.6.7
56
155
  specification_version: 4
57
156
  summary: Ruby UDDF Parser and Writer
58
157
  test_files: []