Module: DeclareSchema::FieldsDsl

Defined in:
lib/declare_schema/extensions/active_record/fields_declaration.rb

Instance Method Summary collapse

Instance Method Details

#fields(table_options = {}, &block) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/declare_schema/extensions/active_record/fields_declaration.rb', line 9

def fields(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
  @table_options        = table_options

  if block
    dsl = DeclareSchema::FieldDeclarationDsl.new(self, null: false)
    if block.arity == 1
      yield dsl
    else
      dsl.instance_eval(&block)
    end
  end
end