diff --git a/lib/mechanize/form.rb b/lib/mechanize/form.rb index 438d728b..7b16423f 100644 --- a/lib/mechanize/form.rb +++ b/lib/mechanize/form.rb @@ -346,9 +346,14 @@ def delete_field!(field_name) eval(<<-eomethod) def #{plural}_with criteria = {} criteria = {:name => criteria} if String === criteria + + criteria = criteria.map do |k, v| + k = :dom_id if k.to_sym == :id + [k, v] + end + f = #{plural}.find_all do |thing| criteria.all? do |k,v| - k = :dom_id if(k.to_s == "id") v === thing.send(k) end end diff --git a/lib/mechanize/page.rb b/lib/mechanize/page.rb index c96b8c18..58471355 100644 --- a/lib/mechanize/page.rb +++ b/lib/mechanize/page.rb @@ -196,9 +196,14 @@ def content_type eval(<<-eomethod) def #{type}s_with(criteria) criteria = {:name => criteria} if String === criteria + + criteria = criteria.map do |k, v| + k = :dom_id if k.to_sym == :id + [k, v] + end + f = #{type}s.find_all do |thing| criteria.all? do |k,v| - k = :dom_id if(k.to_s == "id") v === thing.send(k) end end