inspec-core 4.3.2 → 4.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (285) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +37 -21
  3. data/etc/deprecations.json +10 -0
  4. data/etc/plugin_filters.json +8 -0
  5. data/lib/bundles/inspec-compliance/api.rb +1 -1
  6. data/lib/bundles/inspec-compliance/configuration.rb +1 -1
  7. data/lib/bundles/inspec-compliance/http.rb +1 -1
  8. data/lib/bundles/inspec-compliance/support.rb +1 -1
  9. data/lib/bundles/inspec-compliance/target.rb +1 -1
  10. data/lib/bundles/inspec-supermarket.rb +3 -7
  11. data/lib/bundles/inspec-supermarket/api.rb +10 -13
  12. data/lib/bundles/inspec-supermarket/cli.rb +12 -15
  13. data/lib/bundles/inspec-supermarket/target.rb +7 -11
  14. data/lib/fetchers/git.rb +14 -15
  15. data/lib/fetchers/local.rb +6 -10
  16. data/lib/fetchers/mock.rb +3 -5
  17. data/lib/fetchers/url.rb +42 -44
  18. data/lib/inspec.rb +23 -24
  19. data/lib/inspec/archive/tar.rb +2 -6
  20. data/lib/inspec/archive/zip.rb +3 -7
  21. data/lib/inspec/backend.rb +8 -9
  22. data/lib/inspec/base_cli.rb +64 -65
  23. data/lib/inspec/cached_fetcher.rb +2 -3
  24. data/lib/inspec/cli.rb +136 -97
  25. data/lib/inspec/config.rb +71 -61
  26. data/lib/inspec/control_eval_context.rb +22 -18
  27. data/lib/inspec/dependencies/cache.rb +2 -3
  28. data/lib/inspec/dependencies/dependency_set.rb +2 -3
  29. data/lib/inspec/dependencies/lockfile.rb +8 -9
  30. data/lib/inspec/dependencies/requirement.rb +7 -8
  31. data/lib/inspec/dependencies/resolver.rb +5 -7
  32. data/lib/inspec/describe.rb +2 -6
  33. data/lib/inspec/dist.rb +20 -0
  34. data/lib/inspec/dsl.rb +4 -7
  35. data/lib/inspec/dsl_shared.rb +1 -2
  36. data/lib/inspec/env_printer.rb +11 -12
  37. data/lib/inspec/errors.rb +0 -4
  38. data/lib/inspec/exceptions.rb +0 -1
  39. data/lib/inspec/expect.rb +5 -8
  40. data/lib/inspec/fetcher.rb +7 -10
  41. data/lib/inspec/file_provider.rb +24 -24
  42. data/lib/inspec/formatters.rb +3 -3
  43. data/lib/inspec/formatters/base.rb +8 -8
  44. data/lib/inspec/globals.rb +2 -2
  45. data/lib/inspec/impact.rb +5 -7
  46. data/lib/inspec/input_registry.rb +84 -33
  47. data/lib/inspec/library_eval_context.rb +3 -6
  48. data/lib/inspec/log.rb +1 -5
  49. data/lib/inspec/metadata.rb +17 -16
  50. data/lib/inspec/method_source.rb +5 -9
  51. data/lib/inspec/objects.rb +10 -12
  52. data/lib/inspec/objects/control.rb +7 -9
  53. data/lib/inspec/objects/describe.rb +9 -11
  54. data/lib/inspec/objects/each_loop.rb +1 -3
  55. data/lib/inspec/objects/input.rb +24 -26
  56. data/lib/inspec/objects/list.rb +4 -6
  57. data/lib/inspec/objects/or_test.rb +2 -4
  58. data/lib/inspec/objects/ruby_helper.rb +3 -5
  59. data/lib/inspec/objects/tag.rb +0 -2
  60. data/lib/inspec/objects/test.rb +9 -11
  61. data/lib/inspec/objects/value.rb +3 -5
  62. data/lib/inspec/plugin/v1.rb +2 -2
  63. data/lib/inspec/plugin/v1/plugin_types/cli.rb +1 -5
  64. data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +2 -5
  65. data/lib/inspec/plugin/v1/plugin_types/resource.rb +4 -6
  66. data/lib/inspec/plugin/v1/plugin_types/secret.rb +1 -5
  67. data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +1 -5
  68. data/lib/inspec/plugin/v1/plugins.rb +15 -19
  69. data/lib/inspec/plugin/v1/registry.rb +0 -4
  70. data/lib/inspec/plugin/v2.rb +8 -8
  71. data/lib/inspec/plugin/v2/activator.rb +1 -1
  72. data/lib/inspec/plugin/v2/config_file.rb +6 -6
  73. data/lib/inspec/plugin/v2/filter.rb +13 -13
  74. data/lib/inspec/plugin/v2/installer.rb +36 -24
  75. data/lib/inspec/plugin/v2/loader.rb +28 -28
  76. data/lib/inspec/plugin/v2/plugin_base.rb +15 -2
  77. data/lib/inspec/plugin/v2/plugin_types/cli.rb +5 -5
  78. data/lib/inspec/plugin/v2/plugin_types/input.rb +34 -0
  79. data/lib/inspec/plugin/v2/plugin_types/mock.rb +1 -1
  80. data/lib/inspec/plugin/v2/registry.rb +7 -7
  81. data/lib/inspec/polyfill.rb +0 -3
  82. data/lib/inspec/profile.rb +55 -63
  83. data/lib/inspec/profile_context.rb +27 -30
  84. data/lib/inspec/profile_vendor.rb +6 -9
  85. data/lib/inspec/reporters.rb +24 -24
  86. data/lib/inspec/reporters/automate.rb +17 -19
  87. data/lib/inspec/reporters/base.rb +1 -1
  88. data/lib/inspec/reporters/cli.rb +88 -91
  89. data/lib/inspec/reporters/json.rb +2 -4
  90. data/lib/inspec/reporters/json_automate.rb +1 -3
  91. data/lib/inspec/reporters/json_min.rb +1 -3
  92. data/lib/inspec/reporters/junit.rb +26 -28
  93. data/lib/inspec/reporters/yaml.rb +1 -3
  94. data/lib/inspec/require_loader.rb +0 -4
  95. data/lib/inspec/resource.rb +4 -125
  96. data/lib/inspec/resources.rb +121 -0
  97. data/lib/{resources → inspec/resources}/aide_conf.rb +24 -25
  98. data/lib/{resources → inspec/resources}/apache.rb +13 -14
  99. data/lib/{resources → inspec/resources}/apache_conf.rb +16 -17
  100. data/lib/{resources → inspec/resources}/apt.rb +17 -17
  101. data/lib/{resources → inspec/resources}/audit_policy.rb +7 -6
  102. data/lib/{resources → inspec/resources}/auditd.rb +62 -64
  103. data/lib/{resources → inspec/resources}/auditd_conf.rb +7 -8
  104. data/lib/{resources → inspec/resources}/bash.rb +6 -8
  105. data/lib/{resources → inspec/resources}/bond.rb +15 -14
  106. data/lib/{resources → inspec/resources}/bridge.rb +8 -8
  107. data/lib/{resources → inspec/resources}/chocolatey_package.rb +10 -8
  108. data/lib/{resources → inspec/resources}/command.rb +11 -10
  109. data/lib/{resources → inspec/resources}/cpan.rb +12 -12
  110. data/lib/{resources → inspec/resources}/cran.rb +9 -9
  111. data/lib/{resources → inspec/resources}/crontab.rb +47 -48
  112. data/lib/{resources → inspec/resources}/csv.rb +5 -5
  113. data/lib/{resources → inspec/resources}/dh_params.rb +5 -7
  114. data/lib/{resources → inspec/resources}/directory.rb +5 -7
  115. data/lib/{resources → inspec/resources}/docker.rb +63 -63
  116. data/lib/{resources → inspec/resources}/docker_container.rb +6 -6
  117. data/lib/{resources → inspec/resources}/docker_image.rb +9 -9
  118. data/lib/{resources → inspec/resources}/docker_object.rb +8 -13
  119. data/lib/{resources → inspec/resources}/docker_plugin.rb +6 -6
  120. data/lib/{resources → inspec/resources}/docker_service.rb +7 -7
  121. data/lib/{resources → inspec/resources}/elasticsearch.rb +40 -42
  122. data/lib/{resources → inspec/resources}/etc_fstab.rb +23 -24
  123. data/lib/{resources → inspec/resources}/etc_group.rb +26 -27
  124. data/lib/{resources → inspec/resources}/etc_hosts.rb +11 -13
  125. data/lib/{resources → inspec/resources}/etc_hosts_allow_deny.rb +25 -27
  126. data/lib/{resources → inspec/resources}/file.rb +80 -79
  127. data/lib/{resources → inspec/resources}/filesystem.rb +20 -15
  128. data/lib/{resources → inspec/resources}/firewalld.rb +26 -26
  129. data/lib/{resources → inspec/resources}/gem.rb +12 -12
  130. data/lib/{resources → inspec/resources}/groups.rb +28 -27
  131. data/lib/{resources → inspec/resources}/grub_conf.rb +46 -48
  132. data/lib/{resources → inspec/resources}/host.rb +31 -29
  133. data/lib/{resources → inspec/resources}/http.rb +24 -24
  134. data/lib/{resources → inspec/resources}/iis_app.rb +6 -7
  135. data/lib/{resources → inspec/resources}/iis_app_pool.rb +21 -19
  136. data/lib/{resources → inspec/resources}/iis_site.rb +17 -15
  137. data/lib/{resources → inspec/resources}/inetd_conf.rb +9 -10
  138. data/lib/{resources → inspec/resources}/ini.rb +7 -8
  139. data/lib/{resources → inspec/resources}/interface.rb +30 -30
  140. data/lib/{resources → inspec/resources}/iptables.rb +8 -8
  141. data/lib/{resources → inspec/resources}/json.rb +8 -10
  142. data/lib/{resources → inspec/resources}/kernel_module.rb +15 -15
  143. data/lib/{resources → inspec/resources}/kernel_parameter.rb +8 -8
  144. data/lib/{resources → inspec/resources}/key_rsa.rb +8 -10
  145. data/lib/{resources → inspec/resources}/ksh.rb +6 -8
  146. data/lib/{resources → inspec/resources}/limits_conf.rb +8 -9
  147. data/lib/{resources/login_def.rb → inspec/resources/login_defs.rb} +9 -10
  148. data/lib/{resources → inspec/resources}/mount.rb +6 -8
  149. data/lib/{resources → inspec/resources}/mssql_session.rb +16 -18
  150. data/lib/inspec/resources/mysql.rb +81 -0
  151. data/lib/{resources → inspec/resources}/mysql_conf.rb +13 -14
  152. data/lib/{resources → inspec/resources}/mysql_session.rb +16 -16
  153. data/lib/{resources → inspec/resources}/nginx.rb +16 -17
  154. data/lib/{resources → inspec/resources}/nginx_conf.rb +26 -27
  155. data/lib/{resources → inspec/resources}/npm.rb +9 -10
  156. data/lib/{resources → inspec/resources}/ntp_conf.rb +9 -10
  157. data/lib/{resources → inspec/resources}/oneget.rb +8 -8
  158. data/lib/{resources → inspec/resources}/oracledb_session.rb +33 -34
  159. data/lib/{resources → inspec/resources}/os.rb +6 -8
  160. data/lib/{resources → inspec/resources}/os_env.rb +11 -12
  161. data/lib/{resources → inspec/resources}/package.rb +66 -65
  162. data/lib/{resources → inspec/resources}/packages.rb +13 -13
  163. data/lib/{resources → inspec/resources}/parse_config.rb +8 -8
  164. data/lib/{resources → inspec/resources}/passwd.rb +18 -19
  165. data/lib/{resources → inspec/resources}/pip.rb +19 -19
  166. data/lib/{resources → inspec/resources}/platform.rb +9 -11
  167. data/lib/{resources → inspec/resources}/port.rb +134 -136
  168. data/lib/{resources → inspec/resources}/postgres.rb +40 -32
  169. data/lib/{resources → inspec/resources}/postgres_conf.rb +17 -17
  170. data/lib/{resources → inspec/resources}/postgres_hba_conf.rb +21 -23
  171. data/lib/{resources → inspec/resources}/postgres_ident_conf.rb +12 -14
  172. data/lib/{resources → inspec/resources}/postgres_session.rb +8 -9
  173. data/lib/{resources → inspec/resources}/powershell.rb +17 -13
  174. data/lib/{resources → inspec/resources}/processes.rb +29 -29
  175. data/lib/{resources/rabbitmq_conf.rb → inspec/resources/rabbitmq_config.rb} +10 -11
  176. data/lib/{resources → inspec/resources}/registry_key.rb +14 -14
  177. data/lib/inspec/resources/script.rb +1 -0
  178. data/lib/{resources → inspec/resources}/security_identifier.rb +11 -10
  179. data/lib/{resources → inspec/resources}/security_policy.rb +59 -58
  180. data/lib/{resources → inspec/resources}/service.rb +74 -75
  181. data/lib/{resources → inspec/resources}/shadow.rb +44 -45
  182. data/lib/{resources/ssh_conf.rb → inspec/resources/ssh_config.rb} +16 -17
  183. data/lib/{resources → inspec/resources}/ssl.rb +28 -29
  184. data/lib/inspec/resources/sys_info.rb +30 -0
  185. data/lib/{resources → inspec/resources}/toml.rb +5 -7
  186. data/lib/{resources → inspec/resources}/users.rb +65 -65
  187. data/lib/{resources → inspec/resources}/vbscript.rb +8 -9
  188. data/lib/{resources → inspec/resources}/virtualization.rb +60 -62
  189. data/lib/{resources → inspec/resources}/windows_feature.rb +9 -9
  190. data/lib/{resources → inspec/resources}/windows_hotfix.rb +5 -5
  191. data/lib/{resources → inspec/resources}/windows_task.rb +16 -15
  192. data/lib/{resources → inspec/resources}/wmi.rb +7 -8
  193. data/lib/{resources → inspec/resources}/x509_certificate.rb +9 -11
  194. data/lib/{resources/xinetd.rb → inspec/resources/xinetd_conf.rb} +27 -29
  195. data/lib/{resources → inspec/resources}/xml.rb +7 -7
  196. data/lib/{resources → inspec/resources}/yaml.rb +5 -6
  197. data/lib/{resources → inspec/resources}/yum.rb +10 -10
  198. data/lib/{resources → inspec/resources}/zfs_dataset.rb +6 -6
  199. data/lib/{resources → inspec/resources}/zfs_pool.rb +4 -4
  200. data/lib/inspec/rspec_extensions.rb +24 -8
  201. data/lib/inspec/rule.rb +14 -15
  202. data/lib/inspec/runner.rb +28 -28
  203. data/lib/inspec/runner_mock.rb +1 -5
  204. data/lib/inspec/runner_rspec.rb +18 -20
  205. data/lib/inspec/runtime_profile.rb +2 -5
  206. data/lib/inspec/schema.rb +142 -143
  207. data/lib/inspec/secrets.rb +3 -7
  208. data/lib/inspec/secrets/yaml.rb +3 -5
  209. data/lib/inspec/shell.rb +11 -15
  210. data/lib/inspec/shell_detector.rb +6 -7
  211. data/lib/inspec/source_reader.rb +4 -8
  212. data/lib/inspec/ui.rb +33 -39
  213. data/lib/inspec/ui_table_helper.rb +12 -0
  214. data/lib/{utils → inspec/utils}/command_wrapper.rb +4 -8
  215. data/lib/{utils → inspec/utils}/convert.rb +0 -4
  216. data/lib/{utils → inspec/utils}/database_helpers.rb +4 -8
  217. data/lib/inspec/utils/deprecation.rb +6 -0
  218. data/lib/{utils → inspec/utils}/deprecation/config_file.rb +19 -19
  219. data/lib/{utils → inspec/utils}/deprecation/deprecator.rb +12 -12
  220. data/lib/{utils → inspec/utils}/deprecation/errors.rb +1 -1
  221. data/lib/{utils → inspec/utils}/deprecation/global_method.rb +2 -2
  222. data/lib/{utils → inspec/utils}/enumerable_delegation.rb +0 -2
  223. data/lib/{utils → inspec/utils}/erlang_parser.rb +61 -65
  224. data/lib/{utils → inspec/utils}/file_reader.rb +1 -2
  225. data/lib/{utils → inspec/utils}/filter.rb +30 -33
  226. data/lib/{utils → inspec/utils}/filter_array.rb +0 -2
  227. data/lib/{utils → inspec/utils}/find_files.rb +9 -12
  228. data/lib/{utils → inspec/utils}/hash.rb +1 -5
  229. data/lib/inspec/utils/json_log.rb +15 -0
  230. data/lib/inspec/utils/latest_version.rb +13 -0
  231. data/lib/{utils → inspec/utils}/modulator.rb +0 -3
  232. data/lib/{utils → inspec/utils}/nginx_parser.rb +31 -35
  233. data/lib/{utils → inspec/utils}/object_traversal.rb +0 -3
  234. data/lib/{utils → inspec/utils}/parser.rb +45 -45
  235. data/lib/{utils → inspec/utils}/pkey_reader.rb +4 -2
  236. data/lib/{utils → inspec/utils}/simpleconfig.rb +8 -10
  237. data/lib/{utils → inspec/utils}/spdx.rb +1 -4
  238. data/lib/{utils → inspec/utils}/spdx.txt +0 -0
  239. data/lib/inspec/utils/telemetry.rb +3 -3
  240. data/lib/inspec/utils/telemetry/collector.rb +30 -9
  241. data/lib/inspec/utils/telemetry/data_series.rb +3 -1
  242. data/lib/inspec/utils/telemetry/global_methods.rb +1 -1
  243. data/lib/inspec/version.rb +1 -1
  244. data/lib/matchers/matchers.rb +22 -25
  245. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +1 -1
  246. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +52 -45
  247. data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +18 -16
  248. data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +1 -1
  249. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +73 -73
  250. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +66 -62
  251. data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +59 -57
  252. data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +11 -11
  253. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +20 -22
  254. data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +2 -4
  255. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +30 -27
  256. data/lib/plugins/inspec-habitat/Berksfile +2 -2
  257. data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +1 -1
  258. data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +15 -13
  259. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +64 -63
  260. data/lib/plugins/inspec-habitat/templates/habitat/hooks/run.erb +3 -3
  261. data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +11 -11
  262. data/lib/plugins/inspec-init/lib/inspec-init.rb +1 -1
  263. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +6 -8
  264. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +72 -74
  265. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +9 -11
  266. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +4 -4
  267. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -1
  268. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +0 -2
  269. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -2
  270. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -2
  271. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -2
  272. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -2
  273. data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +6 -7
  274. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +1 -2
  275. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +72 -70
  276. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +1 -1
  277. data/lib/plugins/shared/core_plugin_test_helper.rb +43 -38
  278. data/lib/source_readers/flat.rb +6 -10
  279. data/lib/source_readers/inspec.rb +8 -12
  280. metadata +139 -140
  281. data/lib/resources/mysql.rb +0 -82
  282. data/lib/resources/sys_info.rb +0 -28
  283. data/lib/utils/deprecation.rb +0 -6
  284. data/lib/utils/json_log.rb +0 -18
  285. data/lib/utils/latest_version.rb +0 -22
