relaton-oasis 1.16.2 → 1.18.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 186697624e16817571af23ec1665efd8a562bbba0c9b980ab3068b1d7dfb24e6
4
- data.tar.gz: 327389bf02d3f0ba84ce42ae08f9473215305c9ca72017ca80cc0bc39c64ed20
3
+ metadata.gz: 7af584f19a16f6f912b1242faab1684145903c6692e296dcfb22a8d447ec4111
4
+ data.tar.gz: 9cbcfa115749c4b3437d8779b1e629d9091626c63bb0acee052e477eb90bc8bb
5
5
  SHA512:
6
- metadata.gz: 44148f1ebdc5e14d6ab59323192415e37f6d812df9147d0fb3fb9b73aab0a35cd65e59077c17ef3ffca684840e909df07975ebfe596bef5885e729a4814b5107
7
- data.tar.gz: f9cf5995c54f4d0a086f523ed018857a38459c60667df2065fc6c5cd8e74e2d85a0c0b4c7c404d05161197c59734540dfe456aac91c48f0b5be52ef105efa569
6
+ metadata.gz: 1e16bd7e46e2b93ae7302d8a05e440dd16aa546eca389424f14f316bea536ac4ce99fdb73bac4d3ddf0ec1041f84cedd0e17eec26216157d4b0619dfee6ee86f
7
+ data.tar.gz: e7d0d75e90aea7b43ad3c16f02ac2656cdcca891ad935629ed1a3c68b88fc3b3a864426c744185c15ab9999ae55397d13af1b363485a4fd587aa98b04cf9a0ee
@@ -10,4 +10,4 @@ on:
10
10
 
11
11
  jobs:
12
12
  rake:
13
- uses: relaton/support/.github/workflows/rake.yml@master
13
+ uses: relaton/support/.github/workflows/rake.yml@main
@@ -17,7 +17,7 @@ on:
17
17
 
18
18
  jobs:
19
19
  release:
20
- uses: relaton/support/.github/workflows/release.yml@master
20
+ uses: relaton/support/.github/workflows/release.yml@main
21
21
  with:
22
22
  next_version: ${{ github.event.inputs.next_version }}
23
23
  secrets:
data/README.adoc CHANGED
@@ -62,7 +62,7 @@ item = RelatonOasis::OasisBibliography.get "OASIS amqp-core"
62
62
  [source,ruby]
63
63
  ----
64
64
  item.to_xml
65
- => "<bibitem id="OASISamqp-core" type="standard" schema-version="v1.2.4">
65
+ => "<bibitem id="OASISamqp-core" type="standard" schema-version="v1.2.8">
66
66
  <fetched>2022-12-05</fetched>
67
67
  <title type="main" format="text/plain" language="en" script="Latn">Advanced Message Queueing Protocol (AMQP) v1.0</title>
68
68
  <docidentifier type="OASIS" primary="true">OASIS amqp-core</docidentifier>
@@ -75,7 +75,7 @@ With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and add
75
75
  [source,ruby]
76
76
  ----
77
77
  item.to_xml bibdata: true
78
- => "<bibdata type="standard" schema-version="v1.2.4">
78
+ => "<bibdata type="standard" schema-version="v1.2.8">
79
79
  <fetched>2022-12-05</fetched>
80
80
  <title type="main" format="text/plain" language="en" script="Latn">Advanced Message Queueing Protocol (AMQP) v1.0</title>
81
81
  <docidentifier type="OASIS" primary="true">OASIS amqp-core</docidentifier>
@@ -121,7 +121,7 @@ RelatonOasis::XMLParser.from_xml File.read("spec/fixtures/oasis_bibdata.xml")
121
121
  [source,ruby]
122
122
  ----
123
123
  hash = YAML.load_file "spec/fixtures/oasis_bibdata.yaml"
