pennmarc 1.0.31 → 1.0.32

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a10e18cc63414bbcc1f3ab3d0dbb47517552830f835a0ca10c50added035e9e
4
- data.tar.gz: 0153e3bb11fe9646f0b3e6614ef2229654d70d60a0bace46e3d57a9c49800ccd
3
+ metadata.gz: 529930d44585a1ba459c533cd6906bbc910a3b73c2a09bc57c0eb1f2739772b7
4
+ data.tar.gz: 1570743e970c564ece0d3eefa40fd51a720cf920f44cf97fca866770e21785bd
5
5
  SHA512:
6
- metadata.gz: d9fa4ea2d2e36736f240e8a9431d487d9195e92a1eecf2e847c8cbda94b9d7e5da1029654754b4582d1036ffb453115bf6e88f2c09e8668704830c2ff46c78a3
7
- data.tar.gz: fb4a80ff8479b248e90c33c2eb43038d957ad93de3b3978ec964bdffba11621106a8fb61ff7feb4aeb03c8dfec251f0af7da4a7a00751e34d122312059bdf6a2
6
+ metadata.gz: 97e6db5b2bccfde42421db0276b890b9ec0ea81bd9862679b1b948ba692d44f0dd23bd54dde788f042908c4dfb6c22f1016109f3ae449711a9c09fba98729aa8
7
+ data.tar.gz: 8dc0c53f5f491f2c403b392fb0edf69ed61fd193e131a118c0ea2f4b3f2d33b24eca1412207d2791320f69475f57fd08e74928d888b5fafba6907f9a6e5251b1
@@ -12,7 +12,7 @@ module PennMARC
12
12
  # electronic access or has physical holdings, and is therefore "Online" or "At the library". If a record is "At
13
13
  # the library", but has a link to a finding aid in the 856 field (matching certain criteria), also add 'Online' as
14
14
  # an access method.
15
- # @param [MARC::Record] record
15
+ # @param record [MARC::Record]
16
16
  # @return [Array]
17
17
  def facet(record)
18
18
  values = record.filter_map do |field|
@@ -30,14 +30,14 @@ module PennMARC
30
30
  private
31
31
 
32
32
  # Does the record have added electronic holding info?
33
- # @param [MARC::Field] field
33
+ # @param field [MARC::Field]
34
34
  # @return [Boolean]
35
35
  def electronic_holding_tag?(field)
36
36
  field.tag.in? [Enriched::Pub::ELEC_INVENTORY_TAG, Enriched::Api::ELEC_INVENTORY_TAG]
37
37
  end
38
38
 
39
39
  # Does the record have added physical holding info?
40
- # @param [MARC::Field] field
40
+ # @param field [MARC::Field]
41
41
  # @return [Boolean]
42
42
  def physical_holding_tag?(field)
43
43
  field.tag.in? [Enriched::Pub::PHYS_INVENTORY_TAG, Enriched::Api::PHYS_INVENTORY_TAG]
@@ -51,7 +51,7 @@ module PennMARC
51
51
  # See: https://www.loc.gov/marc/bibliographic/bd856.html
52
52
  # @note Some electronic records do not have Portfolios in Alma, so we rely upon the Resource Link in the 856 to
53
53
  # get these records included in the Online category.
54
- # @param [MARC::Record] record
54
+ # @param record [MARC::Record]
55
55
  # @return [Boolean]
56
56
  def resource_link?(record)
57
57
  record.fields('856').filter_map do |field|
@@ -10,7 +10,7 @@ module PennMARC
10
10
  # abbreviations, etc.). The actual text of a published description is not recorded in field 510 but rather in
11
11
  # field 520 (Summary, Etc. Note).
12
12
  # https://www.loc.gov/marc/bibliographic/bd510.html
13
- # @param [MARC::Record] record
13
+ # @param record [MARC::Record]
14
14
  # @return [Array<String>] array of citations and any linked alternates
15
15
  def cited_in_show(record)
16
16
  datafield_and_linked_alternate(record, '510').uniq
@@ -21,7 +21,7 @@ module PennMARC
21
21
  # each is recorded in a separate occurrence of field 524. The note is sometimes displayed and/or printed with an
22
22
  # introductory phrase that is generated as a display constant based on the first indicator value.
