metanorma-standoc 1.0.14 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 644ddfc0c5ac5fae5afc94f5dbdfaae98e652bff498bc93babb5cba3852c0141
4
- data.tar.gz: cb00da517ce5f359f348d57fee37cffc8b2148250ae6c4557ef192c1b779b865
3
+ metadata.gz: ade6c1c0ec2ee0ab99b2442458300ff20d4ff4f54852d27555c12102325bde55
4
+ data.tar.gz: 8438c7af3cdb3950dfef74a6834a5110dd6fdb64b8919b491f1e0c3899ced318
5
5
  SHA512:
6
- metadata.gz: 44cbc66e4d6e477aef83073e733c783461e0041b3ea4c80db24d491407716e7557814a1bf3e3acc8398d82dd778c43b2c8ff796c289ea95fb4163e98bcbdcc8d
7
- data.tar.gz: dcc8047577538f25d37a6a81a73e2d78ef3fd53925489500dc72d26682fcf7bd790c419b2a1158944ff40a1ffd6792a0e39fa14c739ed4c045db536850d95404
6
+ metadata.gz: 5d4932ccc12e249099226f62fccfd08e116d362c1b0b045e758325db52fa0f2425ffa8b197d106cd4fcb4d7b28ba8a1fcacaacba5cc69be2391e74ced1b3ecac
7
+ data.tar.gz: 8eda800af76b44522d194711cc5272387b8e1c996713db8c54ff1a0dbbad86b229b9cd1feb3139c45cbbfec326d92503eb51fea857c007958588aaf36cc67e2c
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- metanorma-standoc (1.0.14)
4
+ metanorma-standoc (1.1.0)
5
5
  asciidoctor (~> 1.5.7)
6
6
  concurrent-ruby
7
7
  iev (~> 0.2.0)
data/README.adoc CHANGED
@@ -1,7 +1,7 @@
1
1
  = Metanorma-standoc
2
2
 
3
3
  image:https://img.shields.io/gem/v/metanorma-standoc.svg["Gem Version", link="https://rubygems.org/gems/metanorma-standoc"]
4
- image:https://img.shields.io/travis/riboseinc/metanorma-standoc/master.svg["Build Status", link="https://travis-ci.org/riboseinc/metanorma-standoc"]
4
+ image:https://img.shields.io/travis/riboseinc/metanorma-standoc/master.svg["Build Status", link="https://travis-ci.com/riboseinc/metanorma-standoc"]
5
5
  image:https://codeclimate.com/github/riboseinc/metanorma-standoc/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/riboseinc/metanorma-standoc"]
6
6
 
7
7
  WARNING: This gem is still under development.
@@ -586,6 +586,21 @@ the document was issued
586
586
 
587
587
  `:technical-committee:`:: The name of the relevant technical committee
588
588
 
589
+ `:fullname{_i}:`:: The full name of a person who is a contributor to the document.
590
+ A second person is indicated by using a numeric suffix: `:fullname:`, `:fullname_2:`, `fullname_3:`, &c.
591
+ (This and the other personal name attributes are not displayed in all standards.)
592
+
593
+ `:surname{_i}:`:: The surname of a person who is a contributor to the document.
594
+ `:givenname{_i}:`:: The given name(s) of a person who is a contributor to the document.
595
+ `:initials{_i}:`:: The initials(s) of a person who is a contributor to the document.
596
+ `:role{_i}:`:: The role of a a person who is a contributor to the document. By default,
597
+ they are coded as an `editor`; they can also be represented as an `author`.
598
+ `:affiliation{_i}:`:: The organisational affiliation of a person who is a contributor to the document.
599
+ `:address{_i}:`:: The organisational address of a person who is a contributor to the document.
600
+ `:contributor-uri{_i}:`:: The URI of a person who is a contributor to the document.
601
+ `:email{_i}:`:: The email of a person who is a contributor to the document.
602
+
603
+
589
604
  `:draft:`:: The document draft (used in addition to document stage, for multiple iterations: expected format _X.Y_)
590
605
 
591
606
  `:issued-date:`::
@@ -286,18 +286,23 @@
286
286
  </define>
287
287
  <define name="address">
288
288
  <element name="address">
289
- <oneOrMore>
289
+ <choice>
290
290
  <!-- iso191606 TODO -->
291
- <ref name="street"/>
292
- </oneOrMore>
293
- <ref name="city"/>
294
- <optional>
295
- <ref name="state"/>
296
- </optional>
297
- <ref name="country"/>
298
- <optional>
299
- <ref name="postcode"/>
300
- </optional>
291
+ <group>
292
+ <oneOrMore>
293
+ <ref name="street"/>
294
+ </oneOrMore>
295
+ <ref name="city"/>
296
+ <optional>
297
+ <ref name="state"/>
298
+ </optional>
299
+ <ref name="country"/>
300
+ <optional>
301
+ <ref name="postcode"/>
302
+ </optional>
303
+ </group>
304
+ <ref name="formattedAddress"/>
305
+ </choice>
301
306
  </element>
302
307
  </define>