124
- => {"schema-version"=>"v1.2.4",
124
+ => {"schema-version"=>"v1.2.8",
125
125
  "id"=>"OASISamqp-core",
126
126
  ...
127
127
 
@@ -95,8 +95,89 @@
95
95
  <ref name="pagebreak"/>
96
96
  <ref name="hr"/>
97
97
  <ref name="bookmark"/>
98
+ <ref name="amend"/>
98
99
  </choice>
99
100
  </define>
101
+ <define name="amend">
102
+ <element name="amend">
103
+ <ref name="AmendType"/>
104
+ </element>
105
+ </define>
106
+ <define name="AmendType">
107
+ <optional>
108
+ <attribute name="id">
109
+ <data type="ID"/>
110
+ </attribute>
111
+ </optional>
112
+ <attribute name="change">
113
+ <choice>
114
+ <value>add</value>
115
+ <value>modify</value>
116
+ <value>delete</value>
117
+ <value>replace</value>
118
+ </choice>
119
+ </attribute>
120
+ <optional>
121
+ <attribute name="path"/>
122
+ </optional>
123
+ <optional>
124
+ <attribute name="path_end"/>
125
+ </optional>
126
+ <optional>
127
+ <attribute name="title"/>
128
+ </optional>
129
+ <optional>
130
+ <element name="location">
131
+ <zeroOrMore>
132
+ <choice>
133
+ <ref name="locality"/>
134
+ <ref name="localityStack"/>
135
+ </choice>
136
+ </zeroOrMore>
137
+ </element>
138
+ </optional>
139
+ <optional>
140
+ <element name="description">
141
+ <zeroOrMore>
142
+ <ref name="BasicBlock"/>
143
+ </zeroOrMore>
144
+ </element>
145
+ </optional>
146
+ <optional>
147
+ <element name="newcontent">
148
+ <optional>
149
+ <attribute name="id">
150
+ <data type="ID"/>
151
+ </attribute>
152
+ </optional>
153
+ <zeroOrMore>
154
+ <ref name="BasicBlock"/>
155
+ </zeroOrMore>
156
+ </element>
157
+ </optional>
158
+ <zeroOrMore>
159
+ <ref name="classification"/>
160
+ </zeroOrMore>
161
+ <zeroOrMore>
162
+ <ref name="contributor"/>
163
+ </zeroOrMore>
164
+ </define>
165
+ <define name="classification">
166
+ <element name="classification">
167
+ <ref name="classification_tag"/>
168
+ <ref name="classification_value"/>
169
+ </element>
170
+ </define>
171
+ <define name="classification_tag">
172
+ <element name="tag">
173
+ <text/>
174
+ </element>
175
+ </define>
176
+ <define name="classification_value">
177
+ <element name="value">
178
+ <text/>
179
+ </element>
180
+ </define>
100
181
  <define name="paragraph">
101
182
  <element name="p">
102
183
  <ref name="ParagraphType"/>
@@ -346,6 +427,8 @@
346
427
  <ref name="keyword"/>
347
428
  <ref name="xref"/>
348
429
  <ref name="hyperlink"/>
430
+ <ref name="index"/>
431
+ <ref name="index-xref"/>
349
432
  </choice>
350
433
  </oneOrMore>
351
434
  </element>
@@ -623,6 +706,8 @@
623
706
  <ref name="eref"/>
624
707
  <ref name="xref"/>
625
708
  <ref name="hyperlink"/>
709
+ <ref name="index"/>
710
+ <ref name="index-xref"/>
626
711
  </choice>
627
712
  </zeroOrMore>
628
713
  </element>
@@ -636,6 +721,8 @@
636
721
  <ref name="eref"/>
637
722
  <ref name="xref"/>
638
723
  <ref name="hyperlink"/>
724
+ <ref name="index"/>
725
+ <ref name="index-xref"/>
639
726
  </choice>
640
727
  </zeroOrMore>
641
728
  </element>
@@ -648,6 +735,8 @@
648
735
  <ref name="eref"/>
649
736
  <ref name="xref"/>
650
737
  <ref name="hyperlink"/>
738
+ <ref name="index"/>
739
+ <ref name="index-xref"/>
651
740
  </choice>
652
741
  </zeroOrMore>
653
742
  </element>
@@ -655,7 +744,11 @@
655
744
  <define name="keyword">
656
745
  <element name="keyword">
657
746
  <zeroOrMore>
658
- <ref name="PureTextElement"/>
747
+ <choice>
748
+ <ref name="PureTextElement"/>
749
+ <ref name="index"/>
750
+ <ref name="index-xref"/>
751
+ </choice>
659
752
  </zeroOrMore>
660
753
  </element>
661
754
  </define>
@@ -676,7 +769,11 @@
676
769
  <define name="strike">
677
770
  <element name="strike">
678
771
  <zeroOrMore>
679
- <ref name="PureTextElement"/>
772
+ <choice>
773
+ <ref name="PureTextElement"/>
774
+ <ref name="index"/>
775
+ <ref name="index-xref"/>
776
+ </choice>
680
777
  </zeroOrMore>
681
778
  </element>
682
779
  </define>
@@ -699,27 +796,36 @@
699
796
  </define>
700
797
  <define name="ruby">
701
798
  <element name="ruby">
702
- <zeroOrMore>
703
- <choice>
704
- <ref name="PureTextElement"/>
705
- <ref name="rp"/>
706
- <ref name="rt"/>
707
- </choice>
708
- </zeroOrMore>
799
+ <choice>
800
+ <ref name="ruby_pronunciation"/>
801
+ <ref name="ruby_annotation"/>
802
+ </choice>
803
+ <choice>
804
+ <text/>
805
+ <ref name="ruby"/>
806
+ </choice>
709
807
  </element>
710
808
  </define>
711
- <define name="rp">
712
- <element name="rp">
713
- <zeroOrMore>
714
- <ref name="PureTextElement"/>
715
- </zeroOrMore>
809
+ <define name="ruby_pronunciation">
810
+ <element name="pronunciation">
811
+ <attribute name="value"/>
812
+ <optional>
813
+ <attribute name="script"/>
814
+ </optional>
815
+ <optional>
816
+ <attribute name="lang"/>
817
+ </optional>
716
818
  </element>
717
819
  </define>
718
- <define name="rt">
719
- <element name="rt">
720
- <zeroOrMore>
721
- <ref name="PureTextElement"/>
722
- </zeroOrMore>
820
+ <define name="ruby_annotation">
821
+ <element name="annotation">
822
+ <attribute name="value"/>
823
+ <optional>
824
+ <attribute name="script"/>
825
+ </optional>
826
+ <optional>
827
+ <attribute name="lang"/>
828
+ </optional>
723
829
  </element>
724
830
  </define>
725
831
  <define name="br">
@@ -898,44 +1004,49 @@
898
1004
  -->
899
1005
  <define name="image">
900
1006
  <element name="image">
901
- <attribute name="id">
902
- <data type="ID"/>
1007
+ <ref name="Image"/>
1008
+ </element>
1009
+ </define>
1010
+ <define name="Image">
1011
+ <attribute name="id">
1012
+ <data type="ID"/>
1013
+ </attribute>
1014
+ <attribute name="src">
1015
+ <data type="anyURI"/>
1016
+ </attribute>
1017
+ <attribute name="mimetype"/>
1018
+ <optional>
1019
+ <attribute name="filename"/>
1020
+ </optional>
1021
+ <optional>
1022
+ <attribute name="width">
1023
+ <ref name="ImageSize"/>
903
1024
  </attribute>
904
- <attribute name="src">
1025
+ </optional>
1026
+ <optional>
1027
+ <attribute name="height">
1028
+ <ref name="ImageSize"/>
1029
+ </attribute>
1030
+ </optional>
1031
+ <optional>
1032
+ <attribute name="alt"/>
1033
+ </optional>
1034
+ <optional>
1035
+ <attribute name="title"/>
1036
+ </optional>
1037
+ <optional>
1038
+ <attribute name="longdesc">
905
1039
  <data type="anyURI"/>
906
1040
  </attribute>
907
- <attribute name="mimetype"/>
908
- <optional>
909
- <attribute name="filename"/>
910
- </optional>
911
- <optional>
912
- <attribute name="width">
913
- <choice>
914
- <data type="int"/>
915
- <value>auto</value>
916
- </choice>
917
- </attribute>
918
- </optional>
919
- <optional>
920
- <attribute name="height">
921
- <choice>
922
- <data type="int"/>
923
- <value>auto</value>
924
- </choice>
925
- </attribute>
926
- </optional>
927
- <optional>
928
- <attribute name="alt"/>
929
- </optional>
930
- <optional>
931
- <attribute name="title"/>
932
- </optional>
933
- <optional>
934
- <attribute name="longdesc">
935
- <data type="anyURI"/>
936
- </attribute>
937
- </optional>
938
- </element>
1041
+ </optional>
1042
+ </define>
1043
+ <define name="ImageSize">
1044
+ <choice>
1045
+ <data type="string">
1046
+ <param name="pattern">\d+([.]\d+)?(%?)</param>
1047
+ </data>
1048
+ <value>auto</value>
1049
+ </choice>
939
1050
  </define>
940
1051
  <define name="video">
941
1052
  <element name="video">
@@ -9,11 +9,42 @@
9
9
  -->
10
10
  <include href="biblio.rng">
11
11
  <define name="BibData">
12
- <ref name="BibliographicItem"/>
12
+ <ref name="StandardBibliographicItem"/>
13
13
  <optional>
14
14
  <ref name="ext"/>
15
15
  </optional>
16
16
  </define>
17
+ <define name="docrelation">
18
+ <element name="relation">
19
+ <attribute name="type">
20
+ <ref name="DocRelationType"/>
21
+ </attribute>
22
+ <optional>
23
+ <element name="description">
24
+ <ref name="FormattedString"/>
25
+ </element>
26
+ </optional>
27
+ <element name="bibitem">
28
+ <ref name="StandardReducedBibliographicItem"/>
29
+ </element>
30
+ <choice>
31
+ <zeroOrMore>
32
+ <ref name="locality"/>
33
+ </zeroOrMore>
34
+ <zeroOrMore>
35
+ <ref name="localityStack"/>
36
+ </zeroOrMore>
37
+ </choice>
38
+ <choice>
39
+ <zeroOrMore>
40
+ <ref name="sourceLocality"/>
41
+ </zeroOrMore>
42
+ <zeroOrMore>
43
+ <ref name="sourceLocalityStack"/>
44
+ </zeroOrMore>
45
+ </choice>
46
+ </element>
47
+ </define>
17
48
  </include>
18
49
  <define name="ext">
19
50
  <element name="ext">
@@ -161,4 +192,16 @@
161
192
  </optional>
162
193
  </element>
163
194
  </define>
195
+ <define name="StandardBibliographicItem">
196
+ <ref name="BibliographicItem"/>
197
+ <zeroOrMore>
198
+ <ref name="amend"/>
199
+ </zeroOrMore>
200
+ </define>
201
+ <define name="StandardReducedBibliographicItem">
202
+ <ref name="ReducedBibliographicItem"/>
203
+ <zeroOrMore>
204
+ <ref name="amend"/>
205
+ </zeroOrMore>
206
+ </define>
164
207
  </grammar>
data/grammars/biblio.rng CHANGED
@@ -241,6 +241,9 @@
241
241
  </element>
242
242
  </define>
243
243
  <define name="FullNameType">
244
+ <optional>
245
+ <ref name="name_abbreviation"/>
246
+ </optional>
244
247
  <choice>
245
248
  <group>
246
249
  <zeroOrMore>
@@ -266,6 +269,11 @@
266
269
  <ref name="variantname"/>
267
270
  </zeroOrMore>
268
271
  </define>
272
+ <define name="name_abbreviation">
273
+ <element name="abbreviation">
274
+ <ref name="LocalizedString"/>
275
+ </element>
276
+ </define>
269
277
  <define name="prefix">
270
278
  <element name="prefix">
271
279
  <ref name="LocalizedString"/>
@@ -348,6 +356,9 @@
348
356
  <zeroOrMore>
349
357
  <ref name="contact"/>
350
358
  </zeroOrMore>
359
+ <optional>
360
+ <ref name="logo"/>
361
+ </optional>
351
362
  </element>
352
363
  </define>
353
364
  <define name="orgname">
@@ -366,6 +377,21 @@
366
377
  </choice>
367
378
  </element>
368
379
  </define>
380
+ <define name="logo">
381
+ <element name="logo">
382
+ <ref name="image"/>
383
+ </element>
384
+ </define>
385
+ <define name="depiction">
386
+ <element name="depiction">
387
+ <optional>
388
+ <attribute name="scope"/>
389
+ </optional>
390
+ <zeroOrMore>
391
+ <ref name="image"/>
392
+ </zeroOrMore>
393
+ </element>
394
+ </define>
369
395
  <define name="NameWithVariants">
370
396
  <element name="primary">
371
397
  <ref name="LocalizedString"/>
@@ -752,6 +778,9 @@
752
778
  <optional>
753
779
  <ref name="validity"/>
754
780
  </optional>
781
+ <optional>
782
+ <ref name="depiction"/>
783
+ </optional>
755
784
  </define>
756
785
  <define name="ReducedBibliographicItem">
757
786
  <optional>
@@ -849,6 +878,9 @@
849
878
  <optional>
850
879
  <ref name="validity"/>
851
880
  </optional>
881
+ <optional>
882
+ <ref name="depiction"/>
883
+ </optional>
852
884
  </define>
853
885
  <define name="btitle">
854
886
  <element name="title">
@@ -942,6 +974,7 @@
942
974
  <value>obsoleted</value>
943
975
  <value>confirmed</value>
944
976
  <value>updated</value>
977
+ <value>corrected</value>
945
978
  <value>issued</value>
946
979
  <value>transmitted</value>
947
980
  <value>copied</value>
@@ -150,16 +150,17 @@ module RelatonOasis
150
150
  #
151
151
  # Parse document type.
152
152
  #
153
- # @return [String] document type
153
+ # @return [RelatonOasis::DocumentType] document type
154
154
  #
155
155
  def parse_doctype
156
- case text
157
- when /OASIS Project Specification/, /Committee Specification/
158
- "specification"
159
- when /Technical Memorandum/ then "memorandum"
160
- when /Technical Resolution/ then "resolution"
161
- else "standard"
162
- end
156
+ type = case text
157
+ when /OASIS Project Specification/, /Committee Specification/
158
+ "specification"
159
+ when /Technical Memorandum/ then "memorandum"
160
+ when /Technical Resolution/ then "resolution"
161
+ else "standard"
162
+ end
163
+ DocumentType.new(type: type)
163
164
  end
164
165
 
165
166
  #
@@ -0,0 +1,16 @@
1
+ module RelatonOasis
2
+ class DocumentType < RelatonBib::DocumentType
3
+ DCTYPES = %w[specification memorandum resolution standard].freeze
4
+
5
+ def initialize(type:, abbreviation: nil)
6
+ chceck_type type
7
+ super
8
+ end
9
+
10
+ def chceck_type(type)
11
+ unless DCTYPES.include? type
12
+ Util.warn "WARNING: invalid doctype: `#{type}`"
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,15 +1,20 @@
1
1
  module RelatonOasis
2
- class HashConverter < RelatonBib::HashConverter
2
+ module HashConverter
3
+ include RelatonBib::HashConverter
4
+ extend self
5
+
3
6
  @@acronyms = nil
4
7
 
5
- class << self
6
- private
8
+ private
9
+
10
+ # @param item_hash [Hash]
11
+ # @return [RelatonBib::BibliographicItem]
12
+ def bib_item(item_hash)
13
+ OasisBibliographicItem.new(**item_hash)
14
+ end
7
15
 
8
- # @param item_hash [Hash]
9
- # @return [RelatonBib::BibliographicItem]
10
- def bib_item(item_hash)
11
- OasisBibliographicItem.new(**item_hash)
12
- end
16
+ def create_doctype(**args)
17
+ DocumentType.new(**args)
13
18
  end
14
19
  end
15
20
  end
@@ -53,11 +53,11 @@ module RelatonOasis
53
53
  #
54
54
  # @return [String] XML representation of bibliographic item
55
55
  #
56
- def to_xml(**opts)
56
+ def to_xml(**opts) # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity
57
57
  super(**opts) do |b|
58
58
  if opts[:bibdata] && technology_area.any?
59
59
  ext = b.ext do
60
- b.doctype doctype if doctype
60
+ doctype&.to_xml b
61
61
  editorialgroup&.to_xml b
62
62
  technology_area.each { |ta| b.send :"technology-area", ta }
63
63
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RelatonOasis
4
- VERSION = "1.16.2"
4
+ VERSION = "1.18.0"
5
5
  end
data/lib/relaton_oasis.rb CHANGED
@@ -6,6 +6,7 @@ require "relaton_bib"
6
6
  require_relative "relaton_oasis/version"
7
7
  require_relative "relaton_oasis/config"
8
8
  require_relative "relaton_oasis/util"
9
+ require_relative "relaton_oasis/document_type"
9
10
  require_relative "relaton_oasis/oasis_bibliographic_item"
10
11
  require_relative "relaton_oasis/xml_parser"
11
12
  require_relative "relaton_oasis/hash_converter"
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
33
33
 
34
34
  spec.add_dependency "mechanize", "~> 2.8.0"
35
35
  spec.add_dependency "multi_json", "~> 1.15.0"
36
- spec.add_dependency "relaton-bib", "~> 1.16.0"
36
+ spec.add_dependency "relaton-bib", "~> 1.18.0"
37
37
  spec.add_dependency "relaton-index", "~> 0.2.0"
38
38
 
39
39
  # For more information and examples about making a new gem, checkout our
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-oasis
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.16.2
4
+ version: 1.18.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: 2023-10-18 00:00:00.000000000 Z
11
+ date: 2024-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mechanize
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 1.16.0
47
+ version: 1.18.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 1.16.0
54
+ version: 1.18.0
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: relaton-index
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -97,6 +97,7 @@ files:
97
97
  - lib/relaton_oasis/data_parser.rb
98
98
  - lib/relaton_oasis/data_parser_utils.rb
99
99
  - lib/relaton_oasis/data_part_parser.rb
100
+ - lib/relaton_oasis/document_type.rb
100
101
  - lib/relaton_oasis/hash_converter.rb
101
102
  - lib/relaton_oasis/index.rb
102
103
  - lib/relaton_oasis/oasis_bibliographic_item.rb