class Outback::Configuration
Attributes
errors[R]
name[R]
processors[R]
sources[R]
targets[R]
Public Class Methods
[](name)
click to toggle source
# File lib/outback/configuration.rb, line 16 def [](name) loaded.detect { |configuration| configuration.name == name.to_s } end
add(configuration)
click to toggle source
# File lib/outback/configuration.rb, line 7 def add(configuration) raise ConfigurationError, "duplicate configuration #{configuration.name}" if loaded.any?(&its.name == configuration.name) loaded << configuration end
loaded()
click to toggle source
# File lib/outback/configuration.rb, line 12 def loaded @loaded end
new(name) { |self| ... }
click to toggle source
# File lib/outback/configuration.rb, line 27 def initialize(name, &block) name = name.to_s raise ConfigurationError, "Illegal configuration name #{name.inspect}" unless name.match(/\A[a-z][a-z0-9_\-.]+\z/) @name = name @sources, @processors, @targets, @errors = [], [], [], [] if block_given? if block.arity == 1 then yield(self) else instance_eval(&block) end end self.class.add(self) end
reset()
click to toggle source
# File lib/outback/configuration.rb, line 20 def reset @loaded = [] end
Public Instance Methods
tmpdir(*args)
click to toggle source
# File lib/outback/configuration.rb, line 47 def tmpdir(*args) if args.empty? @tmpdir elsif args.size == 1 dir = Pathname.new(args.first).realpath raise ConfigurationError, "tmpdir #{dir} is not a directory" unless dir.directory? @tmpdir = dir else raise ConfigurationError, "tmpdir: wrong number of arguments(#{args.size} for 1)" end end
valid?()
click to toggle source
# File lib/outback/configuration.rb, line 38 def valid? errors.clear return error('no targets specified') if targets.empty? moving_targets = targets.select { |t| t.is_a?(DirectoryTarget) && t.move } return error('cannot define more than one moving target') if moving_targets.size > 1 return error('moving target must be defined last') if moving_targets.first && moving_targets.first != targets.last true end
Protected Instance Methods
error(message)
click to toggle source
# File lib/outback/configuration.rb, line 73 def error(message) errors << ConfigurationError.new(message) false end
processor(type, *args, &block)
click to toggle source
# File lib/outback/configuration.rb, line 65 def processor(type, *args, &block) "Outback::#{type.to_s.classify}Processor".constantize.configure(name, *args, &block).tap { |instance| processors << instance } end
source(type, *args, &block)
click to toggle source
# File lib/outback/configuration.rb, line 61 def source(type, *args, &block) "Outback::#{type.to_s.classify}Source".constantize.configure(name, *args, &block).tap { |instance| sources << instance } end
target(type, *args, &block)
click to toggle source
# File lib/outback/configuration.rb, line 69 def target(type, *args, &block) "Outback::#{type.to_s.classify}Target".constantize.configure(name, *args, &block).tap { |instance| targets << instance } end