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