Class: Inspec::Targets::FolderHelper

Inherits:
Object
  • Object
show all
Defined in:
lib/inspec/targets/folder.rb

Instance Method Summary collapse

Instance Method Details

#handles?(target) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/inspec/targets/folder.rb', line 10

def handles?(target)
  File.directory?(target)
end

#resolve(target) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/inspec/targets/folder.rb', line 14

def resolve(target)
  # find all files in the folder
  files = Dir[File.join(target, '**', '*')]
  # remove the prefix
  prefix = File.join(target, '')
  files = files.map { |x| x.sub(prefix, '') }
  # get the dirs helper
  helper = DirsHelper.get_handler(files)
  if helper.nil?
    fail "Don't know how to handle folder #{target}"
  end

  # get all test file contents
  file_handler = Inspec::Targets.modules['file']
  raw_files = helper.get_filenames(files)
  tests = file_handler.resolve_all(raw_files, base_folder: target)

  libs = []
  if helper.respond_to? :get_libraries
    raw_libs = helper.get_libraries(files)
    libs = file_handler.resolve_all(raw_libs,
                                    base_folder: target, as: :library)
  end

  libs + tests
end