Class: ModsDisplay::Title

Inherits:
Field
  • Object
show all
Defined in:
lib/mods_display/fields/title.rb

Instance Method Summary collapse

Methods inherited from Field

#initialize, #label, #to_html

Constructor Details

This class inherits a constructor from ModsDisplay::Field

Instance Method Details

#fieldsObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mods_display/fields/title.rb', line 3

def fields
  return_values = []
  if @values
    @values.each do |value|
      if displayForm(value)
        return_values << ModsDisplay::Values.new(
          label: displayLabel(value) || title_label(value),
          values: [displayForm(value)]
        )
      else
        nonSort = nil
        title = nil
        subTitle = nil
        nonSort = value.nonSort.text.strip unless value.nonSort.text.strip.empty?
        title = value.title.text.strip unless value.title.text.strip.empty?
        subTitle = value.subTitle.text unless value.subTitle.text.strip.empty?
        preSubTitle = [nonSort, title].compact.join(' ')
        preSubTitle = nil if preSubTitle.strip.empty?
        preParts = compact_and_join_with_delimiter([preSubTitle, subTitle], ' : ')
        preParts = nil if preParts.strip.empty?
        parts = value.children.select do |child|
          %w(partName partNumber).include?(child.name)
        end.map(&:text).compact.join(parts_delimiter(value))
        parts = nil if parts.strip.empty?
        return_values << ModsDisplay::Values.new(
          label: displayLabel(value) || title_label(value),
          values: [compact_and_join_with_delimiter([preParts, parts], '. ')]
        )
      end
    end
  end
  collapse_fields(return_values)
end