inspec 4.3.2 → 4.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (368) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +36 -38
  3. data/README.md +37 -21
  4. data/etc/deprecations.json +10 -0
  5. data/etc/plugin_filters.json +8 -0
  6. data/inspec.gemspec +38 -39
  7. data/lib/bundles/inspec-compliance/api.rb +1 -1
  8. data/lib/bundles/inspec-compliance/configuration.rb +1 -1
  9. data/lib/bundles/inspec-compliance/http.rb +1 -1
  10. data/lib/bundles/inspec-compliance/support.rb +1 -1
  11. data/lib/bundles/inspec-compliance/target.rb +1 -1
  12. data/lib/bundles/inspec-supermarket.rb +3 -7
  13. data/lib/bundles/inspec-supermarket/api.rb +10 -13
  14. data/lib/bundles/inspec-supermarket/cli.rb +12 -15
  15. data/lib/bundles/inspec-supermarket/target.rb +7 -11
  16. data/lib/fetchers/git.rb +14 -15
  17. data/lib/fetchers/local.rb +6 -10
  18. data/lib/fetchers/mock.rb +3 -5
  19. data/lib/fetchers/url.rb +42 -44
  20. data/lib/inspec.rb +23 -24
  21. data/lib/inspec/archive/tar.rb +2 -6
  22. data/lib/inspec/archive/zip.rb +3 -7
  23. data/lib/inspec/backend.rb +8 -9
  24. data/lib/inspec/base_cli.rb +64 -65
  25. data/lib/inspec/cached_fetcher.rb +2 -3
  26. data/lib/inspec/cli.rb +136 -97
  27. data/lib/inspec/config.rb +71 -61
  28. data/lib/inspec/control_eval_context.rb +22 -18
  29. data/lib/inspec/dependencies/cache.rb +2 -3
  30. data/lib/inspec/dependencies/dependency_set.rb +2 -3
  31. data/lib/inspec/dependencies/lockfile.rb +8 -9
  32. data/lib/inspec/dependencies/requirement.rb +7 -8
  33. data/lib/inspec/dependencies/resolver.rb +5 -7
  34. data/lib/inspec/describe.rb +2 -6
  35. data/lib/inspec/dist.rb +20 -0
  36. data/lib/inspec/dsl.rb +4 -7
  37. data/lib/inspec/dsl_shared.rb +1 -2
  38. data/lib/inspec/env_printer.rb +11 -12
  39. data/lib/inspec/errors.rb +0 -4
  40. data/lib/inspec/exceptions.rb +0 -1
  41. data/lib/inspec/expect.rb +5 -8
  42. data/lib/inspec/fetcher.rb +7 -10
  43. data/lib/inspec/file_provider.rb +24 -24
  44. data/lib/inspec/formatters.rb +3 -3
  45. data/lib/inspec/formatters/base.rb +8 -8
  46. data/lib/inspec/globals.rb +2 -2
  47. data/lib/inspec/impact.rb +5 -7
  48. data/lib/inspec/input_registry.rb +84 -33
  49. data/lib/inspec/library_eval_context.rb +3 -6
  50. data/lib/inspec/log.rb +1 -5
  51. data/lib/inspec/metadata.rb +17 -16
  52. data/lib/inspec/method_source.rb +5 -9
  53. data/lib/inspec/objects.rb +10 -12
  54. data/lib/inspec/objects/control.rb +7 -9
  55. data/lib/inspec/objects/describe.rb +9 -11
  56. data/lib/inspec/objects/each_loop.rb +1 -3
  57. data/lib/inspec/objects/input.rb +24 -26
  58. data/lib/inspec/objects/list.rb +4 -6
  59. data/lib/inspec/objects/or_test.rb +2 -4
  60. data/lib/inspec/objects/ruby_helper.rb +3 -5
  61. data/lib/inspec/objects/tag.rb +0 -2
  62. data/lib/inspec/objects/test.rb +9 -11
  63. data/lib/inspec/objects/value.rb +3 -5
  64. data/lib/inspec/plugin/v1.rb +2 -2
  65. data/lib/inspec/plugin/v1/plugin_types/cli.rb +1 -5
  66. data/lib/inspec/plugin/v1/plugin_types/fetcher.rb +2 -5
  67. data/lib/inspec/plugin/v1/plugin_types/resource.rb +4 -6
  68. data/lib/inspec/plugin/v1/plugin_types/secret.rb +1 -5
  69. data/lib/inspec/plugin/v1/plugin_types/source_reader.rb +1 -5
  70. data/lib/inspec/plugin/v1/plugins.rb +15 -19
  71. data/lib/inspec/plugin/v1/registry.rb +0 -4
  72. data/lib/inspec/plugin/v2.rb +8 -8
  73. data/lib/inspec/plugin/v2/activator.rb +1 -1
  74. data/lib/inspec/plugin/v2/config_file.rb +6 -6
  75. data/lib/inspec/plugin/v2/filter.rb +13 -13
  76. data/lib/inspec/plugin/v2/installer.rb +36 -24
  77. data/lib/inspec/plugin/v2/loader.rb +28 -28
  78. data/lib/inspec/plugin/v2/plugin_base.rb +15 -2
  79. data/lib/inspec/plugin/v2/plugin_types/cli.rb +5 -5
  80. data/lib/inspec/plugin/v2/plugin_types/input.rb +34 -0
  81. data/lib/inspec/plugin/v2/plugin_types/mock.rb +1 -1
  82. data/lib/inspec/plugin/v2/registry.rb +7 -7
  83. data/lib/inspec/polyfill.rb +0 -3
  84. data/lib/inspec/profile.rb +55 -63
  85. data/lib/inspec/profile_context.rb +27 -30
  86. data/lib/inspec/profile_vendor.rb +6 -9
  87. data/lib/inspec/reporters.rb +24 -24
  88. data/lib/inspec/reporters/automate.rb +17 -19
  89. data/lib/inspec/reporters/base.rb +1 -1
  90. data/lib/inspec/reporters/cli.rb +88 -91
  91. data/lib/inspec/reporters/json.rb +2 -4
  92. data/lib/inspec/reporters/json_automate.rb +1 -3
  93. data/lib/inspec/reporters/json_min.rb +1 -3
  94. data/lib/inspec/reporters/junit.rb +26 -28
  95. data/lib/inspec/reporters/yaml.rb +1 -3
  96. data/lib/inspec/require_loader.rb +0 -4
  97. data/lib/inspec/resource.rb +4 -125
  98. data/lib/inspec/resources.rb +121 -0
  99. data/lib/{resources → inspec/resources}/aide_conf.rb +24 -25
  100. data/lib/{resources → inspec/resources}/apache.rb +13 -14
  101. data/lib/{resources → inspec/resources}/apache_conf.rb +16 -17
  102. data/lib/{resources → inspec/resources}/apt.rb +17 -17
  103. data/lib/{resources → inspec/resources}/audit_policy.rb +7 -6
  104. data/lib/{resources → inspec/resources}/auditd.rb +62 -64
  105. data/lib/{resources → inspec/resources}/auditd_conf.rb +7 -8
  106. data/lib/{resources → inspec/resources}/bash.rb +6 -8
  107. data/lib/{resources → inspec/resources}/bond.rb +15 -14
  108. data/lib/{resources → inspec/resources}/bridge.rb +8 -8
  109. data/lib/{resources → inspec/resources}/chocolatey_package.rb +10 -8
  110. data/lib/{resources → inspec/resources}/command.rb +11 -10
  111. data/lib/{resources → inspec/resources}/cpan.rb +12 -12
  112. data/lib/{resources → inspec/resources}/cran.rb +9 -9
  113. data/lib/{resources → inspec/resources}/crontab.rb +47 -48
  114. data/lib/{resources → inspec/resources}/csv.rb +5 -5
  115. data/lib/{resources → inspec/resources}/dh_params.rb +5 -7
  116. data/lib/{resources → inspec/resources}/directory.rb +5 -7
  117. data/lib/{resources → inspec/resources}/docker.rb +63 -63
  118. data/lib/{resources → inspec/resources}/docker_container.rb +6 -6
  119. data/lib/{resources → inspec/resources}/docker_image.rb +9 -9
  120. data/lib/{resources → inspec/resources}/docker_object.rb +8 -13
  121. data/lib/{resources → inspec/resources}/docker_plugin.rb +6 -6
  122. data/lib/{resources → inspec/resources}/docker_service.rb +7 -7
  123. data/lib/{resources → inspec/resources}/elasticsearch.rb +40 -42
  124. data/lib/{resources → inspec/resources}/etc_fstab.rb +23 -24
  125. data/lib/{resources → inspec/resources}/etc_group.rb +26 -27
  126. data/lib/{resources → inspec/resources}/etc_hosts.rb +11 -13
  127. data/lib/{resources → inspec/resources}/etc_hosts_allow_deny.rb +25 -27
  128. data/lib/{resources → inspec/resources}/file.rb +80 -79
  129. data/lib/{resources → inspec/resources}/filesystem.rb +20 -15
  130. data/lib/{resources → inspec/resources}/firewalld.rb +26 -26
  131. data/lib/{resources → inspec/resources}/gem.rb +12 -12
  132. data/lib/{resources → inspec/resources}/groups.rb +28 -27
  133. data/lib/{resources → inspec/resources}/grub_conf.rb +46 -48
  134. data/lib/{resources → inspec/resources}/host.rb +31 -29
  135. data/lib/{resources → inspec/resources}/http.rb +24 -24
  136. data/lib/{resources → inspec/resources}/iis_app.rb +6 -7
  137. data/lib/{resources → inspec/resources}/iis_app_pool.rb +21 -19
  138. data/lib/{resources → inspec/resources}/iis_site.rb +17 -15
  139. data/lib/{resources → inspec/resources}/inetd_conf.rb +9 -10
  140. data/lib/{resources → inspec/resources}/ini.rb +7 -8
  141. data/lib/{resources → inspec/resources}/interface.rb +30 -30
  142. data/lib/{resources → inspec/resources}/iptables.rb +8 -8
  143. data/lib/{resources → inspec/resources}/json.rb +8 -10
  144. data/lib/{resources → inspec/resources}/kernel_module.rb +15 -15
  145. data/lib/{resources → inspec/resources}/kernel_parameter.rb +8 -8
  146. data/lib/{resources → inspec/resources}/key_rsa.rb +8 -10
  147. data/lib/{resources → inspec/resources}/ksh.rb +6 -8
  148. data/lib/{resources → inspec/resources}/limits_conf.rb +8 -9
  149. data/lib/{resources/login_def.rb → inspec/resources/login_defs.rb} +9 -10
  150. data/lib/{resources → inspec/resources}/mount.rb +6 -8
  151. data/lib/{resources → inspec/resources}/mssql_session.rb +16 -18
  152. data/lib/inspec/resources/mysql.rb +81 -0
  153. data/lib/{resources → inspec/resources}/mysql_conf.rb +13 -14
  154. data/lib/{resources → inspec/resources}/mysql_session.rb +16 -16
  155. data/lib/{resources → inspec/resources}/nginx.rb +16 -17
  156. data/lib/{resources → inspec/resources}/nginx_conf.rb +26 -27
  157. data/lib/{resources → inspec/resources}/npm.rb +9 -10
  158. data/lib/{resources → inspec/resources}/ntp_conf.rb +9 -10
  159. data/lib/{resources → inspec/resources}/oneget.rb +8 -8
  160. data/lib/{resources → inspec/resources}/oracledb_session.rb +33 -34
  161. data/lib/{resources → inspec/resources}/os.rb +6 -8
  162. data/lib/{resources → inspec/resources}/os_env.rb +11 -12
  163. data/lib/{resources → inspec/resources}/package.rb +66 -65
  164. data/lib/{resources → inspec/resources}/packages.rb +13 -13
  165. data/lib/{resources → inspec/resources}/parse_config.rb +8 -8
  166. data/lib/{resources → inspec/resources}/passwd.rb +18 -19
  167. data/lib/{resources → inspec/resources}/pip.rb +19 -19
  168. data/lib/{resources → inspec/resources}/platform.rb +9 -11
  169. data/lib/{resources → inspec/resources}/port.rb +134 -136
  170. data/lib/{resources → inspec/resources}/postgres.rb +40 -32
  171. data/lib/{resources → inspec/resources}/postgres_conf.rb +17 -17
  172. data/lib/{resources → inspec/resources}/postgres_hba_conf.rb +21 -23
  173. data/lib/{resources → inspec/resources}/postgres_ident_conf.rb +12 -14
  174. data/lib/{resources → inspec/resources}/postgres_session.rb +8 -9
  175. data/lib/{resources → inspec/resources}/powershell.rb +17 -13
  176. data/lib/{resources → inspec/resources}/processes.rb +29 -29
  177. data/lib/{resources/rabbitmq_conf.rb → inspec/resources/rabbitmq_config.rb} +10 -11
  178. data/lib/{resources → inspec/resources}/registry_key.rb +14 -14
  179. data/lib/inspec/resources/script.rb +1 -0
  180. data/lib/{resources → inspec/resources}/security_identifier.rb +11 -10
  181. data/lib/{resources → inspec/resources}/security_policy.rb +59 -58
  182. data/lib/{resources → inspec/resources}/service.rb +74 -75
  183. data/lib/{resources → inspec/resources}/shadow.rb +44 -45
  184. data/lib/{resources/ssh_conf.rb → inspec/resources/ssh_config.rb} +16 -17
  185. data/lib/{resources → inspec/resources}/ssl.rb +28 -29
  186. data/lib/inspec/resources/sys_info.rb +30 -0
  187. data/lib/{resources → inspec/resources}/toml.rb +5 -7
  188. data/lib/{resources → inspec/resources}/users.rb +65 -65
  189. data/lib/{resources → inspec/resources}/vbscript.rb +8 -9
  190. data/lib/{resources → inspec/resources}/virtualization.rb +60 -62
  191. data/lib/{resources → inspec/resources}/windows_feature.rb +9 -9
  192. data/lib/{resources → inspec/resources}/windows_hotfix.rb +5 -5
  193. data/lib/{resources → inspec/resources}/windows_task.rb +16 -15
  194. data/lib/{resources → inspec/resources}/wmi.rb +7 -8
  195. data/lib/{resources → inspec/resources}/x509_certificate.rb +9 -11
  196. data/lib/{resources/xinetd.rb → inspec/resources/xinetd_conf.rb} +27 -29
  197. data/lib/{resources → inspec/resources}/xml.rb +7 -7
  198. data/lib/{resources → inspec/resources}/yaml.rb +5 -6
  199. data/lib/{resources → inspec/resources}/yum.rb +10 -10
  200. data/lib/{resources → inspec/resources}/zfs_dataset.rb +6 -6
  201. data/lib/{resources → inspec/resources}/zfs_pool.rb +4 -4
  202. data/lib/inspec/rspec_extensions.rb +24 -8
  203. data/lib/inspec/rule.rb +14 -15
  204. data/lib/inspec/runner.rb +28 -28
  205. data/lib/inspec/runner_mock.rb +1 -5
  206. data/lib/inspec/runner_rspec.rb +18 -20
  207. data/lib/inspec/runtime_profile.rb +2 -5
  208. data/lib/inspec/schema.rb +142 -143
  209. data/lib/inspec/secrets.rb +3 -7
  210. data/lib/inspec/secrets/yaml.rb +3 -5
  211. data/lib/inspec/shell.rb +11 -15
  212. data/lib/inspec/shell_detector.rb +6 -7
  213. data/lib/inspec/source_reader.rb +4 -8
  214. data/lib/inspec/ui.rb +33 -39
  215. data/lib/inspec/ui_table_helper.rb +12 -0
  216. data/lib/{utils → inspec/utils}/command_wrapper.rb +4 -8
  217. data/lib/{utils → inspec/utils}/convert.rb +0 -4
  218. data/lib/{utils → inspec/utils}/database_helpers.rb +4 -8
  219. data/lib/inspec/utils/deprecation.rb +6 -0
  220. data/lib/{utils → inspec/utils}/deprecation/config_file.rb +19 -19
  221. data/lib/{utils → inspec/utils}/deprecation/deprecator.rb +12 -12
  222. data/lib/{utils → inspec/utils}/deprecation/errors.rb +1 -1
  223. data/lib/{utils → inspec/utils}/deprecation/global_method.rb +2 -2
  224. data/lib/{utils → inspec/utils}/enumerable_delegation.rb +0 -2
  225. data/lib/{utils → inspec/utils}/erlang_parser.rb +61 -65
  226. data/lib/{utils → inspec/utils}/file_reader.rb +1 -2
  227. data/lib/{utils → inspec/utils}/filter.rb +30 -33
  228. data/lib/{utils → inspec/utils}/filter_array.rb +0 -2
  229. data/lib/{utils → inspec/utils}/find_files.rb +9 -12
  230. data/lib/{utils → inspec/utils}/hash.rb +1 -5
  231. data/lib/inspec/utils/json_log.rb +15 -0
  232. data/lib/inspec/utils/latest_version.rb +13 -0
  233. data/lib/{utils → inspec/utils}/modulator.rb +0 -3
  234. data/lib/{utils → inspec/utils}/nginx_parser.rb +31 -35
  235. data/lib/{utils → inspec/utils}/object_traversal.rb +0 -3
  236. data/lib/{utils → inspec/utils}/parser.rb +45 -45
  237. data/lib/{utils → inspec/utils}/pkey_reader.rb +4 -2
  238. data/lib/{utils → inspec/utils}/simpleconfig.rb +8 -10
  239. data/lib/{utils → inspec/utils}/spdx.rb +1 -4
  240. data/lib/{utils → inspec/utils}/spdx.txt +0 -0
  241. data/lib/inspec/utils/telemetry.rb +3 -3
  242. data/lib/inspec/utils/telemetry/collector.rb +30 -9
  243. data/lib/inspec/utils/telemetry/data_series.rb +3 -1
  244. data/lib/inspec/utils/telemetry/global_methods.rb +1 -1
  245. data/lib/inspec/version.rb +1 -1
  246. data/lib/matchers/matchers.rb +22 -25
  247. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +1 -1
  248. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +52 -45
  249. data/lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb +18 -16
  250. data/lib/plugins/inspec-artifact/test/functional/inspec_artifact_test.rb +12 -11
  251. data/lib/plugins/inspec-compliance/lib/inspec-compliance.rb +1 -1
  252. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb +73 -73
  253. data/lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb +66 -62
  254. data/lib/plugins/inspec-compliance/lib/inspec-compliance/cli.rb +59 -57
  255. data/lib/plugins/inspec-compliance/lib/inspec-compliance/configuration.rb +11 -11
  256. data/lib/plugins/inspec-compliance/lib/inspec-compliance/http.rb +20 -22
  257. data/lib/plugins/inspec-compliance/lib/inspec-compliance/support.rb +2 -4
  258. data/lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb +30 -27
  259. data/lib/plugins/inspec-compliance/test/functional/inspec_compliance_test.rb +12 -14
  260. data/lib/plugins/inspec-compliance/test/integration/default/cli.rb +39 -41
  261. data/lib/plugins/inspec-compliance/test/unit/api/login_test.rb +64 -64
  262. data/lib/plugins/inspec-compliance/test/unit/api_test.rb +157 -156
  263. data/lib/plugins/inspec-compliance/test/unit/target_test.rb +85 -85
  264. data/lib/plugins/inspec-habitat/Berksfile +2 -2
  265. data/lib/plugins/inspec-habitat/lib/inspec-habitat.rb +1 -1
  266. data/lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb +15 -13
  267. data/lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb +64 -63
  268. data/lib/plugins/inspec-habitat/templates/habitat/hooks/run.erb +3 -3
  269. data/lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb +11 -11
  270. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/Berksfile +1 -1
  271. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/metadata.rb +8 -8
  272. data/lib/plugins/inspec-habitat/test/cookbooks/inspec_habitat_fixture/recipes/default.rb +17 -17
  273. data/lib/plugins/inspec-habitat/test/functional/inspec_habitat_test.rb +9 -8
  274. data/lib/plugins/inspec-habitat/test/integration/default/inspec_habitat/controls/inspec_habitat.rb +14 -14
  275. data/lib/plugins/inspec-habitat/test/support/example_profile/controls/example.rb +4 -4
  276. data/lib/plugins/inspec-habitat/test/unit/profile_test.rb +42 -41
  277. data/lib/plugins/inspec-init/lib/inspec-init.rb +1 -1
  278. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +6 -8
  279. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +72 -74
  280. data/lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb +9 -11
  281. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +4 -4
  282. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile +0 -1
  283. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/inspec-plugin-template.gemspec +0 -2
  284. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template.rb +0 -2
  285. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.rb +0 -2
  286. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.rb +0 -2
  287. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.rb +0 -2
  288. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/functional/inspec_plugin_template_test.rb +5 -5
  289. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/helper.rb +1 -3
  290. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/cli_args_test.rb +2 -2
  291. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/test/unit/plugin_def_test.rb +2 -2
  292. data/lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb +10 -11
  293. data/lib/plugins/inspec-init/templates/profiles/azure/controls/example.rb +4 -5
  294. data/lib/plugins/inspec-init/templates/profiles/gcp/controls/example.rb +10 -11
  295. data/lib/plugins/inspec-init/templates/profiles/os/controls/example.rb +6 -7
  296. data/lib/plugins/inspec-init/test/functional/inspec_init_plugin_test.rb +51 -50
  297. data/lib/plugins/inspec-init/test/functional/inspec_init_profile_test.rb +35 -33
  298. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb +1 -2
  299. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +72 -70
  300. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb +1 -1
  301. data/lib/plugins/inspec-plugin-manager-cli/test/fixtures/plugins/wrong-name/lib/wrong-name.rb +1 -1
  302. data/lib/plugins/inspec-plugin-manager-cli/test/functional/inspec-plugin_test.rb +281 -271
  303. data/lib/plugins/inspec-plugin-manager-cli/test/unit/cli_args_test.rb +41 -41
  304. data/lib/plugins/inspec-plugin-manager-cli/test/unit/plugin_def_test.rb +25 -6
  305. data/lib/plugins/shared/core_plugin_test_helper.rb +43 -38
  306. data/lib/resource_support/aws.rb +67 -67
  307. data/lib/resource_support/aws/aws_plural_resource_mixin.rb +4 -1
  308. data/lib/resource_support/aws/aws_resource_mixin.rb +4 -3
  309. data/lib/resource_support/aws/aws_singular_resource_mixin.rb +4 -1
  310. data/lib/resources/aws/aws_billing_report.rb +15 -8
  311. data/lib/resources/aws/aws_billing_reports.rb +10 -7
  312. data/lib/resources/aws/aws_cloudtrail_trail.rb +9 -5
  313. data/lib/resources/aws/aws_cloudtrail_trails.rb +9 -5
  314. data/lib/resources/aws/aws_cloudwatch_alarm.rb +9 -5
  315. data/lib/resources/aws/aws_cloudwatch_log_metric_filter.rb +12 -8
  316. data/lib/resources/aws/aws_config_delivery_channel.rb +13 -9
  317. data/lib/resources/aws/aws_config_recorder.rb +10 -6
  318. data/lib/resources/aws/aws_ebs_volume.rb +12 -8
  319. data/lib/resources/aws/aws_ebs_volumes.rb +9 -5
  320. data/lib/resources/aws/aws_ec2_instance.rb +14 -11
  321. data/lib/resources/aws/aws_ec2_instances.rb +9 -5
  322. data/lib/resources/aws/aws_ecs_cluster.rb +11 -7
  323. data/lib/resources/aws/aws_eks_cluster.rb +13 -9
  324. data/lib/resources/aws/aws_elb.rb +9 -5
  325. data/lib/resources/aws/aws_elbs.rb +9 -5
  326. data/lib/resources/aws/aws_flow_log.rb +17 -13
  327. data/lib/resources/aws/aws_iam_access_key.rb +15 -11
  328. data/lib/resources/aws/aws_iam_access_keys.rb +19 -15
  329. data/lib/resources/aws/aws_iam_group.rb +9 -5
  330. data/lib/resources/aws/aws_iam_groups.rb +9 -5
  331. data/lib/resources/aws/aws_iam_password_policy.rb +13 -10
  332. data/lib/resources/aws/aws_iam_policies.rb +9 -5
  333. data/lib/resources/aws/aws_iam_policy.rb +16 -12
  334. data/lib/resources/aws/aws_iam_role.rb +9 -5
  335. data/lib/resources/aws/aws_iam_root_user.rb +12 -8
  336. data/lib/resources/aws/aws_iam_user.rb +12 -12
  337. data/lib/resources/aws/aws_iam_users.rb +10 -10
  338. data/lib/resources/aws/aws_kms_key.rb +12 -8
  339. data/lib/resources/aws/aws_kms_keys.rb +9 -5
  340. data/lib/resources/aws/aws_rds_instance.rb +11 -8
  341. data/lib/resources/aws/aws_route_table.rb +11 -7
  342. data/lib/resources/aws/aws_route_tables.rb +10 -6
  343. data/lib/resources/aws/aws_s3_bucket.rb +14 -11
  344. data/lib/resources/aws/aws_s3_bucket_object.rb +12 -9
  345. data/lib/resources/aws/aws_s3_buckets.rb +9 -7
  346. data/lib/resources/aws/aws_security_group.rb +16 -12
  347. data/lib/resources/aws/aws_security_groups.rb +12 -8
  348. data/lib/resources/aws/aws_sns_subscription.rb +15 -11
  349. data/lib/resources/aws/aws_sns_topic.rb +10 -6
  350. data/lib/resources/aws/aws_sns_topics.rb +9 -5
  351. data/lib/resources/aws/aws_sqs_queue.rb +18 -14
  352. data/lib/resources/aws/aws_subnet.rb +11 -7
  353. data/lib/resources/aws/aws_subnets.rb +9 -5
  354. data/lib/resources/aws/aws_vpc.rb +10 -6
  355. data/lib/resources/aws/aws_vpcs.rb +9 -5
  356. data/lib/resources/azure/azure_backend.rb +20 -18
  357. data/lib/resources/azure/azure_generic_resource.rb +13 -15
  358. data/lib/resources/azure/azure_resource_group.rb +17 -19
  359. data/lib/resources/azure/azure_virtual_machine.rb +6 -8
  360. data/lib/resources/azure/azure_virtual_machine_data_disk.rb +6 -8
  361. data/lib/source_readers/flat.rb +6 -10
  362. data/lib/source_readers/inspec.rb +8 -12
  363. metadata +141 -142
  364. data/lib/resources/mysql.rb +0 -82
  365. data/lib/resources/sys_info.rb +0 -28
  366. data/lib/utils/deprecation.rb +0 -6
  367. data/lib/utils/json_log.rb +0 -18
  368. 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