relaton-render 0.4.0 → 0.4.3

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: adb92be3ce06dd2d7d1f2c940826ffcb94b061e0beeef81ccc745f85d10aed42
4
- data.tar.gz: a7333f5a5d1154c8dcbe85135955595530bab40b584ac34a5f1febe67882d3b8
3
+ metadata.gz: 15d7bd7a186b81235cfc86e2259970512612706cd33cc09a87b98c06202d7ee7
4
+ data.tar.gz: 511378e83688bb4c0590f6012be5176cda67edd1e368e0994251b3bd638627bd
5
5
  SHA512:
6
- metadata.gz: c7fb788d09f5ad3ccc820d52c171522498ad3f46782754aac07ce91e85b1c318864848be6df9391d0ec099a7b9a50afc21d1c069d07692a7c2a9b88505514f5b
7
- data.tar.gz: 1f35895353ef8fdc5db0b71dd8cb7f8bf6bcf2ecf49ef06ebfa754391ac4b29e4268a14295febc1fceb4226c970e5f849c8c35597b42a16b00d5ff0ee36c1e62
6
+ metadata.gz: 48d082ba071e7b794ffced1cc4a74c691e1715b0bfad3adcfa85d58ef7b8a2dd0cc37931c6f4d9505b91209889415f930dc4d887d2b7aac5151c061912f3f8ee
7
+ data.tar.gz: 6a6786748486fbf4f065fac5951acdb5f647a5d7de652ed4dbf6d07cd344f5a3fcab3c4e9d59da521301fdc93f8e0d1552cdf0404a8d3bf363d145143f9117cc
data/README.adoc CHANGED
@@ -218,7 +218,7 @@ draws on the following fields drawn from the bibliographic item:
218
218
  | surname[0] | ./contributor[1]/person/name/surname \| ./contributor[1]/person/name/completename | | i.e. surname is the name default
219
219
  | surname[1] | ./contributor[2]/name/surname | |
220
220
  | surname[2] | ./contributor[3]/name/surname | |
221
- | initials[0] | ./contributor[1]/name/initial | | If not supplied, the first letter of each given name is used instead
221
+ | initials[0] | ./contributor[1]/name/formatted-initials \| ./contributor[1]/name/forename/@initial | | If not supplied, the first letter of each given name is used instead
222
222
  | initials[1] | ./contributor[2]/name/initial | |
223
223
  | given[0] | ./contributor[1]/name/forename[1] | | If not supplied, initials are used instead
224
224
  | given[1] | ./contributor[2]/name/forename[1] | |
@@ -228,6 +228,10 @@ draws on the following fields drawn from the bibliographic item:
228
228
  | nonpersonal[1] |./contributor[2]/organization/name | Y |
229
229
  |===
230
230
 
231
+ The `formatted-initials` field is presumed to contain full stops, and so do the surrogates of that field done by using individual
232
+ forenames' `initial` attributes, or the forename initials. If the full stops are to be stripped, that needs to occur within the
233
+ Liquid template.
234
+
231
235
  There are at least three distinct `nametemplate` instances that need to be provided, one for a single contributor (`one:`), one for two contributors (`two:`), one for three or more (`more:`), and optionally one for "et al." (`etal:`). The number of contributors for which "et al." starts being used is indicated by `etal_count`.
232
236
 
233
237
  For example:
@@ -94,7 +94,7 @@ module Relaton
94
94
  end
95
95
 
96
96
  def authorciteformat(names)
97
- return names if names.nil?
97
+ return names if names.nil? || @r.authorcitetemplate.nil?
98
98
 
99
99
  parts = %i(surname initials given middle nonpersonal)
100
100
  names_out = names.each_with_object({}) do |n, m|
@@ -61,19 +61,25 @@ module Relaton
61
61
  end
62
62
 
63
63
  def suffix_date(ret)
64
- ret.each_value do |v|
65
- v.each_value do |v1|
66
- next if v1.size < 2
64
+ ret.each do |k, v|
65
+ v.each do |k1, v1|
66
+ next if v1.reject { |b| b[:date].nil? }.size < 2
67
67
 
68
- v1.each_with_index do |b, i|
69
- b[:date] += ("a".ord + i).chr.to_s
70
- b[:data_liquid][:date] = b[:date]
71
- end
68
+ suffix_date1(ret, k, k1)
72
69
  end
73
70
  end
74
71
  ret
75
72
  end
76
73
 
74
+ def suffix_date1(ret, key1, key2)
75
+ ret[key1][key2].each_with_index do |b, i|
76
+ next if b[:date].nil?
77
+
78
+ b[:date] += ("a".ord + i).chr.to_s
79
+ b[:data_liquid][:date] = b[:date]
80
+ end
81
+ end
82
+
77
83
  def to_hash(ret)
