Class: Humboldt::Processor

Inherits:
Object
  • Object
show all
Defined in:
lib/humboldt/processor.rb

Direct Known Subclasses

Mapper, Reducer

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#current_contextObject (readonly)

Returns the value of attribute current_context.



45
46
47
# File 'lib/humboldt/processor.rb', line 45

def current_context
  @current_context
end

Class Method Details

.cleanup(&block) ⇒ Object



39
40
41
42
# File 'lib/humboldt/processor.rb', line 39

def cleanup(&block)
  define_method(:instance_cleanup, &block)
  private(:instance_cleanup)
end

.input(*types) ⇒ Object



24
25
26
27
# File 'lib/humboldt/processor.rb', line 24

def input(*types)
  self.input_key = types.first
  self.input_value = types.last
end

.output(*types) ⇒ Object



29
30
31
32
# File 'lib/humboldt/processor.rb', line 29

def output(*types)
  self.output_key = types.first
  self.output_value = types.last
end

.setup(&block) ⇒ Object



34
35
36
37
# File 'lib/humboldt/processor.rb', line 34

def setup(&block)
  define_method(:instance_setup, &block)
  private(:instance_setup)
end

.type_accessor(*names) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/humboldt/processor.rb', line 6

def self.type_accessor(*names)
  names.each do |name|
    module_eval <<-EOA
      def #{name}
        @#{name} || superclass.#{name}
      end
      def #{name}=(type)
        @#{name} = TypeConverter[type]
        define_method(:#{name}_accessor) do
          TypeConverter[type].new
        end
      end
    EOA
  end
end

Instance Method Details

#cleanup(context) ⇒ Object



59
60
61
# File 'lib/humboldt/processor.rb', line 59

def cleanup(context)
  instance_cleanup
end

#setup(context) ⇒ Object



47
48
49
50
51
52
53
54
55
56
57
# File 'lib/humboldt/processor.rb', line 47

def setup(context)
  @current_context = context
  @in_key = input_key_accessor
  @in_value = input_value_accessor
  @out_key = output_key_accessor
  @out_value = output_value_accessor
  unless Hadoop::Mapreduce::Job.instance_methods.include?(:add_cache_file)
    create_symlinks!
  end
  instance_setup
end