Sha256: 07b92c8407a0250f3993b658755978a9d7e71035e53a2b35695b37c2172c327e

Contents?: true

Size: 923 Bytes

Versions: 2

Compression:

Stored size: 923 Bytes

Contents

require_relative 'index_definition/presenter'
require_relative 'devise/definition'

module WebammToRails
  module Sources
    module Migrations
      class Indices
        def initialize(waml_definition:, table_definition:)
          @waml_definition = waml_definition
          @table_definition = table_definition
        end

        def collection
          indices.uniq(&:columns).map do |index|
            ::WebammToRails::Sources::Migrations::IndexDefinition::Presenter.new(table_name: @table_definition.table, index: index).render
          end
        end

        private

        def indices
          @table_definition.indices + devise_indices
        end

        def devise_indices
          ::WebammToRails::Sources::Migrations::Devise::Definition.new(
            waml_definition: @waml_definition, table_name: @table_definition.table
          ).indices_collection
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
webamm_to_rails-7.0.1 lib/webamm_to_rails/sources/migrations/indices.rb
webamm_to_rails-7.0.0 lib/webamm_to_rails/sources/migrations/indices.rb