Class: Activecube::Graphql::CubeField
- Inherits:
- 
      GraphQL::Schema::Field
      
        - Object
- GraphQL::Schema::Field
- Activecube::Graphql::CubeField
 
- Defined in:
- lib/activecube/graphql/cube_field.rb
Instance Attribute Summary collapse
- 
  
    
      #cube  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    Returns the value of attribute cube. 
Instance Method Summary collapse
- 
  
    
      #initialize(*args, cube: nil, **kwargs, &block)  ⇒ CubeField 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    Override #initialize to take a new argument cube:. 
- #resolve_field_method(obj, ruby_kwargs, ctx) ⇒ Object
Constructor Details
#initialize(*args, cube: nil, **kwargs, &block) ⇒ CubeField
Override #initialize to take a new argument cube:
| 18 19 20 21 22 23 | # File 'lib/activecube/graphql/cube_field.rb', line 18 def initialize(*args, cube: nil, **kwargs, &block) @cube = cube # Pass on the default args: super(*args, **kwargs, &block) append_extra :irep_node end | 
Instance Attribute Details
#cube ⇒ Object (readonly)
Returns the value of attribute cube.
| 16 17 18 | # File 'lib/activecube/graphql/cube_field.rb', line 16 def cube @cube end | 
Instance Method Details
#resolve_field_method(obj, ruby_kwargs, ctx) ⇒ Object
| 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | # File 'lib/activecube/graphql/cube_field.rb', line 25 def resolve_field_method(obj, ruby_kwargs, ctx) return super unless cube irep_node = ruby_kwargs[:irep_node] tree = ParseTree.new cube, irep_node object = obj.object database = (object.kind_of?(Hash) && object[:database]) || (object.respond_to?(:database) && object.database) response = database ? cube.connected_to(database: database) do execute_query(tree, ctx, object) end : execute_query(tree, ctx, object) ResponseBuilder.new tree, response rescue Activecube::InputArgumentError => ex raise GraphQL::ExecutionError, "Error executing #{cube.name}: #{ex.}" end |