schemable/lib/schemable.rb
2023-11-09 15:25:04 +03:00

34 lines
852 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'
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(configuration)
schema = AttributeSchemaGenerator.new(model_definition, configuration).generate_attributes_schema
generated_schemas << schema
end
generated_schemas
end
end
end