Method: WWMD::Page#submit

Defined in:
lib/wwmd/page/page.rb

#submit(iform = nil, reg = ) ⇒ Object

replacement for Curl::Easy.http_post

post the form attempting to remove curl supplied headers (Expect, X-Forwarded-For call self.set_data

if passed a regexp, escape values in the form using regexp before submitting if passed nil for the regexp arg, the form will not be escaped default: WWMD::ESCAPE

returns: array [ code, body_data.size ]



161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/wwmd/page/page.rb', line 161

def submit(iform=nil,reg=WWMD::ESCAPE[:default])
## this is just getting worse and worse
  if iform.class == "Symbol"
    reg = iform
    iform = nil
  end
  reg = WWMD::ESCAPE[reg] if reg.class == Symbol
  self.clear_data
  ["Expect","X-Forwarded-For","Content-length"].each { |s| self.clear_header(s) }
  self.headers["Referer"] = self.cur if self.use_referer
  unless iform
    unless self.form.empty?
      sform = self.form.clone
    else
      return "no form provided"
    end
  else
    sform = iform.clone             # clone the form so that we don't change the original
  end
  sform.escape_all!(reg)
  self.url = sform.action if sform.action
  if sform.empty?
    self.http_post('')
  else
    self.http_post(self.post_data = sform.to_post)
  end
  self.set_data
end