Module: DataComposer::MigrationHelpers

Defined in:
lib/data_composer/migration_helpers.rb

Overview

Provides helper methods for defining data objects in database migrations.

Instance Method Summary collapse

Instance Method Details

#data_object(attribute_name, members:, **options) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/data_composer/migration_helpers.rb', line 6

def data_object(attribute_name, members:, **options)
  raise MissingMembersError, 'members hash cannot be empty' if members.empty?

  default_value = options.delete(:default)

  members.each do |member_name, member_type|
    column_name = DataComposer.column_name_for_member(attribute_name, member_name)
    column_options = options.dup

    column_options[:default] = default_value[member_name] if default_value && default_value.is_a?(Hash)

    if column_options.empty?
      column(column_name, member_type)
    else
      column(column_name, member_type, **column_options)
    end
  end
end