Class: Goldiloader::AssociationInfo
- Inherits:
-
Object
- Object
- Goldiloader::AssociationInfo
- Defined in:
- lib/goldiloader/association_info.rb
Instance Method Summary collapse
- #finder_sql? ⇒ Boolean
- #from? ⇒ Boolean
- #group? ⇒ Boolean
-
#initialize(association) ⇒ AssociationInfo
constructor
A new instance of AssociationInfo.
- #instance_dependent? ⇒ Boolean
- #joins? ⇒ Boolean
- #limit? ⇒ Boolean
- #offset? ⇒ Boolean
- #read_only? ⇒ Boolean
- #uniq? ⇒ Boolean
- #unscope? ⇒ Boolean
Constructor Details
#initialize(association) ⇒ AssociationInfo
Returns a new instance of AssociationInfo.
6 7 8 |
# File 'lib/goldiloader/association_info.rb', line 6 def initialize(association) @association = association end |
Instance Method Details
#finder_sql? ⇒ Boolean
10 11 12 13 |
# File 'lib/goldiloader/association_info.rb', line 10 def finder_sql? Goldiloader::Compatibility.association_finder_sql_enabled? && [:finder_sql].present? end |
#from? ⇒ Boolean
30 31 32 33 34 35 36 |
# File 'lib/goldiloader/association_info.rb', line 30 def from? if ActiveRecord::VERSION::MAJOR >= 5 association_scope && association_scope.from_clause.present? else association_scope && association_scope.from_value.present? end end |
#group? ⇒ Boolean
38 39 40 |
# File 'lib/goldiloader/association_info.rb', line 38 def group? association_scope && association_scope.group_values.present? end |
#instance_dependent? ⇒ Boolean
57 58 59 |
# File 'lib/goldiloader/association_info.rb', line 57 def instance_dependent? reflection.scope.present? && reflection.scope.arity > 0 end |
#joins? ⇒ Boolean
42 43 44 45 46 47 48 49 50 51 |
# File 'lib/goldiloader/association_info.rb', line 42 def joins? return false unless association_scope num_joins = association_scope.joins_values.size if ActiveRecord::VERSION::MAJOR >= 5 num_joins += association_scope.left_joins_values.size + association_scope.left_outer_joins.size end # Yuck - Through associations will always have a join for *each* 'through' table num_joins - num_through_joins > 0 end |
#limit? ⇒ Boolean
26 27 28 |
# File 'lib/goldiloader/association_info.rb', line 26 def limit? association_scope && association_scope.limit_value.present? end |
#offset? ⇒ Boolean
22 23 24 |
# File 'lib/goldiloader/association_info.rb', line 22 def offset? association_scope && association_scope.offset_value.present? end |
#read_only? ⇒ Boolean
18 19 20 |
# File 'lib/goldiloader/association_info.rb', line 18 def read_only? association_scope && association_scope.readonly_value.present? end |
#uniq? ⇒ Boolean
53 54 55 |
# File 'lib/goldiloader/association_info.rb', line 53 def uniq? association_scope && association_scope.uniq_value end |
#unscope? ⇒ Boolean
61 62 63 64 65 |
# File 'lib/goldiloader/association_info.rb', line 61 def unscope? Goldiloader::Compatibility.unscope_query_method_enabled? && association_scope && association_scope.unscope_values.present? end |