Module: RunnerHelpers

Defined in:
lib/humboldt/rspec.rb

Defined Under Namespace

Classes: FakeContext, FakeCounter, FakeIterable, FakeIterator

Instance Method Summary collapse

Instance Method Details

#fake_iterator(*values) ⇒ Object



44
45
46
# File 'lib/humboldt/rspec.rb', line 44

def fake_iterator(*values)
  FakeIterable.new(values)
end

#run(runner, method, context_callback, *entries) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/humboldt/rspec.rb', line 31

def run(runner, method, context_callback, *entries)
  in_key = runner.input_key_accessor
  context = FakeContext.new(runner.output_key_accessor, runner.output_value_accessor)
  context_callback.call(context) if context_callback
  runner.setup(context)
  entries.each do |entry|
    in_key.ruby = entry.first
    runner.send(method, in_key.hadoop, yield(entry.last), context)
  end
  runner.cleanup(context)
  context.results
end

#run_mapper(mapper, *entries, &context_callback) ⇒ Object



13
14
15
16
17
18
19
# File 'lib/humboldt/rspec.rb', line 13

def run_mapper(mapper, *entries, &context_callback)
  in_value = mapper.input_value_accessor
  run(mapper, :map, context_callback, *entries) do |value|
    in_value.ruby = value
    in_value.hadoop
  end
end

#run_nokey_mapper(mapper, *values, &context_callback) ⇒ Object



7
8
9
10
11
# File 'lib/humboldt/rspec.rb', line 7

def run_nokey_mapper(mapper, *values, &context_callback)
  key = mapper.input_key_accessor.ruby
  args = values.map { |value| [key, value] }
  run_mapper(mapper, *args, &context_callback)
end

#run_reducer(reducer, *entries, &context_callback) ⇒ Object



21
22
23
24
25
26
27
28
29
# File 'lib/humboldt/rspec.rb', line 21

def run_reducer(reducer, *entries, &context_callback)
  run(reducer, :reduce, context_callback, *entries) do |value|
    fake_iterator(*value.map do |v|
      in_value = reducer.input_value_accessor
      in_value.ruby = v
      in_value.hadoop
    end)
  end
end