mods_display 1.3.2 → 1.3.4
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db5aacb765a91a03b8fe5fbb6c41b52ab0cb2f94467808f5e896f9b95c5b72ad
|
4
|
+
data.tar.gz: b0572788c7868f49d98340668a28e71dde9cd41f676927436ce2ec9d09f24f83
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 283a91d3efc90f2cdac50c2adae6133e758084ed454bbc9c79000567d9f83696e15369089290609c709e2c38b4e9e02a19d264297ff48e529aaf232bfd02f773
|
7
|
+
data.tar.gz: a22877a514a7379219856dc941dfca980eb23aa7c8b0d2e8f12a8d023300dee4655ca1ef7e87e3ec36fe980c524eb07af848425d8b920b5d41324ae995871751
|
@@ -17,6 +17,7 @@ module ModsDisplay
|
|
17
17
|
render component.new(field: field, delimiter: delimiter, value_transformer: block)
|
18
18
|
end
|
19
19
|
|
20
|
+
# this returns a role's label and the display names for ModsDisplay:Name:Person
|
20
21
|
def mods_name_field(field)
|
21
22
|
mods_record_field(field) do |name|
|
22
23
|
block_given? ? capture { yield(name.name) } : name.name
|
@@ -90,8 +91,12 @@ module ModsDisplay
|
|
90
91
|
# Martin Wong data has significant linebreaks in abstracts and notes that we want
|
91
92
|
# to preserve and display in HTML.
|
92
93
|
#
|
94
|
+
# Some user-deposited items have complex use and reproduction statements that also
|
95
|
+
# need linebreaks preserved.
|
96
|
+
#
|
93
97
|
# See https://github.com/sul-dlss/mods_display/issues/78
|
94
|
-
|
98
|
+
# and https://github.com/sul-dlss/mods_display/issues/145
|
99
|
+
simple_formatted_fields = [ModsDisplay::Abstract, ModsDisplay::Contents, ModsDisplay::Note, ModsDisplay::AccessCondition]
|
95
100
|
if simple_formatted_fields.any? { |klass| field&.field.is_a? klass } && formatted_val.include?("\n")
|
96
101
|
simple_format(formatted_val, {}, sanitize: false)
|
97
102
|
else
|
@@ -54,7 +54,8 @@ module ModsDisplay
|
|
54
54
|
return_fields = @values.map do |value|
|
55
55
|
ModsDisplay::Values.new(
|
56
56
|
label: displayLabel(value) || access_label(value),
|
57
|
-
values: [process_access_statement(value)]
|
57
|
+
values: [process_access_statement(value)],
|
58
|
+
field: self
|
58
59
|
)
|
59
60
|
end
|
60
61
|
collapse_fields(return_fields)
|
@@ -82,10 +83,21 @@ module ModsDisplay
|
|
82
83
|
end
|
83
84
|
|
84
85
|
def license_statement(element)
|
85
|
-
|
86
|
+
element_text = element_text(element)
|
87
|
+
legacy_matches = element_text.match(/^(?<code>.*) (?<type>.*):(?<description>.*)$/)
|
88
|
+
return legacy_license_statement(element, legacy_matches) if legacy_matches
|
86
89
|
|
87
|
-
|
90
|
+
matches = element_text.match(/^This work is licensed under a (.+?)\.$/)
|
91
|
+
return linked_licensed_statement(element, matches) if matches && element['xlink:href'].present?
|
88
92
|
|
93
|
+
element_text
|
94
|
+
end
|
95
|
+
|
96
|
+
def linked_licensed_statement(element, matches)
|
97
|
+
"This work is licensed under a <a href='#{element['xlink:href']}'>#{matches[1]}</a>."
|
98
|
+
end
|
99
|
+
|
100
|
+
def legacy_license_statement(_element, matches)
|
89
101
|
code = matches[:code].downcase
|
90
102
|
type = matches[:type].downcase
|
91
103
|
description = license_description(code, type) || matches[:description]
|
@@ -3,6 +3,9 @@
|
|
3
3
|
module ModsDisplay
|
4
4
|
class Name < Field
|
5
5
|
include ModsDisplay::RelatorCodes
|
6
|
+
|
7
|
+
# this returns a hash:
|
8
|
+
# { role1 label => [ ModsDisplay:Name:Person, ModsDisplay:Name:Person, ...], role2 label => [ ModsDisplay:Name:Person, ModsDisplay:Name:Person, ...] }
|
6
9
|
def fields
|
7
10
|
return_fields = @values.map do |value|
|
8
11
|
name_identifiers = value.element_children.select { |child| child.name == 'nameIdentifier' }
|
data/lib/mods_display/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mods_display
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jessie Keck
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-11-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: stanford-mods
|
@@ -245,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
245
|
- !ruby/object:Gem::Version
|
246
246
|
version: '0'
|
247
247
|
requirements: []
|
248
|
-
rubygems_version: 3.4.
|
248
|
+
rubygems_version: 3.4.10
|
249
249
|
signing_key:
|
250
250
|
specification_version: 4
|
251
251
|
summary: The MODS Display gem allows implementers to configure a customized display
|