@@ -1,5 +1,5 @@
1
- require 'utils/deprecation/config_file'
2
- require 'inspec/log'
1
+ require "inspec/utils/deprecation/config_file"
2
+ require "inspec/log"
3
3
 
4
4
  module Inspec
5
5
  module Deprecation
@@ -17,7 +17,7 @@ module Inspec
17
17
  assembled_message = assemble_message(message, group, opts)
18
18
 
19
19
  action = group[:action] || :warn
20
- action_method = ('handle_' + action.to_s + '_action').to_sym
20
+ action_method = ("handle_" + action.to_s + "_action").to_sym
21
21
  send(action_method, group_name.to_sym, assembled_message, group)
22
22
  end
23
23
 
@@ -44,24 +44,24 @@ module Inspec
44
44
  # rspec-core surrounds these.
45
45
 
46
46
  # First, purge the deprecation system frames
47
- stack.reject! { |frame| frame.path && frame.path =~ %r{lib/utils/deprecation} }
47
+ stack.reject! { |frame| frame.path && frame.path =~ %r{lib/inspec/utils/deprecation} }
48
48
  # Next, purge all RSpec entries (at least rspec-core, rspec-support, rspec-its).
49
49
  stack.reject! { |frame| frame.path && frame.path =~ %r{rspec-.+/lib/rspec} }
