Class: ModsDisplay::RelatedItem

Inherits:
Field
  • Object
show all
Includes:
RelatedItemConcerns
Defined in:
lib/mods_display/fields/related_item.rb

Defined Under Namespace

Classes: ValueRenderer

Instance Method Summary collapse

Methods inherited from Field

#label, #render_in, #to_html

Constructor Details

#initialize(values, value_renderer: ValueRenderer) ⇒ RelatedItem

Returns a new instance of RelatedItem.



7
8
9
10
# File 'lib/mods_display/fields/related_item.rb', line 7

def initialize(values, value_renderer: ValueRenderer)
  super(values)
  @value_renderer = value_renderer
end

Instance Method Details

#fieldsObject



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/mods_display/fields/related_item.rb', line 12

def fields
  return_fields = RelatedItemValue.for_values(@values).map do |value|
    next if value.collection?
    next if render_nested_related_item?(value)

    text = @value_renderer.new(value).render

    next if text.nil? || text.empty?

    ModsDisplay::Values.new(label: related_item_label(value), values: [text])
  end.compact
  collapse_fields(return_fields)
end