Sha256: d7d46b3aa5241b08820a92ca9a4476aa14053b13f2f1dc26441991b538c0877c

Contents?: true

Size: 623 Bytes

Versions: 13

Compression:

Stored size: 623 Bytes

Contents

# frozen_string_literal: true

prepend Respond, Actions
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
	succeed! content: VersionedResponse.new
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
utopia-2.15.1 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.15.0 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.14.0 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.13.4 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.13.3 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.13.2 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.13.1 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.13.0 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.12.4 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.12.3 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.12.2 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.12.1 spec/utopia/controller/respond_spec/api/controller.rb
utopia-2.12.0 spec/utopia/controller/respond_spec/api/controller.rb