50
50
  # Now look for the frame that includes load_with_context.
51
- used_at ||= stack.detect { |frame| frame.label.include? 'load_with_context' }
51
+ used_at ||= stack.detect { |frame| frame.label.include? "load_with_context" }
52
52
 
53
53
  opts[:used_at_stack_frame] = used_at if used_at
54
54
  end
55
55
 
56
56
  def assemble_message(message, group, opts)
57
- prefix = group.prefix || ''
58
- suffix = group.suffix || ''
59
- prefix += ' ' unless prefix.empty?
60
- suffix = ' ' + suffix unless suffix.empty?
57
+ prefix = group.prefix || ""
58
+ suffix = group.suffix || ""
59
+ prefix += " " unless prefix.empty?
60
+ suffix = " " + suffix unless suffix.empty?
61
61
 
62
- suffix += (' (used at ' + opts[:used_at_stack_frame].path+ ':' + opts[:used_at_stack_frame].lineno.to_s + ')') if opts.key?(:used_at_stack_frame)
62
+ suffix += (" (used at " + opts[:used_at_stack_frame].path + ":" + opts[:used_at_stack_frame].lineno.to_s + ")") if opts.key?(:used_at_stack_frame)
63
63
 
64
- 'DEPRECATION: ' + prefix + message + suffix
64
+ "DEPRECATION: " + prefix + message + suffix
65
65
  end
