Sha256: e2e774ee7b6bed25eb9045fc4752cf6c600632b04365fd97e678b10a73460b73

Contents?: true

Size: 910 Bytes

Versions: 5

Compression:

Stored size: 910 Bytes

Contents

require "redis" unless defined? Redis

require "scripterator/version"
require "scripterator/configuration"
require "scripterator/runner"

module Scripterator
  class << self
    def configure
      yield config
    end

    def config
      @config ||= Scripterator::Configuration.new
    end

    def run(description, &block)
      options = {}.tap do |o|
        o[:start_id]         = ENV['START'].try(:to_i)
        o[:end_id]           = ENV['END'].try(:to_i)
        o[:id_list]          = ENV['ID_LIST'].try(:split, ',')
        o[:redis_expiration] = ENV['REDIS_EXPIRATION'].try(:to_i) || config.redis_expiration
      end

      Runner.new(description, &block).run(options)
    end

    %w(already_run_for? checked_ids failed_ids).each do |runner_method|
      define_method(runner_method) do |description, *args|
        Runner.new(description).send(runner_method, *args)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
scripterator-1.3.0 lib/scripterator.rb
scripterator-1.2.0 lib/scripterator.rb
scripterator-1.2.0.pre1 lib/scripterator.rb
scripterator-1.1.0 lib/scripterator.rb
scripterator-1.0.0 lib/scripterator.rb