relaton-bipm 1.5.0 → 1.7.1
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 +4 -4
- data/.github/workflows/rake.yml +46 -0
- data/README.adoc +153 -0
- data/grammars/bipm.rng +188 -23
- data/grammars/isodoc.rng +14 -43
- data/lib/relaton_bipm.rb +2 -1
- data/lib/relaton_bipm/acronyms.yaml +57 -0
- data/lib/relaton_bipm/bipm_bibliographic_item.rb +14 -9
- data/lib/relaton_bipm/bipm_bibliography.rb +304 -23
- data/lib/relaton_bipm/committee.rb +60 -0
- data/lib/relaton_bipm/editorial_group.rb +8 -17
- data/lib/relaton_bipm/hash_converter.rb +33 -7
- data/lib/relaton_bipm/version.rb +1 -1
- data/lib/relaton_bipm/workgroup.rb +46 -0
- data/lib/relaton_bipm/xml_parser.rb +26 -5
- data/relaton_bipm.gemspec +5 -3
- metadata +33 -33
- data/.github/workflows/macos.yml +0 -32
- data/.github/workflows/ubuntu.yml +0 -32
- data/.github/workflows/windows.yml +0 -35
- data/README.md +0 -40
- data/lib/relaton_bipm/document_status.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4c652a640cdcb04816ae94cdd687b3f083cce7d93f8f9991b5175e4df8f12ef
|
4
|
+
data.tar.gz: 77eeadcdb4ac0a15b5ded03d25ee8c9c0fff368750bbedf228d97f2679db3a39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3f6946a1f5896f90bb56dcbf79566a96c54ed1c5dce313995d6ab7de4de9875c7ff6458f8a7b53c810273d59fb4684ab8e1e789a974cbebe59704793ee8b6aa
|
7
|
+
data.tar.gz: e93576e6162aed338841e7c6ddbef08283616168e595218371dd2d842cfd154b73c0eb13d6f7d670676f956271c9beaf5f1def8ffdaa947fd5e86fbf78cf96df
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
|
+
name: rake
|
4
|
+
|
5
|
+
on:
|
6
|
+
push:
|
7
|
+
branches: [ master, main ]
|
8
|
+
tags: [ v* ]
|
9
|
+
pull_request:
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
rake:
|
13
|
+
name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
|
14
|
+
runs-on: ${{ matrix.os }}
|
15
|
+
continue-on-error: ${{ matrix.experimental }}
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
ruby: [ '2.7', '2.6', '2.5', '2.4' ]
|
20
|
+
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
21
|
+
experimental: [ false ]
|
22
|
+
include:
|
23
|
+
- ruby: '3.0'
|
24
|
+
os: 'ubuntu-latest'
|
25
|
+
experimental: true
|
26
|
+
- ruby: '3.0'
|
27
|
+
os: 'windows-latest'
|
28
|
+
experimental: true
|
29
|
+
- ruby: '3.0'
|
30
|
+
os: 'macos-latest'
|
31
|
+
experimental: true
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@v2
|
34
|
+
with:
|
35
|
+
submodules: true
|
36
|
+
|
37
|
+
# https://github.com/ruby-debug/debase/issues/89#issuecomment-686827382
|
38
|
+
- if: matrix.os == 'macos-latest' && matrix.ruby == '2.5'
|
39
|
+
run: echo BUNDLE_BUILD__DEBASE="--with-cflags=\"-Wno-error=implicit-function-declaration\"" >> $GITHUB_ENV
|
40
|
+
|
41
|
+
- uses: ruby/setup-ruby@v1
|
42
|
+
with:
|
43
|
+
ruby-version: ${{ matrix.ruby }}
|
44
|
+
bundler-cache: true
|
45
|
+
|
46
|
+
- run: bundle exec rake
|
data/README.adoc
ADDED
@@ -0,0 +1,153 @@
|
|
1
|
+
= RelatonBipm: retrieve BIPM Standards for bibliographic use using the BibliographicItem model
|
2
|
+
|
3
|
+
image:https://img.shields.io/gem/v/relaton-bipm.svg["Gem Version", link="https://rubygems.org/gems/relaton-bipm"]
|
4
|
+
image:https://github.com/relaton/relaton-bipm/workflows/macos/badge.svg["Build Status (macOS)", link="https://github.com/relaton/relaton-bipm/actions?workflow=macos"]
|
5
|
+
image:https://github.com/relaton/relaton-bipm/workflows/windows/badge.svg["Build Status (Windows)", link="https://github.com/relaton/relaton-bipm/actions?workflow=windows"]
|
6
|
+
image:https://github.com/relaton/relaton-bipm/workflows/ubuntu/badge.svg["Build Status (Ubuntu)", link="https://github.com/relaton/relaton-bipm/actions?workflow=ubuntu"]
|
7
|
+
image:https://codeclimate.com/github/relaton/relaton-bipm/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/relaton/relaton-bipm"]
|
8
|
+
image:https://img.shields.io/github/issues-pr-raw/relaton/relaton-bipm.svg["Pull Requests", link="https://github.com/relaton/relaton-bipm/pulls"]
|
9
|
+
image:https://img.shields.io/github/commits-since/relaton/relaton-bipm/latest.svg["Commits since latest",link="https://github.com/relaton/relaton-bipm/releases"]
|
10
|
+
|
11
|
+
RelatonIec is a Ruby gem that implements the https://github.com/metanorma/metanorma-model-iso#iso-bibliographic-item[IsoBibliographicItem model].
|
12
|
+
|
13
|
+
You can use it to retrieve metadata of BIPM Standards from https://www.bipm.org, and access such metadata through the `BipmBibliographicItem` object.
|
14
|
+
|
15
|
+
== Installation
|
16
|
+
|
17
|
+
Add this line to your application's Gemfile:
|
18
|
+
|
19
|
+
[source,ruby]
|
20
|
+
----
|
21
|
+
gem 'relaton-bipm'
|
22
|
+
----
|
23
|
+
|
24
|
+
And then execute:
|
25
|
+
|
26
|
+
$ bundle install
|
27
|
+
|
28
|
+
Or install it yourself as:
|
29
|
+
|
30
|
+
$ gem install relaton-bipm
|
31
|
+
|
32
|
+
== Usage
|
33
|
+
|
34
|
+
=== Search for a standard using keywords
|
35
|
+
|
36
|
+
[source,ruby]
|
37
|
+
----
|
38
|
+
require 'relaton_bipm'
|
39
|
+
=> true
|
40
|
+
|
41
|
+
# get BIPM brochure
|
42
|
+
item = RelatonBipm::BipmBibliography.get "BIPM si-brochure"
|
43
|
+
[relaton-bipm] ("BIPM si-brochure") fetching...
|
44
|
+
[relaton-bipm] ("BIPM si-brochure") found si-brochure
|
45
|
+
=> #<RelatonBipm::BipmBibliographicItem:0x007ffb83982fe8
|
46
|
+
...
|
47
|
+
|
48
|
+
# get BIPM Metrologia article
|
49
|
+
RelatonBipm::BipmBibliography.get "BIPM Metrologia 29 6 373"
|
50
|
+
[relaton-bipm] ("BIPM Metrologia 29 6 373") fetching...
|
51
|
+
[relaton-bipm] ("BIPM Metrologia 29 6 373") found Metrologia 29 6 373
|
52
|
+
=> #<RelatonBipm::BipmBibliographicItem:0x007f8857f94d40
|
53
|
+
...
|
54
|
+
----
|
55
|
+
|
56
|
+
=== XML serialization
|
57
|
+
|
58
|
+
[source,ruby]
|
59
|
+
----
|
60
|
+
item.to_xml
|
61
|
+
=> "<bibitem id="si-brochure" type="standard">
|
62
|
+
<fetched>2021-01-10</fetched>
|
63
|
+
<title format="text/plain" language="en" script="Latn">The International System of Units (SI)</title>
|
64
|
+
<title format="text/plain" language="fr" script="Latn">Le Système international d’unités (SI)</title>
|
65
|
+
<docidentifier type="BIPM">si-brochure</docidentifier>
|
66
|
+
<date type="updated">
|
67
|
+
<on>2019-05-20</on>
|
68
|
+
</date>
|
69
|
+
<edition>9</edition>
|
70
|
+
<abstract format="text/plain" language="en" script="Latn">The BIPM and the Metre Convention</abstract>
|
71
|
+
<abstract format="text/plain" language="fr" script="Latn">Le BIPM et la Convention du Mètre</abstract>
|
72
|
+
<copyright>
|
73
|
+
<from>2019</from>
|
74
|
+
<owner>
|
75
|
+
<organization>
|
76
|
+
<name>Bureau International des ponds et mesures</name>
|
77
|
+
<abbreviation>BIPM</abbreviation>
|
78
|
+
</organization>
|
79
|
+
</owner>
|
80
|
+
</copyright>
|
81
|
+
</bibitem>"
|
82
|
+
----
|
83
|
+
|
84
|
+
With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and adds flavour `ext` element.
|
85
|
+
|
86
|
+
[source,ruby]
|
87
|
+
----
|
88
|
+
item.to_xml bibdata: true
|
89
|
+
=> "<bibdata type="standard">
|
90
|
+
<fetched>2021-01-10</fetched>
|
91
|
+
<title format="text/plain" language="en" script="Latn">The International System of Units (SI)</title>
|
92
|
+
<title format="text/plain" language="fr" script="Latn">Le Système international d’unités (SI)</title>
|
93
|
+
<docidentifier type="BIPM">si-brochure</docidentifier>
|
94
|
+
<date type="updated">
|
95
|
+
<on>2019-05-20</on>
|
96
|
+
</date>
|
97
|
+
<edition>9</edition>
|
98
|
+
<abstract format="text/plain" language="en" script="Latn">The BIPM and the Metre Convention</abstract>
|
99
|
+
<abstract format="text/plain" language="fr" script="Latn">Le BIPM et la Convention du Mètre</abstract>
|
100
|
+
<copyright>
|
101
|
+
<from>2019</from>
|
102
|
+
<owner>
|
103
|
+
<organization>
|
104
|
+
<name>Bureau International des ponds et mesures</name>
|
105
|
+
<abbreviation>BIPM</abbreviation>
|
106
|
+
</organization>
|
107
|
+
</owner>
|
108
|
+
</copyright>
|
109
|
+
<ext>
|
110
|
+
<doctype>brochure</doctype>
|
111
|
+
</ext>
|
112
|
+
</bibdata>"
|
113
|
+
----
|
114
|
+
|
115
|
+
=== Create bibliographic item from XML
|
116
|
+
|
117
|
+
[source,ruby]
|
118
|
+
----
|
119
|
+
RelatonBipm::XMLParser.from_xml File.read('spec/fixtures/bipm_item.xml')
|
120
|
+
=> #<RelatonBipm::BipmBibliographicItem:0x007ffb83827a90
|
121
|
+
...
|
122
|
+
----
|
123
|
+
|
124
|
+
=== Create bibliographic item from YAML
|
125
|
+
[source,ruby]
|
126
|
+
----
|
127
|
+
hash = YAML.load_file 'spec/fixtures/bipm_item.yml'
|
128
|
+
=> {"id"=>"Draft-Agenda-NMI-Dir-Meeting-2017-v10",
|
129
|
+
...
|
130
|
+
|
131
|
+
bib_hash = RelatonBipm::HashConverter.hash_to_bib hash
|
132
|
+
=> {:id=>"Draft-Agenda-NMI-Dir-Meeting-2017-v10",
|
133
|
+
...
|
134
|
+
|
135
|
+
RelatonBipm::BipmBibliographicItem.new bib_hash
|
136
|
+
=> #<RelatonBipm::BipmBibliographicItem:0x007ffb668755a0
|
137
|
+
...
|
138
|
+
----
|
139
|
+
|
140
|
+
== Development
|
141
|
+
|
142
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
143
|
+
|
144
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
145
|
+
|
146
|
+
== Contributing
|
147
|
+
|
148
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/relaton/relaton-bipm.
|
149
|
+
|
150
|
+
|
151
|
+
== License
|
152
|
+
|
153
|
+
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/grammars/bipm.rng
CHANGED
@@ -42,9 +42,158 @@
|
|
42
42
|
<data type="boolean"/>
|
43
43
|
</attribute>
|
44
44
|
</optional>
|
45
|
+
<optional>
|
46
|
+
<attribute name="nosee">
|
47
|
+
<data type="boolean"/>
|
48
|
+
</attribute>
|
49
|
+
</optional>
|
45
50
|
<text/>
|
46
51
|
</element>
|
47
52
|
</define>
|
53
|
+
<define name="Clause-Section">
|
54
|
+
<optional>
|
55
|
+
<attribute name="id">
|
56
|
+
<data type="ID"/>
|
57
|
+
</attribute>
|
58
|
+
</optional>
|
59
|
+
<optional>
|
60
|
+
<attribute name="language"/>
|
61
|
+
</optional>
|
62
|
+
<optional>
|
63
|
+
<attribute name="script"/>
|
64
|
+
</optional>
|
65
|
+
<optional>
|
66
|
+
<attribute name="inline-header">
|
67
|
+
<data type="boolean"/>
|
68
|
+
</attribute>
|
69
|
+
</optional>
|
70
|
+
<optional>
|
71
|
+
<attribute name="obligation">
|
72
|
+
<choice>
|
73
|
+
<value>normative</value>
|
74
|
+
<value>informative</value>
|
75
|
+
</choice>
|
76
|
+
</attribute>
|
77
|
+
</optional>
|
78
|
+
<optional>
|
79
|
+
<attribute name="type"/>
|
80
|
+
</optional>
|
81
|
+
<optional>
|
82
|
+
<attribute name="unnumbered">
|
83
|
+
<data type="boolean"/>
|
84
|
+
</attribute>
|
85
|
+
</optional>
|
86
|
+
<optional>
|
87
|
+
<ref name="section-title"/>
|
88
|
+
</optional>
|
89
|
+
<group>
|
90
|
+
<choice>
|
91
|
+
<group>
|
92
|
+
<zeroOrMore>
|
93
|
+
<ref name="BasicBlock"/>
|
94
|
+
</zeroOrMore>
|
95
|
+
<zeroOrMore>
|
96
|
+
<ref name="note"/>
|
97
|
+
</zeroOrMore>
|
98
|
+
</group>
|
99
|
+
<ref name="amend"/>
|
100
|
+
</choice>
|
101
|
+
<zeroOrMore>
|
102
|
+
<choice>
|
103
|
+
<ref name="clause-subsection"/>
|
104
|
+
<ref name="terms"/>
|
105
|
+
<ref name="definitions"/>
|
106
|
+
</choice>
|
107
|
+
</zeroOrMore>
|
108
|
+
</group>
|
109
|
+
</define>
|
110
|
+
<define name="Annex-Section">
|
111
|
+
<optional>
|
112
|
+
<attribute name="id">
|
113
|
+
<data type="ID"/>
|
114
|
+
</attribute>
|
115
|
+
</optional>
|
116
|
+
<optional>
|
117
|
+
<attribute name="language"/>
|
118
|
+
</optional>
|
119
|
+
<optional>
|
120
|
+
<attribute name="script"/>
|
121
|
+
</optional>
|
122
|
+
<optional>
|
123
|
+
<attribute name="inline-header">
|
124
|
+
<data type="boolean"/>
|
125
|
+
</attribute>
|
126
|
+
</optional>
|
127
|
+
<optional>
|
128
|
+
<attribute name="obligation">
|
129
|
+
<choice>
|
130
|
+
<value>normative</value>
|
131
|
+
<value>informative</value>
|
132
|
+
</choice>
|
133
|
+
</attribute>
|
134
|
+
</optional>
|
135
|
+
<optional>
|
136
|
+
<attribute name="unnumbered">
|
137
|
+
<data type="boolean"/>
|
138
|
+
</attribute>
|
139
|
+
</optional>
|
140
|
+
<optional>
|
141
|
+
<ref name="section-title"/>
|
142
|
+
</optional>
|
143
|
+
<group>
|
144
|
+
<group>
|
145
|
+
<zeroOrMore>
|
146
|
+
<ref name="BasicBlock"/>
|
147
|
+
</zeroOrMore>
|
148
|
+
<zeroOrMore>
|
149
|
+
<ref name="note"/>
|
150
|
+
</zeroOrMore>
|
151
|
+
</group>
|
152
|
+
<zeroOrMore>
|
153
|
+
<choice>
|
154
|
+
<ref name="annex-subsection"/>
|
155
|
+
<ref name="terms"/>
|
156
|
+
<ref name="definitions"/>
|
157
|
+
<ref name="references"/>
|
158
|
+
</choice>
|
159
|
+
</zeroOrMore>
|
160
|
+
</group>
|
161
|
+
</define>
|
162
|
+
<define name="ol">
|
163
|
+
<element name="ol">
|
164
|
+
<attribute name="id">
|
165
|
+
<data type="ID"/>
|
166
|
+
</attribute>
|
167
|
+
<optional>
|
168
|
+
<attribute name="keep-with-next">
|
169
|
+
<data type="boolean"/>
|
170
|
+
</attribute>
|
171
|
+
</optional>
|
172
|
+
<optional>
|
173
|
+
<attribute name="keep-lines-together">
|
174
|
+
<data type="boolean"/>
|
175
|
+
</attribute>
|
176
|
+
</optional>
|
177
|
+
<attribute name="type">
|
178
|
+
<choice>
|
179
|
+
<value>roman</value>
|
180
|
+
<value>alphabet</value>
|
181
|
+
<value>arabic</value>
|
182
|
+
<value>roman_upper</value>
|
183
|
+
<value>alphabet_upper</value>
|
184
|
+
</choice>
|
185
|
+
</attribute>
|
186
|
+
<optional>
|
187
|
+
<attribute name="start"/>
|
188
|
+
</optional>
|
189
|
+
<oneOrMore>
|
190
|
+
<ref name="li"/>
|
191
|
+
</oneOrMore>
|
192
|
+
<zeroOrMore>
|
193
|
+
<ref name="note"/>
|
194
|
+
</zeroOrMore>
|
195
|
+
</element>
|
196
|
+
</define>
|
48
197
|
<define name="DocumentType">
|
49
198
|
<choice>
|
50
199
|
<value>brochure</value>
|
@@ -65,9 +214,9 @@
|
|
65
214
|
<oneOrMore>
|
66
215
|
<ref name="committee"/>
|
67
216
|
</oneOrMore>
|
68
|
-
<
|
217
|
+
<zeroOrMore>
|
69
218
|
<ref name="workgroup"/>
|
70
|
-
</
|
219
|
+
</zeroOrMore>
|
71
220
|
</element>
|
72
221
|
</define>
|
73
222
|
<define name="structuredidentifier">
|
@@ -98,6 +247,9 @@
|
|
98
247
|
<optional>
|
99
248
|
<ref name="si-aspect"/>
|
100
249
|
</optional>
|
250
|
+
<optional>
|
251
|
+
<ref name="meeting-note"/>
|
252
|
+
</optional>
|
101
253
|
<ref name="structuredidentifier"/>
|
102
254
|
</define>
|
103
255
|
</include>
|
@@ -132,30 +284,41 @@
|
|
132
284
|
</define>
|
133
285
|
<define name="committee">
|
134
286
|
<element name="committee">
|
135
|
-
<
|
136
|
-
<
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
287
|
+
<attribute name="acronym">
|
288
|
+
<choice>
|
289
|
+
<value>CGPM</value>
|
290
|
+
<value>CIPM</value>
|
291
|
+
<value>BIPM</value>
|
292
|
+
<value>CCAUV</value>
|
293
|
+
<value>CCEM</value>
|
294
|
+
<value>CCL</value>
|
295
|
+
<value>CCM</value>
|
296
|
+
<value>CCPR</value>
|
297
|
+
<value>CCQM</value>
|
298
|
+
<value>CCRI</value>
|
299
|
+
<value>CCT</value>
|
300
|
+
<value>CCTF</value>
|
301
|
+
<value>CCU</value>
|
302
|
+
<value>CCL-CCTF</value>
|
303
|
+
<value>JCGM</value>
|
304
|
+
<value>JCRB</value>
|
305
|
+
<value>JCTLM</value>
|
306
|
+
<value>INetQI</value>
|
307
|
+
</choice>
|
308
|
+
</attribute>
|
309
|
+
<ref name="LocalizedString"/>
|
155
310
|
</element>
|
156
311
|
</define>
|
157
312
|
<define name="workgroup">
|
158
313
|
<element name="workgroup">
|
314
|
+
<optional>
|
315
|
+
<attribute name="acronym"/>
|
316
|
+
</optional>
|
317
|
+
<text/>
|
318
|
+
</element>
|
319
|
+
</define>
|
320
|
+
<define name="meeting-note">
|
321
|
+
<element name="meeting-note">
|
159
322
|
<text/>
|
160
323
|
</element>
|
161
324
|
</define>
|
@@ -182,7 +345,9 @@
|
|
182
345
|
<zeroOrMore>
|
183
346
|
<ref name="annex"/>
|
184
347
|
</zeroOrMore>
|
185
|
-
<
|
348
|
+
<optional>
|
349
|
+
<ref name="bibliography"/>
|
350
|
+
</optional>
|
186
351
|
</element>
|
187
352
|
</define>
|
188
353
|
</grammar>
|