Sha256: d15183e9fce9d1fe6f102480690229be5c9b223acd9dc46051acc82c5f35f555

Contents?: true

Size: 1.36 KB

Versions: 3

Compression:

Stored size: 1.36 KB

Contents

module Hyrax
  module Renderers
    module ConfiguredMicrodata
      PREFIX = 'hyrax.schema_org'.freeze

      def microdata?(field)
        return false unless Hyrax.config.display_microdata?
        translate_microdata(field: field, field_context: 'property', default: false)
      end

      def microdata_object?(field)
        return false unless Hyrax.config.display_microdata?
        translate_microdata(field: field, field_context: 'type', default: false)
      end

      def microdata_object_attributes(field)
        if microdata_object?(field)
          { itemprop: microdata_property(field), itemscope: '', itemtype: microdata_type(field) }
        else
          {}
        end
      end

      def microdata_property(field)
        translate_microdata(field: field, field_context: 'property')
      end

      def microdata_type(field)
        translate_microdata(field: field, field_context: 'type')
      end

      def microdata_value_attributes(field)
        if microdata?(field)
          field_context = microdata_object?(field) ? :value : :property
          { itemprop: translate_microdata(field: field, field_context: field_context) }
        else
          {}
        end
      end

      private

        def translate_microdata(field:, field_context:, default: true)
          t("#{PREFIX}.#{field}.#{field_context}", default: default)
        end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
hyrax-1.0.1 app/renderers/hyrax/renderers/configured_microdata.rb
hyrax-1.0.0.rc2 app/renderers/hyrax/renderers/configured_microdata.rb
hyrax-1.0.0.rc1 app/renderers/hyrax/renderers/configured_microdata.rb