lib/mappers/base_mapper.rb in mandy-0.3.6 vs lib/mappers/base_mapper.rb in mandy-0.3.7

- old
+ new

@@ -1,25 +1,29 @@ module Mandy module Mappers class Base < Mandy::Task include Mandy::IO::InputFormatting - def self.compile(&blk) + def self.compile(opts={}, &blk) Class.new(Mandy::Mappers::Base) do self.class_eval do define_method(:mapper, blk) if blk + define_method(:setup, opts[:setup]) if opts[:setup] + define_method(:teardown, opts[:teardown]) if opts[:teardown] end end end def execute + setup if self.respond_to?(:setup) @input.each_line do |line| key, value = line.split(KEY_VALUE_SEPERATOR, 2) key, value = nil, key if value.nil? value.chomp! args = [input_deserialize_key(key), input_deserialize_value(value)].compact mapper(*args) end + teardown if self.respond_to?(:teardown) end private def mapper(key,value) \ No newline at end of file