Sha256: 60d57297a3a31cdb2634292aac6e8a371f5e04711059eefcfb6e6eaf6d54c286
Contents?: true
Size: 974 Bytes
Versions: 1
Compression:
Stored size: 974 Bytes
Contents
require "nokogiri" require "microformat/collection" require "microformat/selectors" module Microformat class Parser def self.parse(doc, options = {}) # ensure the document is parsed unless doc.respond_to?(:css) doc = Nokogiri::HTML(doc) end # return the collection new(doc, options).collection end attr_reader :doc, :options def initialize(doc, options) @doc = doc @options = options parse(elements) end def parse(elements) i = 0; while i < [limit, elements.size].min do collection << elements[i] i += 1 end end def limit @limit ||= options[:limit] || Float::INFINITY end def selectors @selectors ||= Selectors.filter(options[:filter]) end def collection @collection ||= Collection.new end private def elements @elements ||= doc.css(selectors.join(", ")) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
microformat-0.0.2 | lib/microformat/parser.rb |