require "inspec/fetcher" require "inspec/metadata" module SourceReaders class Flat < Inspec.source_reader(1) name "flat" priority 5 def self.resolve(target) # TODO: eventually remove the metadata.rb exception here # when we have fully phased out metadata.rb in 1.0 files = target.files.find_all do |x| x.end_with?(".rb") && !x.include?("/") && x != "metadata.rb" end return nil if files.empty? new(target, files) end attr_reader :metadata, :tests, :libraries, :data_files def initialize(target, files) @target = target @metadata = ::Inspec::Metadata.new(nil) @tests = load_tests(files) @libraries = {} @data_files = {} end private def load_tests(files) Hash[files.map { |x| [x, @target.read(x)] }] end end end