Module: Inspec

Defined in:
lib/inspec/cli.rb,
lib/inspec/ui.rb,
lib/inspec/log.rb,
lib/inspec/dist.rb,
lib/inspec/rule.rb,
lib/inspec/shell.rb,
lib/inspec/config.rb,
lib/inspec/errors.rb,
lib/inspec/expect.rb,
lib/inspec/runner.rb,
lib/inspec/schema.rb,
lib/inspec/backend.rb,
lib/inspec/fetcher.rb,
lib/inspec/globals.rb,
lib/inspec/objects.rb,
lib/inspec/profile.rb,
lib/inspec/secrets.rb,
lib/inspec/version.rb,
lib/inspec/describe.rb,
lib/inspec/metadata.rb,
lib/inspec/resource.rb,
lib/inspec/plugin/v2.rb,
lib/inspec/plugin/v2.rb,
lib/inspec/dsl_shared.rb,
lib/inspec/exceptions.rb,
lib/inspec/env_printer.rb,
lib/inspec/objects/tag.rb,
lib/inspec/runner_mock.rb,
lib/inspec/objects/list.rb,
lib/inspec/objects/test.rb,
lib/inspec/runner_rspec.rb,
lib/inspec/file_provider.rb,
lib/inspec/method_source.rb,
lib/inspec/objects/input.rb,
lib/inspec/objects/input.rb,
lib/inspec/objects/value.rb,
lib/inspec/source_reader.rb,
lib/inspec/cached_fetcher.rb,
lib/inspec/input_registry.rb,
lib/inspec/profile_vendor.rb,
lib/inspec/require_loader.rb,
lib/inspec/shell_detector.rb,
lib/inspec/objects/control.rb,
lib/inspec/objects/or_test.rb,
lib/inspec/profile_context.rb,
lib/inspec/runtime_profile.rb,
lib/inspec/ui_table_helper.rb,
lib/inspec/objects/describe.rb,
lib/inspec/rspec_extensions.rb,
lib/inspec/objects/each_loop.rb,
lib/inspec/plugin/v1/plugins.rb,
lib/inspec/dependencies/cache.rb,
lib/inspec/objects/ruby_helper.rb,
lib/inspec/control_eval_context.rb,
lib/inspec/library_eval_context.rb,
lib/inspec/dependencies/lockfile.rb,
lib/inspec/dependencies/resolver.rb,
lib/inspec/dependencies/requirement.rb,
lib/inspec/utils/deprecation/errors.rb,
lib/inspec/plugin/v1/plugin_types/cli.rb,
lib/inspec/dependencies/dependency_set.rb,
lib/inspec/utils/telemetry/data_series.rb,
lib/inspec/utils/deprecation/deprecator.rb,
lib/inspec/plugin/v1/plugin_types/secret.rb,
lib/inspec/utils/deprecation/config_file.rb,
lib/inspec/plugin/v1/plugin_types/fetcher.rb,
lib/inspec/utils/telemetry/global_methods.rb,
lib/inspec/plugin/v1/plugin_types/resource.rb,
lib/inspec/utils/deprecation/global_method.rb,
lib/plugins/shared/core_plugin_test_helper.rb,
lib/inspec/plugin/v1/plugin_types/source_reader.rb,
lib/inspec/base_cli.rb

Overview

Any additions to RSpec::Core::ExampleGroup (the RSpec class behind describe blocks) should go here.

Defined Under Namespace

Modules: Archive, Backend, DSL, Deprecation, DescribeDslLazyLoader, Dist, Exceptions, Formatters, Impact, MethodSource, Plugin, Plugins, Reporters, ResourceBehaviors, ResourceDSL, Resources, RubyHelper, Telemetry, TestDslLazyLoader Classes: Attribute, BaseCLI, Cache, CachedFetcher, Config, ConfigError, Control, ControlEvalContext, CyclicDependencyError, DependencySet, Describe, DescribeBase, DirProvider, DuplicateDep, EachLoop, EnvPrinter, Error, Expect, FetcherFailure, FetcherRegistry, FileProvider, FuncTestRunResult, ImpactError, Input, InputRegistry, InspecCLI, LibraryEvalContext, List, Lockfile, Log, Metadata, MockProvider, OrTest, PluginCtl, Profile, ProfileContext, ProfileNotFound, ProfileVendor, RelativeFileProvider, ReporterError, RequireLoader, Requirement, Resolver, Resource, Rule, Runner, RunnerMock, RunnerRspec, RuntimeProfile, Schema, Shell, ShellDetector, SourceReaderRegistry, Tag, TarProvider, Test, UI, UnsatisfiedVersionSpecification, UserInteractionRequired, Value, ZipProvider