303
308
  <define name="street">
@@ -325,6 +330,11 @@
325
330
  <text/>
326
331
  </element>
327
332
  </define>
333
+ <define name="formattedAddress">
334
+ <element name="formattedAddress">
335
+ <text/>
336
+ </element>
337
+ </define>
328
338
  <define name="person-identifier">
329
339
  <element name="identifier">
330
340
  <attribute name="type">
@@ -127,7 +127,7 @@ module Asciidoctor
127
127
  def datauri(uri)
128
128
  types = MIME::Types.type_for(@localdir + uri)
129
129
  type = types ? types.first.to_s : 'text/plain; charset="utf-8"'
130
- bin = File.read(@localdir + uri, encoding: "utf-8")
130
+ bin = File.open(@localdir + uri, 'rb') {|io| io.read}
131
131
  data = Base64.strict_encode64(bin)
132
132
  "data:#{type};base64,#{data}"
133
133
  end
@@ -44,13 +44,56 @@ module Asciidoctor
44
44
  end
45
45
 
46
46
  def metadata_author(node, xml)
47
- publishers = node.attr("publisher") || return
47
+ publishers = node.attr("publisher") || ""
48
48
  publishers.split(/,[ ]?/).each do |p|
49
49
  xml.contributor do |c|
50
50
  c.role **{ type: "author" }
51
51
  c.organization { |a| organization(a, p) }
52
52
  end
53
53
  end
54
+ personal_author(node, xml)
55
+ end
56
+
57
+ def personal_author(node, xml)
58
+ if node.attr("fullname") || node.attr("surname")
59
+ personal_author1(node, xml, "")
60
+ end
61
+ i = 2
62
+ while node.attr("fullname_#{i}") || node.attr("surname_#{i}")
63
+ personal_author1(node, xml, "_#{i}")
64
+ i += 1
65
+ end
66
+ end
67
+
68
+ def personal_author1(node, xml, suffix)
69
+ xml.contributor do |c|
70
+ c.role **{ type: node.attr("role#{suffix}")&.downcase || "author" }
71
+ c.person do |p|
72
+ p.name do |n|
73
+ if node.attr("fullname#{suffix}")
74
+ n.completename node.attr("fullname#{suffix}")
75
+ else
76
+ n.forename node.attr("givenname#{suffix}")
77
+ n.initial node.attr("initials#{suffix}")
78
+ n.surname node.attr("surname#{suffix}")
79
+ end
80
+ end
81
+ node.attr("affiliation#{suffix}") and p.affiliation do |a|
82
+ a.org do |o|
83
+ o.name node.attr("affiliation#{suffix}")
84
+ node.attr("address#{suffix}") and o.contact do |c|
85
+ c.address do |ad|
86
+ ad.formattedAddress node.attr("address#{suffix}")
87
+ end
88
+ end
89
+ end
90
+ end
91
+ node.attr("email#{suffix}") and p.contact do |c|
92
+ c.email node.attr("email#{suffix}")
93
+ end
94
+ node.attr("contributor-uri#{suffix}") and p.uri node.attr("contributor-uri#{suffix}")
95
+ end
96
+ end
54
97
  end
55
98
 
56
99
  def metadata_publisher(node, xml)
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Standoc
3
- VERSION = "1.0.14".freeze
3
+ VERSION = "1.1.0".freeze
4
4
  end
5
5
  end
@@ -82,6 +82,19 @@ RSpec.describe Asciidoctor::Standoc do
82
82
  :language: en
83
83
  :title: Main Title -- Title
84
84
  :library-ics: 1,2,3
85
+ :fullname: Fred Flintstone
86
+ :role: author
87
+ :affiliation: Slate Rock and Gravel Company
88
+ :address: 6 Rubble Way, Bedrock
89
+ :contributor-uri: http://slate.example.com
90
+ :surname_2: Rubble
91
+ :givenname_2: Barney
92
+ :initials_2: B. X.
93
+ :role_2: editor
94
+ :affiliation_2: Rockhead and Quarry Cave Construction Company
95
+ :address_2: 6A Rubble Way, Bedrock
96
+ :email_2: barney@rockhead.example.com
97
+ :publisher: Hanna Barbera, Cartoon Network
85
98
  INPUT
86
99
  <?xml version="1.0" encoding="UTF-8"?>
87
100
  <standard-document xmlns="http://riboseinc.com/isoxml">
@@ -130,11 +143,90 @@ RSpec.describe Asciidoctor::Standoc do
130
143
  <revision-date>2000-01-01</revision-date>
131
144
  <draft>3.4</draft>
132
145
  </version>
