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
# File 'lib/mods_display/fields/title.rb', line 3

def fields
  return_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 = [preSubTitle, subTitle].compact.join(" : ")
      preParts = nil if preParts.strip.empty?
      parts = value.children.select do |child|
        ["partName", "partNumber"].include?(child.name)
      end.map do |child|
        child.text
      end.compact.join(parts_delimiter(value))
      parts = nil if parts.strip.empty?
      return_values << ModsDisplay::Values.new(:label => displayLabel(value) || title_label(value), :values => [[preParts, parts].compact.join(". ")])
    end
  end
  return_values
end