23
23
  # https://www.loc.gov/marc/bibliographic/bd524.html
24
- # @param [MARC::Record] record
24
+ # @param record [MARC::Record]
25
25
  # @return [Array<String>] array of citation of described materials note and any linked alternates
26
26
  def cite_as_show(record)
27
27
  datafield_and_linked_alternate(record, '524').uniq
@@ -25,7 +25,7 @@ module PennMARC
25
25
  # its title in a single string. See {PennMARC::Enriched} and {PennMARC::Enriched::Api} for more
26
26
  # information on the enriched MARC fields.
27
27
  # @see https://developers.exlibrisgroup.com/alma/apis/docs/bibs/R0VUIC9hbG1hd3MvdjEvYmlicy97bW1zX2lkfQ==/ AVA docs
28
- # @param [MARC::Record] record
28
+ # @param record [MARC::Record]
29
29
  # @return [Array<String>] array of classifications
30
30
  def facet(record)
31
31
  record.fields(TAGS).flat_map { |field|
@@ -45,7 +45,7 @@ module PennMARC
45
45
  private
46
46
 
47
47
  # Retrieve subfield code that stores the call number on enriched marc field
48
- # @param [MARC::DataField] field
48
+ # @param field [MARC::DataField]
49
49
  # @return [String]
50
50
  def call_number_sf(field)
51
51
  return Enriched::Pub::ITEM_CALL_NUMBER if field.tag == Enriched::Pub::ITEM_TAG
@@ -54,7 +54,7 @@ module PennMARC
54
54
  end
55
55
 
56
56
  # Retrieve subfield code that stores call number type on enriched marc field
57
- # @param [MARC::DataField] field
57
+ # @param field [MARC::DataField]
58
58
  # @return [String]
59
59
  def call_number_type_sf(field)
60
60
  return Enriched::Pub::ITEM_CALL_NUMBER_TYPE if field.tag == Enriched::Pub::ITEM_TAG
@@ -63,9 +63,9 @@ module PennMARC
63
63
  end
64
64
 
65
65
  # retrieve title of classification based on single char classification code and call number type
66
- # @param[String] class_code classification code
67
- # @param[String] call_number_type value from call number type subfield
68
- # @return [String, NilClass]
66
+ # @param class_code [String] classification code
67
+ # @param call_number_type [String] value from call number type subfield
68
+ # @return [String, nil]
69
69
  def translate_classification(class_code, call_number_type)
70
70
  map = CLASSIFICATION_MAPS[call_number_type]
71
71
 
@@ -77,6 +77,9 @@ module PennMARC
77
77
  # format classification facet by joining single character classification code with its corresponding title.
78
78
  # Our Dewey mapping codes are single digit, so we must concatenate '00' to the class code to accurately reflect
79
79
  # Dewey class codes.
80
+ # @param class_code [String]
81
+ # @param call_number_type [String]
82
+ # @param title [String]
80
83
  # @return [String]
81
84
  def format_facet(class_code, call_number_type, title)
82
85
  return [class_code, title].join(' - ') if loc_call_number_type?(call_number_type)
@@ -85,7 +88,7 @@ module PennMARC
85
88
  end
86
89
 
87
90
  # Determine whether call number type is library of congress
88
- # @param [String] call_number_type value from call number type subfield
91
+ # @param call_number_type [String] value from call number type subfield
89
92
  # @return [Boolean]
90
93
  def loc_call_number_type?(call_number_type)
91
94
  call_number_type == '0'
@@ -86,9 +86,9 @@ module PennMARC
86
86
  end
87
87
 
88
88
  # Returns the list of authors with name (subfield $a) only
89
- # @param [MARC::Record] record
90
- # @param [Boolean] main_tags_only, if true, only use TAGS; otherwise use both TAGS and CONTRIBUTOR_TAGS
91
- # @param [Boolean] first_initial_only: true to only use the first initial instead of first name
89
+ # @param record [MARC::Record]
90
+ # @param main_tags_only [Boolean] only use TAGS; otherwise use both TAGS and CONTRIBUTOR_TAGS
91
+ # @param first_initial_only [Boolean] only use the first initial instead of first name
92
92
  # @return [Array<String>] names of the authors
93
93
  def authors_list(record, main_tags_only: false, first_initial_only: false)
94
94
  tags = if main_tags_only
@@ -107,11 +107,11 @@ module PennMARC
107
107
  end
108
108
 
109
109
  # Show the authors and contributors grouped together by relators with only names
110
- # @param [MARC::Record] record
111
- # @param [Hash] relator_map
112
- # @param [Boolean] include_authors: true to include author fields TAGS
113
- # @param [Boolean] name_only: true to include only the name subfield $a
114
- # @param [Boolean] vernacular: true to include field 880 with subfield $6
110
+ # @param record [MARC::Record]
111
+ # @param relator_map [Hash]
112
+ # @param include_authors [Boolean] include author fields TAGS
113
+ # @param name_only [Boolean] include only the name subfield $a
114
+ # @param vernacular [Boolean] include field 880 with subfield $6
115
115
  # @return [Hash]
116
116
  def contributors_list(record, relator_map: Mappers.relator, include_authors: true, name_only: true,
117
117
  vernacular: false)
@@ -294,7 +294,7 @@ module PennMARC
294
294
  private
295
295
 
296
296
  # @param record [MARC::Record]
297
- # @param tags [Array] to consider
297
+ # @param tags [Array] tags to consider
298
298
  # @param relator_map [Hash]
299
299
  # @return [Array<String>] name values from given tags
300
300
  def name_search_values(record:, tags:, relator_map:)
@@ -357,7 +357,7 @@ module PennMARC
357
357
  end
358
358
 
359
359
  # Convert "Lastname, First" to "Lastname, F"
360
- # @param [String] name
360
+ # @param name [String]
361
361
  # @return [String]
362
362
  def abbreviate_name(name)
363
363
  name = trim_trailing(:comma, name)
@@ -16,8 +16,8 @@ module PennMARC
16
16
  # Retrieves database subtype (subfield 'b') from
17
17
  # {https://upennlibrary.atlassian.net/wiki/spaces/ALMA/pages/323912493/Local+9XX+Field+Use+in+Almalocal
18
18
  # local field 944}. Only returns database subtype if Penn's Database facet value is present in subfield 'a'.
19
- # @param [Marc::Record]
20
- # @return [Array<string>] Array of types
19
+ # @param record [MARC::Record]
20
+ # @return [Array<String>] Array of types
21
21
  def type_facet(record)
22
22
  record.fields('944').filter_map { |field|
23
23
  # skip unless specified database format type present
@@ -32,8 +32,8 @@ module PennMARC
32
32
  # {https://upennlibrary.atlassian.net/wiki/spaces/ALMA/pages/323912493/Local+9XX+Field+Use+in+Almalocal
33
33
  # local field 943}. Only returns database subject category if Penn's Community of Interest code is present in
34
34
  # subfield '2'.
35
- # @param [Marc::Record]
36
- # @return [Array<string>] Array of categories
35
+ # @param record [MARC::Record]
36
+ # @return [Array<String>] Array of categories
37
37
  def category_facet(record)
38
38
  return [] unless curated_db?(record)
39
39
 
@@ -53,8 +53,8 @@ module PennMARC
53
53
  # local field 943}. Only returns subcategory if Penn's Community of Interest code is present in subfield '2'.
54
54
  # @note return value differs from legacy implementation. This version only returns ["category--subcategory"] or
55
55
  # an empty array.
56
- # @param [Marc::Record]
57
- # @return [Array<string>] Array of "category--subcategory"
56
+ # @param record [MARC::Record]
57
+ # @return [Array<String>] Array of "category--subcategory"
58
58
  def subcategory_facet(record)
59
59
  return [] unless curated_db?(record)
60
60
 
@@ -79,8 +79,8 @@ module PennMARC
79
79
  private
80
80
 
81
81
  # Determines if Database format type is format type used to facet databases
82
- # @param [Marc::Record]
83
- # @return [TrueClass, FalseClass]
82
+ # @param record [MARC::Record]
83
+ # @return [Boolean]
84
84
  def curated_db?(record)
85
85
  record.fields('944').any? { |field| subfield_value?(field, 'a', /#{DATABASES_FACET_VALUE}/o) }
86
86
  end
@@ -7,7 +7,7 @@ module PennMARC
7
7
  # Retrieve publication date (Date 1) from {https://www.loc.gov/marc/bibliographic/bd008a.html 008 field}.
8
8
  # Publication date is a four-digit year found in position 7-10 and may contain 'u' characters to represent
9
9
  # partially known dates. We replace any occurrences of 'u' with '0' before converting to DateTime object.
10
- # @param [MARC::Record] record
10
+ # @param record [MARC::Record]
11
11
  # @return [Time, nil] The publication date, or nil if date found in record is invalid
12
12
  def publication(record)
13
13
  record.fields('008').filter_map { |field|
@@ -22,7 +22,7 @@ module PennMARC
22
22
  # Retrieve date added (subfield 'q') from enriched marc 'itm' field.
23
23
  # {PennMARC::Enriched} maps enriched marc fields and subfields created during Alma publishing. The enriched
24
24
  # metadata provided by the Alma API does not include the date created value, so we can't work with that here.
25
- # @param [MARC::Record] record
25
+ # @param record [MARC::Record]
26
26
  # @return [Time, nil] The date added, or nil if date found in record is invalid
27
27
  def added(record)
28
28
  record.fields(Enriched::Pub::ITEM_TAG).flat_map { |field|
@@ -46,7 +46,7 @@ module PennMARC
46
46
  # Retrieve date last updated from {https://www.loc.gov/marc/bibliographic/bd005.html 005 field}.
47
47
  # Date last updated is a sixteen character String recorded in
48
48
  # {https://www.iso.org/iso-8601-date-and-time-format.html ISO 8601} format.
49
- # @param [MARC::Record] record
49
+ # @param record [MARC::Record]
50
50
  # @return [Time, nil] The date last updated, or nil if date found in record is invalid
51
51
  def last_updated(record)
52
52
  record.fields('005').filter_map { |field|
@@ -69,8 +69,8 @@ module PennMARC
69
69
  private
70
70
 
71
71
  # Sanitizes a partially known date string by replacing any 'u' occurrences with a specified replacement value.
72
- # @param [String] date The date string in '%Y' format, potentially containing 'u' characters.
73
- # @param [String] replacement The value with which to replace 'u' occurrences in the date string.
72
+ # @param date [String] The date string in '%Y' format, potentially containing 'u' characters.
73
+ # @param replacement [String] The value with which to replace 'u' occurrences in the date string.
74
74
  # @return [String, nil] The sanitized date string with 'u' characters replaced by the replacement value,
75
75
  # or nil if the date string does not match the expected format.
76
76
  def sanitize_partially_known_date(date, replacement)
@@ -11,7 +11,7 @@ module PennMARC
11
11
  # sequential edition statements such as 1st- ed. This type of information is contained in field 362 (Dates of
12
12
  # Publication and/or Volume Designation).
13
13
  # https://www.loc.gov/marc/bibliographic/bd250.html
14
- # @param [MARC::Record] record
14
+ # @param record [MARC::Record]
15
15
  # @return [Array<String>] array of editions and their alternates
16
16
  def show(record, with_alternate: true)
17
17
  editions = record.fields('250').map do |field|
@@ -23,8 +23,8 @@ module PennMARC
23
23
  end
24
24
 
25
25
  # Edition values for display in search results. Just grab the first 250 field.
26
- # @param [MARC::Record] record
27
- # @return [String, NilClass] string of all first 250 subfields, excluding 6 and 8
26
+ # @param record [MARC::Record]
27
+ # @return [String, nil] string of all first 250 subfields, excluding 6 and 8
28
28
  def values(record)
29
29
  edition = record.fields('250').first
30
30
  return if edition.blank?
@@ -36,8 +36,8 @@ module PennMARC
36
36
  # from this field, the introductory phrase Other editions available: may be generated based on the field tag for
37
37
  # display.
38
38
  # https://www.loc.gov/marc/bibliographic/bd775.html
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 other edition strings
42
42
  def other_show(record, relator_map: Mappers.relator)
43
43
  values = record.fields('775').filter_map do |field|
@@ -57,8 +57,8 @@ module PennMARC
57
57
  private
58
58
 
59
59
  # Assemble a string of relevant edition information.
60
- # @param [MARC::DataField] field
61
- # @param [Hash] relator_map
60
+ # @param field [MARC::DataField]
61
+ # @param relator_map [Hash]
62
62
  # @return [String (frozen)] assembled other version string
63
63
  def other_edition_value(field, relator_map)
64
64
  subi = remove_paren_value_from_subfield_i(field) || ''
@@ -33,7 +33,7 @@ module PennMARC
33
33
  # 254, 255, 310, 342, 352, 362 or {https://www.oclc.org/bibformats/en/3xx/340.html 340} field. based on the source
34
34
  # field, different subfields are used.
35
35
  # @note ported from get_format_display
36
- # @param [MARC::Record] record
36
+ # @param record [MARC::Record]
37
37
  # @return [Array<String>] format values for display
38
38
  def show(record)
39
39
  results = record.fields('300').map { |f| join_subfields(f, &subfield_not_in?(%w[3 6 8])) }
@@ -70,13 +70,9 @@ module PennMARC
70
70
  # 5. Media Type values from {https://www.oclc.org/bibformats/en/3xx/337.html#subfielda 337 ǂa}
71
71
  # Additional fields are considered for many of the formats. Much of this logic has been moved to private methods
72
72
  # to keep this method from becoming too unwieldy.
73
- # @todo is the conditional structure here still best practice? see the "Thesis on Microfilm" case in the specs
74
- # for this helper method
75
73
  # @note ported from get_format
76
- # @param [MARC::Record] record
77
- # @param [Hash] location_map
74
+ # @param record [MARC::Record]
78
75
  # @return [Array<String>] format values for faceting
79
-
80
76
  def facet(record)
81
77
  formats = []
82
78
  format_code = leader_format(record.leader)
@@ -113,7 +109,7 @@ module PennMARC
113
109
 
114
110
  # Show "Other Format" values from {https://www.oclc.org/bibformats/en/7xx/776.html 776} and any 880 linkage.
115
111
  # @todo is 774 an error in the linked field in legacy? i changed to 776 here
116
- # @param [MARC::Record] record
112
+ # @param record [MARC::Record]
117
113
  # @return [Array<String>] other format values for display
118
114
  def other_show(record)
119
115
  values = record.fields('776').filter_map do |field|
@@ -130,7 +126,7 @@ module PennMARC
130
126
 
131
127
  # Retrieve cartographic reference data for map/atlas formats for display from
132
128
  # {https://www.oclc.org/bibformats/en/2xx/255.html 255} and {https://www.oclc.org/bibformats/en/3xx/342.html 342}
133
- # @param [MARC::Record] record
129
+ # @param record [MARC::Record]
134
130
  # @return [Array<String>]
135
131
  def cartographic_show(record)
136
132
  record.fields(%w[255 342]).map { |field|
@@ -139,7 +135,7 @@ module PennMARC
139
135
  end
140
136
 
141
137
  # Check if leader format code is either 't', 'f', or 'd'
142
- # @param [String] format_code
138
+ # @param format_code [String]
143
139
  # @return [Boolean]
144
140
  def include_manuscripts?(format_code)
145
141
  format_code.first.in? %w[t f d]
@@ -149,7 +145,7 @@ module PennMARC
149
145
 
150
146
  # Get Call Numbers for holdings using the 'Classification part' which can contain strings like
151
147
  # 'Microfilm'. Look in enriched tags used by both Alma Publishing and API.
152
- # @param [MARC::Record] record
148
+ # @param record [MARC::Record]
153
149
  # @return [Array]
154
150
  def call_nums(record)
155
151
  if field_defined?(record, Enriched::Pub::PHYS_INVENTORY_TAG)
@@ -169,7 +165,7 @@ module PennMARC
169
165
  # Get 'Curated' format from.
170
166
  # {https://upennlibrary.atlassian.net/wiki/spaces/ALMA/pages/323912493/Local+9XX+Field+Use+in+Alma local field
171
167
  # 944} ǂa, as long as it is not a numerical value.
172
- # @param [MARC::Record] record
168
+ # @param record [MARC::Record]
173
169
  # @return [Array]
174
170
  def curated_format(record)
175
171
  record.fields('944').filter_map { |field|
@@ -180,57 +176,57 @@ module PennMARC
180
176
  }.uniq
181
177
  end
182
178
 
183
- # @param [String] format_code
179
+ # @param format_code [String]
184
180
  # @return [Boolean]
185
181
  def image?(format_code)
186
182
  format_code.in?(%w[km kd])
187
183
  end
188
184
 
189
- # @param [String] format_code
185
+ # @param format_code [String]
190
186
  # @return [Boolean]
191
187
  def datafile?(format_code)
192
188
  format_code == 'mm'
193
189
  end
194
190
 
195
- # @param [String] format_code
191
+ # @param format_code [String]
196
192
  # @return [Boolean]
197
193
  def journal_periodical?(format_code)
198
194
  format_code.in?(%w[as gs])
199
195
  end
200
196
 
201
- # @param [String] format_code
197
+ # @param format_code [String]
202
198
  # @return [Boolean]
203
199
  def three_d_object?(format_code)
204
200
  format_code.start_with?('r')
205
201
  end
206
202
 
207
- # @param [String] format_code
203
+ # @param format_code [String]
208
204
  # @return [Boolean]
209
205
  def sound_recording?(format_code)
210
206
  format_code.in?(%w[im jm jc jd js])
211
207
  end
212
208
 
213
- # @param [String] format_code
209
+ # @param format_code [String]
214
210
  # @return [Boolean]
215
211
  def graphical_media?(format_code)
216
212
  format_code == 'gm'
217
213
  end
218
214
 
219
- # @param [String] format_code
215
+ # @param format_code [String]
220
216
  # @return [Boolean]
221
217
  def map_atlas?(format_code)
222
218
  format_code&.start_with?('e') || format_code == 'fm'
223
219
  end
224
220
 
225
- # @param [String] format_code
221
+ # @param format_code [String]
226
222
  # @return [Boolean]
227
223
  def musical_score?(format_code)
228
224
  format_code.in?(%w[ca cb cc cd cm cs dc dm])
229
225
  end
230
226
 
231
- # @param [String] format_code
232
- # @param [Array<String>] media_type
233
- # @param [MARC::Record] record
227
+ # @param format_code [String]
228
+ # @param media_type [Array<String>]
229
+ # @param record [MARC::Record]
234
230
  # @return [Boolean]
235
231
  def book?(format_code, media_type, record)
236
232
  title_forms = subfield_values_for tag: '245', subfield: :k, record: record
@@ -239,17 +235,17 @@ module PennMARC
239
235
  media_type.none? { |val| val =~ /micro/i }
240
236
  end
241
237
 
242
- # @param [Array<String>] f006_forms
243
- # @param [String] format_code
238
+ # @param f006_forms [Array<String>]
239
+ # @param format_code [String]
244
240
  # @return [Boolean]
245
241
  def website_database?(f006_forms, format_code)
246
242
  format_code&.end_with?('i') ||
247
243
  (format_code == 'am' && f006_forms.include?('m') && f006_forms.include?('s'))
248
244
  end
249
245
 
250
- # @param [String] f008
251
- # @param [MARC::Record] record
252
- # @param [String] format_code
246
+ # @param f008 [String]
247
+ # @param record [MARC::Record]
248
+ # @param format_code [String]
253
249
  # @return [Boolean]
254
250
  def government_document?(f008, record, format_code)
255
251
  # is a 260 entry present, and does it have a b that matches 'press'
@@ -259,31 +255,31 @@ module PennMARC
259
255
  %w[c d i j].exclude?(format_code[0]) && f008[28].in?(%w[f i o]) && !f260press
260
256
  end
261
257
 
262
- # @param [String] f008
263
- # @param [String] format_code
258
+ # @param f008 [String]
259
+ # @param format_code [String]
264
260
  # @return [Boolean]
265
261
  def newspaper?(f008, format_code)
266
262
  format_code == 'as' && (f008[21] == 'n' || f008[22] == 'e')
267
263
  end
268
264
 
269
- # @param [MARC::Record] record
265
+ # @param record [MARC::Record]
270
266
  # @return [Boolean]
271
267
  def conference_event?(record)
272
268
  record.fields('111').any? || record.fields('711').any? # TODO: use field_present helper here and below?
273
269
  end
274
270
 
275
- # @param [MARC::Record] record
276
- # @param [String] format_code
271
+ # @param record [MARC::Record]
272
+ # @param format_code [String]
277
273
  # @return [Boolean]
278
274
  def thesis_or_dissertation?(format_code, record)
279
275
  record.fields('502').any? && format_code.in?(%w[am tm dm])
280
276
  end
281
277
 
282
- # @param [Array<String>] call_nums
283
- # @param [Array<String>] f007
284
- # @param [String] f008
285
- # @param [Array<String>] title_medium
286
- # @param [Array<String>] media_type
278
+ # @param call_nums [Array<String>]
279
+ # @param f007 [Array<String>]
280
+ # @param f008 [String]
281
+ # @param title_medium [Array<String>]
282
+ # @param media_type [Array<String>]
287
283
  # @return [Boolean]
288
284
  def micro_or_microform?(call_nums, f007, f008, media_type, title_medium)
289
285
  [f008[23], f008[29]].any? { |v| v.in?(%w[a b c]) } ||
@@ -296,7 +292,7 @@ module PennMARC
296
292
  # Determine archive format by checking if {https://www.loc.gov/marc/bibliographic/hd852.html 852} and
297
293
  # {PennMARC::Enriched} Publishing Tag 'ITM' have values that match any of the following archive locations:
298
294
  # archarch, musearch, scfreed, univarch, archivcoll
299
- # @param [MARC::Record] record
295
+ # @param record [MARC::Record]
300
296
  # @return [Boolean]
301
297
  def archive?(record)
302
298
  enriched_tag = Enriched::Pub::ITEM_TAG
@@ -311,7 +307,7 @@ module PennMARC
311
307
  end
312
308
 
313
309
  # Consider {https://www.loc.gov/marc/bibliographic/bd007g.html 007} to determine graphical media format
314
- # @param [Array<String>] f007
310
+ # @param f007 [Array<String>]
315
311
  # @return [String (frozen)]
316
312
  def graphical_media_type(f007)
317
313
  if f007.any? { |v| v.start_with?('g') }
@@ -321,7 +317,7 @@ module PennMARC
321
317
  end
322
318
  end
323
319
 
324
- # @param [String] leader
320
+ # @param leader [String]
325
321
  # @return [String]
326
322
  def leader_format(leader)
327
323
  leader[6..7] || ' '
@@ -8,7 +8,7 @@ module PennMARC
8
8
  # Genre values for searching. We're less picky about what is included here to enable discovery via any included
9
9
  # 655 data.
10
10
  #
11
- # @param [MARC::Record] record
11
+ # @param record [MARC::Record]
12
12
  # @return [Array<String>] array of genre values for search
13
13
  def search(record)
14
14
  record.fields('655').map { |field|
@@ -26,7 +26,7 @@ module PennMARC
26
26
  # @todo subfields e and w do not appear in the documentation for 655, but we give them special consideration here,
27
27
  # what gives?
28
28
  # @note legacy method returns a link object
29
- # @param [MARC::Record] record
29
+ # @param record [MARC::Record]
30
30
  # @return [Array<String>] array of genre values for display
31
31
  def show(record)
32
32
  record.fields(%w[655 880]).filter_map { |field|
@@ -46,7 +46,7 @@ module PennMARC
46
46
  # Genre values for faceting. We only set Genre facet values for movies (videos) and manuscripts(?)
47
47
  # @todo the Genre facet in Franklin is pretty ugly. It could be cleaned up by limiting the subfields included
48
48
  # here and cleaning up punctuation.
49
- # @param [MARC::Record] record
49
+ # @param record [MARC::Record]
50
50
  # @return [Array<String>]
51
51
  def facet(record)
52
52
  format_code = record.leader[6] || ' '
@@ -61,8 +61,8 @@ module PennMARC
61
61
 
62
62
  private
63
63
 
64
- # @param [MARC::DataField] field
65
- # @return [TrueClass, FalseClass]
64
+ # @param field [MARC::DataField]
65
+ # @return [Boolean]
66
66
  def allowed_genre_field?(field)
67
67
  field.indicator2.in?(%w[0 4]) || subfield_value_in?(field, '2', PennMARC::HeadingControl::ALLOWED_SOURCE_CODES)
68
68
  end