Sha256: 56f7a0d681b6c7f722a5c4413994e1a5abe82d3c0770cb35f7366bbcd86744ca
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
module Mechanize::ElementMatcher def elements_with singular, plural = "#{singular}s" class_eval <<-CODE def #{plural}_with criteria = {} criteria = if String === criteria then {:name => criteria} else Hash[criteria.map do |k, v| k = :dom_id if k.to_sym == :id k = :dom_class if k.to_sym == :class [k, v] end] end f = select_#{plural}(criteria.delete(:search)).find_all do |thing| criteria.all? do |k,v| v === thing.send(k) end end yield f if block_given? f end def #{singular}_with criteria = {} f = #{plural}_with(criteria).first yield f if block_given? f end def #{singular}_with! criteria = {} f = #{singular}_with(criteria) raise Mechanize::ElementNotFoundError.new(self, :#{singular}, criteria) if f.nil? yield f if block_given? f end def select_#{plural} selector if selector.nil? then #{plural} else nodes = search(selector) #{plural}.find_all do |element| nodes.include?(element.node) end end end alias :#{singular} :#{singular}_with CODE end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mechanize-2.7.3 | lib/mechanize/element_matcher.rb |