puppet 4.8.2 → 4.9.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +15 -0
- data/CONTRIBUTING.md +25 -1
- data/Gemfile +6 -0
- data/Rakefile +1 -0
- data/ext/project_data.yaml +5 -1
- data/ext/windows/service/daemon.rb +2 -1
- data/install.rb +43 -6
- data/lib/hiera/puppet_function.rb +15 -17
- data/lib/hiera/scope.rb +12 -14
- data/lib/puppet.rb +52 -0
- data/lib/puppet/application/face_base.rb +4 -0
- data/lib/puppet/application/lookup.rb +4 -2
- data/lib/puppet/application/resource.rb +1 -1
- data/lib/puppet/data_providers.rb +6 -3
- data/lib/puppet/data_providers/data_adapter.rb +6 -0
- data/lib/puppet/data_providers/data_function_support.rb +7 -0
- data/lib/puppet/data_providers/function_env_data_provider.rb +7 -0
- data/lib/puppet/data_providers/function_module_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_config.rb +31 -10
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_interpolate.rb +2 -1
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_support.rb +6 -0
- data/lib/puppet/data_providers/json_data_provider_factory.rb +12 -0
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +12 -0
- data/lib/puppet/defaults.rb +25 -4
- data/lib/puppet/face/ca.rb +2 -0
- data/lib/puppet/face/certificate_request.rb +2 -0
- data/lib/puppet/face/certificate_revocation_list.rb +2 -0
- data/lib/puppet/face/file.rb +3 -0
- data/lib/puppet/face/help.rb +19 -17
- data/lib/puppet/face/help/face.erb +3 -0
- data/lib/puppet/face/key.rb +1 -0
- data/lib/puppet/face/man.rb +4 -2
- data/lib/puppet/face/module/generate.rb +1 -1
- data/lib/puppet/face/status.rb +2 -0
- data/lib/puppet/feature/base.rb +9 -2
- data/lib/puppet/feature/hocon.rb +3 -0
- data/lib/puppet/file_system.rb +15 -3
- data/lib/puppet/file_system/windows.rb +8 -0
- data/lib/puppet/forge.rb +6 -6
- data/lib/puppet/forge/repository.rb +1 -2
- data/lib/puppet/functions/binary_file.rb +4 -10
- data/lib/puppet/functions/hiera_array.rb +1 -1
- data/lib/puppet/functions/hiera_include.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +24 -0
- data/lib/puppet/functions/json_data.rb +18 -0
- data/lib/puppet/functions/yaml_data.rb +21 -0
- data/lib/puppet/generate/type.rb +1 -1
- data/lib/puppet/graph/simple_graph.rb +4 -2
- data/lib/puppet/indirector/file_bucket_file/file.rb +10 -2
- data/lib/puppet/indirector/request.rb +5 -1
- data/lib/puppet/interface.rb +14 -2
- data/lib/puppet/interface/face_collection.rb +1 -1
- data/lib/puppet/module.rb +14 -2
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/module_tool/applications/builder.rb +3 -2
- data/lib/puppet/module_tool/applications/installer.rb +14 -14
- data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
- data/lib/puppet/module_tool/installed_modules.rb +7 -7
- data/lib/puppet/module_tool/local_tarball.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/webrick.rb +2 -1
- data/lib/puppet/parser/functions/hiera.rb +14 -0
- data/lib/puppet/parser/functions/hiera_array.rb +14 -0
- data/lib/puppet/parser/functions/hiera_hash.rb +14 -0
- data/lib/puppet/parser/functions/hiera_include.rb +14 -0
- data/lib/puppet/parser/scope.rb +14 -20
- data/lib/puppet/plugins/data_providers.rb +2 -0
- data/lib/puppet/plugins/data_providers/data_provider.rb +108 -17
- data/lib/puppet/plugins/data_providers/registry.rb +2 -36
- data/lib/puppet/pops.rb +6 -9
- data/lib/puppet/pops/adaptable.rb +0 -3
- data/lib/puppet/pops/binder/producers.rb +3 -3
- data/lib/puppet/pops/evaluator/access_operator.rb +4 -4
- data/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +4 -4
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
- data/lib/puppet/pops/issues.rb +4 -0
- data/lib/puppet/pops/label_provider.rb +14 -0
- data/lib/puppet/pops/loader/loader_paths.rb +3 -1
- data/lib/puppet/pops/loader/module_loaders.rb +21 -7
- data/lib/puppet/pops/loader/typed_name.rb +0 -2
- data/lib/puppet/pops/loaders.rb +31 -12
- data/lib/puppet/pops/lookup.rb +4 -3
- data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
- data/lib/puppet/pops/lookup/context.rb +121 -71
- data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
- data/lib/puppet/pops/lookup/data_provider.rb +102 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
- data/lib/puppet/pops/lookup/explainer.rb +122 -82
- data/lib/puppet/pops/lookup/function_provider.rb +82 -0
- data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
- data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
- data/lib/puppet/pops/lookup/interpolation.rb +56 -35
- data/lib/puppet/pops/lookup/invocation.rb +179 -101
- data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
- data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +8 -4
- data/lib/puppet/pops/merge_strategy.rb +120 -39
- data/lib/puppet/pops/parser/egrammar.ra +2 -0
- data/lib/puppet/pops/parser/eparser.rb +816 -808
- data/lib/puppet/pops/parser/locator.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +4 -3
- data/lib/puppet/pops/pcore.rb +21 -12
- data/lib/puppet/pops/serialization/abstract_reader.rb +17 -7
- data/lib/puppet/pops/serialization/abstract_writer.rb +27 -12
- data/lib/puppet/pops/serialization/deserializer.rb +17 -4
- data/lib/puppet/pops/serialization/extension.rb +37 -8
- data/lib/puppet/pops/serialization/object.rb +14 -6
- data/lib/puppet/pops/serialization/rgen.rb +2 -1
- data/lib/puppet/pops/serialization/serializer.rb +30 -7
- data/lib/puppet/pops/types/implementation_registry.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +55 -12
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +27 -27
- data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -12
- data/lib/puppet/pops/types/p_timespan_type.rb +6 -6
- data/lib/puppet/pops/types/p_timestamp_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +7 -16
- data/lib/puppet/pops/types/recursion_guard.rb +64 -20
- data/lib/puppet/pops/types/ruby_generator.rb +10 -0
- data/lib/puppet/pops/types/type_calculator.rb +23 -13
- data/lib/puppet/pops/types/type_factory.rb +20 -9
- data/lib/puppet/pops/types/type_formatter.rb +37 -17
- data/lib/puppet/pops/types/type_mismatch_describer.rb +7 -6
- data/lib/puppet/pops/types/type_parser.rb +6 -0
- data/lib/puppet/pops/types/types.rb +225 -132
- data/lib/puppet/pops/validation.rb +1 -1
- data/lib/puppet/pops/validation/checker4_0.rb +12 -2
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/pops/visitor.rb +4 -3
- data/lib/puppet/provider/mcx/mcxcontent.rb +2 -1
- data/lib/puppet/provider/nameservice.rb +15 -0
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/dnf.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +2 -2
- data/lib/puppet/provider/service/smf.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +5 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/user_role_add.rb +15 -0
- data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
- data/lib/puppet/provider/zone/solaris.rb +4 -1
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +2 -3
- data/lib/puppet/resource/catalog.rb +12 -4
- data/lib/puppet/resource/type.rb +3 -3
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/settings/config_file.rb +2 -1
- data/lib/puppet/settings/directory_setting.rb +6 -0
- data/lib/puppet/settings/environment_conf.rb +6 -2
- data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
- data/lib/puppet/settings/file_setting.rb +10 -0
- data/lib/puppet/ssl/certificate_authority.rb +13 -2
- data/lib/puppet/ssl/host.rb +23 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +7 -0
- data/lib/puppet/type/user.rb +16 -3
- data/lib/puppet/util.rb +1 -0
- data/lib/puppet/util/execution.rb +3 -3
- data/lib/puppet/util/filetype.rb +11 -5
- data/lib/puppet/util/logging.rb +2 -1
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/plist.rb +6 -0
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
- data/lib/puppet/util/windows/adsi.rb +15 -12
- data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
- data/lib/puppet/version.rb +1 -1
- data/lib/semver.rb +19 -12
- data/locales/config.yaml +29 -0
- data/locales/puppet.pot +79 -0
- data/man/man5/puppet.conf.5 +1 -1
- data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/{data.pp → environment/data.pp} +0 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +1 -1
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
- data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
- data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/data/empty.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/data/empty_key.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/data/empty.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/data/first.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
- data/spec/integration/application/apply_spec.rb +88 -2
- data/spec/integration/application/lookup_spec.rb +155 -0
- data/spec/integration/data_binding_spec.rb +5 -5
- data/spec/integration/defaults_spec.rb +13 -0
- data/spec/integration/environments/default_manifest_spec.rb +16 -16
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/test/test_helper_spec.rb +6 -2
- data/spec/integration/transaction_spec.rb +74 -0
- data/spec/integration/util/execution_spec.rb +8 -0
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
- data/spec/lib/puppet_spec/unindent.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +16 -0
- data/spec/unit/application/lookup_spec.rb +262 -227
- data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
- data/spec/unit/data_providers/function_data_provider_spec.rb +2 -2
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +60 -97
- data/spec/unit/defaults_spec.rb +1 -1
- data/spec/unit/face/ca_spec.rb +10 -0
- data/spec/unit/face/certificate_request_spec.rb +10 -0
- data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
- data/spec/unit/face/file_spec.rb +4 -0
- data/spec/unit/face/help_spec.rb +17 -0
- data/spec/unit/face/key_spec.rb +10 -0
- data/spec/unit/face/status_spec.rb +10 -0
- data/spec/unit/file_system_spec.rb +143 -6
- data/spec/unit/functions/binary_file_spec.rb +1 -1
- data/spec/unit/functions/hiera_spec.rb +257 -47
- data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
- data/spec/unit/functions/lookup_spec.rb +1319 -608
- data/spec/unit/functions/new_spec.rb +3 -3
- data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
- data/spec/unit/graph/simple_graph_spec.rb +1 -1
- data/spec/unit/hiera/scope_spec.rb +4 -4
- data/spec/unit/indirector/request_spec.rb +9 -0
- data/spec/unit/interface_spec.rb +27 -0
- data/spec/unit/man_spec.rb +1 -1
- data/spec/unit/module_spec.rb +1 -1
- data/spec/unit/module_tool/applications/builder_spec.rb +16 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +1 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +1 -1
- data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
- data/spec/unit/module_tool_spec.rb +3 -3
- data/spec/unit/network/http/connection_spec.rb +10 -0
- data/spec/unit/network/http/webrick_spec.rb +1 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +2 -2
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +9 -9
- data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
- data/spec/unit/pops/lookup/context_spec.rb +45 -16
- data/spec/unit/pops/lookup/interpolation_spec.rb +28 -20
- data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
- data/spec/unit/pops/merge_strategy_spec.rb +18 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +16 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +4 -0
- data/spec/unit/pops/serialization/packer_spec.rb +4 -23
- data/spec/unit/pops/serialization/serialization_spec.rb +32 -8
- data/spec/unit/pops/types/p_object_type_spec.rb +68 -3
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +4 -4
- data/spec/unit/pops/types/p_type_set_type_spec.rb +31 -2
- data/spec/unit/pops/types/type_acceptor_spec.rb +18 -17
- data/spec/unit/pops/types/type_calculator_spec.rb +39 -40
- data/spec/unit/pops/types/type_factory_spec.rb +3 -3
- data/spec/unit/pops/types/type_formatter_spec.rb +7 -3
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +13 -2
- data/spec/unit/pops/types/types_spec.rb +25 -2
- data/spec/unit/pops/validator/validator_spec.rb +60 -4
- data/spec/unit/provider/nameservice_spec.rb +42 -0
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/pkg_spec.rb +22 -0
- data/spec/unit/provider/package/pkgng_spec.rb +12 -0
- data/spec/unit/provider/package/rpm_spec.rb +8 -8
- data/spec/unit/provider/service/smf_spec.rb +13 -11
- data/spec/unit/provider/service/systemd_spec.rb +8 -1
- data/spec/unit/provider/user/useradd_spec.rb +1 -0
- data/spec/unit/puppet_spec.rb +14 -0
- data/spec/unit/resource/catalog_spec.rb +15 -9
- data/spec/unit/resource_spec.rb +20 -17
- data/spec/unit/semver_spec.rb +14 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +12 -1
- data/spec/unit/transaction/additional_resource_generator_spec.rb +11 -0
- data/spec/unit/type/user_spec.rb +32 -6
- data/spec/unit/util/filetype_spec.rb +3 -3
- data/spec/unit/util/yaml_spec.rb +1 -1
- data/spec/unit/util_spec.rb +10 -2
- data/tasks/i18n.rake +20 -0
- metadata +2661 -2593
- data/lib/puppet/data_providers/lookup_adapter.rb +0 -254
- data/lib/puppet/vendor/load_semantic.rb +0 -1
- data/lib/puppet/vendor/semantic/Gemfile +0 -20
- data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/semantic/Rakefile +0 -69
- data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -7
- data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +0 -60
- data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
- data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
- data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
- data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
@@ -1,254 +0,0 @@
|
|
1
|
-
# A LookupAdapter is a specialized DataAdapter that uses its hash to store module providers. It also remembers the compiler
|
2
|
-
# that it is attached to and maintains a cache of _lookup options_ retrieved from the data providers associated with the
|
3
|
-
# compiler's environment.
|
4
|
-
#
|
5
|
-
# @api private
|
6
|
-
class Puppet::DataProviders::LookupAdapter < Puppet::DataProviders::DataAdapter
|
7
|
-
|
8
|
-
LOOKUP_OPTIONS = Puppet::Pops::Lookup::LOOKUP_OPTIONS
|
9
|
-
LOOKUP_OPTIONS_PREFIX = LOOKUP_OPTIONS + '.'
|
10
|
-
LOOKUP_OPTIONS_PREFIX.freeze
|
11
|
-
HASH = 'hash'.freeze
|
12
|
-
MERGE = 'merge'.freeze
|
13
|
-
|
14
|
-
def self.create_adapter(compiler)
|
15
|
-
new(compiler)
|
16
|
-
end
|
17
|
-
|
18
|
-
def initialize(compiler)
|
19
|
-
super()
|
20
|
-
@compiler = compiler
|
21
|
-
@lookup_options = {}
|
22
|
-
end
|
23
|
-
|
24
|
-
# Performs a lookup using global, environment, and module data providers. Merge the result using the given
|
25
|
-
# _merge_ strategy. If the merge strategy is nil, then an attempt is made to find merge options in the
|
26
|
-
# `lookup_options` hash for an entry associated with the key. If no options are found, the no merge is performed
|
27
|
-
# and the first found entry is returned.
|
28
|
-
#
|
29
|
-
# @param key [String] The key to lookup
|
30
|
-
# @param merge [Puppet::Pops::MergeStrategy,String,Hash<String,Object>,nil] Merge strategy or hash with strategy and options
|
31
|
-
# @param lookup_invocation [Puppet::Pops::Lookup::Invocation] Invocation data containing scope, overrides, and defaults
|
32
|
-
# @return [Object] The found value
|
33
|
-
# @throws :no_such_key if the given key is not found
|
34
|
-
#
|
35
|
-
def lookup(key, lookup_invocation, merge)
|
36
|
-
# The 'lookup_options' key is reserved and not found as normal data
|
37
|
-
if key == LOOKUP_OPTIONS || key.start_with?(LOOKUP_OPTIONS_PREFIX)
|
38
|
-
lookup_invocation.with(:invalid_key, LOOKUP_OPTIONS) do
|
39
|
-
throw :no_such_key
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
lookup_invocation.top_key ||= key
|
44
|
-
merge_explained = false
|
45
|
-
if lookup_invocation.explain_options?
|
46
|
-
catch(:no_such_key) do
|
47
|
-
module_name = extract_module_name(key) unless key == Puppet::Pops::Lookup::GLOBAL
|
48
|
-
lookup_invocation.module_name = module_name
|
49
|
-
if lookup_invocation.only_explain_options?
|
50
|
-
do_lookup(LOOKUP_OPTIONS, lookup_invocation, HASH)
|
51
|
-
return nil
|
52
|
-
end
|
53
|
-
|
54
|
-
# Bypass cache and do a "normal" lookup of the lookup_options
|
55
|
-
lookup_invocation.with(:meta, LOOKUP_OPTIONS) do
|
56
|
-
key_options = do_lookup(LOOKUP_OPTIONS, lookup_invocation, HASH)[key]
|
57
|
-
merge = key_options[MERGE] unless key_options.nil?
|
58
|
-
merge_explained = true
|
59
|
-
end
|
60
|
-
end
|
61
|
-
elsif merge.nil?
|
62
|
-
# Used cached lookup_options
|
63
|
-
merge = lookup_merge_options(key, lookup_invocation)
|
64
|
-
lookup_invocation.report_merge_source('lookup_options') unless merge.nil?
|
65
|
-
end
|
66
|
-
|
67
|
-
if merge_explained
|
68
|
-
# Merge lookup is explained in detail so we need to explain the data in a section
|
69
|
-
# on the same level to avoid confusion
|
70
|
-
lookup_invocation.with(:data, key) { do_lookup(key, lookup_invocation, merge) }
|
71
|
-
else
|
72
|
-
do_lookup(key, lookup_invocation, merge)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
# @api private
|
77
|
-
def lookup_global(name, lookup_invocation, merge_strategy)
|
78
|
-
terminus = Puppet[:data_binding_terminus]
|
79
|
-
lookup_invocation.with(:global, terminus) do
|
80
|
-
catch(:no_such_key) do
|
81
|
-
return lookup_invocation.report_found(name, Puppet::DataBinding.indirection.find(name,
|
82
|
-
{ :environment => environment, :variables => lookup_invocation.scope, :merge => merge_strategy }))
|
83
|
-
end
|
84
|
-
lookup_invocation.report_not_found(name)
|
85
|
-
throw :no_such_key
|
86
|
-
end
|
87
|
-
rescue Puppet::DataBinding::LookupError => detail
|
88
|
-
error = Puppet::Error.new("Lookup of key '#{lookup_invocation.top_key}' failed: #{detail.message}")
|
89
|
-
error.set_backtrace(detail.backtrace)
|
90
|
-
raise error
|
91
|
-
end
|
92
|
-
|
93
|
-
# @api private
|
94
|
-
def lookup_in_environment(name, lookup_invocation, merge_strategy)
|
95
|
-
env_provider.lookup(name, lookup_invocation, merge_strategy)
|
96
|
-
end
|
97
|
-
|
98
|
-
# @api private
|
99
|
-
def lookup_in_module(name, lookup_invocation, merge_strategy)
|
100
|
-
module_name = lookup_invocation.module_name || extract_module_name(name)
|
101
|
-
|
102
|
-
# Do not attempt to do a lookup in a module unless the name is qualified.
|
103
|
-
throw :no_such_key if module_name.nil?
|
104
|
-
|
105
|
-
lookup_invocation.with(:module, module_name) do
|
106
|
-
if environment.module(module_name).nil?
|
107
|
-
lookup_invocation.report_module_not_found
|
108
|
-
throw :no_such_key
|
109
|
-
end
|
110
|
-
module_provider(module_name).lookup(name, lookup_invocation, merge_strategy)
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
# Retrieve the merge options that match the given `name`.
|
115
|
-
#
|
116
|
-
# @param name [String] The key for which we want merge options
|
117
|
-
# @param lookup_invocation [Puppet::Pops::Lookup::Invocation] the lookup invocation
|
118
|
-
# @return [String,Hash,nil] The found merge options or nil
|
119
|
-
#
|
120
|
-
def lookup_merge_options(name, lookup_invocation)
|
121
|
-
lookup_options = lookup_lookup_options(name, lookup_invocation)
|
122
|
-
lookup_options.nil? ? nil : lookup_options[MERGE]
|
123
|
-
end
|
124
|
-
|
125
|
-
# Retrieve the lookup options that match the given `name`.
|
126
|
-
#
|
127
|
-
# @param name [String] The key for which we want lookup options
|
128
|
-
# @param lookup_invocation [Puppet::Pops::Lookup::Invocation] the lookup invocation
|
129
|
-
# @return [String,Hash,nil] The found lookup options or nil
|
130
|
-
#
|
131
|
-
def lookup_lookup_options(name, lookup_invocation)
|
132
|
-
module_name = extract_module_name(name)
|
133
|
-
|
134
|
-
# Retrieve the options for the module. We use nil as a key in case we have none
|
135
|
-
if !@lookup_options.include?(module_name)
|
136
|
-
options = retrieve_lookup_options(module_name, lookup_invocation, Puppet::Pops::MergeStrategy.strategy(HASH))
|
137
|
-
raise Puppet::DataBinding::LookupError.new("value of #{LOOKUP_OPTIONS} must be a hash") unless options.nil? || options.is_a?(Hash)
|
138
|
-
@lookup_options[module_name] = options
|
139
|
-
else
|
140
|
-
options = @lookup_options[module_name]
|
141
|
-
end
|
142
|
-
options.nil? ? nil : options[name]
|
143
|
-
end
|
144
|
-
|
145
|
-
private
|
146
|
-
|
147
|
-
def do_lookup(key, lookup_invocation, merge)
|
148
|
-
merge_strategy = Puppet::Pops::MergeStrategy.strategy(merge)
|
149
|
-
lookup_invocation.with(:merge, merge_strategy) do
|
150
|
-
result = merge_strategy.merge_lookup([:lookup_global, :lookup_in_environment, :lookup_in_module]) { |m| send(m, key, lookup_invocation, merge_strategy) }
|
151
|
-
lookup_invocation.report_result(result)
|
152
|
-
result
|
153
|
-
end
|
154
|
-
end
|
155
|
-
|
156
|
-
# Retrieve lookup options that applies when using a specific module (i.e. a merge of the pre-cached
|
157
|
-
# `env_lookup_options` and the module specific data)
|
158
|
-
def retrieve_lookup_options(module_name, lookup_invocation, merge_strategy)
|
159
|
-
meta_invocation = Puppet::Pops::Lookup::Invocation.new(lookup_invocation.scope)
|
160
|
-
meta_invocation.top_key = lookup_invocation.top_key
|
161
|
-
env_opts = env_lookup_options(meta_invocation, merge_strategy)
|
162
|
-
unless module_name.nil? || environment.module(module_name).nil?
|
163
|
-
catch(:no_such_key) do
|
164
|
-
meta_invocation.module_name = module_name
|
165
|
-
options = module_provider(module_name).lookup(LOOKUP_OPTIONS, meta_invocation, merge_strategy)
|
166
|
-
options = merge_strategy.merge(env_opts, options) unless env_opts.nil?
|
167
|
-
return options
|
168
|
-
end
|
169
|
-
end
|
170
|
-
env_opts
|
171
|
-
end
|
172
|
-
|
173
|
-
# Retrieve and cache lookup options specific to the environment of the compiler that this adapter is attached to (i.e. a merge
|
174
|
-
# of global and environment lookup options).
|
175
|
-
def env_lookup_options(meta_invocation, merge_strategy)
|
176
|
-
if !instance_variable_defined?(:@env_lookup_options)
|
177
|
-
@env_lookup_options = nil
|
178
|
-
catch(:no_such_key) do
|
179
|
-
@env_lookup_options = merge_strategy.merge_lookup([:lookup_global, :lookup_in_environment]) do |m|
|
180
|
-
send(m, LOOKUP_OPTIONS, meta_invocation, merge_strategy)
|
181
|
-
end
|
182
|
-
end
|
183
|
-
end
|
184
|
-
@env_lookup_options
|
185
|
-
end
|
186
|
-
|
187
|
-
def env_provider
|
188
|
-
@env_provider ||= initialize_env_provider
|
189
|
-
end
|
190
|
-
|
191
|
-
def module_provider(module_name)
|
192
|
-
# Test if the key is present for the given module_name. It might be there even if the
|
193
|
-
# value is nil (which indicates that no module provider is configured for the given name)
|
194
|
-
unless data.include?(module_name)
|
195
|
-
data[module_name] = initialize_module_provider(module_name)
|
196
|
-
end
|
197
|
-
data[module_name]
|
198
|
-
end
|
199
|
-
|
200
|
-
def initialize_module_provider(module_name)
|
201
|
-
injector = Puppet.lookup(:injector) { nil }
|
202
|
-
|
203
|
-
# Support running tests without an injector being configured == using a null implementation
|
204
|
-
return ModuleDataProvider.new() unless injector
|
205
|
-
|
206
|
-
# Get the registry of module to provider implementation name
|
207
|
-
module_service_type = Registry.hash_of_per_module_data_provider
|
208
|
-
module_service_name = PER_MODULE_DATA_PROVIDER_KEY
|
209
|
-
module_service = injector.lookup(nil, module_service_type, module_service_name)
|
210
|
-
provider_name = module_service[module_name] || 'none'
|
211
|
-
|
212
|
-
service_type = Registry.hash_of_module_data_providers
|
213
|
-
service_name = MODULE_DATA_PROVIDERS_KEY
|
214
|
-
|
215
|
-
# Get the service (registry of known implementations)
|
216
|
-
service = injector.lookup(nil, service_type, service_name)
|
217
|
-
provider = service[provider_name]
|
218
|
-
unless provider
|
219
|
-
raise Puppet::Error.new("Environment '#{environment.name}', cannot find module_data_provider '#{provider_name}'")
|
220
|
-
end
|
221
|
-
# Provider is configured per module but cached using compiler life cycle so it must be cloned
|
222
|
-
provider.clone
|
223
|
-
end
|
224
|
-
|
225
|
-
def initialize_env_provider
|
226
|
-
injector = Puppet.lookup(:injector) { nil }
|
227
|
-
|
228
|
-
# Support running tests without an injector being configured == using a null implementation
|
229
|
-
return EnvironmentDataProvider.new() unless injector
|
230
|
-
|
231
|
-
# Get the name of the data provider from the environment's configuration and find the bound implementation
|
232
|
-
provider_name = environment.configuration.environment_data_provider
|
233
|
-
service_type = Registry.hash_of_environment_data_providers
|
234
|
-
service_name = ENV_DATA_PROVIDERS_KEY
|
235
|
-
|
236
|
-
# Get the service (registry of known implementations)
|
237
|
-
service = injector.lookup(nil, service_type, service_name)
|
238
|
-
provider = service[provider_name]
|
239
|
-
unless provider
|
240
|
-
raise Puppet::Error.new("Environment '#{environment.name}', cannot find environment_data_provider '#{provider_name}'")
|
241
|
-
end
|
242
|
-
provider
|
243
|
-
end
|
244
|
-
|
245
|
-
def extract_module_name(name)
|
246
|
-
qual_index = name.index('::')
|
247
|
-
qual_index.nil? ? nil : name[0..qual_index-1]
|
248
|
-
end
|
249
|
-
|
250
|
-
# @return [Puppet::Node::Environment] the environment of the compiler that this adapter is associated with
|
251
|
-
def environment
|
252
|
-
@compiler.environment
|
253
|
-
end
|
254
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
$: << File.join([File.dirname(__FILE__), "semantic/lib"])
|
@@ -1,20 +0,0 @@
|
|
1
|
-
source "https://rubygems.org"
|
2
|
-
|
3
|
-
group :development do
|
4
|
-
gem 'rake'
|
5
|
-
gem 'rubygems-tasks'
|
6
|
-
end
|
7
|
-
|
8
|
-
group :test do
|
9
|
-
gem 'rspec'
|
10
|
-
end
|
11
|
-
|
12
|
-
group :metrics do
|
13
|
-
gem 'cane', :platform => [ :mri_19, :mri_20, :mri_21 ]
|
14
|
-
gem 'simplecov', :platform => [ :mri_19, :mri_20, :mri_21 ]
|
15
|
-
end
|
16
|
-
|
17
|
-
group :doc do
|
18
|
-
gem 'yard', '~> 0.8', :platform => [ :mri_19, :mri_20, :mri_21 ]
|
19
|
-
gem 'redcarpet', :platform => [ :mri_19, :mri_20, :mri_21 ]
|
20
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# RSpec tasks
|
2
|
-
begin
|
3
|
-
require 'rspec/core/rake_task'
|
4
|
-
|
5
|
-
# Create the 'spec' task
|
6
|
-
RSpec::Core::RakeTask.new(:spec) do |task|
|
7
|
-
task.rspec_opts = '--color'
|
8
|
-
end
|
9
|
-
|
10
|
-
namespace :spec do
|
11
|
-
desc "Run the test suite and generate coverage metrics"
|
12
|
-
task :coverage => [ :simplecov, :spec ]
|
13
|
-
|
14
|
-
# Add test coverage to the 'spec' task.
|
15
|
-
task :simplecov do
|
16
|
-
ENV['COVERAGE'] = '1'
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
task :default => :spec
|
21
|
-
rescue LoadError
|
22
|
-
warn "[Warning]: Could not load `rspec`."
|
23
|
-
end
|
24
|
-
|
25
|
-
# YARD tasks
|
26
|
-
begin
|
27
|
-
require 'yard'
|
28
|
-
require 'yard/rake/yardoc_task'
|
29
|
-
|
30
|
-
YARD::Rake::YardocTask.new(:doc) do |yardoc|
|
31
|
-
yardoc.files = [ 'lib/**/*.rb', '-', '**/*.md' ]
|
32
|
-
end
|
33
|
-
rescue LoadError
|
34
|
-
warn "[Warning]: Could not load `yard`."
|
35
|
-
end
|
36
|
-
|
37
|
-
# Cane tasks
|
38
|
-
begin
|
39
|
-
require 'cane/rake_task'
|
40
|
-
|
41
|
-
Cane::RakeTask.new(:cane) do |cane|
|
42
|
-
cane.add_threshold 'coverage/.last_run.json', :>=, 100
|
43
|
-
cane.abc_max = 15
|
44
|
-
end
|
45
|
-
|
46
|
-
Rake::Task['cane'].prerequisites << Rake::Task['spec:coverage']
|
47
|
-
Rake::Task[:default].clear_prerequisites
|
48
|
-
task :default => :cane
|
49
|
-
rescue LoadError
|
50
|
-
warn "[Warning]: Could not load `cane`."
|
51
|
-
end
|
52
|
-
|
53
|
-
# Gem tasks
|
54
|
-
begin
|
55
|
-
require 'rubygems/tasks'
|
56
|
-
|
57
|
-
task :gem => 'gem:build'
|
58
|
-
task :validate => [ 'cane', 'doc', 'gem:validate' ]
|
59
|
-
|
60
|
-
namespace :gem do
|
61
|
-
Gem::Tasks.new(
|
62
|
-
:tag => { :format => 'v%s' },
|
63
|
-
:sign => { :checksum => true, :pgp => true },
|
64
|
-
:build => { :tar => true }
|
65
|
-
)
|
66
|
-
end
|
67
|
-
rescue LoadError
|
68
|
-
warn "[Warning]: Could not load `rubygems/tasks`."
|
69
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
require 'semantic/dependency'
|
2
|
-
|
3
|
-
module Semantic
|
4
|
-
module Dependency
|
5
|
-
class ModuleRelease
|
6
|
-
include GraphNode
|
7
|
-
|
8
|
-
attr_reader :name, :version
|
9
|
-
|
10
|
-
# Create a new instance of a module release.
|
11
|
-
#
|
12
|
-
# @param source [Semantic::Dependency::Source]
|
13
|
-
# @param name [String]
|
14
|
-
# @param version [Semantic::Version]
|
15
|
-
# @param dependencies [{String => Semantic::VersionRange}]
|
16
|
-
def initialize(source, name, version, dependencies = {})
|
17
|
-
@source = source
|
18
|
-
@name = name.freeze
|
19
|
-
@version = version.freeze
|
20
|
-
|
21
|
-
dependencies.each do |name, range|
|
22
|
-
add_constraint('initialize', name, range.to_s) do |node|
|
23
|
-
range === node.version
|
24
|
-
end
|
25
|
-
|
26
|
-
add_dependency(name)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def priority
|
31
|
-
@source.priority
|
32
|
-
end
|
33
|
-
|
34
|
-
def <=>(oth)
|
35
|
-
# Note that prior to ruby 2.3.0, if a <=> method threw an exception, ruby
|
36
|
-
# would silently rescue the exception and return nil from <=> (which causes
|
37
|
-
# the derived == comparison to return false). Starting in ruby 2.3.0, this
|
38
|
-
# behavior changed and the exception is actually thrown. Some comments at:
|
39
|
-
# https://bugs.ruby-lang.org/issues/7688
|
40
|
-
#
|
41
|
-
# So simply return nil here if any of the needed fields are not available,
|
42
|
-
# since attempting to access a missing field is one way to force an exception.
|
43
|
-
# This doesn't help if the <=> use below throws an exception, but it
|
44
|
-
# handles the most typical cause.
|
45
|
-
return nil if !oth.respond_to?(:priority) ||
|
46
|
-
!oth.respond_to?(:name) ||
|
47
|
-
!oth.respond_to?(:version)
|
48
|
-
|
49
|
-
our_key = [ priority, name, version ]
|
50
|
-
their_key = [ oth.priority, oth.name, oth.version ]
|
51
|
-
|
52
|
-
return our_key <=> their_key
|
53
|
-
end
|
54
|
-
|
55
|
-
def to_s
|
56
|
-
"#<#{self.class} #{name}@#{version}>"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
PROJECT_ROOT = File.join(File.dirname(__FILE__), '..')
|
2
|
-
|
3
|
-
if ENV['COVERAGE']
|
4
|
-
require 'simplecov'
|
5
|
-
SimpleCov.start do
|
6
|
-
add_filter "/spec/"
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
RSpec.configure do |config|
|
11
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
12
|
-
config.run_all_when_everything_filtered = true
|
13
|
-
config.filter_run :focus
|
14
|
-
|
15
|
-
# Run specs in random order to surface order dependencies. If you find an
|
16
|
-
# order dependency and want to debug it, you can fix the order by providing
|
17
|
-
# the seed, which is printed after each run.
|
18
|
-
# --seed 1234
|
19
|
-
config.order = 'random'
|
20
|
-
|
21
|
-
config.before do
|
22
|
-
Semantic::Dependency.instance_variable_set(:@sources, nil)
|
23
|
-
end
|
24
|
-
end
|