Constant Summary collapse

Fetcher =
FetcherRegistry.new
SecretsBackend =
PluginRegistry.new
VERSION =
"4.7.18".freeze
SourceReader =
SourceReaderRegistry.new

Class Method Summary collapse

Class Method Details

.config_dirObject



2
3
4
# File 'lib/inspec/globals.rb', line 2

def self.config_dir
  ENV["INSPEC_CONFIG_DIR"] ? ENV["INSPEC_CONFIG_DIR"] : File.join(Dir.home, ".inspec")
end

.deprecate(group, msg = "", opts = {}) ⇒ Object



4
5
6
7
8
# File 'lib/inspec/utils/deprecation/global_method.rb', line 4

def self.deprecate(group, msg = "", opts = {})
  config_io = opts.delete(:config_io)
  deprecator = Inspec::Deprecation::Deprecator.new(config_io: config_io)
  deprecator.handle_deprecation(group, msg, opts)
end

.fetcher(version) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/inspec/fetcher.rb', line 31

def self.fetcher(version)
  if version != 1
    raise "Only fetcher version 1 is supported!"
  end

  Inspec::Plugins::Fetcher
end

.plugin(version, plugin_type = nil) ⇒ Object

Provides the base class that plugin implementors should use.



37
38
39
40
41
42
43
44
45
# File 'lib/inspec/plugin/v2.rb', line 37

def self.plugin(version, plugin_type = nil)
  unless version == 2
    raise "Only plugins version 2 is supported!"
  end

  return Inspec::Plugin::V2::PluginBase if plugin_type.nil?

  Inspec::Plugin::V2::PluginBase.base_class_for_type(plugin_type)
end

.record_telemetry_data(data_series_name, data_point = nil) ⇒ Object

A Global method to add a data series object to the Telemetry Collection. ‘data_series_name`s are unique, so `:dependency_group` will always return the same object. `data_point` is optional, you may also supply a block with several data points. All data points should allow #to_s



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/inspec/utils/telemetry/global_methods.rb', line 9

def self.record_telemetry_data(data_series_name, data_point = nil)
  coll = Inspec::Telemetry::Collector.instance
  return unless coll.telemetry_enabled?

  ds = coll.find_or_create_data_series(data_series_name)
  return unless ds.enabled?

  if block_given?
    ds << yield
  else
    ds << data_point
  end
end

.resource(version) ⇒ Resource

Retrieve the base class for creating a new resource. Create classes that inherit from this class.

Parameters:

  • version (int)

    the resource version to use

Returns:

  • (Resource)

    base class for creating a new resource



75
76
77
78
# File 'lib/inspec/resource.rb', line 75

def self.resource(version)
  validate_resource_dsl_version!(version)
  Inspec::Plugins::Resource
end

.secrets(version) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/inspec/secrets.rb', line 6

def self.secrets(version)
  if version != 1
    raise "Only secrets version 1 is supported!"
  end

  Inspec::Plugins::Secret
end

.source_reader(version) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/inspec/source_reader.rb', line 16

def self.source_reader(version)
  if version != 1
    raise "Only source readers version 1 is supported!"
  end

  Inspec::Plugins::SourceReader
end

.src_rootObject



6
7
8
# File 'lib/inspec/globals.rb', line 6

def self.src_root
  File.expand_path(File.join(__FILE__, "..", "..", ".."))
end

.validate_resource_dsl_version!(version) ⇒ Object



80
81
82
# File 'lib/inspec/resource.rb', line 80

def self.validate_resource_dsl_version!(version)
  raise "Only resource version 1 is supported!" if version != 1
end