Sha256: 55bca28ed5729e7516c86caf5d3d8e40bd91257517ac5b27f06281717a8294ff

Contents?: true

Size: 1.11 KB

Versions: 1

Compression:

Stored size: 1.11 KB

Contents

module MicroMicro
  module Parsers
    class PlainTextPropertyParser < BasePropertyParser
      # @see microformats2 Parsing Specification section 1.3.1
      # @see http://microformats.org/wiki/microformats2-parsing#parsing_a_p-_property
      HTML_ATTRIBUTES_MAP = {
        'title' => %w[abbr link],
        'value' => %w[data input],
        'alt'   => %w[area img]
      }.freeze

      # @return [String]
      def value
        @value ||= begin
          return value_class_pattern_parser.value if value_class_pattern_parser.value?
          return attribute_values.first if attribute_values.any?

          super
        end
      end

      private

      # @return [Array<String>]
      def attribute_values
        @attribute_values ||= begin
          HTML_ATTRIBUTES_MAP.map do |attribute, names|
            node[attribute] if names.include?(node.name) && node[attribute]
          end.compact
        end
      end

      # @return [MicroMicro::Parsers::ValueClassPatternParser]
      def value_class_pattern_parser
        @value_class_pattern_parser ||= ValueClassPatternParser.new(node)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
micromicro-0.1.0 lib/micro_micro/parsers/plain_text_property_parser.rb