Sha256: bbd0fdd97ef9a3d093c99b9744b70d6a4d945223b067484aae1ddce4a0468d78
Contents?: true
Size: 846 Bytes
Versions: 3
Compression:
Stored size: 846 Bytes
Contents
module Dry::Initializer::Plugins # Plugin builds a chunk of code for the initializer's signature: # # @example # Signature.call(:user, option: true) # # => "user:" # # Signature.call(:user, default: -> { nil }) # # => "user = Dry::Initializer::UNDEFINED" # class Signature < Base def param? settings[:option] != true end def default? settings.key? :default end def optional? default? || settings.key?(:optional) end def call case [param?, optional?] when [true, false] then name.to_s when [false, false] then "#{name}:" when [true, true] then "#{name} = #{undefined}" when [false, true] then "#{name}: #{undefined}" end end private def undefined @undefined ||= "Dry::Initializer::UNDEFINED" end end end
Version data entries
3 entries across 3 versions & 1 rubygems