Sha256: f260ee8c9f00e3e7c5f1385e93453f5498d3e83ab7367258040accbb4996e18d
Contents?: true
Size: 802 Bytes
Versions: 3
Compression:
Stored size: 802 Bytes
Contents
module EasyOrderable class Joiner def initialize(relation, args, custom_association_names) @relation = relation @args = args @custom_association_names = custom_association_names end def call association_names = get_association_names association_names.present? ? relation.joins(*association_names) : relation end private attr_reader :relation, :args, :custom_association_names 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 def table_names args .keys .select{ |e| e.include?('.') } .map { |e| e.split('.').first.to_sym } end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
easy_orderable-1.2.0 | lib/easy_orderable/joiner.rb |
easy_orderable-1.1.1 | lib/easy_orderable/joiner.rb |
easy_orderable-1.0.0 | lib/easy_orderable/joiner.rb |