Sha256: d14168739bddf8b344d824ce462f9681d3fdb5c1cebd0484d8e5073d3fce938a
Contents?: true
Size: 1.04 KB
Versions: 3
Compression:
Stored size: 1.04 KB
Contents
# class Something < R 'route' # include Responder # # def get # ... important code ... # # respond_to do |wants| # wants.html { render :something } # wants.text { "Just some text." } # wants.yaml { "Something neat!".to_yaml } # wants.xml { "Also, XML.".to_xml } # end # end # end module Cheat::Controllers module Responder def respond_to yield response = Response.new(env.HTTP_ACCEPT) @headers['Content-Type'] = response.content_type response.body end class Response attr_reader :body, :content_type def initialize(accept) @accept = accept end TYPES = { :yaml => %w[application/yaml text/yaml], :text => %w[text/plain], :html => %w[text/html */* application/html], :xml => %w[application/xml] } def method_missing(method, *args) if TYPES[method] && @accept =~ Regexp.union(*TYPES[method]) @content_type = TYPES[method].first @body = yield if block_given? end end end end end
Version data entries
3 entries across 3 versions & 2 rubygems
Version | Path |
---|---|
tarsius-cheat-1.2.2 | lib/responder.rb |
cheat-1.2 | lib/responder.rb |
cheat-1.2.1 | lib/responder.rb |