Module: HQ::GraphQL::Ext::ActiveRecordExtensions::ClassMethods
- Defined in:
- lib/hq/graphql/ext/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.
18 19 20 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 18 def @authorize_action end |
#auto_load_associations ⇒ Object
Returns the value of attribute auto_load_associations.
18 19 20 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 18 def auto_load_associations @auto_load_associations end |
#auto_load_attributes ⇒ Object
Returns the value of attribute auto_load_attributes.
18 19 20 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 18 def auto_load_attributes @auto_load_attributes end |
#auto_load_enums ⇒ Object
Returns the value of attribute auto_load_enums.
18 19 20 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 18 def auto_load_enums @auto_load_enums end |
#model_name ⇒ Object
Returns the value of attribute model_name.
18 19 20 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 18 def model_name @model_name end |
Instance Method Details
#lazy_load(&block) ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 24 def lazy_load(&block) @lazy_load ||= [] if block ::HQ::GraphQL.lazy_load(self) @lazy_load << block end @lazy_load end |
#lazy_load! ⇒ Object
33 34 35 36 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 33 def lazy_load! lazy_load.shift.call while lazy_load.length > 0 @lazy_load = nil end |
#model_associations ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 52 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
38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 38 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 |