Sha256: d2fef7b55f5ce6780a0989a95036ac8c88f023278dc9dc7a4953b33ae82f07a4

Contents?: true

Size: 1.37 KB

Versions: 2

Compression:

Stored size: 1.37 KB

Contents

require "click_session/configuration"

namespace :click_session do
  desc "Processes all click_sessions in the 'active' state"
  task process_active: :environment do
    def processor_for(session_state)
      ClickSession::ClickSessionProcessor.new(
        session_state,
        ClickSession::WebRunnerProcessor.new,
        ClickSession.configuration.notifier_class.new,
        processor_options
      )
    end

    def processor_options
      if ClickSession.configuration.screenshot_enabled?
        {
          screenshot_enabled: true,
          screenshot_options: ClickSession.configuration.screenshot
        }
      else
        {}
      end
    end

    ClickSession::SessionState.with_state(:active).each do | session_state |
      processor_for(session_state).process
    end
  end

  desc "reports click_sessions in 'processed' state to the webhook"
  task report_processed: :environment do
    reporter = ClickSession::SuccessfulStatusReporter.new

    ClickSession::SessionState.with_state(:processed).each do | session_state |
      reporter.report(session_state)
    end
  end

  desc "reports click_sessions in 'failed' state to the webhook"
  task report_failed: :environment do
    reporter = ClickSession::FailureStatusReporter.new

    ClickSession::SessionState.with_state(:failed_to_process).each do | session_state |
      reporter.report(session_state)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
click_session-0.1.1 lib/tasks/click_session.rake
click_session-0.1.0 lib/tasks/click_session.rake