class GraphQLIncludable::Includes
Attributes
included_children[R]
Public Class Methods
new(parent_attribute)
click to toggle source
# File lib/graphql_includable/includes.rb, line 5 def initialize(parent_attribute) @parent_attribute = parent_attribute @included_children = {} end
Public Instance Methods
[](key)
click to toggle source
# File lib/graphql_includable/includes.rb, line 28 def [](key) @included_children[key] end
active_record_includes()
click to toggle source
# File lib/graphql_includable/includes.rb, line 42 def active_record_includes child_includes = {} child_includes_arr = [] @included_children.each do |key, value| if value.empty? child_includes_arr << key else active_record_includes = value.active_record_includes if active_record_includes.is_a?(Array) child_includes_arr += active_record_includes else child_includes.merge!(active_record_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
add_child(key)
click to toggle source
# File lib/graphql_includable/includes.rb, line 10 def add_child(key) return @included_children[key] if @included_children.key?(key) manager = Includes.new(key) @included_children[key] = manager manager end
dig(*args)
click to toggle source
# File lib/graphql_includable/includes.rb, line 32 def dig(*args) args = args[0] if args.length == 1 && args[0].is_a?(Array) return @included_children if args.empty? @included_children.dig(*args) end
empty?()
click to toggle source
# File lib/graphql_includable/includes.rb, line 38 def empty? @included_children.empty? end
merge_includes(includes_manager)
click to toggle source
# File lib/graphql_includable/includes.rb, line 17 def merge_includes(includes_manager) includes_manager.included_children.each do |key, manager| included_children[key] = if included_children.key?(key) included_children[key].merge_includes(manager) else manager end end self end