Class: Upkeep::ActiveRecordQuery::Collector
- Inherits:
-
Object
- Object
- Upkeep::ActiveRecordQuery::Collector
- Defined in:
- lib/upkeep/active_record_query.rb
Instance Method Summary collapse
- #analyze ⇒ Object
-
#initialize(relation, opaque_table_policy:) ⇒ Collector
constructor
A new instance of Collector.
Constructor Details
#initialize(relation, opaque_table_policy:) ⇒ Collector
Returns a new instance of Collector.
79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/upkeep/active_record_query.rb', line 79 def initialize(relation, opaque_table_policy:) @relation = relation @opaque_table_policy = opaque_table_policy @primary_table = relation.klass.table_name @primary_key = relation.klass.primary_key @table_columns = Hash.new { |hash, table| hash[table] = [] } @table_aliases = {} @opaque_columns = false @opaque_tables = false @opaque_table_reasons = [] @opaque_column_reasons = [] @predicates = [] end |
Instance Method Details
#analyze ⇒ Object
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/upkeep/active_record_query.rb', line 93 def analyze table(@primary_table) collect_relation_shape raise_opaque_relation! if opaque_relation? && @opaque_table_policy == :raise Result.new( primary_table: @primary_table, table_columns: normalized_table_columns, coverage: coverage, sql: safe_sql, primary_key: @primary_key, appendable: appendable_relation?, limit_value: @relation.limit_value, predicates: normalized_predicates ) end |