Sha256: 89780fb3ddfebe758e6a18156f1c178e09ba241b15fe5335b4bb9ae84461a651

Contents?: true

Size: 558 Bytes

Versions: 14

Compression:

Stored size: 558 Bytes

Contents

# typed: strict
# frozen_string_literal: true

require "sorbet-runtime"

module Nexus
  module Invision
    module ValueObject
      extend T::Sig
      extend T::Helpers

      abstract!

      sig { abstract.returns(T::Class[ValueObject]) }
      def class; end

      sig { abstract.returns(T::Hash[String, T.untyped]) }
      def serialize; end

      sig { params(other: ValueObject).returns(T::Boolean) }
      def eql?(other)
        self.class == other.class && serialize == other.serialize
      end

      alias_method :==, :eql?
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
nexus-invision-1.10.0 lib/nexus/invision/value_object.rb
nexus-invision-1.9.0 lib/nexus/invision/value_object.rb
nexus-invision-1.8.1 lib/nexus/invision/value_object.rb
nexus-invision-1.8.0 lib/nexus/invision/value_object.rb
nexus-invision-1.7.0 lib/nexus/invision/value_object.rb
nexus-invision-1.6.0 lib/nexus/invision/value_object.rb
nexus-invision-1.5.0 lib/nexus/invision/value_object.rb
nexus-invision-1.4.0 lib/nexus/invision/value_object.rb
nexus-invision-1.3.0 lib/nexus/invision/value_object.rb
nexus-invision-1.2.1 lib/nexus/invision/value_object.rb
nexus-invision-1.2.0 lib/nexus/invision/value_object.rb
nexus-invision-1.1.0 lib/nexus/invision/value_object.rb
nexus-invision-1.0.1 lib/nexus/invision/value_object.rb
nexus-invision-1.0.0 lib/nexus/invision/value_object.rb