Sha256: 787a5d801acad53908d62c436bb47db74ec59d0f594a89fd0285b02c861e8a67

Contents?: true

Size: 688 Bytes

Versions: 17

Compression:

Stored size: 688 Bytes

Contents

module CanvasSync::JobUniqueness
  module Strategy
    extend ActiveSupport::Autoload

    autoload :Base

    autoload :UntilExpired
    autoload :UntilExecuted
    autoload :UntilExecuting
    autoload :UntilAndWhileExecuting
    autoload :WhileExecuting

    class << self
      def lookup(strategy)
        matching_strategy(strategy.to_s.camelize) ||
          CanvasSync::JobUniqueness.config.lock_strategies[strategy] ||
          raise(ArgumentError, "strategy: #{strategy} is not found. Is it declared in the configuration?")
      end

      private

      def matching_strategy(const)
        const_get(const, false) if const_defined?(const, false)
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
canvas_sync-0.22.9 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.8 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.6 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.5 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.4 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.3 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.2 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.1 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta8 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta7 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta6 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta5 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta4 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta3 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta2 lib/canvas_sync/job_uniqueness/strategy.rb
canvas_sync-0.22.0.beta1 lib/canvas_sync/job_uniqueness/strategy.rb