v3: one shared superclass for org/user renderers
This commit is contained in:
parent
3cac519143
commit
aeb5046298
11
lib/travis/api/v3/renderer/account.rb
Normal file
11
lib/travis/api/v3/renderer/account.rb
Normal 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
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue
Block a user