Class: Graphiti::HashRenderer

Inherits:
Object
  • Object
show all
Defined in:
lib/graphiti/hash_renderer.rb

Instance Method Summary collapse

Constructor Details

#initialize(resource, graphql: false) ⇒ HashRenderer

Returns a new instance of HashRenderer.



130
131
132
133
# File 'lib/graphiti/hash_renderer.rb', line 130

def initialize(resource, graphql: false)
  @resource = resource
  @graphql = graphql
end

Instance Method Details

#render(options) ⇒ Object



135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/graphiti/hash_renderer.rb', line 135

def render(options)
  serializers = options[:data]
  opts = options.slice(:fields, :include)
  opts[:graphql] = @graphql
  top_level_key = get_top_level_key(@resource, serializers.is_a?(Array))

  hash = {top_level_key => {}}
  nodes = get_nodes(serializers, opts)
  add_nodes(hash, top_level_key, options, nodes, @graphql)
  add_stats(hash, top_level_key, options, @graphql)
  hash
end