rfcxml 0.2.0 → 0.3.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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +30 -8
  3. data/Gemfile +6 -4
  4. data/README.adoc +166 -18
  5. data/lib/rfcxml/v3/abstract.rb +0 -5
  6. data/lib/rfcxml/v3/address.rb +0 -6
  7. data/lib/rfcxml/v3/annotation.rb +0 -14
  8. data/lib/rfcxml/v3/artset.rb +0 -2
  9. data/lib/rfcxml/v3/artwork.rb +3 -3
  10. data/lib/rfcxml/v3/aside.rb +0 -11
  11. data/lib/rfcxml/v3/author.rb +0 -3
  12. data/lib/rfcxml/v3/back.rb +0 -4
  13. data/lib/rfcxml/v3/blockquote.rb +5 -46
  14. data/lib/rfcxml/v3/boilerplate.rb +0 -2
  15. data/lib/rfcxml/v3/c.rb +0 -6
  16. data/lib/rfcxml/v3/contact.rb +0 -3
  17. data/lib/rfcxml/v3/cref.rb +0 -10
  18. data/lib/rfcxml/v3/dd.rb +5 -47
  19. data/lib/rfcxml/v3/dl.rb +0 -6
  20. data/lib/rfcxml/v3/dt.rb +5 -25
  21. data/lib/rfcxml/v3/figure.rb +5 -15
  22. data/lib/rfcxml/v3/front.rb +0 -12
  23. data/lib/rfcxml/v3/li.rb +5 -50
  24. data/lib/rfcxml/v3/list.rb +1 -3
  25. data/lib/rfcxml/v3/middle.rb +0 -2
  26. data/lib/rfcxml/v3/name.rb +0 -13
  27. data/lib/rfcxml/v3/note.rb +0 -6
  28. data/lib/rfcxml/v3/ol.rb +0 -2
  29. data/lib/rfcxml/v3/postal.rb +0 -11
  30. data/lib/rfcxml/v3/postamble.rb +0 -6
  31. data/lib/rfcxml/v3/preamble.rb +0 -14
  32. data/lib/rfcxml/v3/refcontent.rb +0 -3
  33. data/lib/rfcxml/v3/reference.rb +0 -6
  34. data/lib/rfcxml/v3/referencegroup.rb +0 -2
  35. data/lib/rfcxml/v3/references.rb +0 -4
  36. data/lib/rfcxml/v3/rfc.rb +6 -6
  37. data/lib/rfcxml/v3/section.rb +0 -17
  38. data/lib/rfcxml/v3/sourcecode.rb +2 -2
  39. data/lib/rfcxml/v3/strong.rb +4 -7
  40. data/lib/rfcxml/v3/sub.rb +4 -14
  41. data/lib/rfcxml/v3/sup.rb +0 -2
  42. data/lib/rfcxml/v3/table.rb +0 -6
  43. data/lib/rfcxml/v3/tbody.rb +0 -2
  44. data/lib/rfcxml/v3/td.rb +5 -43
  45. data/lib/rfcxml/v3/text.rb +0 -19
  46. data/lib/rfcxml/v3/texttable.rb +0 -6
  47. data/lib/rfcxml/v3/tfoot.rb +0 -2
  48. data/lib/rfcxml/v3/th.rb +0 -2
  49. data/lib/rfcxml/v3/thead.rb +0 -2
  50. data/lib/rfcxml/v3/title.rb +0 -2
  51. data/lib/rfcxml/v3/toc.rb +0 -2
  52. data/lib/rfcxml/v3/tr.rb +0 -3
  53. data/lib/rfcxml/v3/tt.rb +4 -18
  54. data/lib/rfcxml/v3/ttcol.rb +0 -5
  55. data/lib/rfcxml/v3/ul.rb +0 -2
  56. data/lib/rfcxml/v3/xref.rb +2 -3
  57. data/lib/rfcxml/v3/xref_text.rb +7 -16
  58. data/lib/rfcxml/v3.rb +100 -2
  59. data/lib/rfcxml/version.rb +1 -1
  60. data/lib/rfcxml.rb +2 -4
  61. data/rfcxml.gemspec +4 -17
  62. metadata +10 -94
  63. data/lib/rfcxml/v3/em.rb +0 -14
@@ -2,11 +2,6 @@
2
2
 
3
3
  require "lutaml/model"
4
4
 
5
- require_relative "cref"
6
- require_relative "eref"
7
- require_relative "iref"
8
- require_relative "xref"
9
-
10
5
  module Rfcxml
11
6
  module V3
12
7
  class Ttcol < Lutaml::Model::Serializable
data/lib/rfcxml/v3/ul.rb CHANGED
@@ -4,8 +4,6 @@ require "lutaml/model"
4
4
 
