puppet 4.5.3-universal-darwin → 4.6.1-universal-darwin
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 +7 -0
- data/Gemfile +10 -1
- data/ext/debian/control +2 -4
- data/ext/project_data.yaml +4 -4
- data/install.rb +6 -2
- data/lib/puppet.rb +3 -1
- data/lib/puppet/agent/locker.rb +1 -1
- data/lib/puppet/application.rb +6 -4
- data/lib/puppet/application/agent.rb +2 -1
- data/lib/puppet/application/cert.rb +35 -2
- data/lib/puppet/application/device.rb +1 -1
- data/lib/puppet/application/generate.rb +5 -0
- data/lib/puppet/application/lookup.rb +3 -3
- data/lib/puppet/application_support.rb +1 -1
- data/lib/puppet/compilable_resource_type.rb +15 -0
- data/lib/puppet/configurer.rb +67 -10
- data/lib/puppet/configurer/plugin_handler.rb +2 -4
- data/lib/puppet/data_providers/hiera_config.rb +1 -1
- data/lib/puppet/defaults.rb +34 -7
- data/lib/puppet/environments.rb +4 -2
- data/lib/puppet/error.rb +1 -1
- data/lib/puppet/external/dot.rb +1 -1
- data/lib/puppet/face/ca.rb +4 -1
- data/lib/puppet/face/certificate.rb +7 -1
- data/lib/puppet/face/epp.rb +5 -5
- data/lib/puppet/face/generate.rb +64 -0
- data/lib/puppet/face/help.rb +19 -13
- data/lib/puppet/face/man.rb +1 -1
- data/lib/puppet/feature/external_facts.rb +1 -1
- data/lib/puppet/file_system.rb +16 -0
- data/lib/puppet/file_system/file_impl.rb +5 -0
- data/lib/puppet/file_system/memory_impl.rb +4 -0
- data/lib/puppet/file_system/path_pattern.rb +1 -0
- data/lib/puppet/file_system/windows.rb +19 -0
- data/lib/puppet/functions.rb +3 -5
- data/lib/puppet/functions/assert_type.rb +1 -1
- data/lib/puppet/functions/defined.rb +7 -5
- data/lib/puppet/functions/dig.rb +2 -18
- data/lib/puppet/functions/hiera.rb +1 -1
- data/lib/puppet/functions/lest.rb +1 -37
- data/lib/puppet/functions/new.rb +2 -473
- data/lib/puppet/functions/reverse_each.rb +2 -59
- data/lib/puppet/functions/scanf.rb +4 -4
- data/lib/puppet/functions/step.rb +1 -63
- data/lib/puppet/functions/then.rb +1 -61
- data/lib/puppet/functions/type.rb +1 -40
- data/lib/puppet/functions/unwrap.rb +40 -0
- data/lib/puppet/generate/models/type/property.rb +70 -0
- data/lib/puppet/generate/models/type/type.rb +57 -0
- data/lib/puppet/generate/templates/type/pcore.erb +41 -0
- data/lib/puppet/generate/type.rb +239 -0
- data/lib/puppet/graph/simple_graph.rb +2 -6
- data/lib/puppet/indirector/catalog/static_compiler.rb +5 -2
- data/lib/puppet/indirector/facts/facter.rb +1 -1
- data/lib/puppet/indirector/key/ca.rb +2 -2
- data/lib/puppet/indirector/request.rb +25 -4
- data/lib/puppet/indirector/rest.rb +73 -3
- data/lib/puppet/info_service/class_information_service.rb +1 -2
- data/lib/puppet/interface/documentation.rb +1 -1
- data/lib/puppet/loaders.rb +2 -0
- data/lib/puppet/metatype/manager.rb +6 -6
- data/lib/puppet/module.rb +8 -1
- data/lib/puppet/module_tool.rb +2 -2
- data/lib/puppet/module_tool/checksums.rb +1 -1
- data/lib/puppet/module_tool/errors/installer.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/network/http/api/indirected_routes.rb +23 -32
- data/lib/puppet/network/http/rack/rest.rb +15 -1
- data/lib/puppet/network/rights.rb +1 -11
- data/lib/puppet/node/environment.rb +7 -3
- data/lib/puppet/node/facts.rb +1 -1
- data/lib/puppet/parameter.rb +23 -3
- data/lib/puppet/parameter/boolean.rb +1 -1
- data/lib/puppet/parameter/value.rb +1 -1
- data/lib/puppet/parser.rb +0 -1
- data/lib/puppet/parser/ast/pops_bridge.rb +1 -1
- data/lib/puppet/parser/ast/resource.rb +5 -0
- data/lib/puppet/parser/ast/resource_instance.rb +5 -1
- data/lib/puppet/parser/ast/resourceparam.rb +5 -0
- data/lib/puppet/parser/compiler.rb +14 -17
- data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +1 -1
- data/lib/puppet/parser/environment_compiler.rb +10 -0
- data/lib/puppet/parser/functions/create_resources.rb +39 -24
- data/lib/puppet/parser/functions/defined.rb +2 -26
- data/lib/puppet/parser/functions/dig.rb +29 -0
- data/lib/puppet/parser/functions/lest.rb +49 -0
- data/lib/puppet/parser/functions/new.rb +530 -0
- data/lib/puppet/parser/functions/require.rb +1 -1
- data/lib/puppet/parser/functions/reverse_each.rb +83 -0
- data/lib/puppet/parser/functions/scanf.rb +4 -4
- data/lib/puppet/parser/functions/step.rb +84 -0
- data/lib/puppet/parser/functions/then.rb +73 -0
- data/lib/puppet/parser/functions/type.rb +53 -0
- data/lib/puppet/parser/resource.rb +16 -7
- data/lib/puppet/parser/scope.rb +36 -28
- data/lib/puppet/parser/type_loader.rb +1 -1
- data/lib/puppet/plugins/data_providers/data_provider.rb +1 -1
- data/lib/puppet/pops.rb +13 -0
- data/lib/puppet/pops/adapters.rb +49 -49
- data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +1 -1
- data/lib/puppet/pops/evaluator/access_operator.rb +39 -2
- data/lib/puppet/pops/evaluator/closure.rb +39 -13
- data/lib/puppet/pops/evaluator/collector_transformer.rb +10 -1
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +16 -11
- data/lib/puppet/pops/evaluator/external_syntax_support.rb +1 -1
- data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -1
- data/lib/puppet/pops/evaluator/literal_evaluator.rb +0 -1
- data/lib/puppet/pops/evaluator/relationship_operator.rb +1 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +119 -0
- data/lib/puppet/pops/evaluator/runtime3_support.rb +19 -45
- data/lib/puppet/pops/functions/function.rb +5 -0
- data/lib/puppet/pops/issues.rb +1 -1
- data/lib/puppet/pops/label_provider.rb +2 -2
- data/lib/puppet/pops/loader/base_loader.rb +12 -15
- data/lib/puppet/pops/loader/loader.rb +15 -50
- data/lib/puppet/pops/loader/loader_paths.rb +28 -2
- data/lib/puppet/pops/loader/module_loaders.rb +16 -1
- data/lib/puppet/pops/loader/null_loader.rb +17 -1
- data/lib/puppet/pops/loader/puppet_function_instantiator.rb +12 -11
- data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +80 -0
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +2 -3
- data/lib/puppet/pops/loader/runtime3_type_loader.rb +52 -13
- data/lib/puppet/pops/loader/static_loader.rb +55 -0
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +30 -14
- data/lib/puppet/pops/loader/typed_name.rb +50 -0
- data/lib/puppet/pops/loaders.rb +64 -19
- data/lib/puppet/pops/merge_strategy.rb +7 -7
- data/lib/puppet/pops/migration/migration_checker.rb +4 -0
- data/lib/puppet/pops/model/model_label_provider.rb +2 -0
- data/lib/puppet/pops/parser/egrammar.ra +8 -5
- data/lib/puppet/pops/parser/eparser.rb +1550 -1498
- data/lib/puppet/pops/parser/evaluating_parser.rb +1 -1
- data/lib/puppet/pops/parser/interpolation_support.rb +7 -0
- data/lib/puppet/pops/parser/lexer2.rb +14 -1
- data/lib/puppet/pops/parser/locator.rb +30 -1
- data/lib/puppet/pops/parser/parser_support.rb +0 -3
- data/lib/puppet/pops/parser/slurp_support.rb +3 -3
- data/lib/puppet/pops/patterns.rb +9 -1
- data/lib/puppet/pops/pcore.rb +67 -11
- data/lib/puppet/pops/puppet_stack.rb +43 -0
- data/lib/puppet/pops/resource/param.rb +51 -0
- data/lib/puppet/pops/resource/resource_type_impl.rb +301 -0
- data/lib/puppet/pops/resource/resource_type_set.pcore +21 -0
- data/lib/puppet/pops/serialization.rb +17 -0
- data/lib/puppet/pops/serialization/abstract_reader.rb +149 -0
- data/lib/puppet/pops/serialization/abstract_writer.rb +179 -0
- data/lib/puppet/pops/serialization/deserializer.rb +60 -0
- data/lib/puppet/pops/serialization/extension.rb +126 -0
- data/lib/puppet/pops/serialization/instance_reader.rb +19 -0
- data/lib/puppet/pops/serialization/instance_writer.rb +14 -0
- data/lib/puppet/pops/serialization/json.rb +247 -0
- data/lib/puppet/pops/serialization/object.rb +63 -0
- data/lib/puppet/pops/serialization/rgen.rb +151 -0
- data/lib/puppet/pops/serialization/serializer.rb +91 -0
- data/lib/puppet/pops/serialization/time_factory.rb +66 -0
- data/lib/puppet/pops/types/annotatable.rb +36 -0
- data/lib/puppet/pops/types/implementation_registry.rb +3 -8
- data/lib/puppet/pops/types/p_meta_type.rb +83 -0
- data/lib/puppet/pops/types/p_object_type.rb +110 -117
- data/lib/puppet/pops/types/p_runtime_type.rb +13 -0
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +23 -0
- data/lib/puppet/pops/types/p_sem_ver_type.rb +30 -2
- data/lib/puppet/pops/types/p_sensitive_type.rb +69 -0
- data/lib/puppet/pops/types/p_type_set_type.rb +361 -0
- data/lib/puppet/pops/types/puppet_object.rb +0 -5
- data/lib/puppet/pops/types/ruby_generator.rb +9 -2
- data/lib/puppet/pops/types/type_calculator.rb +6 -1
- data/lib/puppet/pops/types/type_factory.rb +14 -12
- data/lib/puppet/pops/types/type_formatter.rb +78 -33
- data/lib/puppet/pops/types/type_mismatch_describer.rb +0 -2
- data/lib/puppet/pops/types/type_parser.rb +27 -2
- data/lib/puppet/pops/types/type_set_reference.rb +59 -0
- data/lib/puppet/pops/types/types.rb +366 -13
- data/lib/puppet/pops/validation.rb +4 -4
- data/lib/puppet/pops/validation/checker4_0.rb +5 -2
- data/lib/puppet/pops/visitor.rb +2 -2
- data/lib/puppet/property.rb +64 -5
- data/lib/puppet/provider.rb +1 -1
- data/lib/puppet/provider/aixobject.rb +3 -3
- data/lib/puppet/provider/group/aix.rb +4 -4
- data/lib/puppet/provider/macauthorization/macauthorization.rb +1 -1
- data/lib/puppet/provider/mailalias/aliases.rb +1 -1
- data/lib/puppet/provider/mcx/mcxcontent.rb +2 -2
- data/lib/puppet/provider/mount/parsed.rb +1 -1
- data/lib/puppet/provider/nameservice/directoryservice.rb +5 -5
- data/lib/puppet/provider/package/appdmg.rb +3 -3
- data/lib/puppet/provider/package/apple.rb +1 -1
- data/lib/puppet/provider/package/dnf.rb +5 -0
- data/lib/puppet/provider/package/nim.rb +1 -1
- data/lib/puppet/provider/package/pacman.rb +2 -2
- data/lib/puppet/provider/package/pip.rb +5 -3
- data/lib/puppet/provider/package/pip3.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +5 -5
- data/lib/puppet/provider/package/pkgdmg.rb +4 -4
- data/lib/puppet/provider/package/pkgin.rb +1 -1
- data/lib/puppet/provider/package/pkgutil.rb +1 -1
- data/lib/puppet/provider/package/portage.rb +48 -8
- data/lib/puppet/provider/package/sun.rb +1 -1
- data/lib/puppet/provider/package/tdnf.rb +28 -0
- data/lib/puppet/provider/package/yum.rb +22 -4
- data/lib/puppet/provider/parsedfile.rb +2 -2
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/bsd.rb +1 -1
- data/lib/puppet/provider/service/daemontools.rb +2 -2
- data/lib/puppet/provider/service/debian.rb +3 -3
- data/lib/puppet/provider/service/init.rb +5 -3
- data/lib/puppet/provider/service/launchd.rb +16 -2
- data/lib/puppet/provider/service/runit.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +8 -1
- data/lib/puppet/provider/service/systemd.rb +39 -6
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +1 -1
- data/lib/puppet/provider/user/aix.rb +3 -2
- data/lib/puppet/provider/user/directoryservice.rb +4 -3
- data/lib/puppet/provider/user/hpux.rb +1 -1
- data/lib/puppet/provider/user/user_role_add.rb +1 -1
- data/lib/puppet/provider/user/windows_adsi.rb +3 -0
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/reference/type.rb +1 -1
- data/lib/puppet/resource.rb +33 -7
- data/lib/puppet/resource/capability_finder.rb +74 -54
- data/lib/puppet/resource/status.rb +11 -2
- data/lib/puppet/settings.rb +17 -6
- data/lib/puppet/settings/environment_conf.rb +1 -1
- data/lib/puppet/settings/server_list_setting.rb +20 -0
- data/lib/puppet/ssl/certificate_authority.rb +32 -9
- data/lib/puppet/ssl/certificate_authority/interface.rb +164 -24
- data/lib/puppet/ssl/host.rb +3 -3
- data/lib/puppet/ssl/oids.rb +10 -0
- data/lib/puppet/ssl/validator/default_validator.rb +2 -2
- data/lib/puppet/test/test_helper.rb +2 -2
- data/lib/puppet/transaction.rb +12 -0
- data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
- data/lib/puppet/transaction/event.rb +29 -2
- data/lib/puppet/transaction/event_manager.rb +1 -1
- data/lib/puppet/transaction/persistence.rb +84 -0
- data/lib/puppet/transaction/report.rb +49 -2
- data/lib/puppet/transaction/resource_harness.rb +98 -18
- data/lib/puppet/type.rb +63 -21
- data/lib/puppet/type/augeas.rb +3 -3
- data/lib/puppet/type/cron.rb +1 -1
- data/lib/puppet/type/file.rb +39 -2
- data/lib/puppet/type/file/data_sync.rb +13 -5
- data/lib/puppet/type/host.rb +1 -1
- data/lib/puppet/type/mount.rb +2 -6
- data/lib/puppet/type/notify.rb +1 -1
- data/lib/puppet/type/package.rb +1 -1
- data/lib/puppet/type/resources.rb +1 -1
- data/lib/puppet/type/scheduled_task.rb +1 -1
- data/lib/puppet/type/ssh_authorized_key.rb +2 -2
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/yumrepo.rb +3 -3
- data/lib/puppet/type/zone.rb +1 -1
- data/lib/puppet/util.rb +2 -2
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/command_line.rb +6 -2
- data/lib/puppet/util/command_line/trollop.rb +1 -1
- data/lib/puppet/util/execution.rb +2 -2
- data/lib/puppet/util/http_proxy.rb +1 -1
- data/lib/puppet/util/inifile.rb +1 -1
- data/lib/puppet/util/instance_loader.rb +1 -1
- data/lib/puppet/util/logging.rb +1 -1
- data/lib/puppet/util/multi_match.rb +1 -1
- data/lib/puppet/util/plist.rb +15 -5
- data/lib/puppet/util/profiler.rb +1 -1
- data/lib/puppet/util/profiler/around_profiler.rb +1 -1
- data/lib/puppet/util/psych_support.rb +1 -1
- data/lib/puppet/util/rdoc.rb +2 -2
- data/lib/puppet/util/rubygems.rb +1 -1
- data/lib/puppet/util/watcher/periodic_watcher.rb +2 -2
- data/lib/puppet/util/windows/access_control_entry.rb +1 -1
- data/lib/puppet/util/windows/adsi.rb +30 -8
- data/lib/puppet/util/windows/api_types.rb +1 -1
- data/lib/puppet/util/windows/file.rb +59 -0
- data/lib/puppet/util/windows/process.rb +10 -0
- data/lib/puppet/util/windows/security.rb +1 -1
- data/lib/puppet/util/windows/user.rb +22 -4
- data/lib/puppet/util/yaml.rb +15 -3
- data/lib/puppet/vendor/deep_merge/test/test_deep_merge.rb +1 -1
- data/lib/puppet/vendor/rgen_patch.rb +1 -1
- data/lib/puppet/version.rb +2 -2
- data/spec/fixtures/unit/pops/loaders/loaders/no_modules/manifests/site.pp +10 -0
- data/spec/integration/agent/logging_spec.rb +15 -14
- data/spec/integration/application/apply_spec.rb +1 -0
- data/spec/integration/directory_environments_spec.rb +16 -0
- data/spec/integration/environments/settings_spec.rb +32 -4
- data/spec/integration/faces/documentation_spec.rb +1 -1
- data/spec/integration/network/http/api/indirected_routes_spec.rb +33 -0
- data/spec/integration/node/environment_spec.rb +21 -0
- data/spec/integration/parser/collection_spec.rb +10 -0
- data/spec/integration/parser/compiler_spec.rb +76 -840
- data/spec/integration/parser/functions/require_spec.rb +3 -3
- data/spec/integration/parser/parameter_defaults_spec.rb +6 -2
- data/spec/integration/parser/pcore_resource_spec.rb +208 -0
- data/spec/integration/parser/resource_expressions_spec.rb +4 -2
- data/spec/integration/provider/yumrepo_spec.rb +4 -1
- data/spec/integration/transaction/report_spec.rb +666 -0
- data/spec/integration/type/file_spec.rb +11 -12
- data/spec/integration/util/windows/adsi_spec.rb +99 -0
- data/spec/integration/util/windows/principal_spec.rb +109 -60
- data/spec/integration/util/windows/process_spec.rb +4 -2
- data/spec/integration/util/windows/security_spec.rb +34 -8
- data/spec/integration/util/windows/user_spec.rb +26 -4
- data/spec/lib/puppet_spec/files.rb +2 -2
- data/spec/lib/puppet_spec/network.rb +12 -8
- data/spec/shared_examples/rhel_package_provider.rb +341 -0
- data/spec/spec_helper.rb +8 -2
- data/spec/unit/application/cert_spec.rb +20 -0
- data/spec/unit/configurer/plugin_handler_spec.rb +0 -26
- data/spec/unit/configurer_spec.rb +46 -0
- data/spec/unit/defaults_spec.rb +14 -0
- data/spec/unit/face/generate_spec.rb +230 -0
- data/spec/unit/face/help_spec.rb +53 -0
- data/spec/unit/face/parser_spec.rb +6 -0
- data/spec/unit/face/plugin_spec.rb +0 -4
- data/spec/unit/file_system_spec.rb +85 -0
- data/spec/unit/functions/lookup_spec.rb +4 -4
- data/spec/unit/functions/match_spec.rb +2 -2
- data/spec/unit/functions/regsubst_spec.rb +1 -1
- data/spec/unit/functions/split_spec.rb +1 -1
- data/spec/unit/functions/unwrap_spec.rb +29 -0
- data/spec/unit/functions/versioncmp_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +8 -8
- data/spec/unit/indirector/facts/facter_spec.rb +1 -9
- data/spec/unit/indirector/rest_spec.rb +95 -9
- data/spec/unit/module_spec.rb +43 -7
- data/spec/unit/module_tool/applications/installer_spec.rb +10 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +2 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +8 -0
- data/spec/unit/module_tool/tar/mini_spec.rb +3 -3
- data/spec/unit/network/http/api/indirected_routes_spec.rb +49 -58
- data/spec/unit/network/http/api/master/v3_spec.rb +7 -4
- data/spec/unit/network/rights_spec.rb +1 -1
- data/spec/unit/parameter_spec.rb +11 -0
- data/spec/unit/parser/compiler_spec.rb +19 -33
- data/spec/unit/{appmgmt_spec.rb → parser/environment_compiler_spec.rb} +12 -1
- data/spec/unit/parser/functions/create_resources_spec.rb +76 -4
- data/spec/unit/parser/functions/require_spec.rb +2 -2
- data/spec/unit/parser/resource_spec.rb +21 -11
- data/spec/unit/parser/scope_spec.rb +1 -5
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +1 -1
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +1 -1
- data/spec/unit/pops/loaders/loader_paths_spec.rb +1 -1
- data/spec/unit/pops/loaders/loaders_spec.rb +63 -5
- data/spec/unit/pops/loaders/module_loaders_spec.rb +2 -2
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +27 -3
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +8 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +9 -0
- data/spec/unit/pops/puppet_stack_spec.rb +79 -0
- data/spec/unit/pops/resource/resource_type_impl_spec.rb +37 -0
- data/spec/unit/pops/serialization/packer_spec.rb +153 -0
- data/spec/unit/pops/serialization/rgen_spec.rb +88 -0
- data/spec/unit/pops/serialization/serialization_spec.rb +228 -0
- data/spec/unit/pops/types/p_object_type_spec.rb +44 -2
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +42 -0
- data/spec/unit/pops/types/p_sensitive_type_spec.rb +139 -0
- data/spec/unit/pops/types/p_type_set_type_spec.rb +424 -0
- data/spec/unit/pops/types/ruby_generator_spec.rb +497 -181
- data/spec/unit/pops/types/type_calculator_spec.rb +10 -4
- data/spec/unit/pops/types/type_formatter_spec.rb +1 -1
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +2 -2
- data/spec/unit/pops/types/type_parser_spec.rb +1 -1
- data/spec/unit/pops/types/types_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +18 -1
- data/spec/unit/property_spec.rb +48 -11
- data/spec/unit/provider/group/windows_adsi_spec.rb +11 -1
- data/spec/unit/provider/package/dnf_spec.rb +1 -99
- data/spec/unit/provider/package/pacman_spec.rb +4 -4
- data/spec/unit/provider/package/pip_spec.rb +14 -0
- data/spec/unit/provider/package/pkg_spec.rb +6 -0
- data/spec/unit/provider/package/pkgdmg_spec.rb +0 -3
- data/spec/unit/provider/package/portage_spec.rb +64 -8
- data/spec/unit/provider/package/tdnf_spec.rb +18 -0
- data/spec/unit/provider/package/windows/package_spec.rb +4 -1
- data/spec/unit/provider/package/windows_spec.rb +8 -2
- data/spec/unit/provider/package/yum_spec.rb +6 -377
- data/spec/unit/provider/service/base_spec.rb +6 -0
- data/spec/unit/provider/service/debian_spec.rb +16 -7
- data/spec/unit/provider/service/gentoo_spec.rb +6 -0
- data/spec/unit/provider/service/init_spec.rb +7 -0
- data/spec/unit/provider/service/launchd_spec.rb +35 -4
- data/spec/unit/provider/service/openrc_spec.rb +6 -0
- data/spec/unit/provider/service/smf_spec.rb +31 -6
- data/spec/unit/provider/service/src_spec.rb +6 -0
- data/spec/unit/provider/service/systemd_spec.rb +70 -20
- data/spec/unit/provider/service/upstart_spec.rb +6 -0
- data/spec/unit/provider/user/aix_spec.rb +7 -0
- data/spec/unit/provider/user/directoryservice_spec.rb +30 -1
- data/spec/unit/provider/user/windows_adsi_spec.rb +19 -0
- data/spec/unit/resource/capability_finder_spec.rb +51 -3
- data/spec/unit/resource/catalog_spec.rb +5 -0
- data/spec/unit/resource/type_spec.rb +2 -2
- data/spec/unit/resource_spec.rb +19 -0
- data/spec/unit/settings_spec.rb +13 -0
- data/spec/unit/ssl/certificate_authority/interface_spec.rb +176 -10
- data/spec/unit/ssl/certificate_authority_spec.rb +63 -22
- data/spec/unit/ssl/host_spec.rb +1 -1
- data/spec/unit/ssl/oids_spec.rb +24 -21
- data/spec/unit/transaction/event_spec.rb +3 -1
- data/spec/unit/transaction/persistence_spec.rb +173 -0
- data/spec/unit/transaction/report_spec.rb +64 -1
- data/spec/unit/transaction/resource_harness_spec.rb +91 -0
- data/spec/unit/type/file/content_spec.rb +47 -15
- data/spec/unit/type/file_spec.rb +28 -0
- data/spec/unit/type/mount_spec.rb +5 -12
- data/spec/unit/type/yumrepo_spec.rb +1 -5
- data/spec/unit/type_spec.rb +32 -0
- data/spec/unit/util/command_line_spec.rb +11 -0
- data/spec/unit/util/execution_spec.rb +1 -1
- data/spec/unit/util/plist_spec.rb +16 -3
- data/spec/unit/util/storage_spec.rb +4 -1
- data/spec/unit/util/windows/adsi_spec.rb +23 -2
- data/spec/unit/util/windows/file_spec.rb +56 -1
- data/spec/unit/util/windows/sid_spec.rb +31 -7
- data/spec/unit/util/yaml_spec.rb +12 -0
- data/spec/unit/util_spec.rb +87 -20
- metadata +89 -34
- data/ext/puppetlisten/puppetlisten.rb +0 -77
- data/ext/puppetlisten/puppetrun.rb +0 -38
- data/lib/puppet/resource/type_collection_helper.rb +0 -7
- data/spec/unit/parser/functions/defined_spec.rb +0 -120
- data/spec/unit/resource/type_collection_helper_spec.rb +0 -24
@@ -71,7 +71,7 @@ class Puppet::Parser::TypeLoader
|
|
71
71
|
return result
|
72
72
|
end
|
73
73
|
rescue TypeLoaderError => detail
|
74
|
-
# I'm not
|
74
|
+
# I'm not convinced we should just drop these errors, but this
|
75
75
|
# preserves existing behaviours.
|
76
76
|
end
|
77
77
|
end
|
@@ -158,7 +158,7 @@ module Puppet::Plugins::DataProviders
|
|
158
158
|
attr_reader :original_path, :path
|
159
159
|
|
160
160
|
# @param original_path [String] path as found in declaration. May contain interpolation expressions
|
161
|
-
# @param path [Pathname] the expanded
|
161
|
+
# @param path [Pathname] the expanded absolute path
|
162
162
|
# @api public
|
163
163
|
def initialize(original_path, path)
|
164
164
|
@original_path = original_path
|
data/lib/puppet/pops.rb
CHANGED
@@ -10,10 +10,15 @@ module Puppet
|
|
10
10
|
#
|
11
11
|
# @api public
|
12
12
|
module Pops
|
13
|
+
EMPTY_HASH = {}.freeze
|
14
|
+
EMPTY_ARRAY = [].freeze
|
15
|
+
EMPTY_STRING = ''.freeze
|
16
|
+
|
13
17
|
require 'semantic'
|
14
18
|
|
15
19
|
require 'puppet/pops/patterns'
|
16
20
|
require 'puppet/pops/utils'
|
21
|
+
require 'puppet/pops/puppet_stack'
|
17
22
|
|
18
23
|
require 'puppet/pops/adaptable'
|
19
24
|
require 'puppet/pops/adapters'
|
@@ -81,10 +86,14 @@ module Puppet
|
|
81
86
|
end
|
82
87
|
end
|
83
88
|
|
89
|
+
module Resource
|
90
|
+
require 'puppet/pops/resource/resource_type_impl'
|
91
|
+
end
|
84
92
|
module Evaluator
|
85
93
|
require 'puppet/pops/evaluator/literal_evaluator'
|
86
94
|
require 'puppet/pops/evaluator/callable_signature'
|
87
95
|
require 'puppet/pops/evaluator/runtime3_converter'
|
96
|
+
require 'puppet/pops/evaluator/runtime3_resource_support'
|
88
97
|
require 'puppet/pops/evaluator/runtime3_support'
|
89
98
|
require 'puppet/pops/evaluator/evaluator_impl'
|
90
99
|
require 'puppet/pops/evaluator/epp_evaluator'
|
@@ -126,6 +135,10 @@ module Puppet
|
|
126
135
|
module Migration
|
127
136
|
require 'puppet/pops/migration/migration_checker'
|
128
137
|
end
|
138
|
+
|
139
|
+
module Serialization
|
140
|
+
require 'puppet/pops/serialization'
|
141
|
+
end
|
129
142
|
end
|
130
143
|
|
131
144
|
require 'puppet/parser/ast/pops_bridge'
|
data/lib/puppet/pops/adapters.rb
CHANGED
@@ -38,26 +38,19 @@ module Adapters
|
|
38
38
|
# The locator is always the parent locator, all positioned objects are positioned within their
|
39
39
|
# parent. If a positioned object also has a locator that locator is for its children!
|
40
40
|
#
|
41
|
-
@locator ||= find_locator(@adapted.eContainer)
|
41
|
+
@locator ||= self.class.find_locator(@adapted.eContainer)
|
42
42
|
end
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
return found_locator
|
54
|
-
when adapter = self.class.get(o)
|
55
|
-
return adapter.locator
|
56
|
-
else
|
57
|
-
find_locator(o.eContainer)
|
58
|
-
end
|
44
|
+
# @api private
|
45
|
+
def self.find_locator(o)
|
46
|
+
raise ArgumentError, 'InternalError: SourcePosAdapter for something that has no locator among parents' if o.nil?
|
47
|
+
found_locator = o.respond_to?(:locator) ? o.locator : nil
|
48
|
+
return found_locator unless found_locator.nil?
|
49
|
+
adapter = get(o)
|
50
|
+
return adapter.locator unless adapter.nil?
|
51
|
+
container = o.eContainer
|
52
|
+
container.nil? ? nil : find_locator(container)
|
59
53
|
end
|
60
|
-
private :find_locator
|
61
54
|
|
62
55
|
def offset
|
63
56
|
@adapted.offset
|
@@ -71,8 +64,7 @@ module Adapters
|
|
71
64
|
# @note This is an expensive operation
|
72
65
|
#
|
73
66
|
def line
|
74
|
-
|
75
|
-
(@locator ||= find_locator(@adapted.eContainer)).line_for_offset(offset)
|
67
|
+
locator.line_for_offset(offset)
|
76
68
|
end
|
77
69
|
|
78
70
|
# Produces the position on the line of the given offset.
|
@@ -120,33 +112,32 @@ module Adapters
|
|
120
112
|
# object is adapted with the correct loader.
|
121
113
|
#
|
122
114
|
# @see Utils#find_adapter
|
123
|
-
#
|
115
|
+
# @api private
|
124
116
|
class LoaderAdapter < Adaptable::Adapter
|
125
|
-
|
126
|
-
attr_accessor :loader
|
117
|
+
attr_accessor :loader_name
|
127
118
|
|
128
119
|
# Finds the loader to use when loading originates from the source position of the given argument.
|
129
120
|
#
|
130
|
-
# @param
|
131
|
-
# @param
|
121
|
+
# @param [Model::PopsObject] instance The model object
|
122
|
+
# @param [Puppet::Parser::Scope] scope The scope to use
|
123
|
+
# @param [String] file the file from where the model was parsed
|
132
124
|
# @return [Loader,nil] the found loader or `nil` if it could not be found
|
133
125
|
#
|
134
|
-
def self.loader_for_model_object(model, scope)
|
135
|
-
# find the loader that loaded the code, or use the private_environment_loader (sees env + all modules)
|
136
|
-
adapter = Utils.find_adapter(model, self)
|
137
|
-
return adapter.loader unless adapter.nil?
|
138
|
-
|
126
|
+
def self.loader_for_model_object(model, scope, file = nil)
|
139
127
|
if scope.nil?
|
140
128
|
loaders = Puppet.lookup(:loaders) { nil }
|
141
129
|
loaders.nil? ? nil : loaders.private_environment_loader
|
142
130
|
else
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
adapter.nil? ? scope.compiler.loaders.private_environment_loader : adapter.loader
|
131
|
+
loaders = scope.compiler.loaders
|
132
|
+
loader_name = loader_name_by_source(scope.environment, model, file)
|
133
|
+
loader_name.nil? ? loaders.private_environment_loader : loaders[loader_name]
|
147
134
|
end
|
148
135
|
end
|
149
136
|
|
137
|
+
class PathsAndNameCacheAdapter < Puppet::Pops::Adaptable::Adapter
|
138
|
+
attr_accessor :cache, :paths
|
139
|
+
end
|
140
|
+
|
150
141
|
# Attempts to find the module that `instance` originates from by looking at it's {SourcePosAdapter} and
|
151
142
|
# compare the `locator.file` found there with the module paths given in the environment found in the
|
152
143
|
# given `scope`. If the file is found to be relative to a path, then the first segment of the relative
|
@@ -157,25 +148,29 @@ module Adapters
|
|
157
148
|
#
|
158
149
|
# @param scope
|
159
150
|
# @param instance
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
151
|
+
# @api private
|
152
|
+
def self.loader_name_by_source(environment, instance, file)
|
153
|
+
file = find_file(instance) if file.nil?
|
154
|
+
return nil if file.nil?
|
155
|
+
pn_adapter = PathsAndNameCacheAdapter.adapt(environment) do |a|
|
156
|
+
a.paths ||= environment.modulepath.map { |p| Pathname.new(p) }
|
157
|
+
a.cache ||= {}
|
158
|
+
end
|
159
|
+
dir = File.dirname(file)
|
160
|
+
pn_adapter.cache.fetch(dir) do |key|
|
161
|
+
mod = find_module_for_dir(environment, pn_adapter.paths, dir)
|
162
|
+
loader_name = mod.nil? ? nil : "#{mod.name} private"
|
163
|
+
pn_adapter.cache[key] = loader_name
|
169
164
|
end
|
170
|
-
nil
|
171
165
|
end
|
172
166
|
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
167
|
+
# @api private
|
168
|
+
def self.find_module_for_dir(environment, paths, dir)
|
169
|
+
return nil if dir.nil?
|
170
|
+
file_path = Pathname.new(dir)
|
171
|
+
paths.each do |path|
|
177
172
|
begin
|
178
|
-
relative_path = file_path.relative_path_from(
|
173
|
+
relative_path = file_path.relative_path_from(path).to_s.split(File::SEPARATOR)
|
179
174
|
rescue ArgumentError
|
180
175
|
# file_path was not relative to the module_path. That's OK.
|
181
176
|
next
|
@@ -187,7 +182,12 @@ module Adapters
|
|
187
182
|
end
|
188
183
|
nil
|
189
184
|
end
|
190
|
-
|
185
|
+
|
186
|
+
# @api private
|
187
|
+
def self.find_file(instance)
|
188
|
+
source_pos = Utils.find_closest_positioned(instance)
|
189
|
+
source_pos.nil? ? nil : source_pos.locator.file
|
190
|
+
end
|
191
191
|
end
|
192
192
|
end
|
193
193
|
end
|
@@ -6,7 +6,7 @@ require 'puppet/pops/binder/scheme_handler/symbolic_scheme'
|
|
6
6
|
# URI
|
7
7
|
# ---
|
8
8
|
# The URI scheme is `confdir:/[<FQN>]['?' | [?optional]` where FQN is the fully qualified name of the bindings to load.
|
9
|
-
# The
|
9
|
+
# The reference is made optional by using a URI query of `?` or `?optional`.
|
10
10
|
#
|
11
11
|
# @todo
|
12
12
|
# If the file to load is outside of the file system rooted at $confdir (in a gem, or just on the Ruby path), it can not
|
@@ -9,8 +9,6 @@ class AccessOperator
|
|
9
9
|
#
|
10
10
|
include Runtime3Support
|
11
11
|
|
12
|
-
EMPTY_STRING = ''.freeze
|
13
|
-
|
14
12
|
attr_reader :semantic
|
15
13
|
|
16
14
|
# Initialize with AccessExpression to enable reporting issues
|
@@ -266,6 +264,19 @@ class AccessOperator
|
|
266
264
|
end
|
267
265
|
end
|
268
266
|
|
267
|
+
def access_PSensitiveType(o, scope, keys)
|
268
|
+
keys.flatten!
|
269
|
+
if keys.size == 1
|
270
|
+
type = keys[0]
|
271
|
+
unless type.is_a?(Types::PAnyType)
|
272
|
+
fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Sensitive-Type', :actual => type.class})
|
273
|
+
end
|
274
|
+
Types::PSensitiveType.new(type)
|
275
|
+
else
|
276
|
+
fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Sensitive-Type', :min => 1, :actual => keys.size})
|
277
|
+
end
|
278
|
+
end
|
279
|
+
|
269
280
|
def access_PObjectType(o, scope, keys)
|
270
281
|
keys.flatten!
|
271
282
|
if keys.size == 1
|
@@ -275,6 +286,15 @@ class AccessOperator
|
|
275
286
|
end
|
276
287
|
end
|
277
288
|
|
289
|
+
def access_PTypeSetType(o, scope, keys)
|
290
|
+
keys.flatten!
|
291
|
+
if keys.size == 1
|
292
|
+
Types::TypeFactory.type_set(keys[0])
|
293
|
+
else
|
294
|
+
fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'TypeSet-Type', :min => 1, :actual => keys.size})
|
295
|
+
end
|
296
|
+
end
|
297
|
+
|
278
298
|
def access_PNotUndefType(o, scope, keys)
|
279
299
|
keys.flatten!
|
280
300
|
case keys.size
|
@@ -597,11 +617,13 @@ class AccessOperator
|
|
597
617
|
#
|
598
618
|
result = keys.each_with_index.map do |c, i|
|
599
619
|
name = if c.is_a?(Types::PResourceType) && !c.type_name.nil? && c.title.nil?
|
620
|
+
strict_check(c, i)
|
600
621
|
# type_name is already downcase. Don't waste time trying to downcase again
|
601
622
|
c.type_name
|
602
623
|
elsif c.is_a?(String)
|
603
624
|
c.downcase
|
604
625
|
elsif c.is_a?(Types::PTypeReferenceType)
|
626
|
+
strict_check(c, i)
|
605
627
|
c.type_string.downcase
|
606
628
|
else
|
607
629
|
fail(Issues::ILLEGAL_HOSTCLASS_NAME, @semantic.keys[i], {:name => c})
|
@@ -634,6 +656,21 @@ class AccessOperator
|
|
634
656
|
# returns single type as type, else an array of types
|
635
657
|
return result_type_array ? result : result.pop
|
636
658
|
end
|
659
|
+
|
660
|
+
# PUP-6083 - Using Class[Foo] is deprecated since an arbitrary foo will trigger a "resource not found"
|
661
|
+
# @api private
|
662
|
+
def strict_check(name, index)
|
663
|
+
if Puppet[:strict] != :off
|
664
|
+
msg = 'Upper cased class-name in a Class[<class-name>] is deprecated, class-name should be a lowercase string'
|
665
|
+
case Puppet[:strict]
|
666
|
+
when :error
|
667
|
+
fail(Issues::ILLEGAL_HOSTCLASS_NAME, @semantic.keys[index], {:name => name})
|
668
|
+
when :warning
|
669
|
+
Puppet.warn_once(:deprecation, 'ClassReferenceInUpperCase', msg)
|
670
|
+
end
|
671
|
+
end
|
672
|
+
end
|
673
|
+
|
637
674
|
end
|
638
675
|
end
|
639
676
|
end
|
@@ -18,16 +18,15 @@ class Closure < CallableSignature
|
|
18
18
|
attr_reader :model
|
19
19
|
attr_reader :enclosing_scope
|
20
20
|
|
21
|
-
def initialize(evaluator, model
|
21
|
+
def initialize(evaluator, model)
|
22
22
|
@evaluator = evaluator
|
23
23
|
@model = model
|
24
|
-
@enclosing_scope = scope
|
25
24
|
end
|
26
25
|
|
27
26
|
# Evaluates a closure in its enclosing scope after having matched given arguments with parameters (from left to right)
|
28
27
|
# @api public
|
29
28
|
def call(*args)
|
30
|
-
call_with_scope(
|
29
|
+
call_with_scope(enclosing_scope, args)
|
31
30
|
end
|
32
31
|
|
33
32
|
# This method makes a Closure compatible with a Dispatch. This is used when the closure is wrapped in a Function
|
@@ -35,7 +34,7 @@ class Closure < CallableSignature
|
|
35
34
|
# checks of the argument type/arity validity).
|
36
35
|
# @api private
|
37
36
|
def invoke(instance, calling_scope, args, &block)
|
38
|
-
|
37
|
+
enclosing_scope.with_global_scope do |global_scope|
|
39
38
|
call_with_scope(global_scope, args, &block)
|
40
39
|
end
|
41
40
|
end
|
@@ -43,8 +42,9 @@ class Closure < CallableSignature
|
|
43
42
|
# Call closure with argument assignment by name
|
44
43
|
def call_by_name(args_hash, enforce_parameters)
|
45
44
|
if enforce_parameters
|
45
|
+
closure_scope = enclosing_scope
|
46
46
|
# Push a temporary parameter scope used while resolving the parameter defaults
|
47
|
-
|
47
|
+
closure_scope.with_parameter_scope(closure_name, parameter_names) do |param_scope|
|
48
48
|
# Assign all non-nil values, even those that represent non-existent paramaters.
|
49
49
|
args_hash.each { |k, v| param_scope[k] = v unless v.nil? }
|
50
50
|
parameters.each do |p|
|
@@ -56,7 +56,7 @@ class Closure < CallableSignature
|
|
56
56
|
# No default. Assign nil if the args_hash included it
|
57
57
|
param_scope[name] = nil if args_hash.include?(name)
|
58
58
|
else
|
59
|
-
param_scope[name] = param_scope.evaluate(name, p.value,
|
59
|
+
param_scope[name] = param_scope.evaluate(name, p.value, closure_scope, @evaluator)
|
60
60
|
end
|
61
61
|
end
|
62
62
|
end
|
@@ -65,7 +65,7 @@ class Closure < CallableSignature
|
|
65
65
|
Types::TypeMismatchDescriber.validate_parameters(closure_name, params_struct, args_hash)
|
66
66
|
end
|
67
67
|
|
68
|
-
@evaluator.evaluate_block_with_bindings(
|
68
|
+
@evaluator.evaluate_block_with_bindings(enclosing_scope, args_hash, @model.body)
|
69
69
|
end
|
70
70
|
|
71
71
|
def parameters
|
@@ -113,15 +113,38 @@ class Closure < CallableSignature
|
|
113
113
|
CLOSURE_NAME
|
114
114
|
end
|
115
115
|
|
116
|
+
class Dynamic < Closure
|
117
|
+
def initialize(evaluator, model, scope)
|
118
|
+
@enclosing_scope = scope
|
119
|
+
super(evaluator, model)
|
120
|
+
end
|
121
|
+
|
122
|
+
def enclosing_scope
|
123
|
+
@enclosing_scope
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
116
127
|
class Named < Closure
|
117
|
-
def initialize(name, evaluator, model
|
128
|
+
def initialize(name, evaluator, model)
|
118
129
|
@name = name
|
119
|
-
super(evaluator, model
|
130
|
+
super(evaluator, model)
|
120
131
|
end
|
121
132
|
|
122
133
|
def closure_name
|
123
134
|
@name
|
124
135
|
end
|
136
|
+
|
137
|
+
# The assigned enclosing scope, or global scope if enclosing scope was initialized to nil
|
138
|
+
#
|
139
|
+
def enclosing_scope
|
140
|
+
# Named closures are typically used for puppet functions and they cannot be defined
|
141
|
+
# in an enclosing scope as they are cashed and reused. They need to bind to the
|
142
|
+
# global scope at time of use rather at time of definition.
|
143
|
+
# Unnamed closures are always a runtime construct, they are never bound by a loader
|
144
|
+
# and are thus garbage collected at end of a compilation.
|
145
|
+
#
|
146
|
+
Puppet.lookup(:global_scope) { {} }
|
147
|
+
end
|
125
148
|
end
|
126
149
|
|
127
150
|
private
|
@@ -196,8 +219,10 @@ class Closure < CallableSignature
|
|
196
219
|
types = []
|
197
220
|
range = [0, 0]
|
198
221
|
in_optional_parameters = false
|
222
|
+
closure_scope = enclosing_scope
|
223
|
+
|
199
224
|
parameters.each do |param|
|
200
|
-
type, param_range = create_param_type(param)
|
225
|
+
type, param_range = create_param_type(param, closure_scope)
|
201
226
|
|
202
227
|
types << type
|
203
228
|
|
@@ -221,9 +246,10 @@ class Closure < CallableSignature
|
|
221
246
|
def create_params_struct
|
222
247
|
type_factory = Types::TypeFactory
|
223
248
|
members = {}
|
249
|
+
closure_scope = enclosing_scope
|
224
250
|
|
225
251
|
parameters.each do |param|
|
226
|
-
arg_type, param_range = create_param_type(param)
|
252
|
+
arg_type, param_range = create_param_type(param, closure_scope)
|
227
253
|
key_type = type_factory.string(nil, param.name.to_s)
|
228
254
|
key_type = type_factory.optional(key_type) unless param.value.nil?
|
229
255
|
members[key_type] = arg_type
|
@@ -231,9 +257,9 @@ class Closure < CallableSignature
|
|
231
257
|
type_factory.struct(members)
|
232
258
|
end
|
233
259
|
|
234
|
-
def create_param_type(param)
|
260
|
+
def create_param_type(param, closure_scope)
|
235
261
|
type = if param.type_expr
|
236
|
-
@evaluator.evaluate(param.type_expr,
|
262
|
+
@evaluator.evaluate(param.type_expr, closure_scope)
|
237
263
|
else
|
238
264
|
Types::PAnyType::DEFAULT
|
239
265
|
end
|
@@ -19,7 +19,8 @@ class CollectorTransformer
|
|
19
19
|
fail "Classes cannot be collected"
|
20
20
|
end
|
21
21
|
|
22
|
-
resource_type =
|
22
|
+
resource_type = Runtime3ResourceSupport.find_resource_type(scope, type)
|
23
|
+
|
23
24
|
fail "Resource type #{type} doesn't exist" unless resource_type
|
24
25
|
|
25
26
|
adapter = Adapters::SourcePosAdapter.adapt(o)
|
@@ -155,6 +156,10 @@ protected
|
|
155
156
|
@@evaluator.evaluate(o, scope)
|
156
157
|
end
|
157
158
|
|
159
|
+
def query_LiteralUndef(o, scope)
|
160
|
+
nil
|
161
|
+
end
|
162
|
+
|
158
163
|
def query_QualifiedName(o, scope)
|
159
164
|
@@evaluator.evaluate(o, scope)
|
160
165
|
end
|
@@ -205,6 +210,10 @@ protected
|
|
205
210
|
@@evaluator.evaluate(o, scope)
|
206
211
|
end
|
207
212
|
|
213
|
+
def match_LiteralUndef(o, scope)
|
214
|
+
nil
|
215
|
+
end
|
216
|
+
|
208
217
|
def match_ConcatenatedString(o, scope)
|
209
218
|
@@evaluator.evaluate(o, scope)
|
210
219
|
end
|