class EasyOrderable::Joiner
Attributes
args[R]
custom_association_names[R]
relation[R]
Public Class Methods
new(relation, args, custom_association_names)
click to toggle source
# File lib/easy_orderable/joiner.rb, line 3 def initialize(relation, args, custom_association_names) @relation = relation @args = args @custom_association_names = custom_association_names end
Public Instance Methods
call()
click to toggle source
# File lib/easy_orderable/joiner.rb, line 9 def call association_names = get_association_names association_names.present? ? relation.joins(*association_names) : relation end
Private Instance Methods
get_association_names()
click to toggle source
# File lib/easy_orderable/joiner.rb, line 18 def get_association_names table_names.map do |name| if custom_association_names&.key?(name) custom_association_names[name].to_sym else name end end end
table_names()
click to toggle source
# File lib/easy_orderable/joiner.rb, line 28 def table_names args .keys .select{ |e| e.include?('.') } .map { |e| e.split('.').first.to_sym } end