Sha256: 2307a7f8f05267b986fdd046af4a2c4113284fc1b234b29135222317f75d8681
Contents?: true
Size: 764 Bytes
Versions: 3
Compression:
Stored size: 764 Bytes
Contents
# frozen_string_literal: true module Marameters # Builds a single parameter of a method's parameter signature. class Builder def initialize defaulter: Defaulter @defaulter = defaulter end def call kind, name = nil, default: nil case kind when :req then name when :opt then "#{name} = #{defaulter.call default}" when :rest then "*#{name}" when :nokey then "**nil" when :keyreq then "#{name}:" when :key then "#{name}: #{defaulter.call default}" when :keyrest then "**#{name}" when :block then "&#{name}" else fail ArgumentError, "Wrong kind (#{kind}), name (#{name}), or default (#{default})." end end private attr_reader :defaulter end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
marameters-3.12.0 | lib/marameters/builder.rb |
marameters-3.11.0 | lib/marameters/builder.rb |
marameters-3.10.0 | lib/marameters/builder.rb |