metanorma-jis 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -57,6 +57,31 @@ module Metanorma
57
57
  title_amd(node, xml, lang, at) if @amd
58
58
  end
59
59
  end
60
+
61
+ def metadata_id(node, xml)
62
+ if id = node.attr("docidentifier")
63
+ xml.docidentifier id, **attr_code(type: "JIS")
64
+ else iso_id(node, xml)
65
+ end
66
+ xml.docnumber node.attr("docnumber")
67
+ end
68
+
69
+ def iso_id(node, xml)
70
+ id = case doctype(node)
71
+ when "japanese-industrial-standard", "amendment" then "JIS"
72
+ when "technical-report" then "TR"
73
+ when "technical-specification" then "TS"
74
+ else "JIS"
75
+ end
76
+ a = node.attr("docseries") and id += " #{a}"
77
+ a = node.attr("docnumber") and id += " #{a}"
78
+ yr = iso_id_year(node)
79
+ origyr = node.attr("created-date") || yr
80
+ a = node.attr("amendment-number") and
81
+ id += ":#{origyr}/AMD #{a}"
82
+ id += ":#{yr}"
83
+ xml.docidentifier id, type: "JIS"
84
+ end
60
85
  end
61
86
  end
62
87
  end
@@ -13,7 +13,7 @@ module Metanorma
13
13
  def output_formats
14
14
  super.merge(
15
15
  html: "html",
16
- # pdf: "pdf",
16
+ pdf: "pdf",
17
17
  doc: "doc",
18
18
  )
19
19
  end
@@ -6,9 +6,6 @@
6
6
  <attribute name="schema-version"/>
7
7
  </optional>
8
8
  <ref name="doctype"/>
9
- <optional>
10
- <ref name="docsubtype"/>
11
- </optional>
12
9
  <ref name="editorialgroup"/>
13
10
  <zeroOrMore>
14
11
  <ref name="ics"/>
@@ -18,93 +15,12 @@
18
15
  <ref name="stagename"/>
19
16
  </optional>
20
17
  </define>
21
- <define name="bdate">
22
- <element name="date">
23
- <attribute name="type">
24
- <choice>
25
- <ref name="BibliographicDateType"/>
26
- <text/>
27
- </choice>
28
- </attribute>
29
- <choice>
30
- <group>
31
- <element name="from">
32
- <ref name="ISO8601Date"/>
33
- </element>
34
- <optional>
35
- <element name="to">
36
- <ref name="ISO8601Date"/>
37
- </element>
38
- </optional>
39
- </group>
40
- <element name="on">
41
- <choice>
42
- <ref name="ISO8601Date"/>
43
- <value>--</value>
44
- <value>–</value>
45
- </choice>
46
- </element>
47
- </choice>
48
- </element>
49
- </define>
50
- <define name="organization">
51
- <element name="organization">
52
- <oneOrMore>
53
- <ref name="orgname"/>
54
- </oneOrMore>
55
- <optional>
56
- <ref name="abbreviation"/>
57
- </optional>
58
- <optional>
59
- <ref name="uri"/>
60
- </optional>
61
- <zeroOrMore>
62
- <ref name="org-identifier"/>
63
- </zeroOrMore>
64
- <zeroOrMore>
65
- <ref name="contact"/>
66
- </zeroOrMore>
67
- <optional>
68
- <ref name="technical-committee"/>
69
- </optional>
70
- <optional>
71
- <ref name="subcommittee"/>
72
- </optional>
73
- <optional>
74
- <ref name="workgroup"/>
75
- </optional>
76
- <optional>
77
- <ref name="secretariat"/>
78
- </optional>
79
- </element>
80
- </define>
81
18
  <define name="DocumentType">
82
19
  <choice>
83
- <value>british-standard</value>
84
- <value>draft-for-development</value>
85
- <value>published-document</value>
86
- <value>privately-subscribed-standard</value>
87
- <value>publicly-available-specification</value>
88
- <value>flex-standard</value>
89
- <value>international-standard</value>
90
- <value>technical-specification</value>
20
+ <value>japanese-industrial-standard</value>
91
21
  <value>technical-report</value>
92
- <value>guide</value>
93
- <value>international-workshop-agreement</value>
94
- <value>industry-technical-agreement</value>
95
- <value>standard</value>
96
- <value>european-workshop-agreement</value>
97
- <value>fast-track-standard</value>
98
- <value>expert-commentary</value>
99
- </choice>
100
- </define>
101
- <define name="DocumentSubtype">
102
- <choice>
103
- <value>specification</value>
104
- <value>method-of-test</value>
105
- <value>method-of-specifying</value>
106
- <value>vocabulary</value>
107
- <value>code-of-practice</value>
22
+ <value>technical-specification</value>
23
+ <value>amendment</value>
108
24
  </choice>
