Module: HQ::GraphQL::ActiveRecordExtensions::ClassMethods
- Defined in:
- lib/hq/graphql/active_record_extensions.rb
Instance Attribute Summary collapse
-
#authorize_action ⇒ Object
Returns the value of attribute authorize_action.
-
#auto_load_associations ⇒ Object
Returns the value of attribute auto_load_associations.
-
#auto_load_attributes ⇒ Object
Returns the value of attribute auto_load_attributes.
-
#auto_load_enums ⇒ Object
Returns the value of attribute auto_load_enums.
-
#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
#authorize_action ⇒ Object
Returns the value of attribute authorize_action.
17 18 19 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 17 def @authorize_action end |
#auto_load_associations ⇒ Object
Returns the value of attribute auto_load_associations.
17 18 19 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 17 def auto_load_associations @auto_load_associations end |
#auto_load_attributes ⇒ Object
Returns the value of attribute auto_load_attributes.
17 18 19 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 17 def auto_load_attributes @auto_load_attributes end |
#auto_load_enums ⇒ Object
Returns the value of attribute auto_load_enums.
17 18 19 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 17 def auto_load_enums @auto_load_enums end |
#model_name ⇒ Object
Returns the value of attribute model_name.
17 18 19 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 17 def model_name @model_name end |
Instance Method Details
#lazy_load(&block) ⇒ Object
23 24 25 26 27 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 23 def lazy_load(&block) @lazy_load ||= [] @lazy_load << block if block @lazy_load end |
#lazy_load! ⇒ Object
29 30 31 32 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 29 def lazy_load! lazy_load.map(&:call) @lazy_load = [] end |
#model_associations ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 48 def model_associations model_associations = [] enums = model_klass.reflect_on_all_associations.select { |a| is_enum?(a) } associatons = model_klass.reflect_on_all_associations - enums if auto_load_enums model_associations.concat(enums) end if auto_load_associations model_associations.concat(associatons) end model_associations.concat(added_associations.map { |association| association_from_model(association) }).uniq # 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
34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/hq/graphql/active_record_extensions.rb', line 34 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 |