Sha256: 0aa742770a5104adc3c49d59efa90fdbb7f2312ca8a51503d7ed2071dde9de5f

Contents?: true

Size: 799 Bytes

Versions: 4

Compression:

Stored size: 799 Bytes

Contents

# frozen_string_literal: true

module ModsDisplay
  class Description < Field
    def fields
      return_fields = description_fields.map do |element|
        ModsDisplay::Values.new(
          label: description_label(element),
          values: [element_text(element)]
        )
      end
      collapse_fields(return_fields)
    end

    def description_label(element)
      label || displayLabel(element) || labels[element.name.to_sym] || I18n.t('mods_display.physical_description')
    end

    private

    def description_fields
      @stanford_mods_elements.children.select do |child|
        labels.keys.include?(child.name.to_sym)
      end
    end

    def labels
      { digitalOrigin: I18n.t('mods_display.digital_origin'),
        note: I18n.t('mods_display.note') }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
mods_display-1.6.3 lib/mods_display/fields/description.rb
mods_display-1.6.2 lib/mods_display/fields/description.rb
mods_display-1.6.1 lib/mods_display/fields/description.rb
mods_display-1.6.0 lib/mods_display/fields/description.rb