def find(*args)
return find_in_children(*args) if self == Microformat
target, @options = args
@options ||= target.is_a?(Hash) ? target : {}
[:first, :all].each { |key| target = @options[key] if @options[key] }
extract_base_url! target
@doc = build_doc(@options[:text] ? @options : target)
microformats = find_occurences(@doc)
raise MicroformatNotFound if @options[:strict] && microformats.empty?
return @options[:first] ? nil : [] if microformats.empty?
if @options[:first] || @options[:all]
return @options[:first] ? find_first(microformats) : find_every(microformats)
end
object = find_every(microformats)
case object.size
when 1 then object.first
when 0 then nil
else object
end
end