class CabbageDoc::Request
Constants
- METHODS
Attributes
collection[R]
raw_request[R]
Public Class Methods
new(raw_request, collection)
click to toggle source
# File lib/cabbage_doc/request.rb, line 23 def initialize(raw_request, collection) @raw_request = raw_request @collection = collection end
parse(s, tag = TAG)
click to toggle source
# File lib/cabbage_doc/request.rb, line 12 def parse(s, tag = TAG) variables = YAML.load(s) new(OpenStruct.new(params: {}, env: {}), Collection.instance).tap do |instance| [:@_id, :@_auth, :@_action, :@_method, :@_tag, :@_params].each_with_index do |k, i| instance.instance_variable_set(k, variables[i]) end end end
Public Instance Methods
id()
click to toggle source
# File lib/cabbage_doc/request.rb, line 47 def id @_id ||= new_id end
perform()
click to toggle source
# File lib/cabbage_doc/request.rb, line 28 def perform Response.new(url, params, perform_request) if valid? end
to_yaml()
click to toggle source
# File lib/cabbage_doc/request.rb, line 36 def to_yaml YAML.dump([ id, auth, action, method, tag, params ]) end
valid?()
click to toggle source
# File lib/cabbage_doc/request.rb, line 32 def valid? action && method && METHODS.include?(method) && auth.valid? end
Private Instance Methods
action()
click to toggle source
# File lib/cabbage_doc/request.rb, line 71 def action @_action ||= compose_action(raw_request.params[Params::ACTION]) end
auth()
click to toggle source
# File lib/cabbage_doc/request.rb, line 114 def auth @_auth ||= Authentication.new(raw_request, tag) end
client()
click to toggle source
# File lib/cabbage_doc/request.rb, line 122 def client @_client ||= Client.new(auth) end
compose_action(action)
click to toggle source
# File lib/cabbage_doc/request.rb, line 87 def compose_action(action) return action unless action && action.include?(':') action = action.dup action.dup.scan(/\/:([^\/]+)/) do value = params.delete($1) return unless value action.sub!(":#{$1}", value) end action end
compose_method(method)
click to toggle source
# File lib/cabbage_doc/request.rb, line 83 def compose_method(method) method.downcase.to_sym if method end
compose_tag(tag)
click to toggle source
# File lib/cabbage_doc/request.rb, line 102 def compose_tag(tag) if tag tag.downcase.to_sym else TAG end end
method()
click to toggle source
# File lib/cabbage_doc/request.rb, line 75 def method @_method ||= compose_method(raw_request.params[Params::METHOD]) end
new_id()
click to toggle source
# File lib/cabbage_doc/request.rb, line 53 def new_id components = [MARKER, Time.now.utc, Process.pid, Thread.current.object_id, rand(99999)] Digest::SHA1.hexdigest(components.join('_')) end
params()
click to toggle source
# File lib/cabbage_doc/request.rb, line 110 def params @_params ||= Params.new(raw_params, collection) end
perform_request()
click to toggle source
# File lib/cabbage_doc/request.rb, line 58 def perform_request key = (method == :get) ? :query : :body data = params.to_hash data = data.to_json if key == :body && auth.json client.public_send(method, action, key => data) end
raw_params()
click to toggle source
# File lib/cabbage_doc/request.rb, line 118 def raw_params @_raw_params ||= raw_request.params end
tag()
click to toggle source
# File lib/cabbage_doc/request.rb, line 79 def tag @_tag ||= compose_tag(raw_request.params[Params::TAG]) end
url()
click to toggle source
# File lib/cabbage_doc/request.rb, line 67 def url @_url ||= [client.base_uri, action] end