Sha256: 991a49c1a5f9d32d68e901362fcbdab9cf05da9f2652b2b451406bdbb4da3f24

Contents?: true

Size: 592 Bytes

Versions: 2

Compression:

Stored size: 592 Bytes

Contents

# frozen_string_literal: true

module Marameters
  module Signatures
    # Computes a method parameter's default value.
    Defaulter = lambda do |value, extractor: Sources::Extractor.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
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
marameters-4.0.1 lib/marameters/signatures/defaulter.rb
marameters-4.0.0 lib/marameters/signatures/defaulter.rb