relaton-ieee 1.1.0 → 1.5.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: a252f5c48b132561dca8f5ff3095f495c64455d349f3db3cbe0c171be5ab1c3f
4
- data.tar.gz: a6ecad35fdfd190f4146fb00209d08c49a117abd8fafc8a1ce0418824fa0831e
3
+ metadata.gz: a72cc3888d391e73d0c1ad9ac99720fae474a9274cef5977d94680ec5c9cbf7a
4
+ data.tar.gz: e0fb23a6e5c048fc92a150e8aaa2473182b03e7ffb374ca7a21847663ca65510
5
5
  SHA512:
6
- metadata.gz: 80506c976e17d33a61353b64de42aca3ac85a1ba3cd3d67033232097866d265a9ea0619f9070234ea580bfc472b3c01a5c4cc34f9d8ab7ec0c53299f4a86ff51
7
- data.tar.gz: 53c28859aa4eb6ecc11323f8f6df1a9b8a18d9ea7d3c760c50f2d583c454fbbdebbad46de6c5ba24be2c81d5eb04f625c1e1b47f3f89b550efa0a9e695f1ebcb
6
+ metadata.gz: 573ef7206baf236f7d19bb18f3cf0f4415eebd206eab52d2e994ec4a3356592d53939d00504044788a15a17888a7087994b7797a7ffdbb5160c7c0124389ee3b
7
+ data.tar.gz: 368037143bf6fed8420610bc4f48021ed5c1c947c1e906e8d08695f4aaf38b61c5ae8fdb50cc8d0e029f24076aa59a7f22002a7bef68929cd0a77a0da8024b87
@@ -5,6 +5,6 @@
5
5
  inherit_from:
6
6
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
7
  AllCops:
8
- TargetRubyVersion: 2.3
8
+ TargetRubyVersion: 2.4
9
9
  Rails:
10
- Enabled: true
10
+ Enabled: false
@@ -8,7 +8,7 @@ You can use it to retrieve metadata of IEEE Standards from standards.ieee.org, a
8
8
 
9
9
  Add this line to your application's Gemfile:
10
10
 
11
- [sourse,ruby]
11
+ [source,ruby]
12
12
  ----
13
13
  gem 'relaton-ieee'
14
14
  ----
@@ -25,35 +25,37 @@ Or install it yourself as:
25
25
 
26
26
  === Search for a standard using keywords
27
27
 
28
+ [source,ruby]
28
29
  ----
29
- > require 'relaton_ieee'
30
+ require 'relaton_ieee'
30
31
  => true
31
32
 
32
- > hits = RelatonIeee::IeeeBibliography.search("IEEE 528-2019")
33
+ hits = RelatonIeee::IeeeBibliography.search("IEEE 528-2019")
33
34
  => <RelatonIeee::HitCollection:0x007f84c0085308 @ref=IEEE 528-2019 @fetched=false>
34
35
 
35
- > item = hits[0].fetch
36
+ item = hits[0].fetch
36
37
  => #<RelatonIeee::IeeeBibliographicItem:0x007f84bf839c30
37
38
  ...
38
39
  ----
39
40
 
40
41
  === XML serialization
41
42
 
43
+ [source,ruby]
42
44
  ----
43
- > item.to_xml
44
- => "<bibitem id=\"528-2019\">
45
+ item.to_xml
46
+ => "<bibitem id="IEEE528-2019">
45
47
  <fetched>2020-06-01</fetched>
46
- <title type=\"main\" format=\"text/plain\" language=\"en\" script=\"Latn\">528-2019 - IEEE Standard for Inertial Sensor Terminology</title>
47
- <uri type=\"src\">https://standards.ieee.org/content/ieee-standards/en/standard/528-2019.html</uri>
48
- <docidentifier type=\"IEEE\">528-2019</docidentifier>
49
- <date type=\"issued\">
48
+ <title type="main" format="text/plain" language="en" script="Latn">IEEE 528-2019 - IEEE Standard for Inertial Sensor Terminology</title>
49
+ <uri type="src">https://standards.ieee.org/content/ieee-standards/en/standard/528-2019.html</uri>
50
+ <docidentifier type="IEEE">IEEE 528-2019</docidentifier>
51
+ <date type="issued">
50
52
  <on>2019</on>
51
53
  </date>
52
- <date type=\"published\">
54
+ <date type="published">
53
55
  <on>2019</on>
54
56
  </date>
55
57
  <contributor>
56
- <role type=\"author\"/>
58
+ <role type="author"/>
57
59
  <person>
58
60
  <name>
59
61
  <completename>Ashley Moran</completename>
@@ -62,7 +64,7 @@ Or install it yourself as:
62
64
  </contributor>
63
65
  <language>en</language>
64
66
  <script>Latn</script>
65
- <abstract format=\"text/plain\" language=\"en\" script=\"Latn\">Terms and definitions relating to inertial sensors are presented in this standard. Usage as understood by the inertial sensor community is given preference over general technical usage of the terms herein. The criterion for inclusion of a term and its definition in this standard is usefulness as related to inertial sensor technology.</abstract>
67
+ <abstract format="text/plain" language="en" script="Latn">Terms and definitions relating to inertial sensors are presented in this standard. Usage as understood by the inertial sensor community is given preference over general technical usage of the terms herein. The criterion for inclusion of a term and its definition in this standard is usefulness as related to inertial sensor technology.</abstract>
66
68
  <status>
