Module: YiffSpace::Extensions::ActiveRecord::Unnest
- Defined in:
- lib/yiffspace/extensions/active_record/unnest.rb
Instance Method Summary collapse
- #unnest(column, as: column.singularize, type: :left_join_lateral) ⇒ Object
-
#unnest!(column, name, type) ⇒ Object
:nodoc:.
Instance Method Details
#unnest(column, as: column.singularize, type: :left_join_lateral) ⇒ Object
7 8 9 10 11 |
# File 'lib/yiffspace/extensions/active_record/unnest.rb', line 7 def unnest(column, as: column.singularize, type: :left_join_lateral) raise(ArgumentError, "The method .unnest() must contain arguments.") if column.nil? spawn.unnest!(column, as, type) end |
#unnest!(column, name, type) ⇒ Object
:nodoc:
13 14 15 16 |
# File 'lib/yiffspace/extensions/active_record/unnest.rb', line 13 def unnest!(column, name, type) # :nodoc: function = ::Arel::Nodes::NamedFunction.new("unnest", [klass.arel_table[column]]).as(name) spawn.send("#{type}!", function, **({ on: ::Arel.sql("TRUE") } if type == :left_join_lateral)) end |