Method: ContentfulModel::Base.discovered_include_level

Defined in:
lib/contentful_model/base.rb

.discovered_include_levelObject



97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'lib/contentful_model/base.rb', line 97

def discovered_include_level
  @discovered_include_level ||= nil
  return @discovered_include_level unless @discovered_include_level.nil?

  # Recreate content type tree
  includes = {}
  discovered_includes.each do |klass|
    # Recursively find includes - remove self from reference lists
    includes[klass] = klass.constantize.discovered_includes.reject { |i| i == to_s } + [klass]
  end

  include_level = includes.values.map(&:size).max # Longest include chain
  return @discovered_include_level = 1 if include_level.nil? || include_level.zero?
  return @discovered_include_level = 10 if include_level >= 10
  @discovered_include_level = include_level + 1
end