# module ActiveRecord::AttributeMethods::Query

### Public Instance Methods

query_attribute(attr_name) click to toggle source

    # File lib/active_record/attribute_methods/query.rb, line 10
    def query_attribute(attr_name)
      value = self[attr_name]

      case value
      when true        then true
      when false, nil  then false
      else
        column = self.class.columns_hash[attr_name]
        if column.nil?
          if Numeric === value || value !~ /[^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

### Private Instance Methods

attribute?(attribute_name) click to toggle source

Handle *? for method_missing.

    # File lib/active_record/attribute_methods/query.rb, line 35
    def attribute?(attribute_name)
      query_attribute(attribute_name)
    end