Sha256: 6a263be00a88eaa5772ab2e87726202521c8b33afb9a130826abcb1163870017

Contents?: true

Size: 564 Bytes

Versions: 10

Compression:

Stored size: 564 Bytes

Contents

require 'nokogiri'

class HtmlFragment
  attr_reader :document

  def initialize(html)
    @document = Nokogiri::HTML(html)
  end

  def has_tag?(selector)
    !!document.at_css(selector)
  end

  def has_tags_in_order?(*selectors)
    all_elements = document.css('*')

    elements = selectors.map do |selector|
      document.at_css(selector) ||
        raise("Selector '#{selector}}' did not match any element.")
    end

    elements.each_cons(2).all? do |element1, element2|
      all_elements.index(element1) < all_elements.index(element2)
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
pageflow-chart-2.6.0 spec/support/html_fragment.rb
pageflow-chart-2.5.0 spec/support/html_fragment.rb
pageflow-chart-2.4.0 spec/support/html_fragment.rb
pageflow-chart-2.3.0 spec/support/html_fragment.rb
pageflow-chart-2.2.0 spec/support/html_fragment.rb
pageflow-chart-2.1.0 spec/support/html_fragment.rb
pageflow-chart-2.0.0 spec/support/html_fragment.rb
pageflow-chart-1.2.0 spec/support/html_fragment.rb
pageflow-chart-1.1.0 spec/support/html_fragment.rb
pageflow-chart-1.0.1 spec/support/html_fragment.rb