Module: ArOuterJoins

Defined in:
lib/ar_outer_joins.rb,
lib/ar_outer_joins/join.rb,
lib/ar_outer_joins/version.rb,
lib/ar_outer_joins/join_builder.rb

Defined Under Namespace

Classes: Join, JoinBuilder

Constant Summary collapse

VERSION =
"0.2.0"

Instance Method Summary collapse

Instance Method Details

#outer_joins(*joins) ⇒ Object



7
8
9
10
11
12
13
14
# File 'lib/ar_outer_joins.rb', line 7

def outer_joins(*joins)
  association_joins, regular_joins = joins.partition do |join|
    join.is_a?(Hash) or join.is_a?(Array) or join.is_a?(Symbol)
  end
  join_set = Join.new(self).apply(*association_joins)
  join_set = join_set.joins(*regular_joins) unless regular_joins.empty?
  join_set
end