Class: Rack::Acceptable::Request

Inherits:
Request
  • Object
show all
Includes:
Headers, Media
Defined in:
lib/rack/acceptable/request.rb

Instance Method Summary collapse

Methods included from Media

#accept_media?, #acceptable_media, #best_media_for, #negotiate_media

Methods included from Headers

#acceptable_encodings, #acceptable_language_ranges, #acceptable_media_ranges

Instance Method Details

#accept_charset?(chs) ⇒ Boolean

Returns:

  • (Boolean)


15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/rack/acceptable/request.rb', line 15

def accept_charset?(chs)
  chs = chs.downcase
  accepts = acceptable_charsets
  return true if accepts.empty?
  if ch = accepts.assoc(chs) || accepts.assoc(Const::WILDCARD)
    ch.last > 0
  else
    chs == Const::ISO_8859_1
  end
rescue
  false
end

#accept_content?(content_type) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rack/acceptable/request.rb', line 28

def accept_content?(content_type)
  media = MIMETypes.parse_media_range(content_type)
  chs = media.last.delete(Const::CHARSET)
  chs ||= Const::ISO_8859_1 if media.first == Const::TEXT
  if chs
    accept_media?(media) && accept_charset?(chs)
  else
    accept_media?(media)
  end
rescue
  false
end

#acceptable_charsetsObject



11
12
13
# File 'lib/rack/acceptable/request.rb', line 11

def acceptable_charsets
  @_acceptable_charsets ||= super
end