Sha256: 760e5d49dfa7c514fde7e0dd601e12e43d42a63d9d8dbbcc35869cf0d2e6d863

Contents?: true

Size: 738 Bytes

Versions: 2

Compression:

Stored size: 738 Bytes

Contents

# frozen_string_literal: true

module ModsDisplay
  class Description < Field
    def fields
      return_fields = description_fields.map do |value|
        ModsDisplay::Values.new(label: description_label(value), values: [value.text])
      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
      @values.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

2 entries across 2 versions & 1 rubygems

Version Path
mods_display-1.0.0 lib/mods_display/fields/description.rb
mods_display-1.0.0.alpha5 lib/mods_display/fields/description.rb