Class: Partitioned::MultiLevel::Configurator::Dsl

Inherits:
PartitionedBase::Configurator::Dsl show all
Defined in:
lib/partitioned/multi_level/configurator/dsl.rb

Overview

The Domain Specific Language UI manager for multi level partitioning classes

Defined Under Namespace

Classes: InvalidForMultiLevelPartitioning

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from PartitionedBase::Configurator::Dsl

#after_partition_table_create_hook, #base_name, #check_constraint, #foreign_key, #index, #janitorial_archives_needed, #janitorial_creates_needed, #janitorial_drops_needed, #name_prefix, #order, #parent_table_name, #parent_table_schema_name, #part_name, #schema_name, #table_alias_name, #table_name

Constructor Details

#initialize(most_derived_activerecord_class) ⇒ Dsl

Returns a new instance of Dsl.



21
22
23
24
# File 'lib/partitioned/multi_level/configurator/dsl.rb', line 21

def initialize(most_derived_activerecord_class)
  super(most_derived_activerecord_class, Partitioned::MultiLevel::Configurator::Data)
  @using_classes = []
end

Instance Attribute Details

#dataObject (readonly)

Returns the value of attribute data.



19
20
21
# File 'lib/partitioned/multi_level/configurator/dsl.rb', line 19

def data
  @data
end

#modelObject (readonly)

Returns the value of attribute model.



19
20
21
# File 'lib/partitioned/multi_level/configurator/dsl.rb', line 19

def model
  @model
end

Instance Method Details

#on(*ignored) ⇒ Object

Raises:



36
37
38
# File 'lib/partitioned/multi_level/configurator/dsl.rb', line 36

def on(*ignored)
  raise InvalidForMultiLevelPartitioning.new(model, :on, "the partitioned keyword 'using' is used to define multi-level partitioned tables.")
end

#using_classes(*classes) ⇒ optional

Definition of classes which will be used at multi level partitioning.

Parameters:

  • classes (*Array<Class>)

    the classes, in order, used to partition this model

Returns:

  • (optional)


31
32
33
# File 'lib/partitioned/multi_level/configurator/dsl.rb', line 31

def using_classes(*classes)
  data.using_classes += [*classes]
end