module ActiveRecord::VirtualAttributes::VirtualArel::ClassMethods
Public Instance Methods
arel_attribute(column_name, arel_table = self.arel_table)
click to toggle source
Calls superclass method
# File lib/active_record/virtual_attributes/virtual_arel.rb, line 25 def arel_attribute(column_name, arel_table = self.arel_table) load_schema if virtual_attribute?(column_name) && !attribute_alias?(column_name) if (col = _virtual_arel[column_name.to_s]) arel = col.call(arel_table) arel.name = column_name if arel.kind_of?(Arel::Nodes::Grouping) arel end else super end end
attribute_supported_by_sql?(name)
click to toggle source
supported by sql if
-
it is an attribute alias
-
it is an attribute that is non virtual
-
it is an attribute that is virtual and has arel defined
# File lib/active_record/virtual_attributes/virtual_arel.rb, line 42 def attribute_supported_by_sql?(name) load_schema try(:attribute_alias?, name) || (has_attribute?(name) && (!virtual_attribute?(name) || !!_virtual_arel[name.to_s])) end
Private Instance Methods
define_virtual_arel(name, arel)
click to toggle source
# File lib/active_record/virtual_attributes/virtual_arel.rb, line 50 def define_virtual_arel(name, arel) self._virtual_arel = _virtual_arel.merge(name => arel) end