Module: HQ::GraphQL::ActiveRecordExtensions::ClassMethods
- Defined in:
- lib/hq/graphql/active_record_extensions.rb
Instance Attribute Summary collapse
-
#auto_load_associations ⇒ Object
Returns the value of attribute auto_load_associations.
-
#auto_load_attributes ⇒ Object
Returns the value of attribute auto_load_attributes.
-
#model_name ⇒ Object
Returns the value of attribute model_name.
Instance Method Summary collapse
- #lazy_load(&block) ⇒ Object
- #lazy_load! ⇒ Object
- #model_associations ⇒ Object
- #model_columns ⇒ Object
Instance Attribute Details
#auto_load_associations ⇒ Object
Returns the value of attribute auto_load_associations.
15 16 17 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 15 def auto_load_associations @auto_load_associations end |
#auto_load_attributes ⇒ Object
Returns the value of attribute auto_load_attributes.
15 16 17 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 15 def auto_load_attributes @auto_load_attributes end |
#model_name ⇒ Object
Returns the value of attribute model_name.
15 16 17 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 15 def model_name @model_name end |
Instance Method Details
#lazy_load(&block) ⇒ Object
19 20 21 22 23 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 19 def lazy_load(&block) @lazy_load ||= [] @lazy_load << block if block @lazy_load end |
#lazy_load! ⇒ Object
25 26 27 28 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 25 def lazy_load! lazy_load.map(&:call) @lazy_load = [] end |
#model_associations ⇒ Object
44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 44 def model_associations model_associations = if auto_load_associations model_klass.reflect_on_all_associations else added_associations.map { |association| association_from_model(association) } end # validate removed_associations exist removed_associations.each { |association| association_from_model(association) } model_associations.reject { |a| removed_associations.include?(a.name.to_sym) }.sort_by(&:name) end |
#model_columns ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 30 def model_columns model_columns = if auto_load_attributes model_klass.columns else added_attributes.map { |attr| column_from_model(attr) } end # validate removed_attributes exist removed_attributes.each { |attr| column_from_model(attr) } model_columns.reject { |c| removed_attributes.include?(c.name.to_sym) }.sort_by(&:name) end |