Permalink
Cannot retrieve contributors at this time
Fetching contributors…

# frozen_string_literal: true | |
module ActiveRecord | |
module AttributeMethods | |
module Query | |
extend ActiveSupport::Concern | |
included do | |
attribute_method_suffix "?" | |
end | |
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 | |
# Handle *? for method_missing. | |
def attribute?(attribute_name) | |
query_attribute(attribute_name) | |
end | |
end | |
end | |
end |