Module: YiffSpace::Extensions::ActiveRecord::CrossJoinLateral

Defined in:
lib/yiffspace/extensions/active_record/cross_join_lateral.rb

Instance Method Summary collapse

Instance Method Details

#cross_join_lateral(relation) ⇒ Object

Raises:

  • (ArgumentError)


7
8
9
10
11
12
# File 'lib/yiffspace/extensions/active_record/cross_join_lateral.rb', line 7

def cross_join_lateral(relation)
  raise(ArgumentError, "The method .cross_join_lateral() must contain arguments.") if relation.nil?

  relation = relation.arel if relation.respond_to?(:arel)
  spawn.cross_join_lateral!(relation)
end

#cross_join_lateral!(relation) ⇒ Object

:nodoc:



14
15
16
17
18
19
# File 'lib/yiffspace/extensions/active_record/cross_join_lateral.rb', line 14

def cross_join_lateral!(relation) # :nodoc:
  manager = klass.arel_table.cross_join_lateral(relation)

  self.joins_values |= [manager.join_sources.first]
  self
end