relaton-iso-bib 1.13.0 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +0 -1
- data/.github/workflows/release.yml +22 -0
- data/README.adoc +227 -243
- data/grammars/basicdoc.rng +3 -27
- data/grammars/biblio-standoc.rng +164 -0
- data/grammars/biblio.rng +82 -19
- data/grammars/relaton-iso-compile.rng +11 -0
- data/grammars/relaton-iso.rng +225 -0
- data/lib/relaton_iso_bib/editorial_group.rb +2 -2
- data/lib/relaton_iso_bib/iso_bibliographic_item.rb +32 -11
- data/lib/relaton_iso_bib/version.rb +1 -1
- data/relaton_iso_bib.gemspec +1 -1
- metadata +8 -7
- data/grammars/isodoc.rng +0 -2807
- data/grammars/isostandard.rng +0 -514
- data/grammars/reqt.rng +0 -223
@@ -21,7 +21,7 @@ end
|
|
21
21
|
module RelatonIsoBib
|
22
22
|
# Bibliographic item.
|
23
23
|
class IsoBibliographicItem < RelatonBib::BibliographicItem
|
24
|
-
|
24
|
+
DOCTYPES = %w[
|
25
25
|
international-standard technical-specification technical-report
|
26
26
|
publicly-available-specification international-workshop-agreement guide
|
27
27
|
amendment technical-corrigendum directive
|
@@ -133,17 +133,16 @@ module RelatonIsoBib
|
|
133
133
|
def initialize(**args)
|
134
134
|
check_doctype args[:doctype]
|
135
135
|
|
136
|
+
args[:type] ||= "standard"
|
136
137
|
arg_names = %i[
|
137
138
|
id title docnumber language script docstatus date abstract contributor
|
138
139
|
edition version relation biblionote series medium place copyright link
|
139
140
|
fetched docid formattedref extent accesslocation classification validity
|
140
|
-
editorialgroup doctype keyword
|
141
|
+
editorialgroup doctype keyword type
|
141
142
|
]
|
142
143
|
super_args = args.select { |k| arg_names.include? k }
|
143
144
|
super(**super_args)
|
144
145
|
|
145
|
-
@type = args[:type] || "standard"
|
146
|
-
|
147
146
|
if args[:editorialgroup]
|
148
147
|
@editorialgroup = if args[:editorialgroup].is_a?(Hash)
|
149
148
|
EditorialGroup.new(**args[:editorialgroup])
|
@@ -162,16 +161,31 @@ module RelatonIsoBib
|
|
162
161
|
@id_attribute = true
|
163
162
|
end
|
164
163
|
|
165
|
-
#
|
164
|
+
#
|
165
|
+
# Fetch the flavour schema version
|
166
|
+
#
|
167
|
+
# @return [String] flavour schema version
|
168
|
+
#
|
169
|
+
def ext_schema
|
170
|
+
@ext_schema ||= schema_versions["relaton-model-iso"]
|
171
|
+
end
|
172
|
+
|
173
|
+
#
|
174
|
+
# Render the document as an XML string.
|
175
|
+
#
|
176
|
+
# @param opts [Hash] options
|
166
177
|
# @option opts [Nokogiri::XML::Builder] :builder XML builder
|
167
|
-
# @option opts [Boolean] :bibdata
|
178
|
+
# @option opts [Boolean] :bibdata if true, bibdata element is created
|
179
|
+
# @option opts [Boolean] :embedded if true the document is embedded in another document
|
168
180
|
# @option opts [String] :lang language
|
181
|
+
#
|
169
182
|
# @return [String] XML
|
183
|
+
#
|
170
184
|
def to_xml(**opts)
|
171
185
|
super(**opts) do |b|
|
172
186
|
if block_given? then yield b
|
173
187
|
elsif opts[:bibdata] && has_ext_attrs?
|
174
|
-
b.ext do
|
188
|
+
ext = b.ext do
|
175
189
|
b.doctype doctype if doctype
|
176
190
|
b.subdoctype subdoctype if subdoctype
|
177
191
|
b.horizontal horizontal unless horizontal.nil?
|
@@ -180,6 +194,7 @@ module RelatonIsoBib
|
|
180
194
|
structuredidentifier&.to_xml b
|
181
195
|
b.stagename stagename if stagename
|
182
196
|
end
|
197
|
+
ext["schema-version"] = ext_schema unless opts[:embedded]
|
183
198
|
end
|
184
199
|
end
|
185
200
|
end
|
@@ -187,8 +202,14 @@ module RelatonIsoBib
|
|
187
202
|
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
188
203
|
# rubocop:enable Metrics/AbcSize, Metrics/MethodLength
|
189
204
|
|
190
|
-
#
|
191
|
-
|
205
|
+
#
|
206
|
+
# Render the document as HASH
|
207
|
+
#
|
208
|
+
# @param embedded [Boolean] true if the bibitem is embedded in another bibitem
|
209
|
+
#
|
210
|
+
# @return [Hash] the document as HAS
|
211
|
+
#
|
212
|
+
def to_hash(embedded: false)
|
192
213
|
hash = super
|
193
214
|
hash["horizontal"] = horizontal unless horizontal.nil?
|
194
215
|
hash["stagename"] = stagename if stagename
|
@@ -209,9 +230,9 @@ module RelatonIsoBib
|
|
209
230
|
# @param doctype [String]
|
210
231
|
# @raise ArgumentError
|
211
232
|
def check_doctype(doctype)
|
212
|
-
if doctype && !self.class::
|
233
|
+
if doctype && !self.class::DOCTYPES.include?(doctype)
|
213
234
|
warn "[relaton-iso-bib] WARNING: invalid doctype: #{doctype}"
|
214
|
-
warn "[relaton-iso-bib] Allowed doctypes are: #{self.class::
|
235
|
+
warn "[relaton-iso-bib] Allowed doctypes are: #{self.class::DOCTYPES.join(', ')}"
|
215
236
|
end
|
216
237
|
end
|
217
238
|
|
data/relaton_iso_bib.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-iso-bib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.14.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: 2022-
|
11
|
+
date: 2022-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: equivalent-xml
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
117
|
+
version: 1.14.0
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.
|
124
|
+
version: 1.14.0
|
125
125
|
description: 'RelatonIsoBib: Ruby ISOXMLDOC impementation.'
|
126
126
|
email:
|
127
127
|
- open.source@ribose.com
|
@@ -130,6 +130,7 @@ extensions: []
|
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- ".github/workflows/rake.yml"
|
133
|
+
- ".github/workflows/release.yml"
|
133
134
|
- ".gitignore"
|
134
135
|
- ".rspec"
|
135
136
|
- ".rubocop.yml"
|
@@ -141,10 +142,10 @@ files:
|
|
141
142
|
- bin/rspec
|
142
143
|
- bin/setup
|
143
144
|
- grammars/basicdoc.rng
|
145
|
+
- grammars/biblio-standoc.rng
|
144
146
|
- grammars/biblio.rng
|
145
|
-
- grammars/
|
146
|
-
- grammars/
|
147
|
-
- grammars/reqt.rng
|
147
|
+
- grammars/relaton-iso-compile.rng
|
148
|
+
- grammars/relaton-iso.rng
|
148
149
|
- lib/relaton_iso_bib.rb
|
149
150
|
- lib/relaton_iso_bib/editorial_group.rb
|
150
151
|
- lib/relaton_iso_bib/hash_converter.rb
|