78
84
  ret.each_with_object({}) do |(_k, v), m|
79
85
  v.each do |_k1, v1|
@@ -1,9 +1,9 @@
1
1
  nametemplate:
2
- one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase }} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: '. '}}.{%endif%}{% endif %}"
3
- two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: '. '}}.{%endif%}{% endif %} {{ labels['and'] }} {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: '. '}}.{%endif%} {{surname[1] | upcase}}{% endif %}"
4
- more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: '. '}}.{%endif%}{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: '. '}}.{%endif%} {{surname[1] | upcase}}{% endif %} {{ labels['and'] }} {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{%if given[2]%}{{given[2]}} {{middle[2]}}{%else%}{{initials[2] | join: '. '}}.{%endif%} {{surname[2] | upcase}}{% endif %}"
2
+ one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase }} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %}"
3
+ two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %} {{ labels['and'] }} {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: ' '}}.{%endif%} {{surname[1] | upcase}}{% endif %}"
4
+ more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: ' '}}.{%endif%} {{surname[1] | upcase}}{% endif %} {{ labels['and'] }} {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{%if given[2]%}{{given[2]}} {{middle[2]}}{%else%}{{initials[2] | join: ' '}}.{%endif%} {{surname[2] | upcase}}{% endif %}"
5
5
  # disabled the following: they should be provided in inheriting calls
6
- # etal: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: '. '}}.{%endif%}{% endif %}, {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: '. '}}.{%endif%} {{surname[1] | upcase}}{% endif %} <em>et al.</em>"
6
+ # etal: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %}, {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: ' '}}.{%endif%} {{surname[1] | upcase}}{% endif %} <em>et al.</em>"
7
7
  # etal_count: 5
8
8
  authorcitetemplate:
9
9
  one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] }}{% endif %}"
@@ -44,7 +44,7 @@ module Relaton
44
44
  @nametemplate = @nametemplateklass
45
45
  .new(template: opt["nametemplate"], i18n: @i18n)
46
46
  @authorcitetemplate = @authorcitetemplateklass
47
- .new(template: opt["authorcitetemplate"], i18n: @i18n)
47
+ &.new(template: opt["authorcitetemplate"], i18n: @i18n)
48
48
  @seriestemplate = @seriestemplateklass
49
49
  .new(template: opt["seriestemplate"], i18n: @i18n)
50
50
  @journaltemplate = @seriestemplateklass
@@ -15,11 +15,14 @@ module Relaton
15
15
  end
16
16
 
17
17
  def given_and_middle_name(person)
18
- forenames = person.name.forename.map(&:content)
19
- initials = person.name.initial.map(&:content)
20
- .map { |x| x.sub(/\.$/, "") }
18
+ forenames = person.name.forename.map do |x|
19
+ x.content.empty? ? "#{x.initial}." : x.content
20
+ end
21
+ initials = person.name.initials&.content&.sub(/(.)\.?$/, "\\1.")
22
+ initials ||= person.name.forename.map(&:initial)
23
+ .compact.map { |x| x.sub(/(.)\.?$/, "\\1.") }
21
24
  forenames.empty? and initials.empty? and return [nil, nil, nil]
22
- initials.empty? and initials = forenames.map { |x| x[0] }
25
+ initials.empty? and initials = forenames.map { |x| "#{x[0]}." }
23
26
  [forenames.first, forenames[1..-1], initials]
24
27
  end
25
28
 
@@ -1,5 +1,5 @@
1
1
  module Relaton
2
2
  module Render
3
- VERSION = "0.4.0".freeze
3
+ VERSION = "0.4.3".freeze
4
4
  end
5
5
  end
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "isodoc-i18n"
32
32
  spec.add_dependency "liquid", "~> 4"
33
33
  spec.add_dependency "nokogiri"
34
- spec.add_dependency "relaton-bib", ">= 1.12.0"
34
+ spec.add_dependency "relaton-bib", ">= 1.13.0"
35
35
  spec.add_dependency "twitter_cldr"
36
36
  spec.add_dependency "tzinfo-data" # we need this for windows only
37
37
  #spec.metadata["rubygems_mfa_required"] = "true"
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.4.0
4
+ version: 0.4.3
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-08-09 00:00:00.000000000 Z
11
+ date: 2022-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -142,14 +142,14 @@ dependencies:
142
142
  requirements:
143
143
  - - ">="
144
144
  - !ruby/object:Gem::Version
145
- version: 1.12.0
145
+ version: 1.13.0
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - ">="
151
151
  - !ruby/object:Gem::Version
152
- version: 1.12.0
152
+ version: 1.13.0
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: twitter_cldr
155
155
  requirement: !ruby/object:Gem::Requirement