5
5
  module Rfcxml
6
6
  module V3
7
- class Li < Lutaml::Model::Serializable; end
8
-
9
7
  class Ul < Lutaml::Model::Serializable
10
8
  attribute :anchor, :string
11
9
  attribute :spacing, :string, default: -> { "normal" }
@@ -2,8 +2,6 @@
2
2
 
3
3
  require "lutaml/model"
4
4
 
5
- require_relative "xref_text"
6
-
7
5
  module Rfcxml
8
6
  module V3
9
7
  class Xref < Lutaml::Model::Serializable
@@ -25,7 +23,8 @@ module Rfcxml
25
23
  map_attribute "target", to: :target
26
24
  map_attribute "pageno", to: :pageno
27
25
  map_attribute "format", to: :format
28
- map_attribute "derivedContent", to: :derived_content
26
+ map_attribute "derivedContent", to: :derived_content,
27
+ value_map: { to: { empty: :empty } }
29
28
  map_attribute "sectionFormat", to: :section_format
30
29
  map_attribute "section", to: :section
31
30
  map_attribute "relative", to: :relative
@@ -1,28 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # require_relative "em"
4
- # require_relative "strong"
5
- # require_relative "sub"
6
- # require_relative "sup"
7
- # require_relative "tt"
8
3
  require "lutaml/model"
9
4
 
10
5
  module Rfcxml
11
6
  module V3
12
- class Strong < Lutaml::Model::Serializable; end
13
- class Em < Strong; end
14
- class Sub < Lutaml::Model::Serializable; end
15
- class Sup < Sub; end
16
- class Tt < Lutaml::Model::Serializable; end
17
-
7
+ # Mixin module for common text formatting elements
8
+ # Included by Xref, Refcontent, and other elements
18
9
  module XrefText
19
10
  def self.included(base)
20
11
  base.class_eval do
21
- attribute :em, ::Rfcxml::V3::Em, collection: true
22
- attribute :strong, V3::Strong, collection: true
23
- attribute :sub, V3::Sub, collection: true
24
- attribute :sup, V3::Sup, collection: true
25
- attribute :tt, V3::Tt, collection: true
12
+ attribute :em, "Rfcxml::V3::Em", collection: true
13
+ attribute :strong, "Rfcxml::V3::Strong", collection: true
14
+ attribute :sub, "Rfcxml::V3::Sub", collection: true
15
+ attribute :sup, "Rfcxml::V3::Sup", collection: true
16
+ attribute :tt, "Rfcxml::V3::Tt", collection: true
26
17
  end
27
18
  end
28
19
  end
data/lib/rfcxml/v3.rb CHANGED
@@ -1,8 +1,106 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "v3/rfc"
4
-
5
3
  module Rfcxml
6
4
  module V3
