Class: Pincers::Core::Replicas::Form

Inherits:
Object
  • Object
show all
Defined in:
lib/pincers/core/replicas/form.rb

Instance Method Summary collapse

Constructor Details

#initialize(_backend, _element) ⇒ Form

Returns a new instance of Form.



6
7
8
9
10
# 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

Instance Method Details

#get(_name, _as_array = false) ⇒ Object Also known as: []



25
26
27
28
29
30
31
# 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

#set(_name, _value, _replace = true) ⇒ Object Also known as: []=



12
13
14
15
16
17
# 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

#submit(_http_client = nil) ⇒ Object



36
37
38
39
40
41
# 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) ⇒ Object



19
20
21
22
23
# 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