Sha256: 5a8d0f9ccde2d6e848b2c7ae07d74fff369cf74d1bc7f680f801cf48088f94ed
Contents?: true
Size: 1.98 KB
Versions: 1
Compression:
Stored size: 1.98 KB
Contents
# frozen_string_literal: true module Authlogic module ActsAsAuthentic module Queries # The query used by public-API method `find_by_smart_case_login_field`. # @api private class FindWithCase # Dup ActiveRecord.gem_version before freezing, in case someone # else wants to modify it. Freezing modifies an object in place. # https://github.com/binarylogic/authlogic/pull/590 AR_GEM_VERSION = ActiveRecord.gem_version.dup.freeze # @api private def initialize(model_class, field, value, sensitive) @model_class = model_class @field = field.to_s @value = value @sensitive = sensitive end # @api private def execute bind(relation).first end private # @api private def bind(relation) if AR_GEM_VERSION >= Gem::Version.new("5") bind = ActiveRecord::Relation::QueryAttribute.new( @field, @value, ActiveRecord::Type::Value.new ) @model_class.where(relation, bind) else @model_class.where(relation) end end # @api private def relation if !@sensitive @model_class.connection.case_insensitive_comparison( @model_class.arel_table, @field, @model_class.columns_hash[@field], @value ) elsif AR_GEM_VERSION >= Gem::Version.new("5.0") @model_class.connection.case_sensitive_comparison( @model_class.arel_table, @field, @model_class.columns_hash[@field], @value ) else value = @model_class.connection.case_sensitive_modifier(@value, @field) @model_class.arel_table[@field].eq(value) end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
authlogic-4.1.0 | lib/authlogic/acts_as_authentic/queries/find_with_case.rb |