Sha256: 8c43b398e879688eac5c850adef42a2b20192ecce332cacc566632d77181b905

Contents?: true

Size: 1011 Bytes

Versions: 54

Compression:

Stored size: 1011 Bytes

Contents

# frozen_string_literal: true

require 'active_record'
require 'declare_schema/dsl'
require 'declare_schema/model'
require 'declare_schema/field_declaration_dsl'

module DeclareSchema
  module Macros
    attr_reader :_table_options

    def declare_schema(default_schema: true, **table_options, &block)
      # Any model that calls 'fields' gets DeclareSchema::Model behavior
      DeclareSchema::Model.mix_in(self)

      # @include_in_migration = false #||= options.fetch(:include_in_migration, true); options.delete(:include_in_migration)
      @include_in_migration = true # TODO: Add back or delete the include_in_migration feature
      @_table_options        = table_options

      if block
        dsl = DeclareSchema::Dsl.new(self, null: false)
        dsl.instance_eval(&block)
        if default_schema && DeclareSchema.default_schema
          dsl.instance_exec(&DeclareSchema.default_schema)
        end
      end
    end
  end
end

ActiveRecord::Base.singleton_class.prepend DeclareSchema::Macros

Version data entries

54 entries across 54 versions & 1 rubygems

Version Path
declare_schema-2.3.1 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-2.3.0 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-2.3.0.pre.is.0 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-2.2.1 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-2.2.0.colin.1 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-2.2.0 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-2.1.0 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-2.1.0.pre.1 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.4.0 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.4.0.colin.11 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.6 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.6.colin.1 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.5 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.5.colin.1 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.4.0.colin.9 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.4 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.4.colin.1 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.4.0.colin.8 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.3 lib/declare_schema/extensions/active_record/fields_declaration.rb
declare_schema-1.3.3.colin.1 lib/declare_schema/extensions/active_record/fields_declaration.rb