Sha256: 1197d2bbb3249ee7eff958bbf504a2df1417e5e417df6cc65b85d1ea6ae81aa9

Contents?: true

Size: 808 Bytes

Versions: 514

Compression:

Stored size: 808 Bytes

Contents

# frozen_string_literal: true
# typed: true

module T::Types
  # Validates that an object is equal to another T::Enum singleton value.
  class TEnum < Base
    attr_reader :val

    def initialize(val)
      @val = val
    end

    # overrides Base
    def name
      # Strips the #<...> off, just leaving the ...
      # Reasoning: the user will have written something like
      #   T.any(MyEnum::A, MyEnum::B)
      # in the type, so we should print what they wrote in errors, not:
      #   T.any(#<MyEnum::A>, #<MyEnum::B>)
      @val.inspect[2..-2]
    end

    # overrides Base
    def valid?(obj)
      @val == obj
    end

    # overrides Base
    private def subtype_of_single?(other)
      case other
      when TEnum
        @val == other.val
      else
        false
      end
    end
  end
end

Version data entries

514 entries across 508 versions & 3 rubygems

Version Path
sorbet-runtime-0.5.11170 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11164 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11163 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11162 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11158 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11156 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11155 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11152 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11151 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11150 lib/types/types/t_enum.rb
study_line-0.1.6 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/types/t_enum.rb
study_line-0.1.6 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/types/t_enum.rb
sorbet-runtime-0.5.11148 lib/types/types/t_enum.rb
sorbet-runtime-0.5.11147 lib/types/types/t_enum.rb
study_line-0.1.5 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/types/t_enum.rb
study_line-0.1.5 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/types/t_enum.rb
study_line-0.1.4 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11108/lib/types/types/t_enum.rb
study_line-0.1.4 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/types/t_enum.rb
sorbet-runtime-0.5.11146 lib/types/types/t_enum.rb
study_line-0.1.3 vendor/bundle/ruby/3.2.0/gems/sorbet-runtime-0.5.11104/lib/types/types/t_enum.rb