class ChefZero::RestRequest
Attributes
env[R]
rest_base_prefix[R]
Public Class Methods
new(env, rest_base_prefix = [])
click to toggle source
# File lib/chef_zero/rest_request.rb, line 5 def initialize(env, rest_base_prefix = []) @env = env @rest_base_prefix = rest_base_prefix end
Public Instance Methods
base_uri()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 13 def base_uri @base_uri ||= "#{env['rack.url_scheme']}://#{env['HTTP_HOST']}#{env['SCRIPT_NAME']}" end
body()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 29 def body @body ||= env['rack.input'].read end
body=(body)
click to toggle source
# File lib/chef_zero/rest_request.rb, line 25 def body=(body) @body = body end
method()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 17 def method @env['REQUEST_METHOD'] end
query_params()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 33 def query_params @query_params ||= begin params = Rack::Request.new(env).GET params.keys.each do |key| params[key] = URI.unescape(params[key]) end params end end
rest_path()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 21 def rest_path @rest_path ||= rest_base_prefix + env['PATH_INFO'].split('/').select { |part| part != "" } end
to_s()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 43 def to_s result = "#{method} #{rest_path.join('/')}" if query_params.size > 0 result << "?#{query_params.map { |k,v| "#{k}=#{v}" }.join('&') }" end if body.chomp != '' result << "\n--- #{method} BODY ---\n" result << body result << "\n" if !body.end_with?("\n") result << "--- END #{method} BODY ---" end result end