Sha256: cf4ab65042422ed75d0136f67207edf36888710f470e392151ed8afd19718799
Contents?: true
Size: 867 Bytes
Versions: 49
Compression:
Stored size: 867 Bytes
Contents
# frozen_string_literal: true class Code class Type class Repeat < Type attr_reader :clazz, :minimum, :maximum def initialize(clazz, minimum: 0, maximum: nil) @clazz = clazz @minimum = minimum @maximum = maximum end def valid?(argument) valid_for?(expected: clazz, actual: argument) end def min_arguments minimum * min_arguments_of(clazz) end def max_arguments max_arguments = max_arguments_of(clazz) (max_arguments.nil? || maximum.nil?) ? nil : maximum * max_arguments end def name if minimum.zero? && maximum.nil? "#{clazz.name}.repeat" elsif maximum.nil? "#{clazz.name}.repeat(#{minimum})" else "#{clazz.name}.repeaa(#{minimum}, #{maximum})" end end end end end
Version data entries
49 entries across 49 versions & 1 rubygems