module Ethon::Easy::Http::Actionable
This module represents a Http Action and is a factory for more real actions like GET, HEAD, POST and PUT.
Public Class Methods
Create a new action.
@example Create a new action.
Action.new("www.example.com", {})
@param [ String ] url The url. @param [ Hash ] options The options.
@return [ Action ] A new action.
# File lib/ethon/easy/http/actionable.rb, line 20 def initialize(url, options) @url = url @options = options.dup end
Public Instance Methods
Return the form.
@example Return form.
action.form
@return [ Form ] The form.
# File lib/ethon/easy/http/actionable.rb, line 61 def form @form ||= Form.new(@easy, options.delete(:body)) end
Return the options hash.
@example Return options.
action.options
@return [ Hash ] The options.
# File lib/ethon/easy/http/actionable.rb, line 41 def options @options end
Return the params.
@example Return params.
action.params
@return [ Params ] The params.
# File lib/ethon/easy/http/actionable.rb, line 51 def params @params ||= Params.new(@easy, options.delete(:params)) end
Setup request with form.
@example Setup nothing.
action.set_form(easy)
@param [ Easy ] easy The easy to setup.
# File lib/ethon/easy/http/actionable.rb, line 101 def set_form(easy) end
Setup request with params.
@example Setup nothing.
action.set_params(easy)
@param [ Easy ] easy The easy to setup.
# File lib/ethon/easy/http/actionable.rb, line 88 def set_params(easy) params.escape = true base_url, base_params = url.split("?") base_params += "&" if base_params easy.url = "#{base_url}?#{base_params}#{params.to_s}" end
Setup everything necessary for a proper request.
@example setup.
action.setup(easy)
@param [ easy ] easy the easy to setup.
# File lib/ethon/easy/http/actionable.rb, line 71 def setup(easy) @easy = easy if params.empty? easy.url = url else set_params(easy) end set_form(easy) unless form.empty? easy.set_attributes(options) end
Return the url.
@example Return url.
action.url
@return [ String ] The url.
# File lib/ethon/easy/http/actionable.rb, line 31 def url @url end