relaton-render 0.5.1 → 0.5.2

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: 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