Sha256: 5b132f0e5ecfc239d7a3ce9c2f60efa77b4661386519b7626356a6fb69fbf4f5

Contents?: true

Size: 888 Bytes

Versions: 2

Compression:

Stored size: 888 Bytes

Contents

module Mandy
  module Mappers
    class Base
      
      KEY_VALUE_SEPERATOR = "\t" unless defined?(KEY_VALUE_SEPERATOR)
    
      def initialize(input=STDIN, output=STDOUT)
        @input, @output = input, output
      end
    
      def self.compile(&blk)
        Class.new(Mandy::Mappers::Base) do 
          self.class_eval do
            define_method(:mapper, blk) if blk
          end
        end
      end
    
      def execute
        @input.each_line do |line|
           key, value = line.split(KEY_VALUE_SEPERATOR)
           key, value = nil, key if value.nil?
           value.chomp!
           mapper(key, value)
        end
      end
    
      def emit(key, value=nil)
        key = 'nil' if key.nil?
        @output.puts(value.nil? ? key.to_s : "#{key}\t#{value}")
      end
    
      private
    
      def mapper(key,value)
        #nil
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
trafficbroker-mandy-0.1.5 lib/mappers/base_mapper.rb
trafficbroker-mandy-0.1.6 lib/mappers/base_mapper.rb