schemable/lib/schemable.rb

36 lines
936 B
Ruby

# frozen_string_literal: true
require_relative 'schemable/version'
require_relative 'schemable/definition'
require_relative 'schemable/configuration'
require_relative 'schemable/schema_modifier'
require_relative 'schemable/attribute_schema_generator'
require_relative 'schemable/response_schema_generator'
require_relative 'schemable/relationship_schema_generator'
module Schemable
class Error < StandardError; end
class << self
attr_accessor :configuration
def configure
@configuration ||= Configuration.new
yield(@configuration) if block_given?
end
def generate_schemas
klasses = Schemable::Definition.descendants
generated_schemas = []
klasses.each do |klass|
model_definition = klass.new
schema = AttributeSchemaGenerator.new(model_definition).generate_attributes_schema
generated_schemas << schema
end
generated_schemas
end
end
end