lib/dry/initializer/mixin.rb in dry-initializer-0.6.0 vs lib/dry/initializer/mixin.rb in dry-initializer-0.7.0
- old
+ new
@@ -1,5 +1,7 @@
+require_relative "scope"
+
module Dry::Initializer
# Class-level DSL for the initializer
module Mixin
# Declares a plain argument
#
@@ -25,9 +27,20 @@
#
def option(name, **options)
@initializer_builder = \
initializer_builder.define(name, option: true, **options)
initializer_builder.call(self)
+ end
+
+ # Declares arguments (params and options) with default settings
+ #
+ # @param [Hash] settings Shared settings
+ # @param [Proc] block Definitions for params and options
+ # @return [self]
+ #
+ def using(**settings, &block)
+ Scope.new(self, settings).instance_eval(&block)
+ self
end
# Adds new plugin to the builder
#
# @param [Dry::Initializer::Plugins::Base] plugin