Sha256: d513ad7cf69a540b6f61f65d25ec4dd2b4ead579a099205e9a7cc84e7cd9b9b5
Contents?: true
Size: 896 Bytes
Versions: 2
Compression:
Stored size: 896 Bytes
Contents
module SearchCop class QueryBuilder attr_accessor :query_info, :scope, :sql def initialize(model, query, scope, query_options) self.scope = scope self.query_info = QueryInfo.new(model, scope) arel = SearchCop::Parser.parse(query, query_info, query_options).optimize! self.sql = SearchCop::Visitors::Visitor.new(model.connection).visit(arel) end def associations all_associations - [query_info.model.table_name.to_sym] end private def all_associations scope.reflection.attributes.values.flatten.collect { |column| association_for column.split(".").first }.uniq end def association_for(column) alias_value = scope.reflection.aliases[column] association = alias_value.respond_to?(:table_name) ? alias_value.table_name : alias_value association ||= column association.to_sym end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
search_cop-1.2.2 | lib/search_cop/query_builder.rb |
search_cop-1.2.1 | lib/search_cop/query_builder.rb |