Module: Marameters::Signatures
- Defined in:
- lib/marameters/signatures/super.rb,
lib/marameters/signatures/builder.rb,
lib/marameters/signatures/defaulter.rb,
lib/marameters/signatures/forwarder.rb,
lib/marameters/signatures/inheritor.rb
Defined Under Namespace
Classes: Builder, Inheritor, Super
Constant Summary collapse
- Defaulter =
Computes a method parameter’s default value.
lambda do |value, extractor: Sourcers::Function.new| case value when Proc fail TypeError, "Use procs instead of lambdas for defaults." if value.lambda? fail ArgumentError, "Avoid using parameters for proc defaults." if value.arity.nonzero? extractor.call value when String then value.dump when Symbol then value.inspect when nil then "nil" else value end end
- Forwarder =
Builds single argument for super method’s signature when argument forwarding.
lambda do |kind, name = nil| case kind when :req, :opt then name when :rest then "*#{name}" when :nokey then "" when :keyreq, :key then "#{name}:" when :keyrest then "**#{name}" when :block then "&#{name}" else fail ArgumentError, "Unable to forward unknown kind: #{kind.inspect}." end end