66
66
 
67
67
  def called_from_control?
@@ -70,7 +70,7 @@ module Inspec
70
70
 
71
71
  # Within a control block, that is actually an RSpec:ExampleGroup
72
72
  stack.each do |frame|
73
- return true if frame.path.end_with?('rspec/core/example_group.rb')
73
+ return true if frame.path.end_with?("rspec/core/example_group.rb")
74
74
  end
75
75
 
76
76
  false
@@ -1,4 +1,4 @@
1
- require 'inspec/errors'
1
+ require "inspec/errors"
2
2
 
3
3
  module Inspec
4
4
  module Deprecation
@@ -1,7 +1,7 @@
1
- require 'utils/deprecation/deprecator'
1
+ require "inspec/utils/deprecation/deprecator"
2
2
 
3
3
  module Inspec
4
- def self.deprecate(group, msg = '', opts = {})
4
+ def self.deprecate(group, msg = "", opts = {})
5
5
  config_io = opts.delete(:config_io)
6
6
  deprecator = Inspec::Deprecation::Deprecator.new(config_io: config_io)
7
7
  deprecator.handle_deprecation(group, msg, opts)
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
-
3
1
  module EnumerableDelegation
4
2
  include Enumerable
5
3
 
@@ -1,109 +1,105 @@
1
- # encoding: utf-8
2
- # author: Dominik Richter
3
- # author: Christoph Hartmann
4
-
5
- require 'parslet'
1
+ require "parslet"
6
2
 
