rfcxml 0.2.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 (108) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/rake.yml +18 -0
  3. data/.github/workflows/release.yml +25 -0
  4. data/.gitignore +11 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +11 -0
  7. data/.rubocop_todo.yml +20 -0
  8. data/CODE_OF_CONDUCT.md +84 -0
  9. data/Gemfile +12 -0
  10. data/README.adoc +75 -0
  11. data/Rakefile +12 -0
  12. data/bin/console +11 -0
  13. data/bin/setup +8 -0
  14. data/lib/rfcxml/v3/abstract.rb +32 -0
  15. data/lib/rfcxml/v3/address.rb +31 -0
  16. data/lib/rfcxml/v3/annotation.rb +57 -0
  17. data/lib/rfcxml/v3/area.rb +17 -0
  18. data/lib/rfcxml/v3/artset.rb +23 -0
  19. data/lib/rfcxml/v3/artwork.rb +37 -0
  20. data/lib/rfcxml/v3/aside.rb +50 -0
  21. data/lib/rfcxml/v3/author.rb +38 -0
  22. data/lib/rfcxml/v3/back.rb +25 -0
  23. data/lib/rfcxml/v3/bcp14.rb +17 -0
  24. data/lib/rfcxml/v3/blockquote.rb +92 -0
  25. data/lib/rfcxml/v3/boilerplate.rb +19 -0
  26. data/lib/rfcxml/v3/br.rb +13 -0
  27. data/lib/rfcxml/v3/c.rb +33 -0
  28. data/lib/rfcxml/v3/city.rb +19 -0
  29. data/lib/rfcxml/v3/cityarea.rb +19 -0
  30. data/lib/rfcxml/v3/code.rb +19 -0
  31. data/lib/rfcxml/v3/contact.rb +36 -0
  32. data/lib/rfcxml/v3/country.rb +19 -0
  33. data/lib/rfcxml/v3/cref.rb +51 -0
  34. data/lib/rfcxml/v3/date.rb +23 -0
  35. data/lib/rfcxml/v3/dd.rb +92 -0
  36. data/lib/rfcxml/v3/displayreference.rb +19 -0
  37. data/lib/rfcxml/v3/dl.rb +35 -0
  38. data/lib/rfcxml/v3/dt.rb +58 -0
  39. data/lib/rfcxml/v3/em.rb +14 -0
  40. data/lib/rfcxml/v3/email.rb +19 -0
  41. data/lib/rfcxml/v3/eref.rb +21 -0
  42. data/lib/rfcxml/v3/extaddr.rb +19 -0
  43. data/lib/rfcxml/v3/facsimile.rb +17 -0
  44. data/lib/rfcxml/v3/figure.rb +57 -0
  45. data/lib/rfcxml/v3/format.rb +21 -0
  46. data/lib/rfcxml/v3/front.rb +49 -0
  47. data/lib/rfcxml/v3/iref.rb +23 -0
  48. data/lib/rfcxml/v3/keyword.rb +17 -0
  49. data/lib/rfcxml/v3/li.rb +97 -0
  50. data/lib/rfcxml/v3/link.rb +19 -0
  51. data/lib/rfcxml/v3/list.rb +27 -0
  52. data/lib/rfcxml/v3/middle.rb +19 -0
  53. data/lib/rfcxml/v3/name.rb +56 -0
  54. data/lib/rfcxml/v3/note.rb +37 -0
  55. data/lib/rfcxml/v3/ol.rb +33 -0
  56. data/lib/rfcxml/v3/organization.rb +25 -0
  57. data/lib/rfcxml/v3/phone.rb +17 -0
  58. data/lib/rfcxml/v3/pobox.rb +19 -0
  59. data/lib/rfcxml/v3/postal.rb +46 -0
  60. data/lib/rfcxml/v3/postal_line.rb +19 -0
  61. data/lib/rfcxml/v3/postamble.rb +33 -0
  62. data/lib/rfcxml/v3/preamble.rb +57 -0
  63. data/lib/rfcxml/v3/refcontent.rb +28 -0
  64. data/lib/rfcxml/v3/reference.rb +43 -0
  65. data/lib/rfcxml/v3/referencegroup.rb +25 -0
  66. data/lib/rfcxml/v3/references.rb +33 -0
  67. data/lib/rfcxml/v3/region.rb +19 -0
  68. data/lib/rfcxml/v3/relref.rb +29 -0
  69. data/lib/rfcxml/v3/rfc.rb +70 -0
  70. data/lib/rfcxml/v3/section.rb +78 -0
  71. data/lib/rfcxml/v3/series_info.rb +27 -0
  72. data/lib/rfcxml/v3/sortingcode.rb +19 -0
  73. data/lib/rfcxml/v3/sourcecode.rb +31 -0
  74. data/lib/rfcxml/v3/spanx.rb +19 -0
  75. data/lib/rfcxml/v3/street.rb +19 -0
  76. data/lib/rfcxml/v3/strong.rb +43 -0
  77. data/lib/rfcxml/v3/sub.rb +49 -0
  78. data/lib/rfcxml/v3/sup.rb +28 -0
  79. data/lib/rfcxml/v3/table.rb +37 -0
  80. data/lib/rfcxml/v3/tbody.rb +21 -0
  81. data/lib/rfcxml/v3/td.rb +89 -0
  82. data/lib/rfcxml/v3/text.rb +82 -0
  83. data/lib/rfcxml/v3/texttable.rb +41 -0
  84. data/lib/rfcxml/v3/tfoot.rb +21 -0
  85. data/lib/rfcxml/v3/th.rb +14 -0
  86. data/lib/rfcxml/v3/thead.rb +21 -0
  87. data/lib/rfcxml/v3/title.rb +25 -0
  88. data/lib/rfcxml/v3/toc.rb +19 -0
  89. data/lib/rfcxml/v3/tr.rb +24 -0
  90. data/lib/rfcxml/v3/tt.rb +53 -0
  91. data/lib/rfcxml/v3/ttcol.rb +34 -0
  92. data/lib/rfcxml/v3/u.rb +25 -0
  93. data/lib/rfcxml/v3/ul.rb +31 -0
  94. data/lib/rfcxml/v3/uri.rb +17 -0
  95. data/lib/rfcxml/v3/vspace.rb +17 -0
  96. data/lib/rfcxml/v3/workgroup.rb +17 -0
  97. data/lib/rfcxml/v3/xref.rb +41 -0
  98. data/lib/rfcxml/v3/xref_text.rb +30 -0
  99. data/lib/rfcxml/v3.rb +8 -0
  100. data/lib/rfcxml/version.rb +5 -0
  101. data/lib/rfcxml.rb +17 -0
  102. data/reference-docs/v3-modified.rnc +1145 -0
  103. data/reference-docs/v3.rnc +1145 -0
  104. data/reference-docs/v3.xsd +1410 -0
  105. data/reference-docs/xml.xsd +19 -0
  106. data/rfcxml.gemspec +47 -0
  107. data/sig/xml2rfc.rbs +4 -0
  108. metadata +264 -0
