v3: one shared superclass for org/user renderers

This commit is contained in:
Konstantin Haase 2015-04-17 11:42:05 +02:00
parent 3cac519143
commit aeb5046298
4 changed files with 20 additions and 13 deletions

View File

@ -0,0 +1,11 @@
require 'travis/api/v3/renderer/model_renderer'
require 'travis/api/v3/renderer/avatar_url'
module Travis::API::V3
class Renderer::Account < Renderer::ModelRenderer
include Renderer::AvatarURL
representation(:minimal, :id, :login)
representation(:standard, :id, :login, :name, :github_id, :avatar_url)
end
end

View File

@ -16,15 +16,18 @@ module Travis::API::V3
class_eval "def #{field}; @model.#{field}; end" unless method_defined?(field)
available_attributes << field.to_s
end
representations[name] = fields
representations[name] ||= []
representations[name] += fields
end
@representations = {}
def self.representations
@representations ||= {}
@representations ||= superclass.representations.dup
end
@available_attributes = Set.new
def self.available_attributes
@available_attributes ||= Set.new
@available_attributes ||= superclass.available_attributes.dup
end
def self.render(model, representation = :standard, **options)

View File

@ -1,10 +1,6 @@
require 'travis/api/v3/renderer/model_renderer'
module Travis::API::V3
class Renderer::Organization < Renderer::ModelRenderer
include Renderer::AvatarURL
representation(:minimal, :id, :login)
representation(:standard, :id, :login, :name, :github_id, :avatar_url)
class Renderer::Organization < Renderer::Account
end
end

View File

@ -1,10 +1,7 @@
require 'travis/api/v3/renderer/model_renderer'
module Travis::API::V3
class Renderer::User < Renderer::ModelRenderer
include Renderer::AvatarURL
representation(:minimal, :id, :login)
representation(:standard, :id, :login, :name, :github_id, :avatar_url, :is_syncing, :synced_at)
class Renderer::User < Renderer::Account
representation(:standard, :is_syncing, :synced_at)
end
end