Sha256: 49929856ef84a9deabcfa180b8380b646ab096f6647aaa75cee5931ce8ccab8c

Contents?: true

Size: 1.29 KB

Versions: 41

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

module ActiveRecord
  module ConnectionAdapters
    module SQLServer
      class TypeMetadata < DelegateClass(SqlTypeMetadata)
        undef to_yaml if method_defined?(:to_yaml)

        include Deduplicable

        attr_reader :is_identity, :is_primary, :table_name, :ordinal_position

        def initialize(type_metadata, is_identity: nil, is_primary: nil, table_name: nil, ordinal_position: nil)
          super(type_metadata)
          @is_identity = is_identity
          @is_primary = is_primary
          @table_name = table_name
          @ordinal_position = ordinal_position
        end

        def ==(other)
          other.is_a?(TypeMetadata) &&
            __getobj__ == other.__getobj__ &&
            is_identity == other.is_identity &&
            is_primary == other.is_primary &&
            table_name == other.table_name &&
            ordinal_position == other.ordinal_position
        end
        alias eql? ==

        def hash
          TypeMetadata.hash ^
            __getobj__.hash ^
            is_identity.hash ^
            is_primary.hash ^
            table_name.hash ^
            ordinal_position.hash
        end

        private

        def deduplicated
          __setobj__(__getobj__.deduplicate)
          super
        end
      end
    end
  end
end

Version data entries

41 entries across 41 versions & 1 rubygems

Version Path
activerecord-sqlserver-adapter-8.0.5 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-8.0.4 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.2.5 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-8.0.3 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.11 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.2.4 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-8.0.2 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.10 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.2.3 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-8.0.1 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-8.0.0 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.2.2 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.9 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.8 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.2.1 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.2.0 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.7 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.6 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.5 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb
activerecord-sqlserver-adapter-7.1.4 lib/active_record/connection_adapters/sqlserver/sql_type_metadata.rb