mirror of
https://github.com/inspec/inspec
synced 2024-11-15 01:17:08 +00:00
39 lines
875 B
Ruby
39 lines
875 B
Ruby
|
# encoding: utf-8
|
||
|
# author: Dominik Richter
|
||
|
# author: Christoph Hartmann
|
||
|
|
||
|
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 { |x|
|
||
|
x.end_with?('.rb') && !x.include?('/') && x != 'metadata.rb'
|
||
|
}
|
||
|
return nil if files.empty?
|
||
|
new(target, files)
|
||
|
end
|
||
|
|
||
|
attr_reader :metadata, :tests, :libraries
|
||
|
|
||
|
def initialize(target, files)
|
||
|
@target = target
|
||
|
@metadata = ::Inspec::Metadata.new(nil)
|
||
|
@tests = load_tests(files)
|
||
|
@libraries = {}
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def load_tests(files)
|
||
|
Hash[files.map { |x| [x, @target.read(x)] }]
|
||
|
end
|
||
|
end
|
||
|
end
|