Sha256: 4eee4f843d67f3e12fce259b8c7f6d110fac1b3ca3f1fe94e7cafb42f3b05241

Contents?: true

Size: 886 Bytes

Versions: 18

Compression:

Stored size: 886 Bytes

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
                     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 = #{plural}.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

      alias :#{singular} :#{singular}_with
    CODE
  end

end

Version data entries

18 entries across 18 versions & 4 rubygems

Version Path
mechanize-2.5.1 lib/mechanize/element_matcher.rb
mechanize-2.5 lib/mechanize/element_matcher.rb
mechanize-2.4 lib/mechanize/element_matcher.rb
frameworks-capybara-0.2.0.rc6 vendor/bundle/ruby/1.8/gems/mechanize-2.3/lib/mechanize/element_matcher.rb
frameworks-capybara-0.2.0.rc5 vendor/bundle/ruby/1.8/gems/mechanize-2.3/lib/mechanize/element_matcher.rb
frameworks-capybara-0.2.0.rc4 vendor/bundle/ruby/1.8/gems/mechanize-2.3/lib/mechanize/element_matcher.rb
frameworks-capybara-0.2.0.rc3 vendor/bundle/ruby/1.8/gems/mechanize-2.3/lib/mechanize/element_matcher.rb
frameworks-capybara-0.2.0.rc2 vendor/bundle/ruby/1.8/gems/mechanize-2.3/lib/mechanize/element_matcher.rb
mechanize-2.3 lib/mechanize/element_matcher.rb
mechanize-2.2.1 lib/mechanize/element_matcher.rb
mechanize-2.2 lib/mechanize/element_matcher.rb
mechanize-2.1.1 lib/mechanize/element_matcher.rb
domo-0.0.5 vendor/bundle/ruby/1.9.1/gems/mechanize-2.1/lib/mechanize/element_matcher.rb
diamond-mechanize-2.4 lib/mechanize/element_matcher.rb
diamond-mechanize-2.3 lib/mechanize/element_matcher.rb
diamond-mechanize-2.1 lib/mechanize/element_matcher.rb
mechanize-2.1 lib/mechanize/element_matcher.rb
mechanize-2.1.pre.1 lib/mechanize/element_matcher.rb