class Pincers::Core::Replicas::Form

Public Class Methods

new(_backend, _element) click to toggle source
# File lib/pincers/core/replicas/form.rb, line 6
def initialize(_backend, _element)
  @backend = _backend
  @form = Pincers::Core::Helpers::Form.new(_backend, _element)
  @pairs = @form.inputs
end

Public Instance Methods

[](_name, _as_array = false)
Alias for: get
[]=(_name, _value, _replace = true)
Alias for: set
get(_name, _as_array = false) click to toggle source
# File lib/pincers/core/replicas/form.rb, line 25
def get(_name, _as_array = false)
  _name = _name.to_s
  values = @pairs.select { |p| p[0] == _name }.map { |p| p[1] }
  _as_array = true if _na me.include? '['
  return values.first if values.length <= 1 && !_as_array
  values
end
Also aliased as: []
set(_name, _value, _replace = true) click to toggle source
# File lib/pincers/core/replicas/form.rb, line 12
def set(_name, _value, _replace = true)
  _name = _name.to_s
  unset(_name) if _replace
  @pairs << [_name, _value]
  _value
end
Also aliased as: []=
submit(_http_client=nil) click to toggle source
# File lib/pincers/core/replicas/form.rb, line 36
def submit(_http_client=nil)
  client = _http_client || @backend.as_http_client
  client.send(@form.method, @form.action) do |request|
    request.set_form_data(@pairs, @form.encoding)
  end
end
unset(_name) click to toggle source
# File lib/pincers/core/replicas/form.rb, line 19
def unset(_name)
  _name = _name.to_s
  @pairs.delete_if { |p| p[0] == _name }
  self
end