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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a3b0a5ffff840bd561fa694ef65b560833675404aebbbbf5b1fe2aede4d78f9c
4
- data.tar.gz: 0010cb2fca5d9d2652d8a12336e385dcc4cfff8b228af356c95eef531ab6ce99
3
+ metadata.gz: 25e974b4ee6e3252b54de2b60046e8f6a663da8243e7faf4bf7a3534a5df2000
4
+ data.tar.gz: 7dd39b0a40d2b466182f3cbbb330f71fa52d1b7a3b35e27a7dd1211bffc88d03
5
5
  SHA512:
6
- metadata.gz: 0bff9107061019e111fd8e9fb20cea4b172c01977db25acf46a585c20bfcd67b166df4ffe0205b5889e7b45a9c639e2e58efa326a79e89c8a8a7bca2f9309949
7
- data.tar.gz: e8b9e613d354cc0fca62e48d655f9c8dc81bd2e409fbdfea79f430c0433b416fb967162b6fb9d13dbd2211b25ba46e8910d2637ae0216dfc27293adff51b8c88
6
+ metadata.gz: 7257fc7500c4c82d086a961e42c51cbb73b718c138bd70902d70f7bbb74ad84242414b4f81149a0573c444f3da8c5fc343ebdbb324ac48b3060b8a405a8c2cd6
7
+ data.tar.gz: 89e56ff2c08ffe8e4fcca291ff9ab0fa527992aeb16229c137d7686a412e6678b3e0e27dbec506c03fa60c016e11bdd891088663d9bf63ba5a671944d610a0e8
@@ -16,19 +16,9 @@ jobs:
16
16
  strategy:
17
17
  fail-fast: false
18
18
  matrix:
19
- ruby: [ '2.7', '2.6', '2.5', '2.4' ]
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.4
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.search 'OMG AMI4CCM 1.0'
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.search 'OMG 1111'
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
- === Create bibliographic item form XML
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 form Hash
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 form YAML
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-isodoc+xml</value>
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
- <oneOrMore>
401
+ <zeroOrMore>
405
402
  <ref name="street"/>
406
- </oneOrMore>
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
- <choice>
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>cited</value>
1110
+ <value>cites</value>
1110
1111
  <value>isCitedIn</value>
1111
1112
  </choice>
1112
1113
  </define>
@@ -12,7 +12,7 @@ module RelatonOmg
12
12
  # @return [RelatonOmg::OmgBibliographicItem]
13
13
  def from_hash(hash)
14
14
  bib_hash = RelatonOmg::HashConverter.hash_to_bib(hash)
15
- new **bib_hash
15
+ new(**bib_hash)
16
16
  end
17
17
 
18
18
  # @param file [String] path to XML file
@@ -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 **item(doc, acronym)
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('td[3]/a')[:href].split("/")[4]
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 }
@@ -1,3 +1,3 @@
1
1
  module RelatonOmg
2
- VERSION = "1.7.3".freeze
2
+ VERSION = "1.10.1".freeze
3
3
  end
@@ -17,7 +17,7 @@ module RelatonOmg
17
17
  # @param item_hash [Hash]
18
18
  # @return [RelatonOmg::OmgBibliographicItem]
19
19
  def bib_item(item_hash)
20
- OmgBibliographicItem.new **item_hash
20
+ OmgBibliographicItem.new(**item_hash)
21
21
  end
22
22
  end
23
23
  end
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.4.0")
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.7.0"
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.7.3
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: 2021-04-28 00:00:00.000000000 Z
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.7.0
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.7.0
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.4.0
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.0.6
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