Sha256: 3d980f5050095bc6e88c0d1ddff9d307a65b6dc127620076c7bb469dff5b51ce
Contents?: true
Size: 1.36 KB
Versions: 1
Compression:
Stored size: 1.36 KB
Contents
# frozen_string_literal: true module MicroMicro module Parsers class ImpliedPhotoPropertyParser < BaseImpliedPropertyParser CSS_SELECTORS_ARRAY = ['> img[src]:only-of-type', '> object[data]:only-of-type'].freeze HTML_ELEMENTS_MAP = { 'img' => 'src', 'object' => 'data' }.freeze # @see https://microformats.org/wiki/microformats2-parsing#parsing_for_implied_properties # microformats.org: microformats2 parsing specification § Parsing for implied properties # @see https://microformats.org/wiki/microformats2-parsing#parse_an_img_element_for_src_and_alt # microformats.org: microformats2 parsing specification § Parse an img element for src and alt # # @return [String, Hash{Symbol => String}, nil] def value @value ||= if attribute_value return attribute_value unless candidate_node.matches?('img[alt]') { value: attribute_value, alt: candidate_node['alt'].strip } end end private # @return [Array] def child_nodes nodes = [node.at_css(*CSS_SELECTORS_ARRAY)] nodes << node.first_element_child.at_css(*CSS_SELECTORS_ARRAY) if node.element_children.one? nodes.compact.reject { |child_node| Helpers.item_node?(child_node) } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
micromicro-3.0.0 | lib/micro_micro/parsers/implied_photo_property_parser.rb |