Sha256: c911d81f5135f339c9c765de8e05becbe1a502e400fd21e5ffcbbbdd74980220

Contents?: true

Size: 988 Bytes

Versions: 8

Compression:

Stored size: 988 Bytes

Contents

module RailsExecution
  module Services
    class Executor

      HIGHLIGHT = '=' * 20

      def initialize(task)
        @task = task
        @file_reader = ::RailsExecution.configuration.file_reader.new(task)
      end

      def call
        raise NotImplementedError
      end

      private

      attr_reader :task

      def file(name)
        @file_reader.get_file(name)
      end

      def info(object)
        model_name = object.respond_to?(:model_name) ? object.model_name.name : object.to_s
        message = model_name + '#' + object&.id.to_s
        log(message, nil)
      end

      def log(label = nil, message)
        label ||= Time.current

        Rails.logger.info("#{HIGHLIGHT} #{label}")
        Rails.logger.info(message) if message
      end

      def error!(label = nil, message)
        log(label, message)
        stop!
      end

      def stop!(message = nil)
        log('Rolling back...', message)
        raise :rollback
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rails_execution-0.1.12 lib/rails_execution/services/executor.rb
rails_execution-0.1.11 lib/rails_execution/services/executor.rb
rails_execution-0.1.10 lib/rails_execution/services/executor.rb
rails_execution-0.1.9 lib/rails_execution/services/executor.rb
rails_execution-0.1.8 lib/rails_execution/services/executor.rb
rails_execution-0.1.7 lib/rails_execution/services/executor.rb
rails_execution-0.1.5 lib/rails_execution/services/executor.rb
rails_execution-0.1.4 lib/rails_execution/services/executor.rb