Sha256: d0b48d74c4ba04dbba50c46103a2f546321ba5becd9500c614f1fc4d7af122dd

Contents?: true

Size: 483 Bytes

Versions: 9

Compression:

Stored size: 483 Bytes

Contents

require "active_job"

module InstDataShipper
  module Jobs
    class Base < ActiveJob::Base
      attr_reader :start_time

      before_perform do
        @start_time = DateTime.now
      end

      around_perform :cleanup_working_dir

      def working_dir
        @working_dir ||= Dir.mktmpdir
      end

      private

      def cleanup_working_dir
        yield if block_given?
      ensure
        FileUtils.remove_entry @working_dir if @working_dir
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
inst_data_shipper-0.2.6 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.2.5 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.2.4 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.2.3 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.2.2 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.2.1 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.2.0 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.1.0.beta2 lib/inst_data_shipper/jobs/base.rb
inst_data_shipper-0.1.0.beta1 lib/inst_data_shipper/jobs/base.rb