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

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#authorize_actionObject

Returns the value of attribute authorize_action.



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

def authorize_action
  @authorize_action
end

#auto_load_associationsObject

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_attributesObject

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_enumsObject

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_nameObject

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_associationsObject



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_columnsObject



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