Class: Activecube::Graphql::ResponseBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/activecube/graphql/response_builder.rb

Defined Under Namespace

Classes: Response, ResponseClassRegistry

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(tree, response) ⇒ ResponseBuilder

Returns a new instance of ResponseBuilder.



143
144
145
146
147
# File 'lib/activecube/graphql/response_builder.rb', line 143

def initialize tree, response
  @response = response
  key_map = Hash[response.columns.map.with_index{|key,index| [key, index]}]
  @response_class = ResponseClassRegistry.instance.get_response_class tree.root, key_map
end

Instance Attribute Details

#responseObject (readonly)

Returns the value of attribute response.



142
143
144
# File 'lib/activecube/graphql/response_builder.rb', line 142

def response
  @response
end

#response_classObject (readonly)

Returns the value of attribute response_class.



142
143
144
# File 'lib/activecube/graphql/response_builder.rb', line 142

def response_class
  @response_class
end

Instance Method Details

#map(&block) ⇒ Object

Raises:

  • (Activecube::InputArgumentError)


149
150
151
152
153
154
# File 'lib/activecube/graphql/response_builder.rb', line 149

def map &block
  raise Activecube::InputArgumentError, "Block expected on map of root response" unless block_given?
  response.rows.map do |row|
    block.call response_class.new row
  end
end