123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::AttributeMethods::Query

Relationships & Source Files
Extension / Inclusion / Inheritance Descendants
Super Chains via Extension / Inclusion / Inheritance
Class Chain:
Defined in: activerecord/lib/active_record/attribute_methods/query.rb

Class Method Summary

::ActiveSupport::Concern - Extended

class_methods

Define class methods from given block.

included

Evaluate given block in context of base class, so that you can write class macros here.

prepended

Evaluate given block in context of base class, so that you can write class macros here.

Instance Method Summary

DSL Calls

included

[ GitHub ]


8
9
10
# File 'activerecord/lib/active_record/attribute_methods/query.rb', line 8

included do
  attribute_method_suffix "?"
end

Instance Method Details

#query_attribute(attr_name) Also known as: #attribute?

[ GitHub ]

  
# File 'activerecord/lib/active_record/attribute_methods/query.rb', line 12

def query_attribute(attr_name)
  value = self[attr_name]

  case value
  when true        then true
  when false, nil  then false
  else
    if !type_for_attribute(attr_name) { false }
      if Numeric === value || !value.match?(/[^0-9]/)
        !value.to_i.zero?
      else
        return false if ActiveModel::Type::Boolean::FALSE_VALUES.include?(value)
        !value.blank?
      end
    elsif value.respond_to?(:zero?)
      !value.zero?
    else
      !value.blank?
    end
  end
end