7
3
  class ErlangParser < Parslet::Parser
8
4
  root :outermost
9
5
  # only designed for rabbitmq config files for now:
10
6
  rule(:outermost) { filler? >> array.maybe >> dot.maybe }
11
7
 
12
- rule(:exp) {
8
+ rule(:exp) do
13
9
  (tuple | array | binary | string | bool | identifier | float | integer) >> filler?
14
- }
10
+ end
15
11
 
16
- rule(:array) {
17
- str('[') >> filler? >> (
12
+ rule(:array) do
13
+ str("[") >> filler? >> (
18
14
  exp.repeat(1) >>
19
15
  (comma >> exp).repeat
20
- ).maybe.as(:array) >> str(']') >> filler?
21
- }
16
+ ).maybe.as(:array) >> str("]") >> filler?
17
+ end
22
18
 
23
- rule(:tuple) {
24
- str('{') >> filler? >> (
19
+ rule(:tuple) do
20
+ str("{") >> filler? >> (
25
21
  exp.repeat(1) >> filler? >>
26
22
  (comma >> exp).repeat
27
- ).maybe.as(:tuple) >> str('}') >> filler?
28
- }
23
+ ).maybe.as(:tuple) >> str("}") >> filler?
24
+ end
29
25
 
30
26
  rule(:filler?) { space.repeat }
31
27
  rule(:space) { match('\s+') | match["\n"] | comment }
32
28
 
33
- rule(:comment) { str('%') >> (match["\n\r"].absent? >> any).repeat }
34
- rule(:comma) { str(',') >> filler? }
35
- rule(:dot) { str('.') >> filler? }
36
- rule(:bool) { str('true').as(:bool) | str('false').as(:bool) }
29
+ rule(:comment) { str("%") >> (match["\n\r"].absent? >> any).repeat }
30
+ rule(:comma) { str(",") >> filler? }
31
+ rule(:dot) { str(".") >> filler? }
32
+ rule(:bool) { str("true").as(:bool) | str("false").as(:bool) }
37
33
 
