Sha256: 48ca6f8e99b71d81fe8dea87b4d7594ca09d392742cba28c2e4c13440910ffc1

Contents?: true

Size: 607 Bytes

Versions: 22

Compression:

Stored size: 607 Bytes

Contents

# frozen_string_literal: true

module Marameters
  # Computes a method parameter's default value.
  class Defaulter
    PASSTHROUGH = "*"

    def self.call(...) = new(...).call

    def initialize value, passthrough: PASSTHROUGH
      @value = value
      @passthrough = passthrough
    end

    def call
      case value
        when nil then "nil"
        when /\A#{Regexp.escape passthrough}/ then value.delete_prefix passthrough
        when String then value.dump
        when Symbol then value.inspect
        else value
      end
    end

    private

    attr_reader :value, :passthrough
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
marameters-3.8.0 lib/marameters/defaulter.rb
marameters-3.7.0 lib/marameters/defaulter.rb
marameters-3.6.0 lib/marameters/defaulter.rb
marameters-3.5.0 lib/marameters/defaulter.rb
marameters-3.4.1 lib/marameters/defaulter.rb
marameters-3.3.0 lib/marameters/defaulter.rb
marameters-3.2.0 lib/marameters/defaulter.rb
marameters-3.1.0 lib/marameters/defaulter.rb
marameters-3.0.0 lib/marameters/defaulter.rb
marameters-2.1.1 lib/marameters/defaulter.rb
marameters-2.1.0 lib/marameters/defaulter.rb
marameters-2.0.1 lib/marameters/defaulter.rb
marameters-2.0.0 lib/marameters/defaulter.rb
marameters-1.0.4 lib/marameters/defaulter.rb
marameters-1.0.3 lib/marameters/defaulter.rb
marameters-1.0.2 lib/marameters/defaulter.rb
marameters-1.0.1 lib/marameters/defaulter.rb
marameters-1.0.0 lib/marameters/defaulter.rb
marameters-0.10.0 lib/marameters/defaulter.rb
marameters-0.9.0 lib/marameters/defaulter.rb