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 +4 -4
- data/.rubocop.yml +2 -2
- data/README.adoc +30 -24
- data/grammars/biblio.rng +1 -1
- data/grammars/isodoc.rng +563 -21
- data/lib/relaton_ieee/committee.rb +13 -0
- data/lib/relaton_ieee/hit_collection.rb +4 -4
- data/lib/relaton_ieee/ieee_bibliographic_item.rb +15 -4
- data/lib/relaton_ieee/scrapper.rb +12 -8
- data/lib/relaton_ieee/version.rb +1 -1
- data/lib/relaton_ieee/xml_parser.rb +2 -2
- data/relaton_ieee.gemspec +1 -1
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a72cc3888d391e73d0c1ad9ac99720fae474a9274cef5977d94680ec5c9cbf7a
|
4
|
+
data.tar.gz: e0fb23a6e5c048fc92a150e8aaa2473182b03e7ffb374ca7a21847663ca65510
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 573ef7206baf236f7d19bb18f3cf0f4415eebd206eab52d2e994ec4a3356592d53939d00504044788a15a17888a7087994b7797a7ffdbb5160c7c0124389ee3b
|
7
|
+
data.tar.gz: 368037143bf6fed8420610bc4f48021ed5c1c947c1e906e8d08695f4aaf38b61c5ae8fdb50cc8d0e029f24076aa59a7f22002a7bef68929cd0a77a0da8024b87
|
data/.rubocop.yml
CHANGED
data/README.adoc
CHANGED
@@ -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
|
-
[
|
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
|
-
|
30
|
+
require 'relaton_ieee'
|
30
31
|
=> true
|
31
32
|
|
32
|
-
|
33
|
+
hits = RelatonIeee::IeeeBibliography.search("IEEE 528-2019")
|
33
34
|
=> <RelatonIeee::HitCollection:0x007f84c0085308 @ref=IEEE 528-2019 @fetched=false>
|
34
35
|
|
35
|
-
|
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
|
-
|
44
|
-
=> "<bibitem id
|
45
|
+
item.to_xml
|
46
|
+
=> "<bibitem id="IEEE528-2019">
|
45
47
|
<fetched>2020-06-01</fetched>
|
46
|
-
<title type
|
47
|
-
<uri type
|
48
|
-
<docidentifier type
|
49
|
-
<date type
|
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
|
54
|
+
<date type="published">
|
53
55
|
<on>2019</on>
|
54
56
|
</date>
|
55
57
|
<contributor>
|
56
|
-
<role type
|
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
|
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
|
-
|
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="
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
152
|
+
hash = YAML.load_file 'spec/fixtures/ieee_528_2019.yaml'
|
147
153
|
=> {"id"=>"528-2019", "title"=>{
|
148
154
|
...
|
149
155
|
|
150
|
-
|
156
|
+
bib_hash = RelatonIeee::HashConverter.hash_to_bib hash
|
151
157
|
=> {:id=>"528-2019", :title=>[{
|
152
158
|
...
|
153
159
|
|
154
|
-
|
160
|
+
RelatonIeee::IeeeBibliographicItem.new bib_hash
|
155
161
|
=> #<RelatonIeee::IeeeBibliographicItem:0x007fce940b3eb0
|
156
162
|
...
|
157
163
|
----
|
data/grammars/biblio.rng
CHANGED
@@ -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">
|
data/grammars/isodoc.rng
CHANGED
@@ -43,7 +43,9 @@
|
|
43
43
|
<define name="xref">
|
44
44
|
<element name="xref">
|
45
45
|
<attribute name="target">
|
46
|
-
<data type="
|
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="
|
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
|
-
<
|
644
|
-
<
|
645
|
-
<
|
646
|
-
|
647
|
-
|
648
|
-
<
|
649
|
-
|
650
|
-
|
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
|
13
|
-
# @
|
14
|
-
|
15
|
-
|
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
|
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
|
data/lib/relaton_ieee/version.rb
CHANGED
@@ -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 [
|
23
|
+
# @return [RelatonIeee::IeeeBibliographicItem]
|
24
24
|
def bib_item(item_hash)
|
25
25
|
IeeeBibliographicItem.new item_hash
|
26
26
|
end
|
data/relaton_ieee.gemspec
CHANGED
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.
|
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-
|
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.
|
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.
|
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'
|