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 |