Sha256: f4793ae6095c9e33f36218a59113785bdabc65fc52d8f4ce59c5eb3154796584

Contents?: true

Size: 805 Bytes

Versions: 2

Compression:

Stored size: 805 Bytes

Contents

# frozen_string_literal: true

module MicroMicro
  module Parsers
    class BaseImpliedPropertyParser < BasePropertyParser
      private

      # @return [String, nil]
      def attribute_value
        candidate_node[self.class::HTML_ELEMENTS_MAP[candidate_node.name]] if candidate_node
      end

      # @return [Nokogiri::XML::Element, nil]
      def candidate_node
        @candidate_node ||=
          candidate_nodes.find do |node|
            self
              .class::HTML_ELEMENTS_MAP
              .filter_map { |name, attribute| node if name == node.name && node[attribute] }
              .any?
          end
      end

      # @return [Nokogiri::XML::NodeSet]
      def candidate_nodes
        Nokogiri::XML::NodeSet.new(node.document, child_nodes.unshift(node))
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
micromicro-5.0.1 lib/micro_micro/parsers/base_implied_property_parser.rb
micromicro-5.0.0 lib/micro_micro/parsers/base_implied_property_parser.rb