5
+ # Core document structure
6
+ autoload :Rfc, "#{__dir__}/v3/rfc"
7
+ autoload :Front, "#{__dir__}/v3/front"
8
+ autoload :Middle, "#{__dir__}/v3/middle"
9
+ autoload :Back, "#{__dir__}/v3/back"
10
+
11
+ # Front matter elements
12
+ autoload :Abstract, "#{__dir__}/v3/abstract"
13
+ autoload :Annotation, "#{__dir__}/v3/annotation"
14
+ autoload :Area, "#{__dir__}/v3/area"
15
+ autoload :Author, "#{__dir__}/v3/author"
16
+ autoload :Contact, "#{__dir__}/v3/contact"
17
+ autoload :Date, "#{__dir__}/v3/date"
18
+ autoload :Keyword, "#{__dir__}/v3/keyword"
19
+ autoload :Note, "#{__dir__}/v3/note"
20
+ autoload :Organization, "#{__dir__}/v3/organization"
21
+ autoload :Title, "#{__dir__}/v3/title"
22
+ autoload :Workgroup, "#{__dir__}/v3/workgroup"
23
+
24
+ # Address elements
25
+ autoload :Address, "#{__dir__}/v3/address"
26
+ autoload :City, "#{__dir__}/v3/city"
27
+ autoload :Cityarea, "#{__dir__}/v3/cityarea"
28
+ autoload :Country, "#{__dir__}/v3/country"
29
+ autoload :Email, "#{__dir__}/v3/email"
30
+ autoload :Extaddr, "#{__dir__}/v3/extaddr"
31
+ autoload :Facsimile, "#{__dir__}/v3/facsimile"
32
+ autoload :Phone, "#{__dir__}/v3/phone"
33
+ autoload :Pobox, "#{__dir__}/v3/pobox"
34
+ autoload :Postal, "#{__dir__}/v3/postal"
35
+ autoload :PostalLine, "#{__dir__}/v3/postal_line"
36
+ autoload :Region, "#{__dir__}/v3/region"
37
+ autoload :Sortingcode, "#{__dir__}/v3/sortingcode"
38
+ autoload :Street, "#{__dir__}/v3/street"
39
+ autoload :Uri, "#{__dir__}/v3/uri"
40
+
41
+ # Body elements
42
+ autoload :Section, "#{__dir__}/v3/section"
43
+ autoload :Aside, "#{__dir__}/v3/aside"
44
+ autoload :Blockquote, "#{__dir__}/v3/blockquote"
45
+ autoload :Boilerplate, "#{__dir__}/v3/boilerplate"
46
+ autoload :Figure, "#{__dir__}/v3/figure"
47
+ autoload :Ol, "#{__dir__}/v3/ol"
48
+ autoload :Ul, "#{__dir__}/v3/ul"
49
+ autoload :Li, "#{__dir__}/v3/li"
50
+ autoload :Dl, "#{__dir__}/v3/dl"
51
+ autoload :Dt, "#{__dir__}/v3/dt"
52
+ autoload :Dd, "#{__dir__}/v3/dd"
53
+ autoload :Table, "#{__dir__}/v3/table"
54
+ autoload :Tbody, "#{__dir__}/v3/tbody"
55
+ autoload :Tfoot, "#{__dir__}/v3/tfoot"
56
+ autoload :Thead, "#{__dir__}/v3/thead"
57
+ autoload :Tr, "#{__dir__}/v3/tr"
58
+ autoload :Td, "#{__dir__}/v3/td"
59
+ autoload :Th, "#{__dir__}/v3/th"
60
+
61
+ # Inline text elements
62
+ autoload :Bcp14, "#{__dir__}/v3/bcp14"
63
+ autoload :Br, "#{__dir__}/v3/br"
64
+ autoload :C, "#{__dir__}/v3/c"
65
+ autoload :Code, "#{__dir__}/v3/code"
66
+ autoload :Cref, "#{__dir__}/v3/cref"
67
+ autoload :Em, "#{__dir__}/v3/strong" # Em is defined in strong.rb
68
+ autoload :Eref, "#{__dir__}/v3/eref"
69
+ autoload :Iref, "#{__dir__}/v3/iref"
70
+ autoload :Name, "#{__dir__}/v3/name"
71
+ autoload :Postamble, "#{__dir__}/v3/postamble"
72
+ autoload :Preamble, "#{__dir__}/v3/preamble"
73
+ autoload :Relref, "#{__dir__}/v3/relref"
74
+ autoload :Spanx, "#{__dir__}/v3/spanx"
75
+ autoload :Strong, "#{__dir__}/v3/strong"
76
+ autoload :Sub, "#{__dir__}/v3/sub"
77
+ autoload :Sup, "#{__dir__}/v3/sup"
78
+ autoload :Tt, "#{__dir__}/v3/tt"
79
+ autoload :U, "#{__dir__}/v3/u"
80
+ autoload :Xref, "#{__dir__}/v3/xref"
81
+ autoload :XrefText, "#{__dir__}/v3/xref_text"
82
+
83
+ # Artwork and code elements
84
+ autoload :Artset, "#{__dir__}/v3/artset"
85
+ autoload :Artwork, "#{__dir__}/v3/artwork"
86
+ autoload :Sourcecode, "#{__dir__}/v3/sourcecode"
87
+
88
+ # References
89
+ autoload :Displayreference, "#{__dir__}/v3/displayreference"
90
+ autoload :Refcontent, "#{__dir__}/v3/refcontent"
91
+ autoload :Reference, "#{__dir__}/v3/reference"
92
+ autoload :Referencegroup, "#{__dir__}/v3/referencegroup"
93
+ autoload :References, "#{__dir__}/v3/references"
94
+
95
+ # Other elements
96
+ autoload :Format, "#{__dir__}/v3/format"
97
+ autoload :Link, "#{__dir__}/v3/link"
98
+ autoload :List, "#{__dir__}/v3/list"
99
+ autoload :SeriesInfo, "#{__dir__}/v3/series_info"
100
+ autoload :Text, "#{__dir__}/v3/text"
101
+ autoload :Texttable, "#{__dir__}/v3/texttable"
102
+ autoload :Toc, "#{__dir__}/v3/toc"
103
+ autoload :Ttcol, "#{__dir__}/v3/ttcol"
104
+ autoload :Vspace, "#{__dir__}/v3/vspace"
7
105
  end
8
106
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Rfcxml
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
data/lib/rfcxml.rb CHANGED
@@ -3,15 +3,13 @@
3
3
  require "lutaml/model"
4
4
 
5
5
  Lutaml::Model::Config.configure do |config|
