relaton-render 0.9.0 → 0.9.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 +4 -4
- data/lib/relaton/render/fields/fields.rb +3 -1
- data/lib/relaton/render/parse/parse_contributors.rb +16 -6
- data/lib/relaton/render/parse/parse_extract.rb +5 -3
- data/lib/relaton/render/template/liquid.rb +28 -1
- data/lib/relaton/render/template/template.rb +2 -2
- data/lib/relaton/render/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '093dc48a9893414c5abdee0073b6295634cfbf6a5c9189db4bd0707694579342'
|
4
|
+
data.tar.gz: 5d31145a5d427c19cc0bfd3304f6b1a8467525fc619e5ab7f3e9d1e7c40aa9b1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 654aa465197829c72232ce8065277d0a378554459f24aee28be8e9925f6e805e794aaa55729773fa0e0fdd99eaa97df216006028e313d191ad3045038743a194
|
7
|
+
data.tar.gz: a92588028e0d215d35781f0e78a0b5f40bee5ea19ed2c2bf502a78c2063c13449fbf8cb0cf60cdc16d008d865470d5087f2c039e691dd64ac28b117ec658844f
|
@@ -128,13 +128,15 @@ module Relaton
|
|
128
128
|
end
|
129
129
|
|
130
130
|
def extentformat(extent, hash)
|
131
|
-
extent.map do |
|
131
|
+
extent.map do |stack|
|
132
|
+
stack.map do |e|
|
132
133
|
e1 = e.transform_values { |v| v.is_a?(Hash) ? range(v) : v }
|
133
134
|
ret = e.each_with_object({}) do |(k, v), m|
|
134
135
|
extentformat1(k, v, m, e1)
|
135
136
|
m
|
136
137
|
end
|
137
138
|
@r.extenttemplate.render(hash.merge(ret))
|
139
|
+
end.join(" ")
|
138
140
|
end.join("; ")
|
139
141
|
end
|
140
142
|
|
@@ -5,6 +5,9 @@ module Relaton
|
|
5
5
|
node.nil? and return node
|
6
6
|
node.content.is_a?(Array) and return node.content.map { |x| content(x) }
|
7
7
|
node.content.strip
|
8
|
+
.gsub("</title>", "").gsub("<title>", "")
|
9
|
+
# node.children.map { |n| n.text? ? n.content : n.to_xml }.join
|
10
|
+
# node.text? ? node.content.strip : node.to_xml.strip
|
8
11
|
end
|
9
12
|
|
10
13
|
def extract_orgname(org)
|
@@ -21,16 +24,19 @@ module Relaton
|
|
21
24
|
end
|
22
25
|
|
23
26
|
def given_and_middle_name(person)
|
24
|
-
forenames = person
|
25
|
-
|
26
|
-
|
27
|
+
forenames = forenames_parse(person)
|
28
|
+
initials = extract_initials(person)
|
29
|
+
forenames.empty? and initials.empty? and return [nil, nil, nil]
|
30
|
+
initials.empty? and initials = initials_from_forenames(forenames)
|
31
|
+
[forenames.first, forenames[1..-1], Array(initials)]
|
32
|
+
end
|
33
|
+
|
34
|
+
def extract_initials(person)
|
27
35
|
initials = content(person.name.initials)&.sub(/(.)\.?$/, "\\1.")
|
28
36
|
&.split /(?<=\.) /
|
29
37
|
initials ||= person.name.forename.map(&:initial)
|
30
38
|
.compact.map { |x| x.sub(/(.)\.?$/, "\\1.") }
|
31
|
-
|
32
|
-
initials.empty? and initials = forenames.map { |x| "#{x[0]}." }
|
33
|
-
[forenames.first, forenames[1..-1], Array(initials)]
|
39
|
+
initials
|
34
40
|
end
|
35
41
|
|
36
42
|
def forenames_parse(person)
|
@@ -49,6 +55,10 @@ module Relaton
|
|
49
55
|
.scan(/.+?\.(?=(?:$|\s|\p{Alpha}))/).map(&:strip)
|
50
56
|
end
|
51
57
|
|
58
|
+
def initials_from_forenames(forenames)
|
59
|
+
forenames.map(&:split).flatten.map { |x| "#{x[0]}." }
|
60
|
+
end
|
61
|
+
|
52
62
|
def extractname(contributor)
|
53
63
|
org = contributor.entity if contributor.entity
|
54
64
|
.is_a?(RelatonBib::Organization)
|
@@ -141,13 +141,15 @@ module Relaton
|
|
141
141
|
doc.extent.each_with_object([]) do |e, acc|
|
142
142
|
case e
|
143
143
|
when RelatonBib::Extent, RelatonBib::LocalityStack
|
144
|
-
e.locality.
|
144
|
+
a = e.locality.each_with_object([]) do |e1, m|
|
145
145
|
if e1.is_a?(RelatonBib::LocalityStack)
|
146
|
-
|
146
|
+
m << extent1(e1.locality)
|
147
147
|
else
|
148
|
-
|
148
|
+
m.empty? and m << {}
|
149
|
+
m[-1].merge!(extent1(Array(e1)))
|
149
150
|
end
|
150
151
|
end
|
152
|
+
acc << a
|
151
153
|
when RelatonBib::Locality
|
152
154
|
acc << extent1(Array(e))
|
153
155
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Relaton
|
2
2
|
module Render
|
3
3
|
module Template
|
4
|
-
module
|
4
|
+
module CustomFilters
|
5
5
|
def capitalize_first(words)
|
6
6
|
return nil if words.nil?
|
7
7
|
|
@@ -9,6 +9,33 @@ module Relaton
|
|
9
9
|
ret.first.capitalize! if ret.size.positive?
|
10
10
|
ret.join("_")
|
11
11
|
end
|
12
|
+
|
13
|
+
def selective_upcase(text)
|
14
|
+
return nil if text.nil?
|
15
|
+
|
16
|
+
ret = text.split(/(\+\+\+[^+]+?\+\+\+)/)
|
17
|
+
ret.map do |n|
|
18
|
+
if m = /^\+\+\+(.+)\+\+\+$/.match(n)
|
19
|
+
m[1]
|
20
|
+
else
|
21
|
+
n.upcase
|
22
|
+
end
|
23
|
+
end.join
|
24
|
+
end
|
25
|
+
|
26
|
+
def selective_tag(text, tag)
|
27
|
+
return nil if text.nil?
|
28
|
+
|
29
|
+
ret = text.split(/(\+\+\+[^+]+?\+\+\+)/)
|
30
|
+
ret.map do |n|
|
31
|
+
if m = /^\+\+\+(.+)\+\+\+$/.match(n)
|
32
|
+
m[1]
|
33
|
+
else
|
34
|
+
closetag = tag.sub(/^</, "</")
|
35
|
+
"#{tag}#{n}#{closetag}"
|
36
|
+
end
|
37
|
+
end.join
|
38
|
+
end
|
12
39
|
end
|
13
40
|
end
|
14
41
|
end
|
@@ -53,7 +53,7 @@ module Relaton
|
|
53
53
|
|
54
54
|
def customise_liquid
|
55
55
|
::Liquid::Template
|
56
|
-
.register_filter(::Relaton::Render::Template::
|
56
|
+
.register_filter(::Relaton::Render::Template::CustomFilters)
|
57
57
|
end
|
58
58
|
|
59
59
|
# denote start and end of field,
|
@@ -187,7 +187,7 @@ module Relaton
|
|
187
187
|
end
|
188
188
|
|
189
189
|
def template_select_etal(names)
|
190
|
-
if @etal_count && names[:surname].size
|
190
|
+
if @etal_count && names[:surname].size > @etal_count
|
191
191
|
expand_nametemplate(@template_raw[:etal], @etal_display)
|
192
192
|
else
|
193
193
|
expand_nametemplate(@template_raw[:more], names[:surname].size)
|
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.9.
|
4
|
+
version: 0.9.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:
|
11
|
+
date: 2025-06-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -270,7 +270,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
270
270
|
- !ruby/object:Gem::Version
|
271
271
|
version: '0'
|
272
272
|
requirements: []
|
273
|
-
rubygems_version: 3.
|
273
|
+
rubygems_version: 3.5.22
|
274
274
|
signing_key:
|
275
275
|
specification_version: 4
|
276
276
|
summary: Rendering of ISO 690 XML
|