Class: RedStorm::DSL::Topology::ComponentDefinition

Inherits:
Configurator
  • Object
show all
Defined in:
lib/red_storm/dsl/topology.rb

Direct Known Subclasses

BoltDefinition, SpoutDefinition

Instance Attribute Summary collapse

Attributes inherited from Configurator

#config

Instance Method Summary collapse

Methods inherited from Configurator

#method_missing, #set

Constructor Details

#initialize(component_class, constructor_args, id, parallelism) ⇒ ComponentDefinition

Returns a new instance of ComponentDefinition.



22
23
24
25
26
27
28
29
# File 'lib/red_storm/dsl/topology.rb', line 22

def initialize(component_class, constructor_args, id, parallelism)
  super()
  @clazz = component_class
  @constructor_args = constructor_args
  @id = id.to_s
  @parallelism = parallelism
  @output_fields = []
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class RedStorm::Configurator

Instance Attribute Details

#clazzObject (readonly)

Returns the value of attribute clazz.



19
20
21
# File 'lib/red_storm/dsl/topology.rb', line 19

def clazz
  @clazz
end

#constructor_argsObject (readonly)

Returns the value of attribute constructor_args.



19
20
21
# File 'lib/red_storm/dsl/topology.rb', line 19

def constructor_args
  @constructor_args
end

#idObject

ids are forced to string



20
21
22
# File 'lib/red_storm/dsl/topology.rb', line 20

def id
  @id
end

#parallelismObject (readonly)

Returns the value of attribute parallelism.



19
20
21
# File 'lib/red_storm/dsl/topology.rb', line 19

def parallelism
  @parallelism
end

Instance Method Details

#is_java?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/red_storm/dsl/topology.rb', line 35

def is_java?
  @clazz.name.split('::').first.downcase == 'java'
end

#output_fields(*args) ⇒ Object



31
32
33
# File 'lib/red_storm/dsl/topology.rb', line 31

def output_fields(*args)
  args.empty? ? @output_fields : @output_fields = args.map(&:to_s)
end