travis-api/lib/travis/api/app/helpers/responders/json.rb
2012-10-03 02:19:16 +02:00

22 lines
613 B
Ruby

module Travis::Api::App::Helpers::Responders
class Json < Base
ACCEPT_VERSION = /vnd\.travis-ci\.(\d+)\+/
DEFAULT_VERSION = 'v1'
def render
options[:version] ||= version
builder = Travis::Api.builder(resource, options) # || raise("could not determine a builder for #{resource}, #{options}")
resource = builder.new(self.resource, request.params).data if builder
resource = resource.to_json unless resource.is_a?(String)
resource
end
private
def version
request.accept.join =~ ACCEPT_VERSION && "v#{$1}" || DEFAULT_VERSION
end
end
end