Sha256: 68f055e8c8d361c7275668a274fcbc725fdce9ff4c9516b45d9a6a1a5ea2900a

Contents?: true

Size: 501 Bytes

Versions: 57

Compression:

Stored size: 501 Bytes

Contents

# frozen_string_literal: true

class Code
  class Type
    class Maybe < Type
      attr_reader :clazz

      def initialize(clazz)
        @clazz = clazz
      end

      def valid?(argument)
        !argument || argument.is_a?(Object::Nothing) ||
          valid_for?(expected: clazz, actual: argument)
      end

      def min_arguments
        0
      end

      def max_arguments
        max_arguments_of(clazz)
      end

      def name
        "#{clazz.name}.maybe"
      end
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
code-ruby-1.2.5 lib/code/type/maybe.rb
code-ruby-1.2.4 lib/code/type/maybe.rb
code-ruby-1.2.3 lib/code/type/maybe.rb
code-ruby-1.2.2 lib/code/type/maybe.rb
code-ruby-1.2.1 lib/code/type/maybe.rb
code-ruby-1.1.3 lib/code/type/maybe.rb
code-ruby-1.1.1 lib/code/type/maybe.rb
code-ruby-1.1.0 lib/code/type/maybe.rb
code-ruby-1.0.0 lib/code/type/maybe.rb
code-ruby-0.15.16 lib/code/type/maybe.rb
code-ruby-0.15.15 lib/code/type/maybe.rb
code-ruby-0.15.14 lib/code/type/maybe.rb
code-ruby-0.15.13 lib/code/type/maybe.rb
code-ruby-0.15.12 lib/code/type/maybe.rb
code-ruby-0.15.11 lib/code/type/maybe.rb
code-ruby-0.15.10 lib/code/type/maybe.rb
code-ruby-0.15.9 lib/code/type/maybe.rb
code-ruby-0.15.8 lib/code/type/maybe.rb
code-ruby-0.15.7 lib/code/type/maybe.rb
code-ruby-0.15.6 lib/code/type/maybe.rb