relaton-bib 1.3.1 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cfbf62a35f1d2fc87694f7e749f4a511dd6ec1962316857059e977ffe5e0ea88
4
- data.tar.gz: 627c561a83b8e2cf1dbb14351383feb91ba6803dee8821a4e7d73ce1c3b96855
3
+ metadata.gz: 6731fb438a67250f0ea4b70e14aa783a6034595f7e6677f4c97c7158b787355e
4
+ data.tar.gz: b91531a725bd08256e4c41cb9c61f670195f4e4dd00665b034182e7b990aa228
5
5
  SHA512:
6
- metadata.gz: 41107e963fa76a4dad2ebdff5d1fefd5d6c48ac61692027359489643c4b6e3f2185f0bc3ecbaa77462cd4b7c033cbe48e008255ae9ff072b403ada4146374870
7
- data.tar.gz: 0d2a5739b3fe5f18aa9b17e7dbb87e00bc6a012a0e6f13831f9d06871992dbd7d9aa0f859621039fbbac6cf02a45eae859fa686c67ade23817431241110073d4
6
+ metadata.gz: f8cc251a4c9dd90633c123862bdd09b8e7a3745080733aa36db751c26367b66558598d035b0aed131d095cd6d6a67df56e0ec988a4e18e674b64fdf3b216c061
7
+ data.tar.gz: fa3bb5f8290df770a2607ba65812fa8998650d2cfee2b22170964cf13b8286dd25f162e239e43b7ee5c9ca6e4efd42b819e10a40da77856044c308f03b02796a
@@ -136,10 +136,13 @@ item = RelatonBib::BibliographicItem.new(
136
136
  },
137
137
  { entity: { name: "Institution" }, role: [type: "sponsor"] }
138
138
  ],
