Sha256: db1aa1ad45c8000f01362f143e6419abb09e94a4a009fdad86c0e7977b248c4b

Contents?: true

Size: 950 Bytes

Versions: 12

Compression:

Stored size: 950 Bytes

Contents

class ScheduledTask < ActiveRecord::Base
  module Log
    def log_file(identifier)
      unless log_identifiers.include?(identifier)
        fail "Log identifier unknown: \"#{identifier}\" (Valid: #{log_identifiers})"
      end
      Rails.root.join('log', 'tasks_scheduler', "#{id}_#{identifier}.log")
    end

    private

    def log_identifiers
      [LOG_RUNNING, LOG_UNSUCCESSFUL, LOG_SUCCESSFUL]
    end

    def log_on_start
      log_file = log_file(LOG_RUNNING)
      FileUtils.mkdir_p(File.dirname(log_file))
      File.unlink(log_file) if File.exist?(log_file)
      STDOUT.reopen(log_file, 'w')
      STDERR.reopen(log_file, 'w')
      Rails.logger = ActiveSupport::Logger.new(STDOUT)
    end

    def log_on_end(exception)
      target_log = exception ? log_file(LOG_UNSUCCESSFUL) : log_file(LOG_SUCCESSFUL)
      File.unlink(target_log) if File.exist?(target_log)
      File.rename(log_file(LOG_RUNNING), target_log)
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
tasks_scheduler-0.2.3 app/models/scheduled_task/log.rb
tasks_scheduler-0.2.2 app/models/scheduled_task/log.rb
tasks_scheduler-0.2.1 app/models/scheduled_task/log.rb
tasks_scheduler-0.2.0 app/models/scheduled_task/log.rb
tasks_scheduler-0.1.0 app/models/scheduled_task/log.rb
tasks_scheduler-0.0.10 app/models/scheduled_task/log.rb
tasks_scheduler-0.0.9 app/models/scheduled_task/log.rb
tasks_scheduler-0.0.8 app/models/scheduled_task/log.rb
tasks_scheduler-0.0.7 app/models/scheduled_task/log.rb
tasks_scheduler-0.0.6 app/models/scheduled_task/log.rb
tasks_scheduler-0.0.5 app/models/scheduled_task/log.rb
tasks_scheduler-0.0.3 app/models/scheduled_task/log.rb