Sha256: ddc6b732d49dfca79a79ebdb0252caf80c792b4a7b0a6c7a203d136a9066031c

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

# frozen_string_literal: true

module MicroMicro
  class ImpliedProperty < Property
    IMPLIED_PROPERTY_PARSERS_MAP = {
      'name'  => Parsers::ImpliedNamePropertyParser,
      'photo' => Parsers::ImpliedPhotoPropertyParser,
      'url'   => Parsers::ImpliedUrlPropertyParser
    }.freeze

    private_constant :IMPLIED_PROPERTY_PARSERS_MAP

    # Always return +true+ when asked if this {MicroMicro::ImpliedProperty} is
    # an implied property.
    #
    # @see https://microformats.org/wiki/microformats2-parsing#parsing_for_implied_properties
    #   microformats.org: microformats2 parsing specification ยง Parsing for implied properties
    #
    # @see MicroMicro::Property#implied?
    #
    # @return [Boolean]
    def implied?
      true
    end

    # Always return +false+ when asked if this {MicroMicro::ImpliedProperty} is
    # a {MicroMicro::Item} node.
    #
    # @return [Boolean]
    def item_node?
      false
    end

    private

    def parser
      @parser ||= IMPLIED_PROPERTY_PARSERS_MAP[name].new(self)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
micromicro-4.0.0 lib/micro_micro/implied_property.rb
micromicro-3.1.0 lib/micro_micro/implied_property.rb
micromicro-3.0.0 lib/micro_micro/implied_property.rb