# File lib/yapra/pipeline.rb, line 50
  def run pipeline_command, data=[]
    @plugins = []
    begin
      pipeline_command.inject(data) do |data, command|
        execute_plugin(command, data.clone)
      end
    rescue => ex
      @plugins.each do |plugin|
        begin
          plugin.on_error(ex) if plugin.respond_to?('on_error')
        rescue => exx
          self.logger.error("error is occured when error handling: #{exx.message}")
        end
      end
      raise ex
    end
  end