146
+ <contributor>
147
+ <role type="author"/>
148
+ <organization>
149
+ <name>Hanna Barbera</name>
150
+ </organization>
151
+ </contributor>
152
+ <contributor>
153
+ <role type="author"/>
154
+ <organization>
155
+ <name>Cartoon Network</name>
156
+ </organization>
157
+ </contributor>
158
+ <contributor>
159
+ <role type="author"/>
160
+ <person>
161
+ <name>
162
+ <completename>Fred Flintstone</completename>
163
+ </name>
164
+ <affiliation>
165
+ <org>
166
+ <name>Slate Rock and Gravel Company</name>
167
+ <contact>
168
+ <address>
169
+ <formattedAddress>6 Rubble Way, Bedrock</formattedAddress>
170
+ </address>
171
+ </contact>
172
+ </org>
173
+ </affiliation>
174
+ <uri>http://slate.example.com</uri>
175
+ </person>
176
+ </contributor>
177
+ <contributor>
178
+ <role type="editor"/>
179
+ <person>
180
+ <name>
181
+ <forename>Barney</forename>
182
+ <initial>B. X.</initial>
183
+ <surname>Rubble</surname>
184
+ </name>
185
+ <affiliation>
186
+ <org>
187
+ <name>Rockhead and Quarry Cave Construction Company</name>
188
+ <contact>
189
+ <address>
190
+ <formattedAddress>6A Rubble Way, Bedrock</formattedAddress>
191
+ </address>
192
+ </contact>
193
+ </org>
194
+ </affiliation>
195
+ <contact>
196
+ <email>barney@rockhead.example.com</email>
197
+ </contact>
198
+ </person>
199
+ </contributor>
200
+ <contributor>
201
+ <role type="publisher"/>
202
+ <organization>
203
+ <name>Hanna Barbera</name>
204
+ </organization>
205
+ </contributor>
206
+ <contributor>
207
+ <role type="publisher"/>
208
+ <organization>
209
+ <name>Cartoon Network</name>
210
+ </organization>
211
+ </contributor>
133
212
  <language>en</language>
134
213
  <script>Latn</script>
135
214
  <status format="plain">published</status>
136
215
  <copyright>
137
216
  <from>2001</from>
217
+ <owner>
218
+ <organization>
219
+ <name>Hanna Barbera</name>
220
+ </organization>
221
+ </owner>
222
+ </copyright>
223
+ <copyright>
224
+ <from>2001</from>
225
+ <owner>
226
+ <organization>
227
+ <name>Cartoon Network</name>
228
+ </organization>
229
+ </owner>
138
230
  </copyright>
139
231
  <editorialgroup>
140
232
  <technical-committee number="1" type="A">TC</technical-committee>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-standoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.14
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-11 00:00:00.000000000 Z
11
+ date: 2019-01-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -339,7 +339,6 @@ files:
339
339
  - lib/asciidoctor/standoc/utils.rb
340
340
  - lib/asciidoctor/standoc/validate.rb
341
341
  - lib/asciidoctor/standoc/validate_section.rb
342
- - lib/hacks/sterile.rb
343
342
  - lib/metanorma-standoc.rb
344
343
  - lib/metanorma/standoc.rb
345
344
  - lib/metanorma/standoc/processor.rb
data/lib/hacks/sterile.rb DELETED
@@ -1,54 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- module Sterile
4
- # @private
5
- class Data
6
- def self.smart_format_rules
7
- [
8
- ["'tain't", "’tain’t"],
9
- ["'twere", "’twere"],
10
- ["'twas", "’twas"],
11
- ["'tis", "’tis"],
12
- ["'twill", "’twill"],
13
- ["'til", "’til"],
14
- ["'bout", "’bout"],
15
- ["'nuff", "’nuff"],
16
- ["'round", "’round"],
17
- ["'cause", "’cause"],
18
- ["'cos", "’cos"],
19
- ["i'm", "i’m"],
20
- ['--"', "—“"],
21
- ["--'", "—‘"],
22
- ["--", "—"],
23
- ["...", "…"],
24
- ["(tm)", "™"],
25
- ["(TM)", "™"],
26
- ["(c)", "©"],
27
- ["(r)", "®"],
28
- ["(R)", "®"],
29
- [/\'(\d\d)(?!’|\')([\p{P}\p{Z}])/, "’\\1\\2"],
30
- # [/<p>"/, "<p>\\1″"],
31
- [/s\'([^a-zA-Z0-9])/, "s’\\1"],
32
- [/"([:;])/, "”\\1"],
33
- [/\'s$/, "’s"],
34
- [/\'(\d\d(?:’|\')?s)/, "’\\1"],
35
- [/(\s|\A|"|\(|\[)\'/, "\\1‘"],
36
- # [/(\d+)"/, "\\1″"],
37
- # [/(\d+)\'/, "\\1′"],
38
- [/(\S)\'([^\'\s])/, "\\1’\\2"],
39
- [/(\s|\A|\(|\[)"(?!\s)/, "\\1“\\2"],
40
- [/"(\s|\S|\Z)/, "”\\1"],
41
- [/\'([\s.]|\Z)/, "’\\1"],
42
- [/(\d+)x(\d+)/, "\\1×\\2"],
43
- [/([a-z])'(t|d|s|ll|re|ve)(\b)/i, "\\1’\\2\\3"],
44
- ]
45
- end
46
- end
47
-
48
- class << self
49
- private
50
- def smart_format_rules
51
- Data.smart_format_rules
52
- end
53
- end
54
- end