Class: GraphWeaver::Codegen::UnionNode

Inherits:
Object
  • Object
show all
Defined in:
lib/graph_weaver/codegen/nodes.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(class_name, members) ⇒ UnionNode

Returns a new instance of UnionNode.



294
295
296
297
# File 'lib/graph_weaver/codegen/nodes.rb', line 294

def initialize(class_name, members)
  @class_name = class_name
  @members = members
end

Instance Attribute Details

#class_name ⇒ Object (readonly)

graphql type name => ObjectNode



292
293
294
# File 'lib/graph_weaver/codegen/nodes.rb', line 292

def class_name
  @class_name
end

#members ⇒ Object (readonly)

graphql type name => ObjectNode



292
293
294
# File 'lib/graph_weaver/codegen/nodes.rb', line 292

def members
  @members
end

Instance Method Details

#bare_type ⇒ Object



299
# File 'lib/graph_weaver/codegen/nodes.rb', line 299

def bare_type = "#{class_name}::Type"

#cast(expr, _depth) ⇒ Object



305
306
307
# File 'lib/graph_weaver/codegen/nodes.rb', line 305

def cast(expr, _depth)
  "#{class_name}.from_h(#{expr})"
end

#identity? ⇒ Boolean

Returns:

  • (Boolean)


309
# File 'lib/graph_weaver/codegen/nodes.rb', line 309

def identity? = false

#nested ⇒ Object



311
# File 'lib/graph_weaver/codegen/nodes.rb', line 311

def nested = self

#non_null? ⇒ Boolean

Returns:

  • (Boolean)


310
# File 'lib/graph_weaver/codegen/nodes.rb', line 310

def non_null? = false

#prop_type ⇒ Object



301
302
303
# File 'lib/graph_weaver/codegen/nodes.rb', line 301

def prop_type
  "T.nilable(#{bare_type})"
end