Sha256: 4c41c04fcfd0f5824403a7935641abc340c9e295c98978e5cec41d09604d9a82

Contents?: true

Size: 804 Bytes

Versions: 9

Compression:

Stored size: 804 Bytes

Contents

require 'active_record'

module AdaptiveAlias
  module ActiveModelPatches
    module ArelTable
      def [](name)
        name = name.to_s if name.is_a?(Symbol)
        klass = self.klass
        name = klass.attribute_aliases[name] || name if klass
        super
      end

      def klass
        return @type_caster.instance_variable_get(:@klass) if @type_caster.is_a?(ActiveRecord::TypeCaster::Connection)
        return @type_caster.send(:types) if @type_caster.is_a?(ActiveRecord::TypeCaster::Map)
      end
    end
  end
end

# https://github.com/rails/rails/commit/1ac40f16c5bc5246a4aaeab0558eb1c3078b3c6e
if Gem::Version.new(ActiveRecord::VERSION::STRING) < Gem::Version.new('6.1')
  class Arel::Table
    prepend AdaptiveAlias::ActiveModelPatches::ArelTable
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
adaptive_alias-1.3.0 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-1.2.1 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-1.2.0 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-1.1.2 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-1.1.1 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-1.1.0 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-1.0.0 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-0.2.4 lib/adaptive_alias/active_model_patches/arel_table.rb
adaptive_alias-0.2.3 lib/adaptive_alias/active_model_patches/arel_table.rb