module ActiveRecord::QueryMethods
● Implement check_if_method_has_arguments! method for Rails 3
Public Instance Methods
build_arel(*args)
click to toggle source
# File lib/left_joins.rb, line 53 def build_arel(*args) arel = build_arel_without_outer_joins(*args) build_left_outer_joins(arel, @left_outer_joins_values) if @left_outer_joins_values return arel end
build_joins(manager, joins, join_type = nil)
click to toggle source
# File lib/left_joins.rb, line 60 def build_joins(manager, joins, join_type = nil) Thread.current.thread_variable_set(:left_joins_join_type, join_type) result = build_joins_without_join_type(manager, joins) Thread.current.thread_variable_set(:left_joins_join_type, nil) return result end
build_left_outer_joins(manager, joins)
click to toggle source
# File lib/left_joins.rb, line 67 def build_left_outer_joins(manager, joins) result = build_joins(manager, joins, Arel::Nodes::OuterJoin) return result end
check_if_method_has_arguments!(method_name, args)
click to toggle source
# File lib/left_joins_for_rails_3.rb, line 5 def check_if_method_has_arguments!(method_name, args) if args.blank? raise ArgumentError, "The method .#{method_name}() must contain arguments." end end
left_outer_joins(*args)
click to toggle source
# File lib/left_joins.rb, line 33 def left_outer_joins(*args) check_if_method_has_arguments!(:left_outer_joins, args) args.compact! args.flatten! self.distinct_value = false if self.distinct_value == nil return (LeftJoins::IS_RAILS3_FLAG ? clone : spawn).left_outer_joins!(*args) end
left_outer_joins!(*args)
click to toggle source
# File lib/left_joins.rb, line 43 def left_outer_joins!(*args) left_outer_joins_values.concat(args) self end
left_outer_joins_values()
click to toggle source
# File lib/left_joins.rb, line 29 def left_outer_joins_values @left_outer_joins_values ||= [] end