Sha256: f771b1953ad936f937a15fedf70488be3424adb2faa2b43a33e4a4b33b9631b1

Contents?: true

Size: 1.09 KB

Versions: 6

Compression:

Stored size: 1.09 KB

Contents

##
# This class represents a field in a form.  It handles the following input
# tags found in a form:
#
# * text
# * password
# * hidden
# * int
# * textarea
# * keygen
#
# To set the value of a field, just use the value method:
#
#   field.value = "foo"

class Mechanize::Form::Field
  attr_accessor :name, :value, :node, :type

  def initialize node, value = node['value']
    @node = node
    @name = Mechanize::Util.html_unescape(node['name'])
    @value = if value.is_a? String
               Mechanize::Util.html_unescape(value)
             else
               value
             end

    @type = node['type']
  end

  def query_value
    [[@name, @value || '']]
  end

  def <=> other
    return 0 if self == other
    return 1 if Hash === node
    return -1 if Hash === other.node
    node <=> other.node
  end

  # This method is a shortcut to get field's DOM id.
  # Common usage: form.field_with(:dom_id => "foo")
  def dom_id
    node['id']
  end

  # This method is a shortcut to get field's DOM id.
  # Common usage: form.field_with(:dom_class => "foo")
  def dom_class
    node['class']
  end
end

Version data entries

6 entries across 6 versions & 3 rubygems

Version Path
domo-0.0.5 vendor/bundle/ruby/1.9.1/gems/mechanize-2.1/lib/mechanize/form/field.rb
diamond-mechanize-2.4 lib/mechanize/form/field.rb
diamond-mechanize-2.3 lib/mechanize/form/field.rb
diamond-mechanize-2.1 lib/mechanize/form/field.rb
mechanize-2.1 lib/mechanize/form/field.rb
mechanize-2.1.pre.1 lib/mechanize/form/field.rb