Repository URL to install this package:
|
Version:
0.1.0.0 ▾
|
class Runner
dependency :logger, ::Telemetry::Logger
attr_reader :files
def initialize(files)
@files = files
end
def self.build(files)
new(files).tap do |instance|
logger.configure instance
end
end
def self.call(*args, &reject_blk)
logger = ::Telemetry::Logger.get self
base_dir = File.expand_path(File.dirname(caller[0]))
patterns = file_patterns(args)
files = glob(patterns, base_dir)
if block_given?
files.reject! &reject_blk
end
if files.empty?
logger.error "No files found for file patterns: #{patterns.join(', ')}"
return failure_code
end
instance = new files
instance.()
end
class << self; alias :! :call; end # TODO: Remove deprecated actuator [Kelsey, Thu Oct 08 2015]
def self.glob(patterns, base_dir)
files = []
patterns.each do |pattern|
pattern = Pathname.new(pattern).absolute? ? pattern : File.join(base_dir, pattern)
files.concat Dir.glob(pattern)
end
files
end
def self.file_patterns(args)
patterns = []
args.each do |pattern|
patterns.concat pattern.is_a?(Array) ? pattern : [pattern]
end
patterns
end
def call
files.each do |file|
load file
end
return self.class.success_code
end
alias :! :call # TODO: Remove deprecated actuator [Kelsey, Thu Oct 08 2015]
def self.failure_code
1
end
def self.success_code
0
end
end