Class: Tabulard::Types::Composites::Composite

Inherits:
Type
  • Object
show all
Defined in:
lib/tabulard/types/composites/composite.rb

Instance Method Summary collapse

Methods inherited from Type

all, cast, #cast, freeze, #freeze, new!, #scalar?

Constructor Details

#initialize(types, **opts) ⇒ Composite

Returns a new instance of Composite.



10
11
12
13
14
# File 'lib/tabulard/types/composites/composite.rb', line 10

def initialize(types, **opts)
  super(**opts)

  @types = types
end

Instance Method Details

#composite?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/tabulard/types/composites/composite.rb', line 16

def composite?
  true
end

#scalar(index, value, messenger) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/tabulard/types/composites/composite.rb', line 20

def scalar(index, value, messenger)
  if (type = @types[index])
    type.scalar(nil, value, messenger)
  else
    raise Errors::TypeError, "Invalid index: #{index.inspect}"
  end
end