class ERequest

Public Instance Methods

accept() click to toggle source

Returns an array of acceptable media types for the response

# File lib/e-core/instance/request.rb, line 30
def accept
  @__e__accept ||= env[EConstants::ENV__HTTP_ACCEPT].to_s.split(',').
    map {|e| accept_entry(e)}.sort_by {|e| e.last}.map {|e| e.first}
end
forwarded?() click to toggle source
# File lib/e-core/instance/request.rb, line 46
def forwarded?
  env.include? EConstants::ENV__HTTP_X_FORWARDED_HOST
end
idempotent?() click to toggle source
# File lib/e-core/instance/request.rb, line 54
def idempotent?
  safe? or put? or delete?
end
preferred_type(*types) click to toggle source
# File lib/e-core/instance/request.rb, line 35
def preferred_type(*types)
  return accept.first if types.empty?
  types.flatten!
  accept.detect do |pattern|
    type = types.detect { |t| File.fnmatch(pattern, t) }
    return type if type
  end
end
safe?() click to toggle source
# File lib/e-core/instance/request.rb, line 50
def safe?
  get? or head? or options? or trace?
end

Private Instance Methods

accept_entry(entry) click to toggle source
# File lib/e-core/instance/request.rb, line 60
def accept_entry(entry)
  type, *options = entry.delete(' ').split(';')
  quality = 0 # we sort smallest first
  options.delete_if { |e| quality = 1 - e[2..-1].to_f if e.start_with? 'q=' }
  [type, [quality, type.count('*'), 1 - options.size]]
end