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