| Class | Merb::AcceptType |
| In: |
merb-core/lib/merb-core/controller/mixins/responder.rb
|
| Parent: | Object |
| index | [R] | |
| media_range | [R] | |
| quality | [R] | |
| sub_type | [R] | |
| type | [R] |
| entry<String>: | The accept type pattern |
| index<Fixnum>: | The index used for sorting accept types. A lower value indicates higher priority. |
:api: private
# File merb-core/lib/merb-core/controller/mixins/responder.rb, line 417
417: def initialize(entry,index)
418: @index = index
419:
420: entry =~ /\s*([^;\s]*)\s*(;\s*q=\s*(.*))?/
421: @media_range, quality = $1, $3
422:
423: @type, @sub_type = @media_range.split(%r{/})
424: (quality ||= 0.0) if @media_range == "*/*"
425: @quality = quality ? (quality.to_f * 100).to_i : 100
426: @quality *= (mime && mime[:default_quality] || 1)
427: end
Compares two accept types for sorting purposes.
| entry<AcceptType>: | The accept type to compare. |
| Fixnum: | -1, 0 or 1, depending on whether entry has a lower, equal or higher priority than the accept type being compared. |
:api: private
# File merb-core/lib/merb-core/controller/mixins/responder.rb, line 440
440: def <=>(entry)
441: if entry.quality == quality
442: @index <=> entry.index
443: else
444: entry.quality <=> @quality
445: end
446: end
| entry<AcceptType>: | The accept type to compare. |
| Boolean: | True if the accept types are equal, i.e. if the synonyms for this accept type includes the entry media range. |
:api: private
# File merb-core/lib/merb-core/controller/mixins/responder.rb, line 458
458: def eql?(entry)
459: synonyms.include?(entry.media_range)
460: end
:api: private
# File merb-core/lib/merb-core/controller/mixins/responder.rb, line 488
488: def mime
489: @mime ||= Merb.available_mime_types[Merb::ResponderMixin::MIMES[@media_range]]
490: end
| Array[String]: | All Accept header values, such as "text/html", that match this type. |
:api: private
# File merb-core/lib/merb-core/controller/mixins/responder.rb, line 478
478: def synonyms
479: return @syns if @syns
480: if _mime = mime
481: @syns = _mime[:accepts]
482: else
483: @syns = []
484: end
485: end