Sha256: 166a4a5c6f33362a3c104ed49f22d025fb0e30e1c71d150c0975a1010ee0432e

Contents?: true

Size: 538 Bytes

Versions: 32

Compression:

Stored size: 538 Bytes

Contents

# frozen_string_literal: true

class Code
  class Type
    def name
      raise NotImplementedError, "#{self.class}#name"
    end

    def valid?(argument)
      raise NotImplementedError, "#{self.class}#valid?"
    end

    def valid_for?(expected:, actual:)
      expected.is_a?(Type) ? expected.valid?(actual) : actual.is_a?(expected)
    end

    def min_arguments_of(clazz)
      clazz.is_a?(Type) ? clazz.min_arguments : 1
    end

    def max_arguments_of(clazz)
      clazz.is_a?(Type) ? clazz.max_arguments : 1
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
code-ruby-0.10.4 lib/code/type.rb
code-ruby-0.10.3 lib/code/type.rb
code-ruby-0.10.2 lib/code/type.rb
code-ruby-0.10.1 lib/code/type.rb
code-ruby-0.10.0 lib/code/type.rb
code-ruby-0.9.3 lib/code/type.rb
code-ruby-0.9.2 lib/code/type.rb
code-ruby-0.9.1 lib/code/type.rb
code-ruby-0.9.0 lib/code/type.rb
code-ruby-0.8.5 lib/code/type.rb
code-ruby-0.8.4 lib/code/type.rb
code-ruby-0.8.3 lib/code/type.rb
code-ruby-0.8.2 lib/code/type.rb
code-ruby-0.8.1 lib/code/type.rb
code-ruby-0.8.0 lib/code/type.rb
code-ruby-0.7.8 lib/code/type.rb
code-ruby-0.7.7 lib/code/type.rb
code-ruby-0.7.6 lib/code/type.rb
code-ruby-0.7.5 lib/code/type.rb
code-ruby-0.7.4 lib/code/type.rb