38
- rule(:identifier) {
39
- (match('[a-zA-Z]') >> match('[a-zA-Z0-9_]').repeat).as(:identifier) >> filler?
40
- }
34
+ rule(:identifier) do
35
+ (match("[a-zA-Z]") >> match("[a-zA-Z0-9_]").repeat).as(:identifier) >> filler?
36
+ end
41
37
 
42
- rule(:float) {
38
+ rule(:float) do
43
39
  (
44
40
  integer >> (
45
- str('.') >> match('[0-9]').repeat(1) |
46
- str('e') >> match('[0-9]').repeat(1)
41
+ str(".") >> match("[0-9]").repeat(1) |
42
+ str("e") >> match("[0-9]").repeat(1)
47
43
  ).as(:e)
48
44
  ).as(:float) >> filler?
49
- }
45
+ end
50
46
 
51
- rule(:integer) {
52
- ((str('+') | str('-')).maybe >> match('[0-9]').repeat(1)).as(:integer) >> filler?
53
- }
47
+ rule(:integer) do
48
+ ((str("+") | str("-")).maybe >> match("[0-9]").repeat(1)).as(:integer) >> filler?
49
+ end
54
50
 
55
51
  rule(:string) { stringS | stringD }
56
52
 
57
- rule(:stringS) {
53
+ rule(:stringS) do
58
54
  str("'") >> (
59
55
  str('\\') >> any | str("'").absent? >> any
60
56
  ).repeat.as(:string) >> str("'") >> filler?
61
- }
57
+ end
62
58
 
63
- rule(:stringD) {
59
+ rule(:stringD) do
64
60
  str('"') >> (
65
61
  str('\\') >> any | str('"').absent? >> any
66
62
  ).repeat.as(:string) >> str('"') >> filler?
67
- }
63
+ end
68
64
 
69
- rule(:binary_item) {
65
+ rule(:binary_item) do
70
66
  (string | integer) >>
71
- (str(':') >> integer).maybe.as(:size) >>
72
- (str('/') >> identifier).maybe.as(:type) >>
67
+ (str(":") >> integer).maybe.as(:size) >>
68
+ (str("/") >> identifier).maybe.as(:type) >>
73
69
  filler?
74
- }
70
+ end
75
71
 
76
- rule(:binary) {
77
- str('<<') >> filler? >> (
72
+ rule(:binary) do
73
+ str("<<") >> filler? >> (
78
74
  binary_item.repeat(1) >>
79
75
  (comma >> binary_item).repeat
80
- ).maybe.as(:binary) >> str('>>') >> filler?
81
- }
76
+ ).maybe.as(:binary) >> str(">>") >> filler?
77
+ end
82
78
  end
83
79
 
84
80
  class ErlangBitstream
85
81
  def initialize
86
82
  @data = [] # a stream of 8-bit numbers
87
- @cur_bits = '' # a string of binary bits 10010010...
83
+ @cur_bits = "" # a string of binary bits 10010010...
88
84
  end
89
85
 
90
86
  TYPES = {
91
- 'integer' => 8,
92
- 'float' => 8*8,
93
- 'utf8' => 8,
94
- 'utf16' => 8*2,
95
- 'utf32' => 8*4,
87
+ "integer" => 8,
88
+ "float" => 8 * 8,
89
+ "utf8" => 8,
90
+ "utf16" => 8 * 2,
91
+ "utf32" => 8 * 4,
96
92
  }.freeze
97
93
 
98
94
  def bit_size(size, type)
99
- raise 'Cannot specify size and type at the same time.' if !type.nil? && !size.nil?
95
+ raise "Cannot specify size and type at the same time." if !type.nil? && !size.nil?
100
96
  return (size || 8).to_i if type.nil?
101
97
  TYPES[type] || raise("Cannot handle binary-stream type #{type}")
102
98
  end
103
99
 
104
100
  def add(i)
105
101
  if i[:integer].nil? && i[:string].nil?
106
- raise 'No data provided, internal error for binary-stream processing!'
102
+ raise "No data provided, internal error for binary-stream processing!"
107
103
  end
108
104
  s = bit_size(i[:size], i[:type])
109
105
  unless i[:string].nil?
@@ -112,17 +108,17 @@ class ErlangBitstream
112
108
  add_int(i[:integer], s)
113
109
  end
114
110
  rescue RuntimeError => e
115
- raise 'Error processing Erlang bit string '\
111
+ raise "Error processing Erlang bit string "\
116
112
  "'#{i[:string] || i[:integer]}:#{i[:size]}/#{i[:type]}'. #{e.message}"
117
113
  end
118
114
 
119
115
  def str2int(s, type)
120
116
  case type
121
- when 'utf8' then s.encode('utf-8').unpack('C*')
122
- when 'utf16' then s.encode('utf-16').unpack('C*').drop(2)
123
- when 'utf32' then s.encode('utf-32').unpack('C*').drop(4)
124
- when 'integer', 'float' then raise "Cannot handle bit string as type #{type}"
125
- else s.split('').map { |x| x.ord & 0xff }
117
+ when "utf8" then s.encode("utf-8").unpack("C*")
118
+ when "utf16" then s.encode("utf-16").unpack("C*").drop(2)
119
+ when "utf32" then s.encode("utf-32").unpack("C*").drop(4)
120
+ when "integer", "float" then raise "Cannot handle bit string as type #{type}"
121
+ else s.split("").map { |x| x.ord & 0xff }
126
122
  end
