trafficbroker-mandy 0.2.5.1 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/lib/mandy.rb CHANGED
@@ -6,12 +6,14 @@
6
6
  support/tuple
7
7
  support/array_serializer
8
8
  mappers/base_mapper
9
+ mappers/transpose_mapper
9
10
  mappers/pass_through_mapper
10
11
  reducers/base_reducer
11
12
  reducers/pass_through_reducer
12
13
  reducers/sum_reducer
13
14
  reducers/max_reducer
14
15
  reducers/min_reducer
16
+ reducers/transpose_reducer
15
17
  stores/hbase
16
18
  stores/in_memory
17
19
  test_runner
@@ -0,0 +1,10 @@
1
+ module Mandy
2
+ module Mappers
3
+ class TransposeMapper < Base
4
+ def mapper(key,value)
5
+ # default map is simply a pass-through
6
+ emit(value, key)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,9 @@
1
+ module Mandy
2
+ module Reducers
3
+ class TransposeReducer < Base
4
+ def reducer(key,values)
5
+ values.each {|value| emit(value, key) }
6
+ end
7
+ end
8
+ end
9
+ end
data/lib/task.rb CHANGED
@@ -1,27 +1,27 @@
1
1
  module Mandy
2
2
  class Task
3
3
  KEY_VALUE_SEPERATOR = "\t" unless defined?(KEY_VALUE_SEPERATOR)
4
-
4
+
5
5
  def initialize(input=STDIN, output=STDOUT)
6
6
  @input, @output = input, output
7
7
  end
8
-
8
+
9
9
  def emit(key, value=nil)
10
10
  key = 'nil' if key.nil?
11
11
  @output.puts(value.nil? ? key.to_s : "#{serialize(key)}\t#{serialize(value)}")
12
12
  end
13
-
13
+
14
14
  def get(store, key)
15
15
  Mandy.stores[store].get(key)
16
16
  end
17
-
17
+
18
18
  def put(store, key, values)
19
19
  Mandy.stores[store].put(key, values)
20
20
  end
21
-
21
+
22
22
  private
23
23
 
24
-
24
+
25
25
  def serialize(value)
26
26
  value = ArraySerializer.new(value) if value.is_a?(Array)
27
27
  value.to_s
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trafficbroker-mandy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5.1
4
+ version: 0.2.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Kent
@@ -45,9 +45,11 @@ files:
45
45
  - lib/dsl.rb
46
46
  - lib/job.rb
47
47
  - lib/mappers/base_mapper.rb
48
+ - lib/mappers/transpose_mapper.rb
48
49
  - lib/mappers/pass_through_mapper.rb
49
50
  - lib/packer.rb
50
51
  - lib/reducers/base_reducer.rb
52
+ - lib/reducers/transpose_reducer.rb
51
53
  - lib/reducers/pass_through_reducer.rb
52
54
  - lib/reducers/sum_reducer.rb
53
55
  - lib/reducers/max_reducer.rb