Class: Poncho::Request

Inherits:
Rack::Request
  • Object
show all
Defined in:
lib/poncho/request.rb

Instance Method Summary collapse

Instance Method Details

#acceptObject

Returns an array of acceptable media types for the response



4
5
6
7
8
9
# File 'lib/poncho/request.rb', line 4

def accept
  @env['poncho.accept'] ||= begin
    entries = @env['HTTP_ACCEPT'].to_s.split(',')
    entries.map { |e| accept_entry(e) }.sort_by(&:last).map(&:first)
  end
end

#forwarded?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/poncho/request.rb', line 23

def forwarded?
  @env.include? 'HTTP_X_FORWARDED_HOST'
end

#idempotent?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/poncho/request.rb', line 31

def idempotent?
  safe? or put? or delete?
end

#paramsObject



35
36
37
38
39
40
# File 'lib/poncho/request.rb', line 35

def params
  @params ||= begin
    params = super.merge(action_dispatch_params)
    indifferent_params(params)
  end
end

#preferred_type(*types) ⇒ Object Also known as: accept?



11
12
13
14
15
16
17
18
# File 'lib/poncho/request.rb', line 11

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?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/poncho/request.rb', line 27

def safe?
  get? or head? or options? or trace?
end