Class: RedStorm::SimpleTopology::BoltDefinition

Inherits:
ComponentDefinition show all
Defined in:
lib/red_storm/simple_topology.rb

Instance Attribute Summary collapse

Attributes inherited from ComponentDefinition

#clazz, #id, #parallelism

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ BoltDefinition

Returns a new instance of BoltDefinition.



25
26
27
28
# File 'lib/red_storm/simple_topology.rb', line 25

def initialize(*args)
  super
  @sources = []
end

Instance Attribute Details

#sourcesObject

Returns the value of attribute sources.



23
24
25
# File 'lib/red_storm/simple_topology.rb', line 23

def sources
  @sources
end

Instance Method Details

#define_grouping(declarer) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/red_storm/simple_topology.rb', line 34

def define_grouping(declarer)
  @sources.each do |source_id, grouping|
    grouper, params = grouping.first

    case grouper
    when :fields
      declarer.fieldsGrouping(source_id, Fields.new(*params))
    when :global
      declarer.globalGrouping(source_id)
    when :shuffle
      declarer.shuffleGrouping(source_id)
    when :none
      declarer.noneGrouping(source_id)
    when :all
      declarer.allGrouping(source_id)
    when :direct
      declarer.directGrouping(source_id)
    else
      raise("unknown grouper=#{grouper.inspect}")
    end
  end
end

#source(source_id, grouping) ⇒ Object



30
31
32
# File 'lib/red_storm/simple_topology.rb', line 30

def source(source_id, grouping)
  @sources << [source_id.is_a?(Class) ? SimpleTopology.underscore(source_id) : source_id, grouping.is_a?(Hash) ? grouping : {grouping => nil}]
end