@@ -0,0 +1,89 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "artset"
6
+ require_relative "artwork"
7
+ require_relative "bcp14"
8
+ require_relative "br"
9
+ require_relative "cref"
10
+ require_relative "dl"
11
+ require_relative "em"
12
+ require_relative "eref"
13
+ require_relative "figure"
14
+ require_relative "iref"
15
+ require_relative "ol"
16
+ require_relative "relref"
17
+ require_relative "sourcecode"
18
+ require_relative "strong"
19
+ require_relative "sub"
20
+ require_relative "sup"
21
+ require_relative "text"
22
+ require_relative "tt"
23
+ require_relative "u"
24
+ require_relative "ul"
25
+ require_relative "xref"
26
+
27
+ module Rfcxml
28
+ module V3
29
+ class Td < Lutaml::Model::Serializable
30
+ attribute :content, :string
31
+ attribute :anchor, :string
32
+ attribute :colspan, :string, default: -> { "1" }
33
+ attribute :rowspan, :string, default: -> { "1" }
34
+ attribute :align, :string, default: -> { "left" }
35
+ attribute :artset, Artset, collection: true
36
+ attribute :artwork, Artwork, collection: true
37
+ attribute :dl, Dl, collection: true
38
+ attribute :figure, Figure, collection: true
39
+ attribute :ol, Ol, collection: true
40
+ attribute :sourcecode, Sourcecode, collection: true
41
+ attribute :t, Text, collection: true
42
+ attribute :ul, Ul, collection: true
43
+ attribute :bcp14, Bcp14, collection: true
44
+ attribute :br, Br, collection: true
45
+ attribute :cref, Cref, collection: true
46
+ attribute :em, Em, collection: true
47
+ attribute :eref, Eref, collection: true
48
+ attribute :iref, Iref, collection: true
49
+ attribute :relref, Relref, collection: true
50
+ attribute :strong, Strong, collection: true
51
+ attribute :sub, Sub, collection: true
52
+ attribute :sup, Sup, collection: true
53
+ attribute :tt, Tt, collection: true
54
+ attribute :u, U, collection: true
55
+ attribute :xref, Xref, collection: true
56
+
57
+ xml do
58
+ root "td"
59
+
60
+ map_content to: :content
61
+ map_attribute "anchor", to: :anchor
62
+ map_attribute "colspan", to: :colspan
63
+ map_attribute "rowspan", to: :rowspan
64
+ map_attribute "align", to: :align
65
+ map_element "artset", to: :artset
66
+ map_element "artwork", to: :artwork
67
+ map_element "dl", to: :dl
68
+ map_element "figure", to: :figure
69
+ map_element "ol", to: :ol
70
+ map_element "sourcecode", to: :sourcecode
71
+ map_element "t", to: :t
72
+ map_element "ul", to: :ul
73
+ map_element "bcp14", to: :bcp14
74
+ map_element "br", to: :br
75
+ map_element "cref", to: :cref
76
+ map_element "em", to: :em
77
+ map_element "eref", to: :eref
78
+ map_element "iref", to: :iref
79
+ map_element "relref", to: :relref
80
+ map_element "strong", to: :strong
81
+ map_element "sub", to: :sub
82
+ map_element "sup", to: :sup
83
+ map_element "tt", to: :tt
84
+ map_element "u", to: :u
85
+ map_element "xref", to: :xref
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "bcp14"
6
+ require_relative "br"
7
+ require_relative "contact"
8
+ require_relative "cref"
9
+ require_relative "em"
10
+ require_relative "eref"
11
+ require_relative "iref"
12
+ require_relative "relref"
13
+ require_relative "spanx"
14
+ require_relative "strong"
15
+ require_relative "sub"
16
+ require_relative "sup"
17
+ require_relative "tt"
18
+ require_relative "u"
19
+ require_relative "vspace"
20
+ require_relative "xref"
21
+
22
+ module Rfcxml
23
+ module V3
24
+ class List < Lutaml::Model::Serializable; end
25
+
26
+ class Text < Lutaml::Model::Serializable
27
+ attribute :content, :string
28
+ attribute :anchor, :string
29
+ attribute :pn, :string
30
+ attribute :hang_text, :string
31
+ attribute :indent, :string, default: -> { "0" }
32
+ attribute :keep_with_next, :string, default: -> { "false" }
33
+ attribute :keep_with_previous, :string, default: -> { "false" }
34
+ attribute :bcp14, Bcp14, collection: true
35
+ attribute :br, Br, collection: true
36
+ attribute :contact, Contact, collection: true
37
+ attribute :cref, Cref, collection: true
38
+ attribute :em, Em, collection: true
39
+ attribute :eref, Eref, collection: true
40
+ attribute :iref, Iref, collection: true
41
+ attribute :list, List, collection: true
42
+ attribute :relref, Relref, collection: true
43
+ attribute :spanx, Spanx, collection: true
44
+ attribute :strong, Strong, collection: true
45
+ attribute :sub, Sub, collection: true
46
+ attribute :sup, Sup, collection: true
47
+ attribute :tt, Tt, collection: true
48
+ attribute :u, U, collection: true
49
+ attribute :vspace, Vspace, collection: true
50
+ attribute :xref, Xref, collection: true
51
+
52
+ xml do
53
+ root "t", mixed: true
54
+
55
+ map_content to: :content
56
+ map_attribute "anchor", to: :anchor
57
+ map_attribute "pn", to: :pn
58
+ map_attribute "hangText", to: :hang_text
59
+ map_attribute "indent", to: :indent
60
+ map_attribute "keepWithNext", to: :keep_with_next
61
+ map_attribute "keepWithPrevious", to: :keep_with_previous
62
+ map_element "bcp14", to: :bcp14
63
+ map_element "br", to: :br
64
+ map_element "contact", to: :contact
65
+ map_element "cref", to: :cref
66
+ map_element "em", to: :em
67
+ map_element "eref", to: :eref
68
+ map_element "iref", to: :iref
69
+ map_element "list", to: :list
70
+ map_element "relref", to: :relref
71
+ map_element "spanx", to: :spanx
72
+ map_element "strong", to: :strong
73
+ map_element "sub", to: :sub
74
+ map_element "sup", to: :sup
75
+ map_element "tt", to: :tt
76
+ map_element "u", to: :u
77
+ map_element "vspace", to: :vspace
78
+ map_element "xref", to: :xref
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "c"
6
+ require_relative "name"
7
+ require_relative "postamble"
8
+ require_relative "preamble"
9
+ require_relative "ttcol"
10
+
11
+ module Rfcxml
12
+ module V3
13
+ class Texttable < Lutaml::Model::Serializable
14
+ attribute :anchor, :string
15
+ attribute :title, :string, default: -> { "" }
16
+ attribute :suppress_title, :string, default: -> { "false" }
17
+ attribute :align, :string, default: -> { "center" }
18
+ attribute :style, :string, default: -> { "full" }
19
+ attribute :name, Name
20
+ attribute :preamble, Preamble
21
+ attribute :ttcol, Ttcol, collection: true
22
+ attribute :c, C, collection: true
23
+ attribute :postamble, Postamble
24
+
25
+ xml do
26
+ root "texttable"
27
+
28
+ map_attribute "anchor", to: :anchor
29
+ map_attribute "title", to: :title
30
+ map_attribute "suppress-title", to: :suppress_title
31
+ map_attribute "align", to: :align
32
+ map_attribute "style", to: :style
33
+ map_element "name", to: :name
34
+ map_element "preamble", to: :preamble
35
+ map_element "ttcol", to: :ttcol
36
+ map_element "c", to: :c
37
+ map_element "postamble", to: :postamble
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "tr"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class Tfoot < Lutaml::Model::Serializable
10
+ attribute :anchor, :string
11
+ attribute :tr, Tr, collection: true
12
+
13
+ xml do
14
+ root "tfoot"
15
+
16
+ map_attribute "anchor", to: :anchor
17
+ map_element "tr", to: :tr
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+ require_relative "td"
5
+
6
+ module Rfcxml
7
+ module V3
8
+ class Th < Td
9
+ xml do
10
+ root "th"
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "tr"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class Thead < Lutaml::Model::Serializable
10
+ attribute :anchor, :string
11
+ attribute :tr, Tr, collection: true
12
+
13
+ xml do
14
+ root "thead"
15
+
16
+ map_attribute "anchor", to: :anchor
17
+ map_element "tr", to: :tr
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "br"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class Title < Lutaml::Model::Serializable
10
+ attribute :content, :string
11
+ attribute :abbrev, :string
12
+ attribute :ascii, :string
13
+ attribute :br, Br, collection: true
14
+
15
+ xml do
16
+ root "title"
17
+
18
+ map_content to: :content
19
+ map_attribute "abbrev", to: :abbrev
20
+ map_attribute "ascii", to: :ascii
21
+ map_element "br", to: :br
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "section"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class Toc < Lutaml::Model::Serializable
10
+ attribute :section, Section, collection: true
11
+
12
+ xml do
13
+ root "toc"
14
+
15
+ map_element "section", to: :section
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "td"
6
+ require_relative "th"
7
+
8
+ module Rfcxml
9
+ module V3
10
+ class Tr < Lutaml::Model::Serializable
11
+ attribute :anchor, :string
12
+ attribute :td, Td, collection: true
13
+ attribute :th, Th, collection: true
14
+
15
+ xml do
16
+ root "tr"
17
+
18
+ map_attribute "anchor", to: :anchor
19
+ map_element "td", to: :td
20
+ map_element "th", to: :th
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "bcp14"
6
+ require_relative "br"
7
+ require_relative "cref"
8
+ require_relative "em"
9
+ require_relative "eref"
10
+ require_relative "iref"
11
+ require_relative "relref"
12
+ require_relative "strong"
13
+ require_relative "sub"
14
+ require_relative "sup"
15
+ require_relative "xref"
16
+
17
+ module Rfcxml
18
+ module V3
19
+ class Cref < Lutaml::Model::Serializable; end
20
+
21
+ class Tt < Lutaml::Model::Serializable
22
+ attribute :content, :string
23
+ attribute :bcp14, Bcp14, collection: true
24
+ attribute :br, Br, collection: true
25
+ attribute :cref, Cref, collection: true
26
+ attribute :em, Em, collection: true
27
+ attribute :eref, Eref, collection: true
28
+ attribute :iref, Iref, collection: true
29
+ attribute :relref, Relref, collection: true
30
+ attribute :strong, Strong, collection: true
31
+ attribute :sub, Sub, collection: true
32
+ attribute :sup, Sup, collection: true
33
+ attribute :xref, Xref, collection: true
34
+
35
+ xml do
36
+ root "tt"
37
+
38
+ map_content to: :content
39
+ map_element "bcp14", to: :bcp14
40
+ map_element "br", to: :br
41
+ map_element "cref", to: :cref
42
+ map_element "em", to: :em
43
+ map_element "eref", to: :eref
44
+ map_element "iref", to: :iref
45
+ map_element "relref", to: :relref
46
+ map_element "strong", to: :strong
47
+ map_element "sub", to: :sub
48
+ map_element "sup", to: :sup
49
+ map_element "xref", to: :xref
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "cref"
6
+ require_relative "eref"
7
+ require_relative "iref"
8
+ require_relative "xref"
9
+
10
+ module Rfcxml
11
+ module V3
12
+ class Ttcol < Lutaml::Model::Serializable
13
+ attribute :content, :string
14
+ attribute :width, :string
15
+ attribute :align, :string, default: -> { "left" }
16
+ attribute :cref, Cref, collection: true
17
+ attribute :eref, Eref, collection: true
18
+ attribute :iref, Iref, collection: true
19
+ attribute :xref, Xref, collection: true
20
+
21
+ xml do
22
+ root "ttcol"
23
+
24
+ map_content to: :content
25
+ map_attribute "width", to: :width
26
+ map_attribute "align", to: :align
27
+ map_element "cref", to: :cref
28
+ map_element "eref", to: :eref
29
+ map_element "iref", to: :iref
30
+ map_element "xref", to: :xref
31
+ end
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class U < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+ attribute :anchor, :string
10
+ attribute :ascii, :string
11
+ attribute :format, :string, default: -> { "lit-name-num" }
12
+ attribute :pn, :string
13
+
14
+ xml do
15
+ root "u"
16
+
17
+ map_content to: :content
18
+ map_attribute "anchor", to: :anchor
19
+ map_attribute "ascii", to: :ascii
20
+ map_attribute "format", to: :format
21
+ map_attribute "pn", to: :pn
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Li < Lutaml::Model::Serializable; end
8
+
9
+ class Ul < Lutaml::Model::Serializable
10
+ attribute :anchor, :string
11
+ attribute :spacing, :string, default: -> { "normal" }
12
+ attribute :empty, :string, default: -> { "false" }
13
+ attribute :bare, :string, default: -> { "false" }
14
+ attribute :indent, :string, default: -> { "3" }
15
+ attribute :pn, :string
16
+ attribute :li, Li, collection: true
17
+
18
+ xml do
19
+ root "ul"
20
+
21
+ map_attribute "anchor", to: :anchor
22
+ map_attribute "spacing", to: :spacing
23
+ map_attribute "empty", to: :empty
24
+ map_attribute "bare", to: :bare
25
+ map_attribute "indent", to: :indent
26
+ map_attribute "pn", to: :pn
27
+ map_element "li", to: :li
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Uri < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+
10
+ xml do
11
+ root "uri"
12
+
13
+ map_content to: :content
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Vspace < Lutaml::Model::Serializable
8
+ attribute :blank_lines, :string, default: -> { "0" }
9
+
10
+ xml do
11
+ root "vspace"
12
+
13
+ map_attribute "blankLines", to: :blank_lines
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ class Workgroup < Lutaml::Model::Serializable
8
+ attribute :content, :string
9
+
10
+ xml do
11
+ root "workgroup"
12
+
13
+ map_content to: :content
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ require_relative "xref_text"
6
+
7
+ module Rfcxml
8
+ module V3
9
+ class Xref < Lutaml::Model::Serializable
10
+ attribute :content, :string
11
+ attribute :target, :string
12
+ attribute :pageno, :string, default: -> { "false" }
13
+ attribute :format, :string, default: -> { "default" }
14
+ attribute :derived_content, :string
15
+ attribute :section_format, :string, default: -> { "of" }
16
+ attribute :section, :string
17
+ attribute :relative, :string
18
+ attribute :derived_link, :string
19
+ include XrefText
20
+
21
+ xml do
22
+ root "xref"
23
+
24
+ map_content to: :content
25
+ map_attribute "target", to: :target
26
+ map_attribute "pageno", to: :pageno
27
+ map_attribute "format", to: :format
28
+ map_attribute "derivedContent", to: :derived_content
29
+ map_attribute "sectionFormat", to: :section_format
30
+ map_attribute "section", to: :section
31
+ map_attribute "relative", to: :relative
32
+ map_attribute "derivedLink", to: :derived_link
33
+ map_element "em", to: :em
34
+ map_element "strong", to: :strong
35
+ map_element "sub", to: :sub
36
+ map_element "sup", to: :sup
37
+ map_element "tt", to: :tt
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # require_relative "em"
4
+ # require_relative "strong"
5
+ # require_relative "sub"
6
+ # require_relative "sup"
7
+ # require_relative "tt"
8
+ require "lutaml/model"
9
+
10
+ module Rfcxml
11
+ 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
+
18
+ module XrefText
19
+ def self.included(base)
20
+ 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
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
data/lib/rfcxml/v3.rb ADDED
@@ -0,0 +1,8 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "v3/rfc"
4
+
5
+ module Rfcxml
6
+ module V3
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Rfcxml
4
+ VERSION = "0.2.0"
5
+ end
data/lib/rfcxml.rb ADDED
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "lutaml/model"
4
+
5
+ Lutaml::Model::Config.configure do |config|
6
+ require "lutaml/model/xml_adapter/nokogiri_adapter"
7
+ config.xml_adapter = Lutaml::Model::XmlAdapter::NokogiriAdapter
8
+ end
9
+
10
+ module Rfcxml
11
+ class Error < StandardError; end
12
+
13
+ # Your code goes here...
14
+ end
15
+
16
+ require_relative "rfcxml/version"
17
+ require_relative "rfcxml/v3"