6
- require "lutaml/model/xml_adapter/nokogiri_adapter"
7
- config.xml_adapter = Lutaml::Model::XmlAdapter::NokogiriAdapter
6
+ config.xml_adapter_type = :nokogiri
8
7
  end
9
8
 
10
9
  module Rfcxml
11
10
  class Error < StandardError; end
12
11
 
13
- # Your code goes here...
12
+ autoload :Version, "#{__dir__}/rfcxml/version"
14
13
  end
15
14
 
16
- require_relative "rfcxml/version"
17
15
  require_relative "rfcxml/v3"
data/rfcxml.gemspec CHANGED
@@ -16,10 +16,8 @@ Gem::Specification.new do |spec|
16
16
  spec.metadata["homepage_uri"] = spec.homepage
17
17
  spec.metadata["source_code_uri"] = spec.homepage
18
18
  spec.metadata["changelog_uri"] = "https://github.com/metanorma/rfcxml/releases"
19
+ spec.metadata["rubygems_mfa_required"] = "true"
19
20
 
20
- # Specify which files should be added to the gem when it is released.
21
- # The `git ls-files -z` loads the files in the RubyGem
22
- # that have been added into git.
23
21
  spec.files = Dir.chdir(File.expand_path(__dir__)) do
24
22
  `git ls-files -z`
25
23
  .split("\x0")
@@ -29,19 +27,8 @@ Gem::Specification.new do |spec|
29
27
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
30
28
  spec.require_paths = ["lib"]
31
29
 
32
- spec.required_ruby_version = ">= 2.7.0"
30
+ spec.required_ruby_version = ">= 3.2.0"
33
31
 
34
- spec.add_runtime_dependency "lutaml-model"
35
- spec.add_runtime_dependency "nokogiri"
36
-
37
- spec.add_development_dependency "equivalent-xml"
38
- spec.add_development_dependency "rake"
39
- spec.add_development_dependency "rspec"
40
- spec.add_development_dependency "rubocop"
41
- spec.add_development_dependency "rubocop-performance"
42
- spec.add_development_dependency "xml-c14n"
43
-
44
- spec.metadata["homepage_uri"] = spec.homepage
45
- spec.metadata["source_code_uri"] = spec.homepage
46
- spec.metadata["changelog_uri"] = spec.homepage
32
+ spec.add_dependency "lutaml-model", "~> 0.8.0"
33
+ spec.add_dependency "nokogiri"
47
34
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfcxml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-01-07 00:00:00.000000000 Z
11
+ date: 2026-03-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: 0.8.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: 0.8.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: nokogiri
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,90 +38,6 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: equivalent-xml
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: rake
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: rspec
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: rubocop
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rubocop-performance
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: xml-c14n
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
125
41
  description: IETF RFC XML parser and generator
126
42
  email:
127
43
  - open.source@ribose.com'
@@ -168,7 +84,6 @@ files:
168
84
  - lib/rfcxml/v3/displayreference.rb
169
85
  - lib/rfcxml/v3/dl.rb
170
86
  - lib/rfcxml/v3/dt.rb
171
- - lib/rfcxml/v3/em.rb
172
87
  - lib/rfcxml/v3/email.rb
173
88
  - lib/rfcxml/v3/eref.rb
174
89
  - lib/rfcxml/v3/extaddr.rb
@@ -241,7 +156,8 @@ licenses:
241
156
  metadata:
242
157
  homepage_uri: https://github.com/metanorma/rfcxml
243
158
  source_code_uri: https://github.com/metanorma/rfcxml
244
- changelog_uri: https://github.com/metanorma/rfcxml
159
+ changelog_uri: https://github.com/metanorma/rfcxml/releases
160
+ rubygems_mfa_required: 'true'
245
161
  post_install_message:
246
162
  rdoc_options: []
247
163
  require_paths:
@@ -250,14 +166,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
250
166
  requirements:
251
167
  - - ">="
252
168
  - !ruby/object:Gem::Version
253
- version: 2.7.0
169
+ version: 3.2.0
254
170
  required_rubygems_version: !ruby/object:Gem::Requirement
255
171
  requirements:
256
172
  - - ">="
257
173
  - !ruby/object:Gem::Version
258
174
  version: '0'
259
175
  requirements: []
260
- rubygems_version: 3.3.27
176
+ rubygems_version: 3.5.22
261
177
  signing_key:
262
178
  specification_version: 4
263
179
  summary: IETF RFC XML parser and generator
data/lib/rfcxml/v3/em.rb DELETED
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "lutaml/model"
4
- require_relative "strong"
5
-
6
- module Rfcxml
7
- module V3
8
- class Em < Strong
9
- xml do
10
- root "em"
11
- end
12
- end
13
- end
14
- end