class Authlogic::ActsAsAuthentic::Queries::FindWithCase
The query used by public-API method `find_by_smart_case_login_field`. @api private
Constants
- AR_GEM_VERSION
Dup ActiveRecord.gem_version before freezing, in case someone else wants to modify it. Freezing modifies an object in place. github.com/binarylogic/authlogic/pull/590
Public Class Methods
new(model_class, field, value, sensitive)
click to toggle source
@api private
# File lib/authlogic/acts_as_authentic/queries/find_with_case.rb, line 15 def initialize(model_class, field, value, sensitive) @model_class = model_class @field = field.to_s @value = value @sensitive = sensitive end
Public Instance Methods
execute()
click to toggle source
@api private
# File lib/authlogic/acts_as_authentic/queries/find_with_case.rb, line 23 def execute bind(relation).first end
Private Instance Methods
bind(relation)
click to toggle source
@api private
# File lib/authlogic/acts_as_authentic/queries/find_with_case.rb, line 30 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
relation()
click to toggle source
@api private
# File lib/authlogic/acts_as_authentic/queries/find_with_case.rb, line 44 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