Sha256: 4533726a270866de3c0236bf7f4dacf32018dab4c2b307328f5bb8a79aa696fe

Contents?: true

Size: 584 Bytes

Versions: 18

Compression:

Stored size: 584 Bytes

Contents

prepend Respond
respond.with_json

class VersionedResponse
	def to_json(options = {})
		JSON::dump(self.as_json(options))
	end
	
	# Modelled after http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html
	def as_json(options = {})
		if options[:version] == '1'
			{"message" => "Hello World"}
		elsif options[:version] == '2'
			{"message" => "Goodbye World"}
		else
			{}
		end
	end
end

# To get different verions of the response, use:
# Accept: application/json;version=1
# Accept: application/json;version=2
on 'fetch' do
	success! content: VersionedResponse.new
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
utopia-1.7.1 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.13 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.12 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.11 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.10 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.9 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.8 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.5 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.4 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.3 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.2 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.1 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.6.0 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.5.2 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.5.1 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.5.0 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.4.0 spec/utopia/controller/respond_spec/api/controller.rb
utopia-1.3.2 spec/utopia/controller/respond_spec/api/controller.rb