lib/partitioned/multi_level/configurator/dsl.rb in partitioned-0.8.0 vs lib/partitioned/multi_level/configurator/dsl.rb in partitioned-1.0.1
- old
+ new
@@ -1,9 +1,17 @@
module Partitioned
class MultiLevel
+ #
+ # Configuration manager for multi-level partitioning
+ # it supports, the front-end UI (a Domain Specific Language) using {Dsl}
+ # state using {Data}
+ # and a parser using {Reader}
+ #
module Configurator
+ # The Domain Specific Language UI manager for multi level partitioning classes
class Dsl < Partitioned::PartitionedBase::Configurator::Dsl
+ # used to prevent use of invalid directives
class InvalidForMultiLevelPartitioning < StandardError
def initialize(model, dsl_key, remedy)
super("#{model.name}: '#{dsl_key}' is not valid for multi-level partitioning. #{remedy}")
end
end
@@ -16,13 +24,16 @@
end
#
# Definition of classes which will be used at multi level partitioning.
#
+ # @param [*Array<Class>] classes the classes, in order, used to partition this model
+ # @return [optional]
def using_classes(*classes)
data.using_classes += [*classes]
end
+ # @raise [InvalidForMultiLevelPartitioning] always raised. `on` is not a valid DSL directive for multi-level partitioning
def on(*ignored)
raise InvalidForMultiLevelPartitioning.new(model, :on, "the partitioned keyword 'using' is used to define multi-level partitioned tables.")
end
end