Sha256: 6daa64b421b7b7e1dba722e1bc4e27cf071172e5fb7da4db9a0654f7f646f7dd

Contents?: true

Size: 1.02 KB

Versions: 4

Compression:

Stored size: 1.02 KB

Contents

# typed: strict
# frozen_string_literal: true

module Etwin
  module Twinoid
    # A valid Twinoid username
    class TwinoidUserDisplayName
      extend T::Helpers
      extend T::Sig

      final!

      protected

      sig(:final) { returns(String) }
      attr_reader :inner

      public

      sig(:final) { params(inner: String).void }
      def initialize(inner)
        @inner = T.let(inner.freeze, String)
        freeze
      end

      sig(:final) { params(other: BasicObject).returns(T::Boolean) }
      def ==(other)
        case other
        when TwinoidUserDisplayName
          @inner == other.inner
        else
          false
        end
      end

      sig(:final) { returns(Integer) }
      def hash
        @inner.hash
      end

      sig(:final) { returns(String) }
      def to_s
        @inner
      end

      sig(:final) { returns(String) }
      def as_json
        @inner
      end

      sig(:final) { returns(String) }
      def inspect
        "TwinoidUserDisplayName(#{@inner})"
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
etwin-0.3.2 lib/etwin/twinoid/twinoid_user_display_name.rb
etwin-0.0.3 lib/etwin/twinoid/twinoid_user_display_name.rb
etwin-0.0.2 lib/etwin/twinoid/twinoid_user_display_name.rb
etwin-0.0.1 lib/etwin/twinoid/twinoid_user_display_name.rb