class Apigen::ModelRegistry

ModelRegistry is where all model definitions are stored.

Attributes

models[R]

Public Class Methods

new() click to toggle source
# File lib/apigen/models/registry.rb, line 11
def initialize
  @models = {}
end

Public Instance Methods

check_type(type) click to toggle source
# File lib/apigen/models/registry.rb, line 33
def check_type(type)
  type.validate self
end
model(name, &block) click to toggle source
# File lib/apigen/models/registry.rb, line 15
def model(name, &block)
  error = if @models.key? name
            "Model :#{name} is declared twice."
          elsif !block_given?
            'You must pass a block when calling `model`.'
          end
  raise error unless error.nil?
  model = Apigen::Model.new name
  model.instance_eval(&block)
  @models[model.name] = model
end
to_s() click to toggle source
# File lib/apigen/models/registry.rb, line 37
def to_s
  @models.map do |key, model|
    "#{key}: #{model}"
  end.join "\n"
end
validate() click to toggle source
# File lib/apigen/models/registry.rb, line 27
def validate
  @models.each do |_key, model|
    model.validate self
  end
end