Sha256: e2875f9e6db62a4a2470d810ca07293861fa852ac2c30a82572a90785a60d99d

Contents?: true

Size: 715 Bytes

Versions: 4

Compression:

Stored size: 715 Bytes

Contents

module OddJob
  # The realm used in Http Basic Authentication.
  mattr_accessor :contract_directory
  @@contract_directory = nil

  mattr_reader :contracts
  @@contracts = nil

  def self.setup
    yield self
  end

  def self.contract(job_name)
    contracts[job_name.to_sym]
  end

  def self.contracts
    @@contracts = @@contracts || load_contract_directory      
  end

  def self.load_contract_directory
    contracts = {}
    Dir.glob("#{@@contract_directory}/*.yml") do |file|
      class_name = /([A-Z|a-z|0-9|_]+).yml$/.match(file)
      config = YAML::load(File.open(file)).deep_symbolize_keys
      contracts[class_name[1].camelize.to_sym] = config
    end
    contracts
  end
end

require 'odd_job/job'

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
odd_job-0.9.2 lib/odd_job.rb
odd_job-0.9.1 lib/odd_job.rb
odd_job-0.9.0 lib/odd_job.rb
odd_job-0.0.1 lib/odd_job.rb