127
123
  end
128
124
 
@@ -141,11 +137,11 @@ class ErlangBitstream
141
137
  @cur_bits = b.last
142
138
  end
143
139
 
144
- def value(encoding = 'utf-8')
140
+ def value(encoding = "utf-8")
145
141
  # fill in the rest
146
- rest = '0' * (8 - @cur_bits.length) + @cur_bits
142
+ rest = "0" * (8 - @cur_bits.length) + @cur_bits
147
143
  arr = @data + [rest.to_i(2)]
148
- s = arr.pack('C*')
144
+ s = arr.pack("C*")
149
145
  s.force_encoding(encoding) unless encoding.nil?
150
146
  s
151
147
  end
@@ -162,17 +158,17 @@ class ErlangTransform < Parslet::Transform
162
158
  end
163
159
 
164
160
  rule(string: simple(:x)) { x.to_s }
165
- rule(string: []) { '' }
161
+ rule(string: []) { "" }
166
162
  rule(integer: simple(:x)) { x.to_i }
167
- rule(float: { integer: simple(:a), e: simple(:b) }) { (a+b).to_f }
168
- rule(bool: 'true') { true }
169
- rule(bool: 'false') { false }
170
- rule(binary: subtree(:x)) { x.nil? ? '' : ErlangTransform.assemble_binary(x) }
163
+ rule(float: { integer: simple(:a), e: simple(:b) }) { (a + b).to_f }
164
+ rule(bool: "true") { true }
165
+ rule(bool: "false") { false }
166
+ rule(binary: subtree(:x)) { x.nil? ? "" : ErlangTransform.assemble_binary(x) }
171
167
  rule(identifier: simple(:x)) { Identifier.new(x.to_s) }
172
168
  rule(array: subtree(:x)) { Array(x) }
173
- rule(tuple: subtree(:x)) {
169
+ rule(tuple: subtree(:x)) do
174
170
  x.nil? ? Tuple.new : Tuple.new(x)
175
- }
171
+ end
176
172
  end
177
173
 
178
174
  class ErlangConfigFile
@@ -1,5 +1,4 @@
1
- # encoding: utf-8
2
- # author: ERAMOTO Masaya
1
+ require "inspec/resources/file"
3
2
 
4
3
  module FileReader
5
4
  def read_file_content(path, allow_empty = false)
@@ -1,8 +1,3 @@
1
- # encoding: utf-8
2
- # author: Dominik Richter
3
- # author: Stephan Renatus
4
- # author: Christoph Hartmann
5
-
6
1
  module FilterTable
7
2
  # This is used as a sentinel value in custom property filtering
8
3
  module NoCriteriaProvided; end
@@ -70,15 +65,15 @@ module FilterTable
70
65
 
71
66
  def self.to_ruby(trace)
72
67
  chain = trace.instance_variable_get(:@chain)
73
- return '' if chain.empty?
74
- ' ' + chain.map do |el|
68
+ return "" if chain.empty?
69
+ " " + chain.map do |el|
75
70
  m = el[0][0]
76
71
  args = el[0].drop(1)
77
72
  nxt = to_ruby(el[1])
78
73
  next m.to_s + nxt if args.empty?
79
- next m.to_s + ' ' + args[0].inspect + nxt if args.length == 1
80
- m.to_s + '(' + args.map(&:inspect).join(', ') + ')' + nxt
81
- end.join(' ')
74
+ next m.to_s + " " + args[0].inspect + nxt if args.length == 1
75
+ m.to_s + "(" + args.map(&:inspect).join(", ") + ")" + nxt
76
+ end.join(" ")
82
77
  end
83
78
  end
84
79
 
@@ -117,7 +112,7 @@ module FilterTable
117
112
  # against the struct.
118
113
  if block_given?
119
114
  # Perform the filtering.
120
- filtered_raw_data = filtered_raw_data.find_all { |row_as_hash| create_eval_context_for_row(row_as_hash, '').instance_eval(&block) }
115
+ filtered_raw_data = filtered_raw_data.find_all { |row_as_hash| create_eval_context_for_row(row_as_hash, "").instance_eval(&block) }
121
116
  # Try to interpret the block for updating the stringification.
122
117
  src = Trace.new
123
118
  # Swallow any exceptions raised here.
@@ -139,8 +134,8 @@ module FilterTable
139
134
 
140
135
  def create_eval_context_for_row(*_)
141
136
  raise "#{self.class} must not be used on its own. It must be inherited "\
142
- 'and the #create_eval_context_for_row method must be implemented. This is an internal '\
143
- 'error and should not happen.'
137
+ "and the #create_eval_context_for_row method must be implemented. This is an internal "\
138
+ "error and should not happen."
144
139
  end
145
140
 
146
141
  def resource
@@ -153,7 +148,7 @@ module FilterTable
153
148
  end
154
149
 
