class ChefZero::RestRequest
Attributes
env[R]
rest_base_prefix[RW]
Public Class Methods
new(env, rest_base_prefix = [])
click to toggle source
# File lib/chef_zero/rest_request.rb, line 6 def initialize(env, rest_base_prefix = []) @env = env @rest_base_prefix = rest_base_prefix end
rfc2396_parser()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 84 def self.rfc2396_parser @parser ||= URI::RFC2396_Parser.new end
Public Instance Methods
api_v0?()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 32 def api_v0? api_version == 0 end
api_version()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 28 def api_version Integer(@env["HTTP_X_OPS_SERVER_API_VERSION"] || 0) end
base_uri()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 14 def base_uri # Load balancer awareness if env["HTTP_X_FORWARDED_PROTO"] scheme = env["HTTP_X_FORWARDED_PROTO"] else scheme = env["rack.url_scheme"] end @base_uri ||= "#{scheme}://#{env["HTTP_HOST"]}#{env["SCRIPT_NAME"]}" end
base_uri=(value)
click to toggle source
# File lib/chef_zero/rest_request.rb, line 24 def base_uri=(value) @base_uri = value end
body()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 56 def body @body ||= env["rack.input"].read end
body=(body)
click to toggle source
# File lib/chef_zero/rest_request.rb, line 52 def body=(body) @body = body end
method()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 40 def method @env["REQUEST_METHOD"] end
query_params()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 60 def query_params @query_params ||= begin params = Rack::Request.new(env).GET params.keys.each do |key| params[key] = self.class.rfc2396_parser.unescape(params[key]) end params end end
requestor()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 36 def requestor @env["HTTP_X_OPS_USERID"] end
rest_path()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 44 def rest_path @rest_path ||= rest_base_prefix + env["PATH_INFO"].split("/").select { |part| part != "" } end
rest_path=(rest_path)
click to toggle source
# File lib/chef_zero/rest_request.rb, line 48 def rest_path=(rest_path) @rest_path = rest_path end
to_s()
click to toggle source
# File lib/chef_zero/rest_request.rb, line 70 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" unless body.end_with?("\n") result << "--- END #{method} BODY ---" end result end