Class: ModsDisplay::Field

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

Instance Method Summary collapse

Constructor Details

#initialize(values, config, klass) ⇒ Field

Returns a new instance of Field.



4
5
6
7
8
# File 'lib/mods_display/fields/field.rb', line 4

def initialize(values, config, klass)
  @values = values
  @config = config
  @klass = klass
end

Instance Method Details

#fieldsObject



10
11
12
13
14
15
16
17
18
# File 'lib/mods_display/fields/field.rb', line 10

def fields
  return_fields = @values.map do |value|
    ModsDisplay::Values.new(
      label: displayLabel(value) || label,
      values: [displayForm(@values) || value.text].flatten
    )
  end
  collapse_fields(return_fields)
end

#labelObject



20
21
22
23
# File 'lib/mods_display/fields/field.rb', line 20

def label
  return nil if @values.nil?
  displayLabel(@values.first)
end

#to_htmlObject



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/mods_display/fields/field.rb', line 25

def to_html
  return nil if fields.empty? || @config.ignore?
  output = ''
  fields.each do |field|
    next unless field.values.any? { |f| f && !f.empty? }
    output << "<dt#{label_class} #{sanitized_field_title(field.label)}>#{field.label}</dt>"
    output << "<dd#{value_class}>"
    output << field.values.map do |val|
      @config.link ? link_to_value(val.to_s) : link_urls_and_email(val.to_s)
    end.join(@config.delimiter)
    output << '</dd>'
  end
  output
end