Sha256: 2b75da08c23212d3618516ea62d3afc8ab18bc48d5b9026d79df0537fd9eff6d

Contents?: true

Size: 443 Bytes

Versions: 6

Compression:

Stored size: 443 Bytes

Contents

# frozen_string_literal: true

module Phlex::Rails::FragmentFinder
	extend self

	Parser = if defined?(Nokolexbor)
		Nokolexbor
	else
		require "nokogiri"
		Nokogiri::HTML
	end

	def extract(html, ids)
		parsed = Parser.parse(html)
		selector = ids.map { |id| "##{id}" }.join(", ")

		result = +""

		ids.count.times do
			if (fragment = parsed.at_css(selector))
				result << fragment.to_s
				fragment.remove
			end
		end

		result
	end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
phlex-rails-2.0.0.rc1 lib/phlex/rails/fragment_finder.rb
phlex-rails-1.2.2 lib/phlex/rails/fragment_finder.rb
phlex-rails-2.0.0.beta2 lib/phlex/rails/fragment_finder.rb
phlex-rails-2.0.0.beta1 lib/phlex/rails/fragment_finder.rb
phlex-rails-1.2.1 lib/phlex/rails/fragment_finder.rb
phlex-rails-1.2.0 lib/phlex/rails/fragment_finder.rb