class Dry::Initializer::Builders::Signature

@private

def self.[](config)

def self.[](config)
  new(config).call
end

def call

def call
  [*required_params, *optional_params, "*", options].compact.join(", ")
end

def initialize(config)

def initialize(config)
  @config  = config
  @options = config.options.any?
  @null    = config.null ? "Dry::Initializer::UNDEFINED" : "nil"
end

def optional_params

def optional_params
  @config.params.select(&:optional).map { |rec| "#{rec.source} = #{@null}" }
end

def options

def options
  "**__dry_initializer_options__" if @options
end

def required_params

def required_params
  @config.params.reject(&:optional).map(&:source)
end