Class: GraphQLIncludable::IncludesManager
- Inherits:
-
Object
- Object
- GraphQLIncludable::IncludesManager
- Defined in:
- lib/graphql_includable/resolver.rb
Instance Method Summary collapse
- #add_child_include(association) ⇒ Object
- #empty? ⇒ Boolean
- #includes ⇒ Object
-
#initialize(parent_attribute) ⇒ IncludesManager
constructor
A new instance of IncludesManager.
Constructor Details
#initialize(parent_attribute) ⇒ IncludesManager
Returns a new instance of IncludesManager.
3 4 5 6 |
# File 'lib/graphql_includable/resolver.rb', line 3 def initialize(parent_attribute) @parent_attribute = parent_attribute @included_children = {} end |
Instance Method Details
#add_child_include(association) ⇒ Object
8 9 10 11 12 13 14 |
# File 'lib/graphql_includable/resolver.rb', line 8 def add_child_include(association) return @included_children[association.name] if @included_children.key?(association.name) manager = IncludesManager.new(association.name) @included_children[association.name] = manager manager end |
#empty? ⇒ Boolean
16 17 18 |
# File 'lib/graphql_includable/resolver.rb', line 16 def empty? @included_children.empty? end |
#includes ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/graphql_includable/resolver.rb', line 20 def includes child_includes = {} child_includes_arr = [] @included_children.each do |key, value| if value.empty? child_includes_arr << key else includes = value.includes if includes.is_a?(Array) child_includes_arr += includes else child_includes.merge!(includes) end end end if child_includes_arr.present? child_includes_arr << child_includes if child_includes.present? child_includes = child_includes_arr end return child_includes if @parent_attribute.nil? { @parent_attribute => child_includes } end |