155
150
  def entries
156
- row_criteria_string = resource.to_s + criteria_string + ' one entry'
151
+ row_criteria_string = resource.to_s + criteria_string + " one entry"
157
152
  raw_data.map do |row|
158
153
  create_eval_context_for_row(row, row_criteria_string)
159
154
  end
@@ -251,10 +246,10 @@ module FilterTable
251
246
  return [] if current_raw_data.empty?
252
247
 
253
248
  method_ref = case desired_value
254
- when Float then method(:matches_float)
255
- when Integer then method(:matches_int)
256
- when Regexp then method(:matches_regex)
257
- else method(:matches)
249
+ when Float then :matches_float
250
+ when Integer then :matches_int
251
+ when Regexp then :matches_regex
252
+ else :matches
258
253
  end
259
254
 
260
255
  assume_symbolic_keyed_data = current_raw_data.first.keys.first.is_a? Symbol
@@ -262,14 +257,14 @@ module FilterTable
262
257
 
263
258
  current_raw_data.find_all do |row|
264
259
  next unless row.key?(field)
265
- method_ref.call(row[field], desired_value)
260
+ send(method_ref, row[field], desired_value)
266
261
  end
267
262
  end
268
263
 
269
264
  def decorate_symbols(thing)
270
265
  return thing.map { |t| decorate_symbols(t) } if thing.is_a?(Array)
271
- return ':' + thing.to_s if thing.is_a? Symbol
272
- return thing + ' (String)' if thing.is_a? String
266
+ return ":" + thing.to_s if thing.is_a? Symbol
267
+ return thing + " (String)" if thing.is_a? String
273
268
  thing
274
269
  end
275
270
  end
@@ -289,13 +284,15 @@ module FilterTable
289
284
  def install_filter_methods_on_resource(resource_class, raw_data_fetcher_method_name) # rubocop: disable Metrics/AbcSize, Metrics/MethodLength
290
285
  # A context in which you can access the fields as accessors
291
286
  non_block_struct_fields = @custom_properties.values.reject(&:block).map(&:field_name)
292
- row_eval_context_type = Struct.new(*non_block_struct_fields.map(&:to_sym)) do
293
- attr_accessor :criteria_string
294
- attr_accessor :filter_table
295
- def to_s
296
- @criteria_string || super
287
+ unless non_block_struct_fields.empty?
288
+ row_eval_context_type = Struct.new(*non_block_struct_fields.map(&:to_sym)) do
289
+ attr_accessor :criteria_string
290
+ attr_accessor :filter_table
291
+ def to_s
292
+ @criteria_string || super
293
+ end
297
294
  end
298
- end unless non_block_struct_fields.empty?
295
+ end
299
296
 
300
297
  properties_to_define = @custom_properties.map do |method_name, custom_property_structure|
301
298
  { method_name: method_name, method_body: create_custom_property_body(custom_property_structure) }
@@ -303,7 +300,7 @@ module FilterTable
303
300
 
304
301
  # Define the filter table subclass
305
302
  custom_properties = @custom_properties # We need a local var, not an instance var, for a closure below
306
- table_class = Class.new(Table) {
303
+ table_class = Class.new(Table) do
307
304
  # Install each custom property onto the FilterTable subclass
308
305
  properties_to_define.each do |property_info|
309
306
  define_method property_info[:method_name], &property_info[:method_body]
@@ -314,14 +311,14 @@ module FilterTable
314
311
  end
315
312
 
316
313
  # Install a method that can wrap all the fields into a context with accessors
317
- define_method :create_eval_context_for_row do |row_as_hash, criteria_string = ''|
314
+ define_method :create_eval_context_for_row do |row_as_hash, criteria_string = ""|
318
315
  return row_eval_context_type.new if row_as_hash.nil?
319
316
  context = row_eval_context_type.new(*non_block_struct_fields.map { |field| row_as_hash[field] })
320
317
  context.criteria_string = criteria_string
321
318
  context.filter_table = self
322
319
  context
323
320
  end
324
- }
321
+ end
325
322
 
326
323
  # Now that the table class is defined and the row eval context struct is defined,
327
324
  # extend the row eval context struct to support triggering population of lazy fields
@@ -356,11 +353,11 @@ module FilterTable
356
353
  # the tests are run.
357
354
  methods_to_install_on_resource_class = @filter_methods + @custom_properties.keys
358
355
  methods_to_install_on_resource_class.each do |method_name|
359
- resource_class.send(:define_method, method_name.to_sym) do |*args, &block|
356
+ resource_class.send(:define_method, method_name) do |*args, &block|
360
357
  begin
361
358
  # self here is the resource instance
362
- filter_table_instance = table_class.new(self, method(raw_data_fetcher_method_name).call, ' with')
363
- filter_table_instance.method(method_name.to_sym).call(*args, &block)
359
+ filter_table_instance = table_class.new(self, send(raw_data_fetcher_method_name), " with")
360
+ filter_table_instance.send(method_name, *args, &block)
364
361
  rescue Inspec::Exceptions::ResourceFailed, Inspec::Exceptions::ResourceSkipped => e
365
362
  FilterTable::ExceptionCatcher.new(resource_class, e)
366
363
  end