relaton-render 0.5.1 → 0.5.2

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: ecff36647696036f6f4cb66699ebf76cf395420fbbe69a7399c67545cdf47a8d
4
- data.tar.gz: 5a9c9404da6ca40bb41b1dd02d01f253bd7f5aaf6a7df84514e98716880d8841
3
+ metadata.gz: 26206861d94611cd7f677cb8896d4efcf4c98d74c0cb80e405404cc2d797c64e
4
+ data.tar.gz: 36352baf32c24debed0f932855210afe76d8b4e262c749d43bcb57b8c26fc24e
5
5
  SHA512:
6
- metadata.gz: 998a52d231fd4053e54e7eb266ab7a351b1e70492b5cfe0c6c258b1493cf8df30b45762b00bae5ec1ab0f7a2e1be6125d066383e255cf160994b9d4ee1b47a7e
7
- data.tar.gz: 5370302566a4fd84843d61a509709285a48f9e18e60a778ad7b2d49b5a45a2a81ebd8e10fcd7750efa2e02f33730da5fe18e417926b69088aab8308b8cd7356a
6
+ metadata.gz: b368e1635ec42701b76a60ab9551b9d0b8f03cb72326b0a27ea924c4eda6dcfde41eac7ff24085a0c88504f61dc7e19d28fdb29bae058077461e3c21a65ea0b3
7
+ data.tar.gz: 2bf3adcadd8d9574164f691ce45a92ab5b7ae2cd8483dfcd1c2b632e998800ec81de9a2f184bcf7f92ad63785fbe8fd440ad8381d910dd7629cb6ae31b45c6dd
data/README.adoc CHANGED
@@ -147,7 +147,7 @@ drawn from the bibliographic item:
147
147
  |===
148
148
  | Field | Relaton XPath | Multiple | Can come from host | Note
149
149
 
150
- | title | ./title | | |
150
+ | title | ./title | | | If multiples, prioritise language match
151
151
  | edition | ./edition | | Y | If numeric value, is given internationalised rendering of "nth edition", as set in edition_numbering. Otherwise, the textual content of the tag is given.
152
152
  | edition_raw | ./edition | | Y | The strict textual content of the tag is given.
153
153
  | edition_num | ./edition[@number] | | Y |
@@ -158,7 +158,7 @@ drawn from the bibliographic item:
158
158
  | authoritative_identifier | ./docidentifier[not(@type = 'metanorma' or @type = 'ordinal' or @type = 'ISBN' or @type = 'ISSN' or @type = 'DOI')] | Y | |
159
159
  | other_identifier | ./docidentifier[@type = 'ISBN' or @type = 'ISSN' or @type = 'DOI'] | Y | | By default, each such identifier is prefixed with its type and colon
160
160
  | status | ./status | | | Rendering varies by flavour
161
- | uri | ./uri[@type = 'doi' or @type = 'uri' or @type = 'src' or true] | | |
161
+ | uri | ./uri[@type = 'citation' or @type = 'doi' or @type = 'uri' or @type = 'src' or true] | | | If multiples, prioritise language match
162
162
  | access_location | ./accessLocation | | Y |
163
163
  | extent | ./extent | Y | | Render with standard abbreviations for pp, vols, with n-dash, with delimiting of multiple locations
164
164
  | creatornames | ./contributor[role/@type = 'author'] \| ./contributor[role/@type = 'performer'] \| ./contributor[role/@type = 'adapter'] \| ./contributor[role/@type = 'translator'] \| ./contributor[role/@type = 'editor'] \| ./contributor[role/@type = 'distributor'] \| ./contributor | Y | | <<nametemplate,`nametemplate`>> applied to each name; joining template from internationalisation applied to multiple names
@@ -113,15 +113,24 @@ module Relaton
113
113
 
114
114
  def uri(doc)
115
115
  uri = nil
116
- %w(doi uri src).each do |t|
117
- uri = doc.link.detect { |u| u.type == t } and break
116
+ %w(citation doi uri src).each do |t|
117
+ uri = uri_type_select(doc, t) and break
118
118
  end
119
+ uri ||= doc.link.detect { |u| u.language == @lang }
119
120
  uri ||= doc.link.first
120
121
  return nil unless uri
121
122
 
122
123
  uri.content.to_s
123
124
  end
124
125
 
126
+ def uri_type_select(doc, type)
127
+ uri = doc.link.detect do |u|
128
+ u.type == type && u.language == @lang
129
+ end and return uri
130
+ uri = doc.link.detect { |u| u.type == type } and return uri
131
+ nil
132
+ end
133
+
125
134
  def access_location(doc, host)
126
135
  x = doc.accesslocation || host&.accesslocation or
127
136
  return nil
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Render
3
- VERSION = "0.5.1".freeze
3
+ VERSION = "0.5.2".freeze
4
4
  end
5
5
  end
@@ -28,7 +28,7 @@ Gem::Specification.new do |spec|
28
28
  spec.add_development_dependency "rspec", "~> 3.0"
29
29
  spec.add_development_dependency "simplecov"
30
30
 
31
- spec.add_dependency "isodoc-i18n", "~> 1.1.0"
31
+ spec.add_dependency "isodoc-i18n", "~> 1.1.2"
32
32
  spec.add_dependency "liquid", "~> 4"
33
33
  spec.add_dependency "nokogiri"
34
34
  spec.add_dependency "relaton-bib", ">= 1.13.0"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-render
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-25 00:00:00.000000000 Z
11
+ date: 2022-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 1.1.0
103
+ version: 1.1.2
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 1.1.0
110
+ version: 1.1.2
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: liquid
113
113
  requirement: !ruby/object:Gem::Requirement