67
69
  <stage>Active</stage>
68
70
  </status>
@@ -71,13 +73,14 @@ Or install it yourself as:
71
73
 
72
74
  With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and adds flavour `ext` element.
73
75
 
76
+ [source,ruby]
74
77
  ----
75
- > item.to_xml bibdata: true
78
+ item.to_xml bibdata: true
76
79
  => "<bibdata>
77
80
  <fetched>2020-06-01</fetched>
78
- <title type="main" format="text/plain" language="en" script="Latn">528-2019 - IEEE Standard for Inertial Sensor Terminology</title>
81
+ <title type="main" format="text/plain" language="en" script="Latn">IEEE 528-2019 - IEEE Standard for Inertial Sensor Terminology</title>
79
82
  <uri type="src">https://standards.ieee.org/content/ieee-standards/en/standard/528-2019.html</uri>
80
- <docidentifier type="IEEE">528-2019</docidentifier>
83
+ <docidentifier type="IEEE">IEEE 528-2019</docidentifier>
81
84
  <date type="issued">
82
85
  <on>2019</on>
83
86
  </date>
@@ -99,7 +102,7 @@ With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and add
99
102
  <stage>Active</stage>
100
103
  </status>
101
104
  <ext>
102
- <committee type="sponsor">
105
+ <committee type="standard">
103
106
  <name>AES/GA - Gyro Accelerometer Panel</name>
104
107
  </committee>
105
108
  <committee type="working">
@@ -114,20 +117,21 @@ With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and add
114
117
  ----
115
118
 
116
119
  === Get document by reference
120
+ [source,ruby]
117
121
  ----
118
- > RelatonIeee::IeeeBibliography.get("IEEE 528-2019")
122
+ RelatonIeee::IeeeBibliography.get("IEEE 528-2019")
119
123
  [relaton-ieee] ("IEEE 528-2019") fetching...
120
124
  [relaton-ieee] ("IEEE 528-2019") found 528-2019
121
125
  => #<RelatonIeee::IeeeBibliographicItem:0x007fceb52a6e40
122
126
  ...
123
127
 
124
- > RelatonIeee::IeeeBibliography.get("IEEE 528", "2019")
128
+ RelatonIeee::IeeeBibliography.get("IEEE 528", "2019")
125
129
  [relaton-ieee] ("IEEE 528") fetching...
126
130
  [relaton-ieee] ("IEEE 528") found 528-2019
127
131
  => #<RelatonIeee::IeeeBibliographicItem:0x007fceb54af7f0
128
132
  ...
129
133
 
130
- > RelatonIeee::IeeeBibliography.get("IEEE 528")
134
+ RelatonIeee::IeeeBibliography.get("IEEE 528")
131
135
  [relaton-ieee] ("IEEE 528") fetching...
132
136
  [relaton-ieee] ("IEEE 528") found 528-2019
133
137
  => #<RelatonIeee::IeeeBibliographicItem:0x007fceb512c510
@@ -135,23 +139,25 @@ With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and add
135
139
  ----
136
140
 
137
141
  === Create bibliographic item from XML
142
+ [source,ruby]
138
143
  ----
139
- > RelatonIeee::XMLParser.from_xml File.read "spec/fixtures/ieee_528_2019.xml"
144
+ RelatonIeee::XMLParser.from_xml File.read "spec/fixtures/ieee_528_2019.xml"
140
145
  => #<RelatonIeee::IeeeBibliographicItem:0x007fceb550c978
141
146
  ...
142
147
  ----
143
148
 
144
149
  === Create bibliographic item from YAML
150
+ [source,ruby]
145
151
  ----
