# frozen_string_literal: true require "rom/compat/schema/dsl" require_relative "index_dsl" module ROM module SQL class Schema < ROM::Schema # Specialized schema DSL with SQL-specific features # # @api public # @deprecated class DSL < ROM::Schema::DSL # @!attribute [r] index_dsl # @return [IndexDSL] Index DSL instance (created only if indexes block is called) attr_reader :index_dsl # Define indexes within a block # # @api public def indexes(&block) @index_dsl = IndexDSL.new(**options, &block) end private # Return schema options # # @api private def opts if index_dsl opts = super {**opts, indexes: index_dsl.(relation, opts[:attributes])} else super end end end end end end