Class: Dry::Initializer::Signature
- Inherits:
-
Object
- Object
- Dry::Initializer::Signature
- Includes:
- Errors, Enumerable
- Defined in:
- lib/dry/initializer/signature.rb
Overview
Immutable container for chunks of code describing argument signatures. Responcible for building the resulting signature for the initializer args.
Instance Method Summary collapse
- #add(*args) ⇒ Object
- #call ⇒ Object
- #each ⇒ Object
-
#initialize(*list) ⇒ Signature
constructor
A new instance of Signature.
Constructor Details
#initialize(*list) ⇒ Signature
Returns a new instance of Signature.
8 9 10 |
# File 'lib/dry/initializer/signature.rb', line 8 def initialize(*list) @list = list end |
Instance Method Details
#add(*args) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/dry/initializer/signature.rb', line 12 def add(*args) signature = Plugins::Signature.new(*args) validate_order_of signature validate_param_uniqueness_of signature validate_option_uniqueness_of signature validate_attribute_uniqueness_of signature self.class.new(*@list, signature) end |
#call ⇒ Object
27 28 29 |
# File 'lib/dry/initializer/signature.rb', line 27 def call (select(&:param?).map(&:call) + %w(**__options__)).compact.join(", ") end |
#each ⇒ Object
23 24 25 |
# File 'lib/dry/initializer/signature.rb', line 23 def each @list.each { |item| yield item } end |