inspec/lib/vulcano/targets/dir.rb
Dominik Richter 61794072e5 generalize folder handling
Signed-off-by: Dominik Richter <dominik.richter@gmail.com>
2015-08-12 20:47:02 -07:00

49 lines
985 B
Ruby

# encoding: utf-8
module Vulcano::Targets
module DirsHelper
class ChefAuditDir
def handles?(paths)
paths.include?('recipes') and paths.include?('metadata.rb')
end
def get_filenames(paths)
paths.find_all do |x|
x.start_with? 'recipes/' and x.end_with? '.rb'
end
end
end
class ServerspecDir
def handles?(paths)
paths.include?('spec')
end
def get_filenames(paths)
paths.find_all do |path|
path.start_with? 'spec' and path.end_with? '_spec.rb'
end
end
end
class FlatDir
def handles?(paths)
get_filenames(paths).empty? == false
end
def get_filenames(paths)
paths.find_all{|x| x.end_with?('.rb') and !x.include?('/')}
end
end
HANDLERS = [
ChefAuditDir, ServerspecDir, FlatDir
].map{|x| x.new }
def self.getHandler(paths)
HANDLERS.find{|x| x.handles? paths}
end
end
end