relaton-omg 1.7.3 → 1.10.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +1 -11
- data/.rubocop.yml +3 -1
- data/README.adoc +21 -5
- data/grammars/biblio.rng +12 -11
- data/lib/relaton_omg/omg_bibliographic_item.rb +1 -1
- data/lib/relaton_omg/scrapper.rb +6 -6
- data/lib/relaton_omg/version.rb +1 -1
- data/lib/relaton_omg/xml_parser.rb +1 -1
- data/relaton_omg.gemspec +2 -4
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25e974b4ee6e3252b54de2b60046e8f6a663da8243e7faf4bf7a3534a5df2000
|
4
|
+
data.tar.gz: 7dd39b0a40d2b466182f3cbbb330f71fa52d1b7a3b35e27a7dd1211bffc88d03
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7257fc7500c4c82d086a961e42c51cbb73b718c138bd70902d70f7bbb74ad84242414b4f81149a0573c444f3da8c5fc343ebdbb324ac48b3060b8a405a8c2cd6
|
7
|
+
data.tar.gz: 89e56ff2c08ffe8e4fcca291ff9ab0fa527992aeb16229c137d7686a412e6678b3e0e27dbec506c03fa60c016e11bdd891088663d9bf63ba5a671944d610a0e8
|
data/.github/workflows/rake.yml
CHANGED
@@ -16,19 +16,9 @@ jobs:
|
|
16
16
|
strategy:
|
17
17
|
fail-fast: false
|
18
18
|
matrix:
|
19
|
-
ruby: [ '
|
19
|
+
ruby: [ '3.0', '2.7', '2.6', '2.5' ]
|
20
20
|
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
21
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
22
|
steps:
|
33
23
|
- uses: actions/checkout@v2
|
34
24
|
with:
|
data/.rubocop.yml
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
# https://github.com/riboseinc/oss-guides
|
3
3
|
# All project-specific additions and overrides should be specified in this file.
|
4
4
|
|
5
|
+
require: rubocop-rails
|
6
|
+
|
5
7
|
inherit_from:
|
6
8
|
- https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
|
7
9
|
AllCops:
|
8
|
-
TargetRubyVersion: 2.
|
10
|
+
TargetRubyVersion: 2.5
|
9
11
|
Rails:
|
10
12
|
Enabled: false
|
data/README.adoc
CHANGED
@@ -33,17 +33,22 @@ Or install it yourself as:
|
|
33
33
|
|
34
34
|
=== Search document
|
35
35
|
|
36
|
+
Reference format is `OMG + {ACRONYM} + {VERSION}`
|
37
|
+
|
38
|
+
- `ACRONYM` is an acronym from the list of specs https://www.omg.org/spec/#all
|
39
|
+
- `VERSION` (optional) if omitted then the lastes version is fetched
|
40
|
+
|
36
41
|
[source,ruby]
|
37
42
|
----
|
38
43
|
require 'relaton_omg'
|
39
44
|
=> true
|
40
45
|
|
41
|
-
item = RelatonOmg::OmgBibliography.
|
46
|
+
item = RelatonOmg::OmgBibliography.get 'OMG AMI4CCM 1.0'
|
42
47
|
=> #<RelatonOmg::OmgBibliographicItem:0x007fda17eab2f0
|
43
48
|
...
|
44
49
|
|
45
50
|
# Return nil if document doesn't exist.
|
46
|
-
RelatonOmg::OmgBibliography.
|
51
|
+
RelatonOmg::OmgBibliography.get 'OMG 1111'
|
47
52
|
[relaton-omg] no document found for "OMG 1111" reference.
|
48
53
|
=> nil
|
49
54
|
----
|
@@ -76,7 +81,18 @@ item.to_xml
|
|
76
81
|
</bibitem>"
|
77
82
|
----
|
78
83
|
|
79
|
-
===
|
84
|
+
=== Typed links
|
85
|
+
|
86
|
+
OMG documents may have `src` and `pdf` link types.
|
87
|
+
|
88
|
+
[source,ruby]
|
89
|
+
----
|
90
|
+
item.link
|
91
|
+
=> [#<RelatonBib::TypedUri:0x00007fa897a72208 @content=#<Addressable::URI:0x80c URI:https://www.omg.org/spec/AMI4CCM/1.0/About-AMI4CCM/>, @type="src">,
|
92
|
+
#<RelatonBib::TypedUri:0x00007fa897a71600 @content=#<Addressable::URI:0x820 URI:https://www.omg.org/spec/AMI4CCM/1.0/PDF>, @type="pdf">]
|
93
|
+
----
|
94
|
+
|
95
|
+
=== Create bibliographic item from XML
|
80
96
|
|
81
97
|
[source,ruby]
|
82
98
|
----
|
@@ -85,7 +101,7 @@ item = RelatonOmg::OmgBibliographicItem.from_xml 'spec/fixtures/omg_ami4ccm_1_0.
|
|
85
101
|
...
|
86
102
|
----
|
87
103
|
|
88
|
-
=== Create bibliographic item
|
104
|
+
=== Create bibliographic item from Hash
|
89
105
|
[source,ruby]
|
90
106
|
----
|
91
107
|
hash = YAML.load_file 'spec/fixtures/omg_ami4ccm_1_0.yaml'
|
@@ -97,7 +113,7 @@ item = RelatonOmg::OmgBibliographicItem.from_hash hash
|
|
97
113
|
...
|
98
114
|
----
|
99
115
|
|
100
|
-
=== Create bibliographic item
|
116
|
+
=== Create bibliographic item from YAML
|
101
117
|
[source,ruby]
|
102
118
|
----
|
103
119
|
item = RelatonOmg::OmgBibliographicItem.from_yaml 'spec/fixtures/omg_ami4ccm_1_0.yaml'
|
data/grammars/biblio.rng
CHANGED
@@ -124,7 +124,7 @@
|
|
124
124
|
<value>application/tei+xml</value>
|
125
125
|
<value>text/x-asciidoc</value>
|
126
126
|
<value>text/markdown</value>
|
127
|
-
<value>application/x-
|
127
|
+
<value>application/x-metanorma+xml</value>
|
128
128
|
<text/>
|
129
129
|
</choice>
|
130
130
|
</attribute>
|
@@ -209,9 +209,6 @@
|
|
209
209
|
<zeroOrMore>
|
210
210
|
<ref name="contact"/>
|
211
211
|
</zeroOrMore>
|
212
|
-
<zeroOrMore>
|
213
|
-
<ref name="uri"/>
|
214
|
-
</zeroOrMore>
|
215
212
|
</element>
|
216
213
|
</define>
|
217
214
|
<define name="fullname">
|
@@ -401,9 +398,9 @@
|
|
401
398
|
<choice>
|
402
399
|
<!-- iso191606 TODO -->
|
403
400
|
<group>
|
404
|
-
<
|
401
|
+
<zeroOrMore>
|
405
402
|
<ref name="street"/>
|
406
|
-
</
|
403
|
+
</zeroOrMore>
|
407
404
|
<ref name="city"/>
|
408
405
|
<optional>
|
409
406
|
<ref name="state"/>
|
@@ -452,6 +449,7 @@
|
|
452
449
|
<attribute name="type">
|
453
450
|
<choice>
|
454
451
|
<value>isni</value>
|
452
|
+
<value>orcid</value>
|
455
453
|
<value>uri</value>
|
456
454
|
</choice>
|
457
455
|
</attribute>
|
@@ -461,10 +459,7 @@
|
|
461
459
|
<define name="org-identifier">
|
462
460
|
<element name="identifier">
|
463
461
|
<attribute name="type">
|
464
|
-
<
|
465
|
-
<value>orcid</value>
|
466
|
-
<value>uri</value>
|
467
|
-
</choice>
|
462
|
+
<data type="string" datatypeLibrary=""/>
|
468
463
|
</attribute>
|
469
464
|
<text/>
|
470
465
|
</element>
|
@@ -789,6 +784,7 @@
|
|
789
784
|
<value>adapted</value>
|
790
785
|
<value>vote-started</value>
|
791
786
|
<value>vote-ended</value>
|
787
|
+
<value>announced</value>
|
792
788
|
</choice>
|
793
789
|
</define>
|
794
790
|
<define name="bdate">
|
@@ -829,6 +825,11 @@
|
|
829
825
|
<optional>
|
830
826
|
<attribute name="scope"/>
|
831
827
|
</optional>
|
828
|
+
<optional>
|
829
|
+
<attribute name="primary">
|
830
|
+
<data type="boolean"/>
|
831
|
+
</attribute>
|
832
|
+
</optional>
|
832
833
|
<text/>
|
833
834
|
</element>
|
834
835
|
</define>
|
@@ -1106,7 +1107,7 @@
|
|
1106
1107
|
<value>complementOf</value>
|
1107
1108
|
<value>obsoletes</value>
|
1108
1109
|
<value>obsoletedBy</value>
|
1109
|
-
<value>
|
1110
|
+
<value>cites</value>
|
1110
1111
|
<value>isCitedIn</value>
|
1111
1112
|
</choice>
|
1112
1113
|
</define>
|
data/lib/relaton_omg/scrapper.rb
CHANGED
@@ -12,7 +12,7 @@ module RelatonOmg
|
|
12
12
|
url = URL_PATTERN + acronym
|
13
13
|
url += "/" + version if version
|
14
14
|
doc = Nokogiri::HTML OpenURI.open_uri(URI(url))
|
15
|
-
OmgBibliographicItem.new
|
15
|
+
OmgBibliographicItem.new(**item(doc, acronym))
|
16
16
|
rescue OpenURI::HTTPError, URI::InvalidURIError => e
|
17
17
|
if e.is_a?(URI::InvalidURIError) || e.io.status[0] == "404"
|
18
18
|
warn %{[relaton-omg] no document found for "#{ref}" reference.}
|
@@ -24,7 +24,7 @@ module RelatonOmg
|
|
24
24
|
|
25
25
|
private
|
26
26
|
|
27
|
-
def item(doc, acronym)
|
27
|
+
def item(doc, acronym) # rubocop:disable Metrics/MethodLength
|
28
28
|
{
|
29
29
|
id: fetch_id(doc, acronym),
|
30
30
|
fetched: Date.today.to_s,
|
@@ -37,7 +37,7 @@ module RelatonOmg
|
|
37
37
|
link: fetch_link(doc),
|
38
38
|
relation: fetch_relation(doc),
|
39
39
|
keyword: fetch_keyword(doc),
|
40
|
-
license: fetch_license(doc)
|
40
|
+
license: fetch_license(doc),
|
41
41
|
}
|
42
42
|
end
|
43
43
|
|
@@ -56,7 +56,7 @@ module RelatonOmg
|
|
56
56
|
if (ver = version(doc))
|
57
57
|
id << ver
|
58
58
|
end
|
59
|
-
[RelatonBib::DocumentIdentifier.new(id: id.join(" "), type: "OMG")]
|
59
|
+
[RelatonBib::DocumentIdentifier.new(id: id.join(" "), type: "OMG", primary: true)]
|
60
60
|
end
|
61
61
|
|
62
62
|
def fetch_abstract(doc)
|
@@ -95,13 +95,13 @@ module RelatonOmg
|
|
95
95
|
links
|
96
96
|
end
|
97
97
|
|
98
|
-
def fetch_relation(doc)
|
98
|
+
def fetch_relation(doc) # rubocop:disable Metrics/MethodLength
|
99
99
|
current_version = version(doc)
|
100
100
|
v = doc.xpath('//h2[.="History"]/following-sibling::section/div/table/tbody/tr')
|
101
101
|
v.reduce([]) do |mem, row|
|
102
102
|
ver = row.at("td").text
|
103
103
|
unless ver == current_version
|
104
|
-
acronym = row.at(
|
104
|
+
acronym = row.at("td[3]/a")[:href].split("/")[4]
|
105
105
|
fref = RelatonBib::FormattedRef.new content: "OMG #{acronym} #{ver}"
|
106
106
|
bibitem = OmgBibliographicItem.new formattedref: fref
|
107
107
|
mem << { type: "obsoletes", bibitem: bibitem }
|
data/lib/relaton_omg/version.rb
CHANGED
data/relaton_omg.gemspec
CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
"using the IsoBibliographicItem model"
|
13
13
|
spec.homepage = "https://github.com/relaton/relaton-ogn"
|
14
14
|
spec.license = "BSD-2-Clause"
|
15
|
-
spec.required_ruby_version = Gem::Requirement.new(">= 2.
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
|
16
16
|
|
17
17
|
spec.metadata["homepage_uri"] = spec.homepage
|
18
18
|
spec.metadata["source_code_uri"] = "https://github.com/relaton/relaton-ogn"
|
@@ -27,14 +27,12 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.require_paths = ["lib"]
|
28
28
|
|
29
29
|
spec.add_development_dependency "byebug"
|
30
|
-
# spec.add_development_dependency "debase"
|
31
30
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
32
31
|
spec.add_development_dependency "pry-byebug"
|
33
|
-
# spec.add_development_dependency "ruby-debug-ide"
|
34
32
|
spec.add_development_dependency "ruby-jing"
|
35
33
|
spec.add_development_dependency "simplecov"
|
36
34
|
spec.add_development_dependency "vcr"
|
37
35
|
spec.add_development_dependency "webmock"
|
38
36
|
|
39
|
-
spec.add_dependency "relaton-bib", "~> 1.
|
37
|
+
spec.add_dependency "relaton-bib", "~> 1.10.1"
|
40
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: relaton-omg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-02-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: byebug
|
@@ -114,14 +114,14 @@ dependencies:
|
|
114
114
|
requirements:
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 1.
|
117
|
+
version: 1.10.1
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: 1.
|
124
|
+
version: 1.10.1
|
125
125
|
description: 'RelatonOmg: retrieve OMG Standards for bibliographic using the IsoBibliographicItem
|
126
126
|
model'
|
127
127
|
email:
|
@@ -166,14 +166,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
166
166
|
requirements:
|
167
167
|
- - ">="
|
168
168
|
- !ruby/object:Gem::Version
|
169
|
-
version: 2.
|
169
|
+
version: 2.5.0
|
170
170
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
172
|
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '0'
|
175
175
|
requirements: []
|
176
|
-
rubygems_version: 3.
|
176
|
+
rubygems_version: 3.2.3
|
177
177
|
signing_key:
|
178
178
|
specification_version: 4
|
179
179
|
summary: 'RelatonOmg: retrieve OMG Standards for bibliographic using the IsoBibliographicItem
|