module Relation::Extended
Public Instance Methods
add_translated_column(column)
click to toggle source
# File lib/from_clause_translate/active_record_relation.rb, line 15 def add_translated_column(column) (@values[:translated] ||= []) << column end
add_translated_columns(columns)
click to toggle source
# File lib/from_clause_translate/active_record_relation.rb, line 11 def add_translated_columns(columns) (@values[:translated] ||= []).concat columns end
apply_translates()
click to toggle source
# File lib/from_clause_translate/active_record_relation.rb, line 19 def apply_translates return if @translates_applied || !@values[:translated] @translates_applied = true columns = translated_columns_build return unless columns rel = unscoped.select(columns) rel.instance_variable_set(:@translates_applied, true) replace_plurals_in_projections @from_clause = Arel::Nodes::SqlLiteral.new( "(#{rel.arel.to_sql}) #{@klass.table_name}" ) end
arel(aliases = nil)
click to toggle source
Calls superclass method
# File lib/from_clause_translate/active_record_relation.rb, line 4 def arel(aliases = nil) arel = super apply_translates arel.instance_variable_get(:@ctx).source.left = @from_clause if @from_clause arel end
perform_calculation(operation, column_name)
click to toggle source
Calls superclass method
# File lib/from_clause_translate/active_record_relation.rb, line 41 def perform_calculation(operation, column_name) return super operation, column_name if @without_projections rel = spawn rel.instance_variable_set(:@without_projections, true) rel.add_translated_column column_name if column_name rel.perform_calculation operation, column_name end
replace_plurals_in_projections()
click to toggle source
# File lib/from_clause_translate/active_record_relation.rb, line 50 def replace_plurals_in_projections @arel.projections.each do |column| next unless column.is_a? String name = column[0] == '"' ? column[1...-1] : column plural = @klass._translation_data.plurals[name.to_sym] column.replace plural if plural end end
translated_columns_build()
click to toggle source
# File lib/from_clause_translate/active_record_relation.rb, line 35 def translated_columns_build FromClauseTranslate::TranslatedColumnsBuilder.new( self, @klass, @without_projections ).perform end