109
25
  </define>
110
26
  <define name="structuredidentifier">
@@ -126,11 +42,6 @@
126
42
  </element>
127
43
  </define>
128
44
  </include>
129
- <define name="updates_document_type">
130
- <element name="updates-document-type">
131
- <ref name="DocumentType"/>
132
- </element>
133
- </define>
134
45
  <define name="ISOProjectGroup">
135
46
  <zeroOrMore>
136
47
  <ref name="agency"/>
@@ -148,21 +59,11 @@
148
59
  <ref name="secretariat"/>
149
60
  </optional>
150
61
  </define>
151
- <define name="approvalgroup">
152
- <element name="approvalgroup">
153
- <ref name="ISOProjectGroup"/>
154
- </element>
155
- </define>
156
62
  <define name="agency">
157
63
  <element name="agency">
158
64
  <text/>
159
65
  </element>
160
66
  </define>
161
- <define name="horizontal">
162
- <element name="horizontal">
163
- <data type="boolean"/>
164
- </element>
165
- </define>
166
67
  <define name="documentnumber">
167
68
  <element name="project-number">
168
69
  <optional>
@@ -221,11 +122,4 @@
221
122
  <text/>
222
123
  </element>
223
124
  </define>
224
- <define name="coverimages">
225
- <element name="coverimages">
226
- <oneOrMore>
227
- <ref name="image"/>
228
- </oneOrMore>
229
- </element>
230
- </define>
231
125
  </grammar>
@@ -0,0 +1,26 @@
1
+ module Metanorma
2
+ module JIS
3
+ class Converter < ISO::Converter
4
+ def doctype_validate(xmldoc)
5
+ doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
6
+ %w(japanese-industrial-standard technical-report
7
+ technical-specification amendment).include? doctype or
8
+ @log.add("Document Attributes", nil,
9
+ "#{doctype} is not a recognised document type")
10
+ end
11
+
12
+ def script_validate(xmldoc)
13
+ script = xmldoc&.at("//bibdata/script")&.text
14
+ %w(Jpan Latn).include?(script) or
15
+ @log.add("Document Attributes", nil,
16
+ "#{script} is not a recognised script")
17
+ end
18
+
19
+ def validate(doc)
20
+ content_validate(doc)
21
+ schema_validate(formattedstr_strip(doc.dup),
22
+ File.join(File.dirname(__FILE__), "jis.rng"))
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,6 +1,6 @@
1
1
  module Metanorma
2
2
  module JIS
3
- VERSION = "0.0.2".freeze
3
+ VERSION = "0.0.3".freeze
4
4
  end
5
5
  end
6
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-jis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-20 00:00:00.000000000 Z
11
+ date: 2023-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-iso
@@ -258,9 +258,11 @@ files:
258
258
  - lib/isodoc/jis/i18n-ja.yaml
259
259
  - lib/isodoc/jis/i18n.rb
260
260
  - lib/isodoc/jis/init.rb
261
+ - lib/isodoc/jis/jis.international-standard.xsl
261
262
  - lib/isodoc/jis/metadata.rb
262
263
  - lib/isodoc/jis/pdf_convert.rb
263
264
  - lib/isodoc/jis/presentation_xml_convert.rb
265
+ - lib/isodoc/jis/word_cleanup.rb
264
266
  - lib/isodoc/jis/word_convert.rb
265
267
  - lib/isodoc/jis/xref.rb
266
268
  - lib/metanorma-jis.rb
@@ -268,6 +270,7 @@ files:
268
270
  - lib/metanorma/jis/basicdoc.rng
269
271
  - lib/metanorma/jis/biblio-standoc.rng
270
272
  - lib/metanorma/jis/biblio.rng
273
+ - lib/metanorma/jis/cleanup.rb
271
274
  - lib/metanorma/jis/converter.rb
272
275
  - lib/metanorma/jis/front.rb
273
276
  - lib/metanorma/jis/isodoc.rng
@@ -276,6 +279,7 @@ files:
276
279
  - lib/metanorma/jis/processor.rb
277
280
  - lib/metanorma/jis/relaton-jis.rng
278
281
  - lib/metanorma/jis/reqt.rng
282
+ - lib/metanorma/jis/validate.rb
279
283
  - lib/metanorma/jis/version.rb
280
284
  - metanorma-jis.gemspec
281
285
  homepage: https://github.com/metanorma/metanorma-jis