pennmarc 1.0.31 → 1.0.33

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,7 +6,7 @@ module PennMARC
6
6
  class << self
7
7
  # Get Alma MMS ID value
8
8
  #
9
- # @param [MARC::Record] record
9
+ # @param record [MARC::Record]
10
10
  # @return [String]
11
11
  def mmsid(record)
12
12
  record.fields('001').first.value
@@ -16,7 +16,7 @@ module PennMARC
16
16
  # {https://www.oclc.org/bibformats/en/0xx/020.html 020 field}, and subfield 'a', 'l', and 'z' of the
17
17
  # the {https://www.oclc.org/bibformats/en/0xx/020.html 022 field}.
18
18
  #
19
- # @param [MARC::Record] record
19
+ # @param record [MARC::Record]
20
20
  # @return [Array<String>]
21
21
  def isxn_search(record)
22
22
  record.fields(%w[020 022]).filter_map { |field|
@@ -31,7 +31,7 @@ module PennMARC
31
31
  # Get ISBN values for display from the {https://www.oclc.org/bibformats/en/0xx/020.html 020 field}
32
32
  # and related {https://www.oclc.org/bibformats/en/8xx/880.html 880 field}.
33
33
  #
34
- # @param [MARC::Record] record
34
+ # @param record [MARC::Record]
35
35
  # @return [Array<String>]
36
36
  def isbn_show(record)
37
37
  values = record.fields('020').filter_map do |field|
@@ -45,7 +45,7 @@ module PennMARC
45
45
  # Get ISSN values for display from the {https://www.oclc.org/bibformats/en/0xx/022.html 022 field} and related
46
46
  # {https://www.oclc.org/bibformats/en/8xx/880.html 880 field}.
47
47
  #
48
- # @param [MARC::Record] record
48
+ # @param record [MARC::Record]
49
49
  # @return [Array<String>]
50
50
  def issn_show(record)
51
51
  values = record.fields('022').filter_map do |field|
@@ -58,7 +58,7 @@ module PennMARC
58
58
 
59
59
  # Get numeric OCLC ID of first {https://www.oclc.org/bibformats/en/0xx/035.html 035 field}
60
60
  # with an OCLC ID defined in subfield 'a'.
61
- # @param [MARC::Record] record
61
+ # @param record [MARC::Record]
62
62
  # @return [String, nil]
63
63
  def oclc_id_show(record)
64
64
  ids = Array.wrap(record.fields('035')
@@ -81,7 +81,7 @@ module PennMARC
81
81
 
82
82
  # Retrieve valid and invalid numeric OCLC IDs from {https://www.oclc.org/bibformats/en/0xx/035.html 035 field}
83
83
  # for search.
84
- # @param [MARC::Record] record
84
+ # @param record [MARC::Record]
85
85
  # @return [Array<String>]
86
86
  def oclc_id_search(record)
87
87
  record.fields('035').flat_map { |field|
@@ -108,7 +108,7 @@ module PennMARC
108
108
  # {https://www.oclc.org/bibformats/en/8xx/880.html 880 field}. We do not return DOI values stored in 024 ǂ2,
109
109
  # see {PennMARC::Identifier.doi_show} for parsing DOI values.
110
110
  #
111
- # @param [MARC::Record] record
111
+ # @param record [MARC::Record]
112
112
  # @return [Array<string>]
113
113
  def publisher_number_show(record)
114
114
  record.fields(%w[024 028 880]).filter_map { |field|
@@ -126,7 +126,7 @@ module PennMARC
126
126
  # Get publisher issued identifiers for searching of a record. Values extracted from fields
127
127
  # {https://www.oclc.org/bibformats/en/0xx/024.html 024} and {https://www.oclc.org/bibformats/en/0xx/028.html 028}.
128
128
  #
129
- # @param [MARC::Record] record
129
+ # @param record [MARC::Record]
130
130
  # @return [Array<String>]
131
131
  def publisher_number_search(record)
132
132
  record.fields(%w[024 028]).filter_map { |field|
@@ -136,7 +136,7 @@ module PennMARC
136
136
  end
137
137
 
138
138
  # Retrieve fingerprint for display from the {https://www.oclc.org/bibformats/en/0xx/026.html 026} field
139
- # @param [MARC::Record] record
139
+ # @param record [MARC::Record]
140
140
  # @return [Array<String>]
141
141
  def fingerprint_show(record)
142
142
  record.fields('026').map { |field|
@@ -146,7 +146,7 @@ module PennMARC
146
146
 
147
147
  # Retrieve DOI values stored in {https://www.oclc.org/bibformats/en/0xx/024.html 024}.
148
148
  # Penn MARC records give the first indicator a value of '7' and ǂ2 a value of 'doi' to denote that ǂa is a doi.
149
- # @param [MARC::Record] record
149
+ # @param record [MARC::Record]
150
150
  # @return [Array<String>]
151
151
  def doi_show(record)
152
152
  record.fields('024').filter_map { |field|
@@ -161,7 +161,7 @@ module PennMARC
161
161
 
162
162
  # Gets any Host record MMS ID values from an Enriched::Pub::RELATED_RECORD_TAG field added during Alma enrichment.
163
163
  # This aids in our handling of "bound with" records.
164
- # @param [MARC::Record] record
164
+ # @param record [MARC::Record]
165
165
  # @return [Array<String>]
166
166
  def host_record_id(record)
167
167
  record.fields(Enriched::Pub::RELATED_RECORD_TAGS).filter_map { |field|
@@ -175,19 +175,19 @@ module PennMARC
175
175
 
176
176
  # Determine if subfield 'a' is an OCLC id.
177
177
  #
178
- # @param [MARC::Subfield]
179
- # @return [TrueClass, FalseClass]
178
+ # @param subfield [MARC::Subfield]
179
+ # @return [Boolean]
180
180
  def subfield_a_is_oclc?(subfield)
181
181
  subfield.code == 'a' && subfield_is_oclc?(subfield)
182
182
  end
183
183
 
184
- # @param [MARC::Subfield]
185
- # @return [TrueClass, FalseClass]
184
+ # @param subfield [MARC::Subfield]
185
+ # @return [Boolean]
186
186
  def subfield_is_oclc?(subfield)
187
187
  (subfield.value =~ /^\(OCoLC\).*/).present?
188
188
  end
189
189
 
190
- # @param [MARC::Subfield]
190
+ # @param subfield [MARC::Subfield]
191
191
  # @return [MatchData, nil]
192
192
  def match_oclc_number(subfield)
193
193
  /^\s*\(OCoLC\)[^1-9]*([1-9][0-9]*).*$/.match(subfield.value)
@@ -197,8 +197,8 @@ module PennMARC
197
197
  # Converts ISBN10 (ten-digit) to validated ISBN13 (thirteen-digit) and returns both values. If passed
198
198
  # ISBN13 parameter, only returns validated ISBN13 value.
199
199
  #
200
- # @param [String] isbn
201
- # @return [Array<String, String>, nil]
200
+ # @param isbn [String]
201
+ # @return [Array<String, String>, nil]
202
202
  def normalize_isbn(isbn)
203
203
  StdNum::ISBN.allNormalizedValues(isbn)
204
204
  end
@@ -18,7 +18,7 @@ module PennMARC
18
18
 
19
19
  class << self
20
20
  # Hash of Physical holdings information
21
- # @param [MARC::Record] record
21
+ # @param record [MARC::Record]
22
22
  # @return [Array, nil]
23
23
  def physical(record)
24
24
  source = enrichment_source(record)
@@ -30,7 +30,7 @@ module PennMARC
30
30
  end
31
31
 
32
32
  # Hash of Electronic inventory information
33
- # @param [MARC::Record] record
33
+ # @param record [MARC::Record]
34
34
  # @return [Array, nil]
35
35
  def electronic(record)
36
36
  source = enrichment_source(record)
@@ -42,14 +42,14 @@ module PennMARC
42
42
  end
43
43
 
44
44
  # Count of all electronic portfolios
45
- # @param [MARC::Record] record
45
+ # @param record [MARC::Record]
46
46
  # @return [Integer]
47
47
  def electronic_portfolio_count(record)
48
48
  record.count { |field| field.tag.in? %w[AVE prt] }
49
49
  end
50
50
 
51
51
  # Count of all physical holdings
52
- # @param [MARC::Record] record
52
+ # @param record [MARC::Record]
53
53
  # @return [Integer]
54
54
  def physical_holding_count(record)
55
55
  record.count { |field| field.tag.in? %w[AVA hld] }
@@ -58,7 +58,7 @@ module PennMARC
58
58
  private
59
59
 
60
60
  # Determine the source of the MARC inventory enrichment
61
- # @param [MARC::Record] record
61
+ # @param record [MARC::Record]
62
62
  # @return [Symbol, nil]
63
63
  def enrichment_source(record)
64
64
  if pub_enrichment_tags?(record)
@@ -70,7 +70,7 @@ module PennMARC
70
70
 
71
71
  # Does the record include tags from Publishing inventory enrichment?
72
72
  # @todo move to Util?
73
- # @param [MARC::Record] record
73
+ # @param record [MARC::Record]
74
74
  # @return [Boolean]
75
75
  def pub_enrichment_tags?(record)
76
76
  record.tags.intersect?(
@@ -80,7 +80,7 @@ module PennMARC
80
80
 
81
81
  # Does the record include tags from API inventory enrichment?
82
82
  # @todo move to Util?
83
- # @param [MARC::Record] record
83
+ # @param record [MARC::Record]
84
84
  # @return [Boolean]
85
85
  def api_enrichment_tags?(record)
86
86
  record.tags.intersect?(
@@ -6,8 +6,8 @@ module PennMARC
6
6
  class Base
7
7
  attr_reader :source, :field, :mapper
8
8
 
9
- # @param [MARC::DataField] inventory_field
10
- # @param [Symbol] source
9
+ # @param inventory_field [MARC::DataField]
10
+ # @param source [Symbol]
11
11
  def initialize(inventory_field, source)
12
12
  @source = source
13
13
  @field = inventory_field
@@ -12,7 +12,7 @@ module PennMARC
12
12
  class << self
13
13
  # Get language values for display from the {https://www.oclc.org/bibformats/en/5xx/546.html 546 field} and
14
14
  # related 880.
15
- # @param [MARC::Record] record
15
+ # @param record [MARC::Record]
16
16
  # @return [Array<String>] language values and notes
17
17
  def show(record)
18
18
  values = record.fields('546').map do |field|
@@ -31,9 +31,9 @@ module PennMARC
31
31
  # multilingual items, items that involve translation, and items where the medium of communication is a sign
32
32
  # language. https://www.loc.gov/marc/bibliographic/bd041.html
33
33
  #
34
- # @param [MARC::Record] record
35
- # @param [Hash] iso_639_2_mapping iso-639-2 spec hash for language code translation
36
- # @param [Hash] iso_639_3_mapping iso-639-3 spec hash for language code translation
34
+ # @param record [MARC::Record]
35
+ # @param iso_639_2_mapping [Hash] iso-639-2 spec hash for language code translation
36
+ # @param iso_639_3_mapping [Hash] iso-639-3 spec hash for language code translation
37
37
  # @return [Array<String>] array of language values
38
38
  def values(record, iso_639_2_mapping: Mappers.iso_639_2_language, iso_639_3_mapping: Mappers.iso_639_3_language)
39
39
  values = record.fields('041').filter_map { |field|
@@ -6,12 +6,12 @@ module PennMARC
6
6
  class << self
7
7
  # @todo the legacy code here is a hot mess for a number of reasons, what do we need this field to do?
8
8
  # @note port the needed parts from get_offsite_display, don't return HTML
9
- # @param [MARC::Record] record
9
+ # @param record [MARC::Record]
10
10
  # @return [Object]
11
11
  def offsite(record); end
12
12
 
13
13
  # Full text links from MARC 856 fields.
14
- # @param [MARC::Record] record
14
+ # @param record [MARC::Record]
15
15
  # @return [Array] array of hashes
16
16
  def full_text_links(record)
17
17
  indicator2_options = %w[0 1]
@@ -19,7 +19,7 @@ module PennMARC
19
19
  end
20
20
 
21
21
  # Web text links from MARC 856 fields.
22
- # @param [MARC::Record] record
22
+ # @param record [MARC::Record]
23
23
  # @return [Array] array of hashes
24
24
  def web_links(record)
25
25
  indicator2_options = ['2', ' ', '']
@@ -30,7 +30,7 @@ module PennMARC
30
30
 
31
31
  # Extract subfield 3 and z/y depending on the presence of either. Extract link url and assemble array
32
32
  # with text and link.
33
- # @param [MARC::Field] field
33
+ # @param field [MARC::Field]
34
34
  # @return [Array]
35
35
  def link_text_and_url(field)
36
36
  subfield3 = subfield_values(field, 3)
@@ -42,8 +42,8 @@ module PennMARC
42
42
 
43
43
  # Assemble array of link text, link URL values from 856 fields. Ensure indicator1 (access method)
44
44
  # is always 4 (HTTP) and indicator2 (relationship) can be specified by caller method.
45
- # @param [MARC::Record] record
46
- # @param [Array] indicator2_options
45
+ # @param record [MARC::Record]
46
+ # @param indicator2_options [Array]
47
47
  # @return [Array]
48
48
  def links_from_record(record, indicator2_options)
49
49
  record.fields('856').filter_map do |field|
@@ -12,8 +12,8 @@ module PennMARC
12
12
  # {PennMARC::Enriched} maps enriched marc fields and subfields created during Alma publishing.
13
13
  # @see https://developers.exlibrisgroup.com/alma/apis/docs/bibs/R0VUIC9hbG1hd3MvdjEvYmlicy97bW1zX2lkfQ==/
14
14
  # Alma documentation for these added fields
15
- # @param [MARC::Record] record
16
- # @param [Hash] location_map hash with location_code as key and location hash as value
15
+ # @param record [MARC::Record]
16
+ # @param location_map [Hash] hash with location_code as key and location hash as value
17
17
  # @return [Array<String>] Array of library locations retrieved from location_map
18
18
  def library(record, location_map: Mappers.location)
19
19
  location(record: record, location_map: location_map, display_value: 'library')
@@ -25,8 +25,8 @@ module PennMARC
25
25
  # {PennMARC::Enriched} maps enriched marc fields and subfields created during Alma publishing.
26
26
  # @see https://developers.exlibrisgroup.com/alma/apis/docs/bibs/R0VUIC9hbG1hd3MvdjEvYmlicy97bW1zX2lkfQ==/
27
27
  # Alma documentation for these added fields
28
- # @param [MARC::Record] record
29
- # @param [Hash] location_map hash with location_code as key and location hash as value
28
+ # @param record [MARC::Record]
29
+ # @param location_map [Hash] hash with location_code as key and location hash as value
30
30
  # @return [Array<String>] Array of specific locations retrieved from location_map
31
31
  def specific_location(record, location_map: Mappers.location)
32
32
  location(record: record, location_map: location_map, display_value: 'specific_location')
@@ -37,9 +37,9 @@ module PennMARC
37
37
  # {PennMARC::Enriched} maps enriched marc fields and subfields created during Alma publishing.
38
38
  # @see https://developers.exlibrisgroup.com/alma/apis/docs/bibs/R0VUIC9hbG1hd3MvdjEvYmlicy97bW1zX2lkfQ==/
39
39
  # Alma documentation for these added fields
40
- # @param [MARC::Record] record
41
- # @param [Symbol | String] display_value field in location hash to retrieve
42
- # @param [Hash] location_map hash with location_code as key and location hash as value
40
+ # @param record [MARC::Record]
41
+ # @param display_value [Symbol | String] field in location hash to retrieve
42
+ # @param location_map [Hash] hash with location_code as key and location hash as value
43
43
  # @return [Array<String>]
44
44
  def location(record:, display_value:, location_map:)
45
45
  # get enriched marc location tag and relevant subfields
@@ -71,7 +71,7 @@ module PennMARC
71
71
 
72
72
  # Determine enriched marc location tag, location code subfield, and call number subfield,
73
73
  # giving priority to using 'itm', 'AVA', or 'AVE' fields.
74
- # @param [MARC::Record]
74
+ # @param record [MARC::Record]
75
75
  # @return [Hash<String, String>] containing location tag and subfield code
76
76
  # - `:tag` (String): The enriched marc location tag
77
77
  # - `:location_code_sf` (String): The subfield code where location code is stored
@@ -111,8 +111,8 @@ module PennMARC
111
111
  # map, we ignore it, for faceting purposes. We also ignore the location code 'web'. We don't facet for 'web'
112
112
  # which is the 'Penn Library Web' location used in Voyager. This location should eventually go away completely
113
113
  # with data cleanup in Alma.
114
- # @param [location_map] location_map hash with location_code as key and location hash as value
115
- # @param [location_code] location_code retrieved from record
114
+ # @param location_map [location_map] hash with location_code as key and location hash as value
115
+ # @param location_code [location_code] retrieved from record
116
116
  # @return [Boolean]
117
117
  def location_code_to_ignore?(location_map, location_code)
118
118
  location_map.key?(location_code.to_sym) == false || location_code == WEB_LOCATION_CODE
@@ -120,10 +120,10 @@ module PennMARC
120
120
 
121
121
  # Retrieves a specific location override based on location code and call number. Specific location overrides are
122
122
  # located in `location_overrides.yml`.
123
- # @param [String | Symbol] display_value
124
- # @param [String] location_code
125
- # @param [MARC::Field] field
126
- # @param [String] call_num_sf
123
+ # @param display_value [String | Symbol]
124
+ # @param location_code [String]
125
+ # @param field [MARC::Field]
126
+ # @param call_num_sf [String]
127
127
  # @return [String, Nil]
128
128
  def specific_location_override(display_value:, location_code:, field:, call_num_sf:)
129
129
  return unless display_value.to_sym == :specific_location
@@ -172,7 +172,7 @@ module PennMARC
172
172
  end
173
173
 
174
174
  # Retrieve "With" notes for display from field {https://www.loc.gov/marc/bibliographic/bd501.html 501}
175
- # @param record [Marc::Record]
175
+ # @param record [MARC::Record]
176
176
  # @return [Array<String>]
177
177
  def bound_with_show(record)
178
178
  record.fields('501').filter_map { |field| join_subfields(field, &subfield_in?(['a'])).presence }.uniq
@@ -183,7 +183,7 @@ module PennMARC
183
183
  # For system details: extract subfield ǂ3 plus other subfields as specified by passed-in block. Pays special
184
184
  # attention to punctuation, joining subfield ǂ3 values with a colon-space (': ').
185
185
  # @param field [MARC::DataField]
186
- # @param & [Proc]
186
+ # @yieldparam & [Proc]
187
187
  # @return [String]
188
188
  def sub3_and_other_subs(field, &)
189
189
  sub3 = field.filter_map { |sf| trim_trailing('period', sf.value) if sf.code == '3' }.join(': ')
@@ -109,8 +109,8 @@ module PennMARC
109
109
  # {https://www.loc.gov/marc/bibliographic/bd245.html 245},
110
110
  # {https://www.loc.gov/marc/bibliographic/bd260.html 260}-262 and their linked alternates,
111
111
  # and {https://www.loc.gov/marc/bibliographic/bd264.html 264} and its linked alternate.
112
- # @param [MARC::Record] record
113
- # @param [Boolean] with_year: return results with publication year if true
112
+ # @param record [MARC::Record]
113
+ # @param with_year [Boolean] return results with publication year if true
114
114
  # @return [Array<String>]
115
115
  def publication_citation_show(record, with_year: true)
116
116
  values = record.fields('245').first(1).flat_map { |field| subfield_values(field, 'f') }
@@ -131,14 +131,14 @@ module PennMARC
131
131
  end
132
132
 
133
133
  # Returns the place of publication for RIS
134
- # @param [MARC::Record] record
134
+ # @param record [MARC::Record]
135
135
  # @return [Array<String>]
136
136
  def publication_ris_place_of_pub(record)
137
137
  get_publication_ris_values(record, 'a')
138
138
  end
139
139
 
140
140
  # Returns the publisher for RIS
141
- # @param [MARC::Record] record
141
+ # @param record [MARC::Record]
142
142
  # @return [Array<String>]
143
143
  def publication_ris_publisher(record)
144
144
  get_publication_ris_values(record, 'b')
@@ -202,8 +202,9 @@ module PennMARC
202
202
  end
203
203
 
204
204
  # Returns the publication value of the given subfield
205
- # @param [MARC::Record] record
206
- # @param [String] subfield
205
+ # @param record [MARC::Record]
206
+ # @param subfield [String]
207
+ # @return [Array<String>]
207
208
  def get_publication_ris_values(record, subfield)
208
209
  values = record.fields('245').first(1).flat_map { |field| subfield_values(field, 'f') }
209
210
 
@@ -13,7 +13,7 @@ module PennMARC
13
13
  # Get values for "{https://www.oclc.org/bibformats/en/7xx/773.html Host Item}" for this record. Values contained
14
14
  # in this field should be sufficient to locate host item record.
15
15
  #
16
- # @param [MARC::Record] record
16
+ # @param record [MARC::Record]
17
17
  # @return [Array<String>] contained in values for display
18
18
  def contained_in_show(record)
19
19
  record.fields('773').map { |field|
@@ -23,21 +23,21 @@ module PennMARC
23
23
 
24
24
  # Get "chronology" information from specially-prefixed 650 (subject) fields
25
25
  # @todo why do we stuff chronology data in a 650 field?
26
- # @param [MARC::Record] record
26
+ # @param record [MARC::Record]
27
27
  # @return [Array] array of chronology values
28
28
  def chronology_show(record)
29
29
  prefixed_subject_and_alternate(record, CHRONOLOGY_PREFIX)
30
30
  end
31
31
 
32
32
  # Get notes for Related Collections from {https://www.oclc.org/bibformats/en/5xx/544.html MARC 544}.
33
- # @param [MARC::Record] record
33
+ # @param record [MARC::Record]
34
34
  # @return [Array]
35
35
  def related_collections_show(record)
36
36
  datafield_and_linked_alternate(record, '544')
37
37
  end
38
38
 
39
39
  # Get notes for "Publication About" from {https://www.oclc.org/bibformats/en/5xx/581.html MARC 581}.
40
- # @param [MARC::Record] record
40
+ # @param record [MARC::Record]
41
41
  # @return [Array]
42
42
  def publications_about_show(record)
43
43
  datafield_and_linked_alternate(record, '581')
@@ -45,8 +45,8 @@ module PennMARC
45
45
 
46
46
  # Get related work from {RELATED_WORK_FIELDS} in the 7XX range. Require presence of sf t (title) and absence of
47
47
  # an indicator2 value. Prefix returned values with sf i value. Also map relator codes found in sf 4. Ignore sf 0.
48
- # @param [MARC::Record] record
49
- # @param [Hash] relator_map
48
+ # @param record [MARC::Record]
49
+ # @param relator_map [Hash]
50
50
  # @return [Array]
51
51
  def related_work_show(record, relator_map: Mappers.relator)
52
52
  fields = record.fields(RELATED_WORK_FIELDS)
@@ -71,8 +71,8 @@ module PennMARC
71
71
  # "Analytical Entry" meaning that the record is contained by the matching field. Map relator codes in sf 4. Ignore
72
72
  # values in sf 0, 5, 6, and 8.
73
73
  # @todo is it okay to include 880 $4 here? Legacy includes untranslated $4, why?
74
- # @param [MARC::Record] record
75
- # @param [Hash] relator_map
74
+ # @param record [MARC::Record]
75
+ # @param relator_map [Hash]
76
76
  # @return [Array<String>]
77
77
  def contains_show(record, relator_map: Mappers.relator)
78
78
  fields = record.fields(CONTAINS_FIELDS)
@@ -93,7 +93,7 @@ module PennMARC
93
93
 
94
94
  # Get "Constituent Unit" values from {https://www.oclc.org/bibformats/en/7xx/774.html MARC 774}. Include
95
95
  # subfield values in i, a, s and t.
96
- # @param [MARC::Record] record
96
+ # @param record [MARC::Record]
97
97
  # @return [Array]
98
98
  def constituent_unit_show(record)
99
99
  values = record.fields('774').filter_map do |field|
@@ -105,7 +105,7 @@ module PennMARC
105
105
 
106
106
  # Get "Has Supplement" values from {https://www.oclc.org/bibformats/en/7xx/770.html MARC 770}. Ignore
107
107
  # subfield values in 6 and 8.
108
- # @param [MARC::Record] record
108
+ # @param record [MARC::Record]
109
109
  # @return [Array]
110
110
  def has_supplement_show(record)
111
111
  datafield_and_linked_alternate(record, '770')
@@ -114,10 +114,10 @@ module PennMARC
114
114
  private
115
115
 
116
116
  # Handle common behavior when a relator field references a title in subfield i
117
- # @param [MARC::DataField] field
118
- # @param [String, nil] relator_term_sf subfield that holds relator term
119
- # @param [Hash, nil] relator_map map relator in sf4 using this map, optional
120
- # @param [Proc] join_selector
117
+ # @param field [MARC::DataField]
118
+ # @param relator_term_sf [String, nil] subfield that holds relator term
119
+ # @param relator_map [Hash, nil] map relator in sf4 using this map, optional
120
+ # @param join_selector [Proc]
121
121
  # @return [String] extracted and processed values from field
122
122
  def values_with_title_prefix(field, relator_term_sf: nil, relator_map: nil, &join_selector)
123
123
  subi = remove_paren_value_from_subfield_i(field) || ''
@@ -18,8 +18,8 @@ module PennMARC
18
18
  DISPLAY_TAGS = %w[800 810 811 830 400 410 411 440 490].freeze
19
19
 
20
20
  # Fields for display that pertain to series information.
21
- # @param [MARC::Record] record
22
- # @param [Hash] relator_map
21
+ # @param record [MARC::Record]
22
+ # @param relator_map [Hash]
23
23
  # @return [Array<String>] array of series information
24
24
  def show(record, relator_map: Mappers.relator)
25
25
  tags_present = DISPLAY_TAGS.select { |tag| record[tag].present? }
@@ -36,8 +36,8 @@ module PennMARC
36
36
  end
37
37
 
38
38
  # Values from series fields for display.
39
- # @param [MARC::Record] record
40
- # @param [Hash] relator_map
39
+ # @param record [MARC::Record]
40
+ # @param relator_map [Hash]
41
41
  # @return [Array<String>] array of series values
42
42
  def values(record, relator_map: Mappers.relator)
43
43
  series_8x = record.fields(%w[800 810 811 830]).first
@@ -48,7 +48,7 @@ module PennMARC
48
48
  end
49
49
 
50
50
  # Series fields for search.
51
- # @param [MARC::Record] record
51
+ # @param record [MARC::Record]
52
52
  # @return [Array<String>] array of series values
53
53
  def search(record)
54
54
  values = record.fields(%w[400 410 411]).filter_map do |field|
@@ -83,7 +83,7 @@ module PennMARC
83
83
  # is generated from this field, the introductory term or phrase may be generated based on the value in the second
84
84
  # indicator position for display.
85
85
  # https://www.loc.gov/marc/bibliographic/bd780.html
86
- # @param [MARC::Record] record
86
+ # @param record [MARC::Record]
87
87
  # @return [Array<String>] continues fields string
88
88
  def get_continues_show(record)
89
89
  continues(record, '780').uniq
@@ -93,7 +93,7 @@ module PennMARC
93
93
  # generated from this field, the introductory phrase may be generated based on the value in the second indicator
94
94
  # position for display.
95
95
  # https://www.loc.gov/marc/bibliographic/bd785.html
96
- # @param [MARC::Record] record
96
+ # @param record [MARC::Record]
97
97
  # @return [Array<String>] continued by fields string
98
98
  def get_continued_by_show(record)
99
99
  continues(record, '785').uniq
@@ -104,9 +104,9 @@ module PennMARC
104
104
  # If any of these values: 800 810 811 400 410 411 are present, return a string with series information and
105
105
  # appended values.
106
106
  # @note added 2017/04/10: filter out 0 (authority record numbers) added by Alma
107
- # @param [MARC::Record] record
108
- # @param [String] first_tag
109
- # @param [Hash] relator_mapping
107
+ # @param record [MARC::Record]
108
+ # @param first_tag [String]
109
+ # @param relator_mapping [Hash]
110
110
  # @return [Array<Hash>] array of author show entry hashes
111
111
  def author_show_entries(record, first_tag, relator_mapping)
112
112
  record.fields(first_tag).map do |field|
@@ -126,8 +126,8 @@ module PennMARC
126
126
 
127
127
  # If any of these values: 830 440 490 are present, return a string with series information and appended values.
128
128
  # @note added 2017/04/10: filter out 0 (authority record numbers) added by Alma
129
- # @param [MARC::Record] record
130
- # @param [String] first_tag
129
+ # @param record [MARC::Record]
130
+ # @param first_tag [String]
131
131
  # @return [Array<String>] array of author show entry strings
132
132
  def title_show_entries(record, first_tag)
133
133
  record.fields(first_tag).map do |field|
@@ -139,8 +139,8 @@ module PennMARC
139
139
 
140
140
  # Assemble an array of hashes that includes the remaining show entries.
141
141
  # @note added 2017/04/10: filter out 0 (authority record numbers) added by Alma
142
- # @param [MARC::Record] record
143
- # @param [Array<String>] tags_present
142
+ # @param record [MARC::Record]
143
+ # @param tags_present [Array<String>]
144
144
  # @return [Array<Hash>] array of remaining show entry hashes
145
145
  def remaining_show_entries(record, tags_present)
146
146
  record.fields(tags_present.drop(1)).map do |field|
@@ -156,7 +156,7 @@ module PennMARC
156
156
  # is linked to the associated regular field by subfield $6 (Linkage). A subfield $6 in the associated field also
157
157
  # links that field to the 880 field. The data in field 880 may be in more than one script. This function exists
158
158
  # because it differs than the tradition use of linked_alternate.
159
- # @param [MARC::Record] record
159
+ # @param record [MARC::Record]
160
160
  # @return [Array<String>]
161
161
  def series_880_fields(record)
162
162
  record.fields('880').filter_map do |field|
@@ -168,8 +168,8 @@ module PennMARC
168
168
 
169
169
  # Assemble a formatted string of a given field.
170
170
  # @note added 2017/04/10: filter out 0 (authority record numbers) added by Alma
171
- # @param [MARC::Field] field
172
- # @param [Hash] relator_mapping
171
+ # @param field [MARC::Field]
172
+ # @param relator_mapping [Hash]
173
173
  # @return [String] series 4xx field
174
174
  def series_field(field, relator_mapping)
175
175
  subfields = if field.tag.start_with? '4'
@@ -189,8 +189,8 @@ module PennMARC
189
189
  end
190
190
 
191
191
  # Get subfields from a given field (continues or continued_by).
192
- # @param [MARC::Record] record
193
- # @param [String] tag
192
+ # @param record [MARC::Record]
193
+ # @param tag [String]
194
194
  # @return [Array<String>] joined subfields
195
195
  def continues(record, tag)
196
196
  record.fields.filter_map do |field|