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.



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

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

Instance Method Details

#fieldsObject



9
10
11
12
13
14
# File 'lib/mods_display/fields/field.rb', line 9

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



16
17
18
19
# File 'lib/mods_display/fields/field.rb', line 16

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

#to_htmlObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/mods_display/fields/field.rb', line 21

def to_html
  return nil if fields.empty? or @config.ignore?
  output = ""
  fields.each do |field|
    if field.values.any?{|f| f && !f.empty? }
      output << "<dt#{label_class} 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
  end
  output
end