22 lines
613 B
Ruby
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
|