Module: HQ::GraphQL::Ext::ActiveRecordExtensions::ClassMethods

Defined in:
lib/hq/graphql/ext/active_record_extensions.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#authorize_actionObject

Returns the value of attribute authorize_action.



18
19
20
# File 'lib/hq/graphql/ext/active_record_extensions.rb', line 18

def authorize_action
  @authorize_action
end

#auto_load_associationsObject

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_attributesObject

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_enumsObject

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_nameObject

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_associationsObject



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_columnsObject



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