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

#auto_load_associationsObject

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_attributesObject

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_nameObject

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_associationsObject



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_columnsObject



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