146
- > hash = YAML.load_file 'spec/fixtures/ieee_528_2019.yaml'
152
+ hash = YAML.load_file 'spec/fixtures/ieee_528_2019.yaml'
147
153
  => {"id"=>"528-2019", "title"=>{
148
154
  ...
149
155
 
150
- > bib_hash = RelatonIeee::HashConverter.hash_to_bib hash
156
+ bib_hash = RelatonIeee::HashConverter.hash_to_bib hash
151
157
  => {:id=>"528-2019", :title=>[{
152
158
  ...
153
159
 
154
- > RelatonIeee::IeeeBibliographicItem.new bib_hash
160
+ RelatonIeee::IeeeBibliographicItem.new bib_hash
155
161
  => #<RelatonIeee::IeeeBibliographicItem:0x007fce940b3eb0
156
162
  ...
157
163
  ----
@@ -532,7 +532,7 @@
532
532
  </define>
533
533
  <define name="LocalityType">
534
534
  <data type="string">
535
- <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|locality:[a-zA-Z0-9_]+</param>
535
+ <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+</param>
536
536
  </data>
537
537
  </define>
538
538
  <define name="referenceFrom">
@@ -43,7 +43,9 @@
43
43
  <define name="xref">
44
44
  <element name="xref">
45
45
  <attribute name="target">
46
- <data type="IDREF"/>
46
+ <data type="string">
47
+ <param name="pattern">\i\c*|\c+#\c+</param>
48
+ </data>
47
49
  </attribute>
48
50
  <optional>
49
51
  <attribute name="type">
@@ -61,9 +63,93 @@
61
63
  </choice>
62
64
  </attribute>
63
65
  </optional>
66
+ <optional>
67
+ <attribute name="droploc">
68
+ <data type="boolean"/>
69
+ </attribute>
70
+ </optional>
64
71
  <text/>
65
72
  </element>
66
73
  </define>
74
+ <define name="ul">
75
+ <element name="ul">
76
+ <attribute name="id">
77
+ <data type="ID"/>
78
+ </attribute>
79
+ <optional>
80
+ <attribute name="keep-with-next">
81
+ <data type="boolean"/>
82
+ </attribute>
83
+ </optional>
84
+ <optional>
85
+ <attribute name="keep-lines-together">
86
+ <data type="boolean"/>
87
+ </attribute>
88
+ </optional>
89
+ <oneOrMore>
90
+ <ref name="li"/>
91
+ </oneOrMore>
92
+ <zeroOrMore>
93
+ <ref name="note"/>
94
+ </zeroOrMore>
95
+ </element>
96
+ </define>
97
+ <define name="ol">
98
+ <element name="ol">
99
+ <attribute name="id">
100
+ <data type="ID"/>
101
+ </attribute>
102
+ <optional>
103
+ <attribute name="keep-with-next">
104
+ <data type="boolean"/>
105
+ </attribute>
106
+ </optional>
107
+ <optional>
108
+ <attribute name="keep-lines-together">
109
+ <data type="boolean"/>
110
+ </attribute>
111
+ </optional>
112
+ <attribute name="type">
113
+ <choice>
114
+ <value>roman</value>
115
+ <value>alphabet</value>
116
+ <value>arabic</value>
117
+ <value>roman_upper</value>
118
+ <value>alphabet_upper</value>
119
+ </choice>
120
+ </attribute>
121
+ <oneOrMore>
122
+ <ref name="li"/>
123
+ </oneOrMore>
124
+ <zeroOrMore>
125
+ <ref name="note"/>
126
+ </zeroOrMore>
127
+ </element>
128
+ </define>
129
+ <define name="dl">
130
+ <element name="dl">
131
+ <attribute name="id">
132
+ <data type="ID"/>
133
+ </attribute>
134
+ <optional>
135
+ <attribute name="keep-with-next">
136
+ <data type="boolean"/>
137
+ </attribute>
138
+ </optional>
139
+ <optional>
140
+ <attribute name="keep-lines-together">
141
+ <data type="boolean"/>
142
+ </attribute>
143
+ </optional>
144
+ <oneOrMore>
145
+ <ref name="dt"/>
146
+ <ref name="dd"/>
147
+ </oneOrMore>
148
+ <zeroOrMore>
149
+ <ref name="note"/>
150
+ </zeroOrMore>
151
+ </element>
152
+ </define>
67
153
  <define name="example">
68
154
  <element name="example">
69
155
  <attribute name="id">
@@ -77,6 +163,19 @@
77
163
  <optional>
78
164
  <attribute name="subsequence"/>
79
165
  </optional>
166
+ <optional>
167
+ <attribute name="number"/>
168
+ </optional>
169
+ <optional>
170
+ <attribute name="keep-with-next">
171
+ <data type="boolean"/>
172
+ </attribute>
173
+ </optional>
174
+ <optional>
175
+ <attribute name="keep-lines-together">
176
+ <data type="boolean"/>
177
+ </attribute>
178
+ </optional>
80
179
  <optional>
81
180
  <ref name="tname"/>
82
181
  </optional>
@@ -97,6 +196,296 @@
97
196
  </zeroOrMore>
98
197
  </element>
99
198
  </define>
199
+ <define name="table">
200
+ <element name="table">
201
+ <attribute name="id">
202
+ <data type="ID"/>
203
+ </attribute>
204
+ <optional>
205
+ <attribute name="unnumbered">
206
+ <data type="boolean"/>
207
+ </attribute>
208
+ </optional>
209
+ <optional>
210
+ <attribute name="number"/>
211
+ </optional>
212
+ <optional>
213
+ <attribute name="subsequence"/>
214
+ </optional>
215
+ <optional>
216
+ <attribute name="alt"/>
217
+ </optional>
218
+ <optional>
219
+ <attribute name="summary"/>
220
+ </optional>
221
+ <optional>
222
+ <attribute name="uri">
223
+ <data type="anyURI"/>
224
+ </attribute>
225
+ </optional>
226
+ <optional>
227
+ <attribute name="keep-with-next">
228
+ <data type="boolean"/>
229
+ </attribute>
230
+ </optional>
231
+ <optional>
232
+ <attribute name="keep-lines-together">
233
+ <data type="boolean"/>
234
+ </attribute>
235
+ </optional>
236
+ <optional>
237
+ <ref name="tname"/>
238
+ </optional>
239
+ <optional>
240
+ <ref name="thead"/>
241
+ </optional>
242
+ <ref name="tbody"/>
243
+ <optional>
244
+ <ref name="tfoot"/>
245
+ </optional>
246
+ <zeroOrMore>
247
+ <ref name="table-note"/>
248
+ </zeroOrMore>
249
+ <optional>
250
+ <ref name="dl"/>
251
+ </optional>
252
+ </element>
253
+ </define>
254
+ <define name="figure">
255
+ <element name="figure">
256
+ <attribute name="id">
257
+ <data type="ID"/>
258
+ </attribute>
259
+ <optional>
260
+ <attribute name="unnumbered">
261
+ <data type="boolean"/>
262
+ </attribute>
263
+ </optional>
264
+ <optional>
265
+ <attribute name="number"/>
266
+ </optional>
267
+ <optional>
268
+ <attribute name="subsequence"/>
269
+ </optional>
270
+ <optional>
271
+ <attribute name="keep-with-next">
272
+ <data type="boolean"/>
273
+ </attribute>
274
+ </optional>
275
+ <optional>
276
+ <attribute name="keep-lines-together">
277
+ <data type="boolean"/>
278
+ </attribute>
279
+ </optional>
280
+ <optional>
281
+ <attribute name="class"/>
282
+ </optional>
283
+ <optional>
284
+ <ref name="source"/>
285
+ </optional>
286
+ <optional>
287
+ <ref name="tname"/>
288
+ </optional>
289
+ <choice>
290
+ <ref name="image"/>
291
+ <ref name="video"/>
292
+ <ref name="audio"/>
293
+ <ref name="pre"/>
294
+ <oneOrMore>
295
+ <ref name="paragraph-with-footnote"/>
296
+ </oneOrMore>
297
+ <zeroOrMore>
298
+ <ref name="figure"/>
299
+ </zeroOrMore>
300
+ </choice>
301
+ <zeroOrMore>
302
+ <ref name="fn"/>
303
+ </zeroOrMore>
304
+ <optional>
305
+ <ref name="dl"/>
306
+ </optional>
307
+ <zeroOrMore>
308
+ <ref name="note"/>
309
+ </zeroOrMore>
310
+ </element>
311
+ </define>
312
+ <define name="sourcecode">
313
+ <element name="sourcecode">
314
+ <attribute name="id">
315
+ <data type="ID"/>
316
+ </attribute>
317
+ <optional>
318
+ <attribute name="unnumbered">
319
+ <data type="boolean"/>
320
+ </attribute>
321
+ </optional>
322
+ <optional>
323
+ <attribute name="number"/>
324
+ </optional>
325
+ <optional>
326
+ <attribute name="subsequence"/>
327
+ </optional>
328
+ <optional>
329
+ <attribute name="keep-with-next">
330
+ <data type="boolean"/>
331
+ </attribute>
332
+ </optional>
333
+ <optional>
334
+ <attribute name="keep-lines-together">
335
+ <data type="boolean"/>
336
+ </attribute>
337
+ </optional>
338
+ <optional>
339
+ <attribute name="lang"/>
340
+ </optional>
341
+ <optional>
342
+ <ref name="tname"/>
343
+ </optional>
344
+ <oneOrMore>
345
+ <choice>
346
+ <text/>
347
+ <ref name="callout"/>
348
+ </choice>
349
+ </oneOrMore>
350
+ <zeroOrMore>
351
+ <ref name="annotation"/>
352
+ </zeroOrMore>
353
+ <zeroOrMore>
354
+ <ref name="note"/>
355
+ </zeroOrMore>
356
+ </element>
357
+ </define>
358
+ <define name="formula">
359
+ <element name="formula">
360
+ <attribute name="id">
361
+ <data type="ID"/>
362
+ </attribute>
363
+ <optional>
364
+ <attribute name="unnumbered">
365
+ <data type="boolean"/>
366
+ </attribute>
367
+ </optional>
368
+ <optional>
369
+ <attribute name="number"/>
370
+ </optional>
371
+ <optional>
372
+ <attribute name="subsequence"/>
373
+ </optional>
374
+ <optional>
375
+ <attribute name="keep-with-next">
376
+ <data type="boolean"/>
377
+ </attribute>
378
+ </optional>
379
+ <optional>
380
+ <attribute name="keep-lines-together">
381
+ <data type="boolean"/>
382
+ </attribute>
383
+ </optional>
384
+ <optional>
385
+ <attribute name="inequality">
386
+ <data type="boolean"/>
387
+ </attribute>
388
+ </optional>
389
+ <ref name="stem"/>
390
+ <optional>
391
+ <ref name="dl"/>
392
+ </optional>
393
+ <zeroOrMore>
394
+ <ref name="note"/>
395
+ </zeroOrMore>
396
+ </element>
397
+ </define>
398
+ <define name="ParagraphType">
399
+ <attribute name="id">
400
+ <data type="ID"/>
401
+ </attribute>
402
+ <optional>
403
+ <attribute name="align">
404
+ <ref name="Alignments"/>
405
+ </attribute>
406
+ </optional>
407
+ <optional>
408
+ <attribute name="keep-with-next">
409
+ <data type="boolean"/>
410
+ </attribute>
411
+ </optional>
412
+ <optional>
413
+ <attribute name="keep-lines-together">
414
+ <data type="boolean"/>
415
+ </attribute>
416
+ </optional>
417
+ <zeroOrMore>
418
+ <ref name="TextElement"/>
419
+ </zeroOrMore>
420
+ <zeroOrMore>
421
+ <ref name="note"/>
422
+ </zeroOrMore>
423
+ </define>
424
+ <define name="paragraph-with-footnote">
425
+ <element name="p">
426
+ <attribute name="id">
427
+ <data type="ID"/>
428
+ </attribute>
429
+ <optional>
430
+ <attribute name="align">
431
+ <ref name="Alignments"/>
432
+ </attribute>
433
+ </optional>
434
+ <optional>
435
+ <attribute name="keep-with-next">
436
+ <data type="boolean"/>
437
+ </attribute>
438
+ </optional>
439
+ <optional>
440
+ <attribute name="keep-lines-together">
441
+ <data type="boolean"/>
442
+ </attribute>
443
+ </optional>
444
+ <zeroOrMore>
445
+ <choice>
446
+ <ref name="TextElement"/>
447
+ <ref name="fn"/>
448
+ </choice>
449
+ </zeroOrMore>
450
+ <zeroOrMore>
451
+ <ref name="note"/>
452
+ </zeroOrMore>
453
+ </element>
454
+ </define>
455
+ <define name="quote">
456
+ <element name="quote">
457
+ <attribute name="id">
458
+ <data type="ID"/>
459
+ </attribute>
460
+ <optional>
461
+ <attribute name="alignment">
462
+ <ref name="Alignments"/>
463
+ </attribute>
464
+ </optional>
465
+ <optional>
466
+ <attribute name="keep-with-next">
467
+ <data type="boolean"/>
468
+ </attribute>
469
+ </optional>
470
+ <optional>
471
+ <attribute name="keep-lines-together">
472
+ <data type="boolean"/>
473
+ </attribute>
474
+ </optional>
475
+ <optional>
476
+ <ref name="quote-source"/>
477
+ </optional>
478
+ <optional>
479
+ <ref name="quote-author"/>
480
+ </optional>
481
+ <oneOrMore>
482
+ <ref name="paragraph-with-footnote"/>
483
+ </oneOrMore>
484
+ <zeroOrMore>
485
+ <ref name="note"/>
486
+ </zeroOrMore>
487
+ </element>
488
+ </define>
100
489
  <define name="BibDataExtensionType">
101
490
  <ref name="doctype"/>
102
491
  <optional>
@@ -165,6 +554,30 @@
165
554
  <attribute name="id">
166
555
  <data type="ID"/>
167
556
  </attribute>
557
+ <optional>
558
+ <attribute name="unnumbered">
559
+ <data type="boolean"/>
560
+ </attribute>
561
+ </optional>
562
+ <optional>
563
+ <attribute name="number"/>
564
+ </optional>
565
+ <optional>
566
+ <attribute name="subsequence"/>
567
+ </optional>
568
+ <optional>
569
+ <attribute name="keep-with-next">
570
+ <data type="boolean"/>
571
+ </attribute>
572
+ </optional>
573
+ <optional>
574
+ <attribute name="keep-lines-together">
575
+ <data type="boolean"/>
576
+ </attribute>
577
+ </optional>
578
+ <optional>
579
+ <attribute name="type"/>
580
+ </optional>
168
581
  <oneOrMore>
169
582
  <choice>
170
583
  <ref name="paragraph"/>
@@ -172,6 +585,8 @@
172
585
  <ref name="ol"/>
173
586
  <ref name="dl"/>
174
587
  <ref name="formula"/>
588
+ <ref name="quote"/>
589
+ <ref name="sourcecode"/>
175
590
  </choice>
176
591
  </oneOrMore>
177
592
  </element>
@@ -255,6 +670,16 @@
255
670
  </choice>
256
671
  </attribute>
257
672
  </optional>
673
+ <optional>
674
+ <attribute name="valign">
675
+ <choice>
676
+ <value>top</value>
677
+ <value>middle</value>
678
+ <value>bottom</value>
679
+ <value>baseline</value>
680
+ </choice>
681
+ </attribute>
682
+ </optional>
258
683
  <choice>
259
684
  <zeroOrMore>
260
685
  <choice>
@@ -291,6 +716,16 @@
291
716
  </choice>
292
717
  </attribute>
293
718
  </optional>
719
+ <optional>
720
+ <attribute name="valign">
721
+ <choice>
722
+ <value>top</value>
723
+ <value>middle</value>
724
+ <value>bottom</value>
725
+ <value>baseline</value>
726
+ </choice>
727
+ </attribute>
728
+ </optional>
294
729
  <choice>
295
730
  <zeroOrMore>
296
731
  <choice>
@@ -428,6 +863,13 @@
428
863
  </define>
429
864
  <define name="standard-document">
430
865
  <element name="standard-document">
866
+ <attribute name="version"/>
867
+ <attribute name="type">
868
+ <choice>
869
+ <value>semantic</value>
870
+ <value>presentation</value>
871
+ </choice>
872
+ </attribute>
431
873
  <ref name="bibdata"/>
432
874
  <optional>
433
875
  <ref name="boilerplate"/>
@@ -449,7 +891,7 @@
449
891
  <oneOrMore>
450
892
  <choice>
451
893
  <ref name="content"/>
452
- <ref name="preface_abstract"/>
894
+ <ref name="abstract"/>
453
895
  <ref name="foreword"/>
454
896
  <ref name="introduction"/>
455
897
  <ref name="acknowledgements"/>
@@ -516,6 +958,9 @@
516
958
  <optional>
517
959
  <attribute name="script"/>
518
960
  </optional>
961
+ <optional>
962
+ <attribute name="type"/>
963
+ </optional>
519
964
  <optional>
520
965
  <attribute name="obligation">
521
966
  <choice>
@@ -555,9 +1000,6 @@
555
1000
  </define>
556
1001
  <define name="content-subsection">
557
1002
  <element name="clause">
558
- <optional>
559
- <attribute name="type"/>
560
- </optional>
561
1003
  <ref name="Content-Section"/>
562
1004
  </element>
563
1005
  </define>
@@ -586,6 +1028,9 @@
586
1028
  </choice>
587
1029
  </attribute>
588
1030
  </optional>
1031
+ <optional>
1032
+ <attribute name="type"/>
1033
+ </optional>
589
1034
  <optional>
590
1035
  <ref name="section-title"/>
591
1036
  </optional>
@@ -605,9 +1050,6 @@
605
1050
  </define>
606
1051
  <define name="clause">
607
1052
  <element name="clause">
608
- <optional>
609
- <attribute name="type"/>
610
- </optional>
611
1053
  <ref name="Clause-Section"/>
612
1054
  </element>
613
1055
  </define>
@@ -636,18 +1078,24 @@
636
1078
  </choice>
637
1079
  </attribute>
638
1080
  </optional>
1081
+ <optional>
1082
+ <attribute name="type"/>
1083
+ </optional>
639
1084
  <optional>
640
1085
  <ref name="section-title"/>
641
1086
  </optional>
642
1087
  <group>
643
- <group>
644
- <zeroOrMore>
645
- <ref name="BasicBlock"/>
646
- </zeroOrMore>
647
- <zeroOrMore>
648
- <ref name="note"/>
649
- </zeroOrMore>
650
- </group>
1088
+ <choice>
1089
+ <group>
1090
+ <zeroOrMore>
1091
+ <ref name="BasicBlock"/>
1092
+ </zeroOrMore>
1093
+ <zeroOrMore>
1094
+ <ref name="note"/>
1095
+ </zeroOrMore>
1096
+ </group>
1097
+ <ref name="amend"/>
1098
+ </choice>
651
1099
  <zeroOrMore>
652
1100
  <choice>
653
1101
  <ref name="clause-subsection"/>
@@ -774,6 +1222,9 @@
774
1222
  <optional>
775
1223
  <attribute name="script"/>
776
1224
  </optional>
1225
+ <optional>
1226
+ <attribute name="type"/>
1227
+ </optional>
777
1228
  <optional>
778
1229
  <attribute name="obligation">
779
1230
  <choice>
@@ -910,6 +1361,27 @@
910
1361
  <attribute name="id">
911
1362
  <data type="ID"/>
912
1363
  </attribute>
1364
+ <optional>
1365
+ <attribute name="unnumbered">
1366
+ <data type="boolean"/>
1367
+ </attribute>
1368
+ </optional>
1369
+ <optional>
1370
+ <attribute name="number"/>
1371
+ </optional>
1372
+ <optional>
1373
+ <attribute name="subsequence"/>
1374
+ </optional>
1375
+ <optional>
1376
+ <attribute name="keep-with-next">
1377
+ <data type="boolean"/>
1378
+ </attribute>
1379
+ </optional>
1380
+ <optional>
1381
+ <attribute name="keep-lines-together">
1382
+ <data type="boolean"/>
1383
+ </attribute>
1384
+ </optional>
913
1385
  <oneOrMore>
914
1386
  <choice>
915
1387
  <ref name="paragraph"/>
@@ -1020,11 +1492,6 @@
1020
1492
  </optional>
1021
1493
  </element>
1022
1494
  </define>
1023
- <define name="preface_abstract">
1024
- <element name="abstract">
1025
- <ref name="Basic-Section"/>
1026
- </element>
1027
- </define>
1028
1495
  <define name="term-clause">
1029
1496
  <element name="clause">
1030
1497
  <optional>
@@ -1074,4 +1541,79 @@
1074
1541
  <ref name="CitationType"/>
1075
1542
  </element>
1076
1543
  </define>
1544
+ <define name="amend">
1545
+ <element name="amend">
1546
+ <optional>
1547
+ <attribute name="id">
1548
+ <data type="ID"/>
1549
+ </attribute>
1550
+ </optional>
1551
+ <attribute name="change">
1552
+ <choice>
1553
+ <value>add</value>
1554
+ <value>modify</value>
1555
+ <value>delete</value>
1556
+ </choice>
1557
+ </attribute>
1558
+ <optional>
1559
+ <attribute name="path"/>
1560
+ </optional>
1561
+ <optional>
1562
+ <attribute name="path_end"/>
1563
+ </optional>
1564
+ <optional>
1565
+ <attribute name="title"/>
1566
+ </optional>
1567
+ <optional>
1568
+ <element name="location">
1569
+ <zeroOrMore>
1570
+ <ref name="locality"/>
1571
+ </zeroOrMore>
1572
+ </element>
1573
+ </optional>
1574
+ <zeroOrMore>
1575
+ <ref name="autonumber"/>
1576
+ </zeroOrMore>
1577
+ <optional>
1578
+ <element name="description">
1579
+ <zeroOrMore>
1580
+ <ref name="BasicBlock"/>
1581
+ </zeroOrMore>
1582
+ </element>
1583
+ </optional>
1584
+ <optional>
1585
+ <element name="newcontent">
1586
+ <zeroOrMore>
1587
+ <ref name="BasicBlock"/>
1588
+ </zeroOrMore>
1589
+ </element>
1590
+ </optional>
1591
+ <optional>
1592
+ <element name="description">
1593
+ <zeroOrMore>
1594
+ <ref name="BasicBlock"/>
1595
+ </zeroOrMore>
1596
+ </element>
1597
+ </optional>
1598
+ </element>
1599
+ </define>
1600
+ <define name="autonumber">
1601
+ <element name="autonumber">
1602
+ <attribute name="type">
1603
+ <choice>
1604
+ <value>requirement</value>
1605
+ <value>recommendation</value>
1606
+ <value>permission</value>
1607
+ <value>table</value>
1608
+ <value>figure</value>
1609
+ <value>admonition</value>
1610
+ <value>formula</value>
1611
+ <value>sourcecode</value>
1612
+ <value>example</value>
1613
+ <value>note</value>
1614
+ </choice>
1615
+ </attribute>
1616
+ <text/>
1617
+ </element>
1618
+ </define>
1077
1619
  </grammar>
@@ -29,5 +29,18 @@ module RelatonIeee
29
29
  hash["chair"] = chair if chair
30
30
  hash
31
31
  end
32
+
33
+ # @param prefix [String]
34
+ # @param count [Integer]
35
+ # @return [String]
36
+ def to_asciibib(prefix, count)
37
+ pref = prefix.empty? ? prefix : prefix + "."
38
+ pref += "committee"
39
+ out = count > 1 ? "#{pref}::\n" : ""
40
+ out += "#{pref}.type:: #{type}\n"
41
+ out += "#{pref}.name:: #{name}\n"
42
+ out += "#{pref}.chair:: #{chair}\n" if chair
43
+ out
44
+ end
32
45
  end
33
46
  end
@@ -13,7 +13,7 @@ module RelatonIeee
13
13
 
14
14
  # @param ref [Strig]
15
15
  # @param opts [Hash]
16
- def initialize(ref)
16
+ def initialize(ref) # rubocop:disable Metrics/MethodLength
17
17
  super
18
18
  code = ref.sub /^IEEE\s/, ""
19
19
  search = CGI.escape({ data: { searchTerm: code } }.to_json)
@@ -21,9 +21,9 @@ module RelatonIeee
21
21
  resp = Faraday.get url
22
22
  resp_json = JSON.parse resp.body
23
23
  json = JSON.parse resp_json["message"]
24
- @array = json["response"]["searchResults"]["resultsMapList"].
25
- reduce([]) do |s, hit|
26
- /^(?<id>\d+)-(?<year>\d{4})/ =~ hit["record"]["recordTitle"]
24
+ @array = json["response"]["searchResults"]["resultsMapList"]
25
+ .reduce([]) do |s, hit|
26
+ /^(?:\w+\s)?(?<id>\d+)-(?<year>\d{4})/ =~ hit["record"]["recordTitle"]
27
27
  next s unless id && code =~ %r{^#{id}}
28
28
 
29
29
  s << Hit.new(hit["record"].merge(code: id, year: year.to_i), self)
@@ -9,10 +9,13 @@ module RelatonIeee
9
9
  super
10
10
  end
11
11
 
12
- # @param builder [Nokogiri::XML::Bilder]
13
- # @parma bibdata [TrueClass, FalseClass, NilClass]
14
- def to_xml(builder = nil, **opts)
15
- super do |bldr|
12
+ # @param opts [Hash]
13
+ # @option opts [Nokogiri::XML::Builder] :builder XML builder
14
+ # @option opts [Boolean] :bibdata
15
+ # @option opts [String] :lang language
16
+ # @return [String] XML
17
+ def to_xml(**opts)
18
+ super **opts do |bldr|
16
19
  if opts[:bibdata] && committee.any?
17
20
  bldr.ext do |b|
18
21
  committee.each { |c| c.to_xml b }
@@ -27,5 +30,13 @@ module RelatonIeee
27
30
  hash["committee"] = committee.map &:to_hash
28
31
  hash
29
32
  end
33
+
34
+ # @param prefix [String]
35
+ # @return [String]
36
+ def to_asciibib(prefix = "")
37
+ out = super
38
+ committee.each { |c| out += c.to_asciibib prefix, committee.size }
39
+ out
40
+ end
30
41
  end
31
42
  end
@@ -18,7 +18,7 @@ module RelatonIeee
18
18
  language: ["en"],
19
19
  script: ["Latn"],
20
20
  date: fetch_date(doc),
21
- committee: fetch_committee(doc),
21
+ committee: fetch_committee(doc)
22
22
  )
23
23
  end
24
24
  # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
@@ -30,7 +30,7 @@ module RelatonIeee
30
30
  def fetch_title(title)
31
31
  [
32
32
  RelatonBib::TypedTitleString.new(
33
- type: "main", content: title, language: "en", script: "Latn",
33
+ type: "main", content: title, language: "en", script: "Latn"
34
34
  ),
35
35
  ]
36
36
  end
@@ -38,7 +38,7 @@ module RelatonIeee
38
38
  # @param title [String]
39
39
  # @return [Array<RelatonBib::DocumentIdentifier>]
40
40
  def fetch_docid(title)
41
- /^(?<identifier>\S+)/ =~ title
41
+ /^(?<identifier>(?:\w+\s)?\S+)/ =~ title
42
42
  [RelatonBib::DocumentIdentifier.new(id: identifier, type: "IEEE")]
43
43
  end
44
44
 
@@ -78,7 +78,7 @@ module RelatonIeee
78
78
  # @return [Array<RelatonBib::ContributionInfo>]
79
79
  def fetch_contributor(doc)
80
80
  name = doc.at(
81
- "//td[.='IEEE Program Manager']/following-sibling::td/div/a",
81
+ "//td[.='IEEE Program Manager']/following-sibling::td/div/a"
82
82
  )
83
83
  return [] unless name
84
84
 
@@ -89,11 +89,11 @@ module RelatonIeee
89
89
  # @return [RelatonBib::ContributionInfo]
90
90
  def personn_contrib(name)
91
91
  fname = RelatonBib::FullName.new(
92
- completename: RelatonBib::LocalizedString.new(name),
92
+ completename: RelatonBib::LocalizedString.new(name)
93
93
  )
94
94
  entity = RelatonBib::Person.new(name: fname)
95
95
  RelatonBib::ContributionInfo.new(
96
- entity: entity, role: [type: "author"],
96
+ entity: entity, role: [type: "author"]
97
97
  )
98
98
  end
99
99
 
@@ -117,8 +117,8 @@ module RelatonIeee
117
117
  dates << RelatonBib::BibliographicDate.new(type: "issued",
118
118
  on: issued.text)
119
119
  end
120
- published = doc.at("//td[.='History']/following-sibling::td/div")&.
121
- text&.match(/(?<=Published Date:)[\d-]+/)&.to_s
120
+ published = doc.at("//td[.='History']/following-sibling::td/div")
121
+ &.text&.match(/(?<=Published Date:)[\d-]+/)&.to_s
122
122
  if published
123
123
  dates << RelatonBib::BibliographicDate.new(type: "published",
124
124
  on: published)
@@ -136,6 +136,10 @@ module RelatonIeee
136
136
  if sponsor
137
137
  committees << Committee.new(type: "sponsor", name: sponsor.text)
138
138
  end
139
+ sponsor = doc.at "//td[.='Standards Committee']/following-sibling::td/div/a"
140
+ if sponsor
141
+ committees << Committee.new(type: "standard", name: sponsor.text)
142
+ end
139
143
  working = doc.at "//td[.='Working Group']/following-sibling::td/div"
140
144
  chair = doc.at "//td[.='Working Group Chair']/following-sibling::td/div"
141
145
  if working
@@ -1,3 +1,3 @@
1
1
  module RelatonIeee
2
- VERSION = "1.1.0".freeze
2
+ VERSION = "1.5.0".freeze
3
3
  end
@@ -13,14 +13,14 @@ module RelatonIeee
13
13
 
14
14
  data[:committee] = ext.xpath("./committee").map do |c|
15
15
  Committee.new(
16
- type: c[:type], name: c.at("name").text, chair: c.at("chair")&.text,
16
+ type: c[:type], name: c.at("name").text, chair: c.at("chair")&.text
17
17
  )
18
18
  end
19
19
  data
20
20
  end
21
21
 
22
22
  # @param item_hash [Hash]
23
- # @return [RelatonBib::BibliographicItem]
23
+ # @return [RelatonIeee::IeeeBibliographicItem]
24
24
  def bib_item(item_hash)
25
25
  IeeeBibliographicItem.new item_hash
26
26
  end
@@ -43,5 +43,5 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency "webmock"
44
44
 
45
45
  spec.add_dependency "faraday", "~> 1.0.0"
46
- spec.add_dependency "relaton-bib", "~> 1.1.0"
46
+ spec.add_dependency "relaton-bib", "~> 1.5.0"
47
47
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-ieee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-03 00:00:00.000000000 Z
11
+ date: 2020-10-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: debase
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 1.1.0
145
+ version: 1.5.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
- version: 1.1.0
152
+ version: 1.5.0
153
153
  description: 'RelatonIeee: retrieve IEEE Standards for bibliographic use using the
154
154
  IeeeBibliographicItem model'
155
155
  email:
@@ -193,7 +193,7 @@ licenses:
193
193
  metadata:
194
194
  homepage_uri: https://github.com/relaton/relaton-ieee
195
195
  source_code_uri: https://github.com/relaton/relaton-ieee
196
- post_install_message:
196
+ post_install_message:
197
197
  rdoc_options: []
198
198
  require_paths:
199
199
  - lib
@@ -209,7 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
209
  version: '0'
210
210
  requirements: []
211
211
  rubygems_version: 3.0.6
212
- signing_key:
212
+ signing_key:
213
213
  specification_version: 4
214
214
  summary: 'RelatonIeee: retrieve IEEE Standards for bibliographic use using the IeeeBibliographicItem
215
215
  model'