139
- copyright: { owner: {
140
- name: "International Organization for Standardization",
141
- abbreviation: "ISO", url: "www.iso.org"
142
- }, from: "2014", to: "2020" },
139
+ copyright: [{
140
+ owner: [{
141
+ name: "International Organization for Standardization",
142
+ abbreviation: "ISO", url: "www.iso.org"
143
+ }],
144
+ from: "2014", to: "2020"
145
+ }],
143
146
  link: [
144
147
  { type: "src", content: "https://www.iso.org/standard/53798.html" },
145
148
  { type: "obp",
@@ -232,6 +235,10 @@ item = RelatonBib::BibliographicItem.new(
232
235
  revision: Time.new(2011, 3, 4, 9, 0),
233
236
  )
234
237
  )
238
+
239
+ => #<RelatonBib::BibliographicItem:0x007fc8b6c796c0
240
+ @abstract=
241
+ [#<RelatonBib::FormattedString:0x007fc8b6c726b8 @content="ISO 19115-1:2014 defines the schema required for ...", @format="text/plain", @language=["en"], @script=["Latn"]>,
235
242
  ----
236
243
 
237
244
  === BibliographicItem Typed Title Strings
@@ -245,6 +252,11 @@ item.title
245
252
  #<RelatonBib::TypedTitleString:0x007fa49a35bf38
246
253
  @title=#<RelatonBib::FormattedString:0x007fa49a35bdd0 @content="Information géographique", @format=nil, @language=["fr"], @script=["Latn"]>,
247
254
  @type=nil>]
255
+
256
+ item.title lang: "fr"
257
+ => [#<RelatonBib::TypedTitleString:0x007fa49a35bf38
258
+ @title=#<RelatonBib::FormattedString:0x007fa49a35bdd0 @content="Information géographique", @format=nil, @language=["fr"], @script=["Latn"]>,
259
+ @type=nil>]
248
260
  ----
249
261
 
250
262
  === BibliographicItem Formatted Strings
@@ -252,8 +264,8 @@ item.title
252
264
  [source,ruby]
253
265
  ----
254
266
  item.abstract
255
- => [#<RelatonBib::FormattedString:0x007fa49a35aed0 @content="ISO 19115-1:2014 defines the schema required for ...", @format="text/plain", @language=["en"], @script=["Latn"]>,
256
- #<RelatonBib::FormattedString:0x007fa49a35ae08 @content="L'ISO 19115-1:2014 définit le schéma requis pour ...", @format="text/plain", @language=["fr"], @script=["Latn"]>]
267
+ => [#<RelatonBib::FormattedString:0x007fc8b6c726b8 @content="ISO 19115-1:2014 defines the schema required for ...", @format="text/plain", @language=["en"], @script=["Latn"]>,
268
+ #<RelatonBib::FormattedString:0x007fc8b6c725f0 @content="L'ISO 19115-1:2014 définit le schéma requis pour ...", @format="text/plain", @language=["fr"], @script=["Latn"]>]
257
269
 
258
270
  item.abstract(lang: "en").to_s
259
271
  => "ISO 19115-1:2014 defines the schema required for ..."
@@ -263,8 +275,8 @@ item.abstract(lang: "en").to_s
263
275
 
264
276
  [source,ruby]
265
277
  ----
266
- item.shortref item
267
- => "ISO/TC211:2014"
278
+ item.shortref item.docidentifier.first
279
+ => "TC211:2014"
268
280
  ----
269
281
 
270
282
  === XML serialization
@@ -272,10 +284,10 @@ item.shortref item
272
284
  [source,ruby]
273
285
  ----
274
286
  item.to_xml
275
- => "<bibitem id=\"ISO/TC211\" type=\"standard\">
287
+ => "<bibitem id="ISO/TC211" type="standard">
276
288
  <fetched>2019-04-30</fetched>
277
- <title type=\"main\" language=\"en\" script=\"Latn\">Geographic information</title>
278
- <title language=\"fr\" script=\"Latn\">Information géographique</title>
289
+ <title type="main" language="en" script="Latn">Geographic information</title>
290
+ <title language="fr" script="Latn">Information géographique</title>
279
291
  ...
280
292
  </bibitem>"
281
293
  ----
@@ -285,9 +297,9 @@ Default root element is `bibitem`. With argument `bibdata: true` the XML wrapped
285
297
  [source,ruby]
286
298
  ----
287
299
  item.to_xml bibdata: true
288
- => "<bibdata type=\"standard\">
300
+ => "<bibdata type="standard">
289
301
  <fetched>2019-04-30</fetched>
290
- <title type=\"main\" language=\"en\" script=\"Latn\">Geographic information</title>
302
+ <title type="main" language="en" script="Latn">Geographic information</title>
291
303
  ...
292
304
  </bibdata>"
293
305
  ----
@@ -296,12 +308,12 @@ item.to_xml bibdata: true
296
308
 
297
309
  By default date elements are formatted as year (yyyy). Option `:date_format` allows to output date elements in `:short` (yyyy-mm) and `:full` (yyyy-mm-dd) additiona formats.
298
310
 
299
- [surce,ruby]
311
+ [source,ruby]
300
312
  ----
301
313
  item.to_xml date_format: :short
302
- => "<bibitem id=\"ISO/TC211\" type=\"standard\">
314
+ => "<bibitem id="ISO/TC211" type="standard">
303
315
  <fetched>2019-04-30</fetched>
304
- <title type=\"main\" language=\"en\" script=\"Latn\">Geographic information</title>
316
+ <title type="main" language="en" script="Latn">Geographic information</title>
305
317
  ...
306
318
  <date type="issued">
307
319
  <on>2014-01</on>
@@ -313,9 +325,10 @@ item.to_xml date_format: :short
313
325
  <on>2015-05</on>
314
326
  </date>
315
327
  ...
328
+ </bibitem>"
316
329
 
317
330
  item.to_xml date_format: :full
318
- => "<bibitem id=\"ISO/TC211\" type=\"standard\">
331
+ => "<bibitem id="ISO/TC211" type="standard">
319
332
  ...
320
333
  <date type="issued">
321
334
  <on>2014-01-01</on>
@@ -327,6 +340,19 @@ item.to_xml date_format: :full
327
340
  <on>2015-05-20</on>
328
341
  </date>
329
342
  ...
343
+ </bibitem>"
344
+ ----
345
+
346
+ ==== Adding notes
347
+
348
+ [source,ruby]
349
+ ----
350
+ item.to_xml note: [{ text: "Note", type: "note" }]
351
+ =>"<bibitem id="ISO19115-1-2014">
352
+ ...
353
+ <note format="text/plain" type="note">Note</note>
354
+ ...
355
+ </bibitem>"
330
356
  ----
331
357
 
332
358
  === Create bibliographic item form YAML
@@ -362,7 +388,7 @@ item.to_hash
362
388
 
363
389
  [source,ruby]
364
390
  ----
365
- RelatonBib::BibtexParser.from_bibtex File.read('spec/examples/bibitem.bib')
391
+ RelatonBib::BibtexParser.from_bibtex File.read('spec/examples/techreport.bib')
366
392
  => {"ISOTC211"=>
367
393
  #<RelatonBib::BibliographicItem:0x007fedee0a2ab0
368
394
  ...
@@ -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,6 +63,11 @@
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>
@@ -578,6 +585,8 @@
578
585
  <ref name="ol"/>
579
586
  <ref name="dl"/>
580
587
  <ref name="formula"/>
588
+ <ref name="quote"/>
589
+ <ref name="sourcecode"/>
581
590
  </choice>
582
591
  </oneOrMore>
583
592
  </element>
@@ -661,6 +670,16 @@
661
670
  </choice>
662
671
  </attribute>
663
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>
664
683
  <choice>
665
684
  <zeroOrMore>
666
685
  <choice>
@@ -697,6 +716,16 @@
697
716
  </choice>
698
717
  </attribute>
699
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>
700
729
  <choice>
701
730
  <zeroOrMore>
702
731
  <choice>
@@ -834,6 +863,13 @@
834
863
  </define>
835
864
  <define name="standard-document">
836
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>
837
873
  <ref name="bibdata"/>
838
874
  <optional>
839
875
  <ref name="boilerplate"/>
@@ -855,7 +891,7 @@
855
891
  <oneOrMore>
856
892
  <choice>
857
893
  <ref name="content"/>
858
- <ref name="preface_abstract"/>
894
+ <ref name="abstract"/>
859
895
  <ref name="foreword"/>
860
896
  <ref name="introduction"/>
861
897
  <ref name="acknowledgements"/>
@@ -922,6 +958,9 @@
922
958
  <optional>
923
959
  <attribute name="script"/>
924
960
  </optional>
961
+ <optional>
962
+ <attribute name="type"/>
963
+ </optional>
925
964
  <optional>
926
965
  <attribute name="obligation">
927
966
  <choice>
@@ -961,9 +1000,6 @@
961
1000
  </define>
962
1001
  <define name="content-subsection">
963
1002
  <element name="clause">
964
- <optional>
965
- <attribute name="type"/>
966
- </optional>
967
1003
  <ref name="Content-Section"/>
968
1004
  </element>
969
1005
  </define>
@@ -992,6 +1028,9 @@
992
1028
  </choice>
993
1029
  </attribute>
994
1030
  </optional>
1031
+ <optional>
1032
+ <attribute name="type"/>
1033
+ </optional>
995
1034
  <optional>
996
1035
  <ref name="section-title"/>
997
1036
  </optional>
@@ -1011,9 +1050,6 @@
1011
1050
  </define>
1012
1051
  <define name="clause">
1013
1052
  <element name="clause">
1014
- <optional>
1015
- <attribute name="type"/>
1016
- </optional>
1017
1053
  <ref name="Clause-Section"/>
1018
1054
  </element>
1019
1055
  </define>
@@ -1042,18 +1078,24 @@
1042
1078
  </choice>
1043
1079
  </attribute>
1044
1080
  </optional>
1081
+ <optional>
1082
+ <attribute name="type"/>
1083
+ </optional>
1045
1084
  <optional>
1046
1085
  <ref name="section-title"/>
1047
1086
  </optional>
1048
1087
  <group>
1049
- <group>
1050
- <zeroOrMore>
1051
- <ref name="BasicBlock"/>
1052
- </zeroOrMore>
1053
- <zeroOrMore>
1054
- <ref name="note"/>
1055
- </zeroOrMore>
1056
- </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>
1057
1099
  <zeroOrMore>
1058
1100
  <choice>
1059
1101
  <ref name="clause-subsection"/>
@@ -1180,6 +1222,9 @@
1180
1222
  <optional>
1181
1223
  <attribute name="script"/>
1182
1224
  </optional>
1225
+ <optional>
1226
+ <attribute name="type"/>
1227
+ </optional>
1183
1228
  <optional>
1184
1229
  <attribute name="obligation">
1185
1230
  <choice>
@@ -1447,11 +1492,6 @@
1447
1492
  </optional>
1448
1493
  </element>
1449
1494
  </define>
1450
- <define name="preface_abstract">
1451
- <element name="abstract">
1452
- <ref name="Basic-Section"/>
1453
- </element>
1454
- </define>
1455
1495
  <define name="term-clause">
1456
1496
  <element name="clause">
1457
1497
  <optional>
@@ -1501,4 +1541,79 @@
1501
1541
  <ref name="CitationType"/>
1502
1542
  </element>
1503
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>
1504
1619
  </grammar>
@@ -39,12 +39,6 @@
39
39
  <optional>
40
40
  <attribute name="filename"/>
41
41
  </optional>
42
- <optional>
43
- <attribute name="model"/>
44
- </optional>
45
- <optional>
46
- <attribute name="type"/>
47
- </optional>
48
42
  <optional>
49
43
  <ref name="reqtitle"/>
50
44
  </optional>
@@ -54,9 +48,9 @@
54
48
  <optional>
55
49
  <ref name="subject"/>
56
50
  </optional>
57
- <zeroOrMore>
51
+ <optional>
58
52
  <ref name="reqinherit"/>
59
- </zeroOrMore>
53
+ </optional>
60
54
  <zeroOrMore>
61
55
  <ref name="classification"/>
62
56
  </zeroOrMore>
@@ -1,5 +1,7 @@
1
+ require "forwardable"
1
2
  require "relaton_bib/version"
2
3
  require "relaton_bib/deep_dup"
4
+ require "relaton_bib/localized_string"
3
5
  require "relaton_bib/bibliographic_item"
4
6
  require "relaton_bib/hit_collection"
5
7
  require "relaton_bib/hit"
@@ -34,7 +36,7 @@ module RelatonBib
34
36
 
35
37
  # @param array [Array]
36
38
  # @return [Array<String>, String]
37
- def single_element_array(array) # rubocop:disable Metrics/CyclomaticComplexity
39
+ def single_element_array(array) # rubocop:disable Metrics/CyclomaticComplexity,Metrics/PerceivedComplexity
38
40
  if array.size > 1
39
41
  array.map { |e| e.is_a?(String) ? e : e.to_hash }
40
42
  else