Class: ActiveRecord::Relation::QueryAttribute

Inherits:
ActiveModel::Attribute
  • Object
show all
Defined in:
lib/active_record/relation/query_attribute.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#boundable?Boolean

Returns:

  • (Boolean)


27
28
29
30
31
32
33
# File 'lib/active_record/relation/query_attribute.rb', line 27

def boundable?
  return @_boundable if defined?(@_boundable)
  value_for_database unless value_before_type_cast.is_a?(StatementCache::Substitute)
  @_boundable = true
rescue ::RangeError
  @_boundable = false
end

#infinity?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/active_record/relation/query_attribute.rb', line 35

def infinity?
  _infinity?(value_before_type_cast) || boundable? && _infinity?(value_for_database)
end

#nil?Boolean

Returns:

  • (Boolean)


20
21
22
23
24
25
# File 'lib/active_record/relation/query_attribute.rb', line 20

def nil?
  unless value_before_type_cast.is_a?(StatementCache::Substitute)
    value_before_type_cast.nil? ||
      type.respond_to?(:subtype, true) && value_for_database.nil?
  end
end

#type_cast(value) ⇒ Object



8
9
10
# File 'lib/active_record/relation/query_attribute.rb', line 8

def type_cast(value)
  value
end

#value_for_databaseObject



12
13
14
# File 'lib/active_record/relation/query_attribute.rb', line 12

def value_for_database
  @value_for_database ||= super
end

#with_cast_value(value) ⇒ Object



16
17
18
# File 'lib/active_record/relation/query_attribute.rb', line 16

def with_cast_value(value)
  QueryAttribute.new(name, value, type)
end