puppet 5.4.0 → 5.5.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.
- data/Gemfile +3 -3
- data/MAINTAINERS +0 -19
- data/README.md +5 -5
- data/Rakefile +26 -0
- data/conf/auth.conf +5 -0
- data/ext/project_data.yaml +1 -0
- data/ext/regexp_nodes/regexp_nodes.rb +3 -4
- data/lib/puppet/application/apply.rb +1 -1
- data/lib/puppet/application/cert.rb +3 -1
- data/lib/puppet/application/device.rb +100 -13
- data/lib/puppet/application/facts.rb +5 -0
- data/lib/puppet/application/lookup.rb +12 -2
- data/lib/puppet/configurer.rb +37 -17
- data/lib/puppet/confine.rb +4 -1
- data/lib/puppet/datatypes.rb +1 -1
- data/lib/puppet/environments.rb +1 -1
- data/lib/puppet/error.rb +6 -3
- data/lib/puppet/external/dot.rb +0 -7
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/face/config.rb +92 -10
- data/lib/puppet/face/epp.rb +31 -6
- data/lib/puppet/face/facts.rb +49 -0
- data/lib/puppet/face/help.rb +33 -35
- data/lib/puppet/face/help/action.erb +1 -1
- data/lib/puppet/face/help/face.erb +1 -1
- data/lib/puppet/face/man.rb +55 -12
- data/lib/puppet/face/parser.rb +30 -3
- data/lib/puppet/file_bucket/file.rb +0 -2
- data/lib/puppet/file_serving/base.rb +10 -10
- data/lib/puppet/forge.rb +3 -3
- data/lib/puppet/forge/errors.rb +3 -3
- data/lib/puppet/functions.rb +1 -3
- data/lib/puppet/functions/alert.rb +1 -1
- data/lib/puppet/functions/all.rb +6 -6
- data/lib/puppet/functions/annotate.rb +10 -10
- data/lib/puppet/functions/any.rb +6 -6
- data/lib/puppet/functions/assert_type.rb +4 -4
- data/lib/puppet/functions/binary_file.rb +14 -2
- data/lib/puppet/functions/break.rb +31 -2
- data/lib/puppet/functions/call.rb +4 -4
- data/lib/puppet/functions/contain.rb +19 -3
- data/lib/puppet/functions/convert_to.rb +6 -5
- data/lib/puppet/functions/crit.rb +1 -1
- data/lib/puppet/functions/debug.rb +1 -1
- data/lib/puppet/functions/defined.rb +11 -9
- data/lib/puppet/functions/dig.rb +26 -2
- data/lib/puppet/functions/each.rb +8 -8
- data/lib/puppet/functions/emerg.rb +1 -1
- data/lib/puppet/functions/empty.rb +79 -0
- data/lib/puppet/functions/err.rb +1 -1
- data/lib/puppet/functions/eyaml_lookup_key.rb +3 -1
- data/lib/puppet/functions/filter.rb +7 -7
- data/lib/puppet/functions/find_file.rb +15 -1
- data/lib/puppet/functions/flatten.rb +64 -0
- data/lib/puppet/functions/hiera.rb +6 -6
- data/lib/puppet/functions/hiera_array.rb +6 -6
- data/lib/puppet/functions/hiera_hash.rb +6 -6
- data/lib/puppet/functions/hiera_include.rb +8 -8
- data/lib/puppet/functions/include.rb +28 -2
- data/lib/puppet/functions/info.rb +1 -1
- data/lib/puppet/functions/inline_epp.rb +2 -2
- data/lib/puppet/functions/join.rb +56 -0
- data/lib/puppet/functions/json_data.rb +2 -2
- data/lib/puppet/functions/keys.rb +25 -0
- data/lib/puppet/functions/length.rb +44 -0
- data/lib/puppet/functions/lest.rb +39 -1
- data/lib/puppet/functions/lookup.rb +2 -1
- data/lib/puppet/functions/map.rb +10 -9
- data/lib/puppet/functions/match.rb +6 -6
- data/lib/puppet/functions/new.rb +995 -2
- data/lib/puppet/functions/next.rb +1 -1
- data/lib/puppet/functions/notice.rb +1 -1
- data/lib/puppet/functions/reduce.rb +6 -6
- data/lib/puppet/functions/regsubst.rb +9 -3
- data/lib/puppet/functions/require.rb +36 -2
- data/lib/puppet/functions/return.rb +1 -1
- data/lib/puppet/functions/reverse_each.rb +71 -2
- data/lib/puppet/functions/slice.rb +23 -9
- data/lib/puppet/functions/split.rb +12 -10
- data/lib/puppet/functions/step.rb +73 -1
- data/lib/puppet/functions/strftime.rb +176 -2
- data/lib/puppet/functions/then.rb +65 -2
- data/lib/puppet/functions/tree_each.rb +19 -19
- data/lib/puppet/functions/type.rb +42 -1
- data/lib/puppet/functions/unique.rb +13 -13
- data/lib/puppet/functions/unwrap.rb +8 -4
- data/lib/puppet/functions/values.rb +25 -0
- data/lib/puppet/functions/versioncmp.rb +1 -1
- data/lib/puppet/functions/warning.rb +1 -1
- data/lib/puppet/functions/with.rb +6 -4
- data/lib/puppet/functions/yaml_data.rb +3 -1
- data/lib/puppet/indirector/certificate_status/file.rb +1 -1
- data/lib/puppet/indirector/facts/facter.rb +1 -3
- data/lib/puppet/indirector/facts/rest.rb +21 -0
- data/lib/puppet/indirector/facts/yaml.rb +0 -4
- data/lib/puppet/indirector/rest.rb +2 -2
- data/lib/puppet/module.rb +3 -3
- data/lib/puppet/module/task.rb +2 -3
- data/lib/puppet/module_tool/applications/application.rb +4 -4
- data/lib/puppet/module_tool/applications/builder.rb +2 -2
- data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
- data/lib/puppet/module_tool/applications/unpacker.rb +2 -2
- data/lib/puppet/module_tool/metadata.rb +3 -3
- data/lib/puppet/network/authconfig.rb +1 -1
- data/lib/puppet/network/format_support.rb +1 -1
- data/lib/puppet/network/formats.rb +5 -7
- data/lib/puppet/network/http/api/indirected_routes.rb +1 -0
- data/lib/puppet/network/http/api/master/v3/environment.rb +2 -2
- data/lib/puppet/network/http/api/master/v3/environments.rb +2 -2
- data/lib/puppet/network/http/error.rb +3 -3
- data/lib/puppet/network/resolver.rb +1 -2
- data/lib/puppet/parser/compiler.rb +12 -5
- data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +1 -1
- data/lib/puppet/parser/functions/fqdn_rand.rb +15 -4
- data/lib/puppet/parser/functions/new.rb +31 -46
- data/lib/puppet/parser/parser_factory.rb +1 -1
- data/lib/puppet/parser/resource.rb +1 -1
- data/lib/puppet/parser/type_loader.rb +11 -11
- data/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/lib/puppet/pops/evaluator/collector_transformer.rb +1 -1
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +2 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +5 -2
- data/lib/puppet/pops/functions/dispatch.rb +1 -1
- data/lib/puppet/pops/issue_reporter.rb +18 -1
- data/lib/puppet/pops/issues.rb +6 -3
- data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -2
- data/lib/puppet/pops/loader/task_instantiator.rb +5 -5
- data/lib/puppet/pops/loader/type_definition_instantiator.rb +4 -1
- data/lib/puppet/pops/loaders.rb +18 -7
- data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
- data/lib/puppet/pops/lookup/lookup_adapter.rb +55 -6
- data/lib/puppet/pops/model/factory.rb +6 -3
- data/lib/puppet/pops/model/model_tree_dumper.rb +4 -0
- data/lib/puppet/pops/model/pn_transformer.rb +400 -0
- data/lib/puppet/pops/parser/egrammar.ra +1 -1
- data/lib/puppet/pops/parser/eparser.rb +1 -1
- data/lib/puppet/pops/parser/heredoc_support.rb +1 -1
- data/lib/puppet/pops/parser/lexer_support.rb +3 -2
- data/lib/puppet/pops/parser/locator.rb +0 -2
- data/lib/puppet/pops/parser/pn_parser.rb +316 -0
- data/lib/puppet/pops/pcore.rb +17 -17
- data/lib/puppet/pops/pn.rb +236 -0
- data/lib/puppet/pops/serialization/json.rb +7 -7
- data/lib/puppet/pops/types/class_loader.rb +6 -3
- data/lib/puppet/pops/types/implementation_registry.rb +28 -35
- data/lib/puppet/pops/types/p_object_type.rb +3 -3
- data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +24 -1
- data/lib/puppet/pops/types/ruby_generator.rb +3 -4
- data/lib/puppet/pops/types/type_calculator.rb +1 -1
- data/lib/puppet/pops/types/type_factory.rb +0 -4
- data/lib/puppet/pops/types/type_mismatch_describer.rb +1 -1
- data/lib/puppet/pops/types/type_parser.rb +14 -7
- data/lib/puppet/pops/types/types.rb +1 -1
- data/lib/puppet/pops/utils.rb +2 -2
- data/lib/puppet/pops/validation/checker4_0.rb +6 -2
- data/lib/puppet/provider/group/groupadd.rb +3 -1
- data/lib/puppet/provider/group/windows_adsi.rb +4 -7
- data/lib/puppet/provider/nameservice.rb +3 -3
- data/lib/puppet/provider/package/pacman.rb +4 -4
- data/lib/puppet/provider/package/pip.rb +3 -3
- data/lib/puppet/provider/package/pkgdmg.rb +3 -3
- data/lib/puppet/provider/package/pkgutil.rb +2 -2
- data/lib/puppet/provider/package/portage.rb +9 -9
- data/lib/puppet/provider/package/zypper.rb +2 -2
- data/lib/puppet/provider/service/base.rb +1 -1
- data/lib/puppet/provider/service/smf.rb +3 -2
- data/lib/puppet/provider/service/systemd.rb +1 -1
- data/lib/puppet/provider/user/useradd.rb +6 -2
- data/lib/puppet/provider/user/windows_adsi.rb +1 -1
- data/lib/puppet/provider/yumrepo/inifile.rb +20 -9
- data/lib/puppet/provider/zfs/zfs.rb +1 -1
- data/lib/puppet/reference/configuration.rb +2 -0
- data/lib/puppet/reference/type.rb +11 -11
- data/lib/puppet/resource.rb +1 -1
- data/lib/puppet/resource/capability_finder.rb +5 -5
- data/lib/puppet/resource/catalog.rb +6 -3
- data/lib/puppet/resource/status.rb +9 -2
- data/lib/puppet/resource/type.rb +1 -1
- data/lib/puppet/settings.rb +31 -19
- data/lib/puppet/settings/base_setting.rb +5 -0
- data/lib/puppet/settings/config_file.rb +1 -1
- data/lib/puppet/settings/ttl_setting.rb +5 -0
- data/lib/puppet/ssl/certificate_factory.rb +2 -2
- data/lib/puppet/ssl/certificate_request.rb +0 -2
- data/lib/puppet/syntax_checkers/json.rb +1 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +2 -2
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +18 -12
- data/lib/puppet/type.rb +9 -13
- data/lib/puppet/type/augeas.rb +2 -2
- data/lib/puppet/type/cron.rb +11 -6
- data/lib/puppet/type/exec.rb +1 -1
- data/lib/puppet/type/file.rb +4 -5
- data/lib/puppet/type/host.rb +1 -1
- data/lib/puppet/type/k5login.rb +30 -54
- data/lib/puppet/type/package.rb +3 -3
- data/lib/puppet/type/schedule.rb +12 -12
- data/lib/puppet/type/scheduled_task.rb +2 -2
- data/lib/puppet/type/ssh_authorized_key.rb +5 -5
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +1 -1
- data/lib/puppet/type/user.rb +1 -1
- data/lib/puppet/type/yumrepo.rb +26 -5
- data/lib/puppet/util.rb +0 -4
- data/lib/puppet/util/backups.rb +1 -1
- data/lib/puppet/util/inifile.rb +3 -4
- data/lib/puppet/util/json.rb +68 -0
- data/lib/puppet/util/json_lockfile.rb +3 -3
- data/lib/puppet/util/log.rb +2 -5
- data/lib/puppet/util/log/destinations.rb +2 -2
- data/lib/puppet/util/network_device/cisco/facts.rb +1 -1
- data/lib/puppet/util/plist.rb +1 -1
- data/lib/puppet/util/reference.rb +1 -8
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +0 -2
- data/lib/puppet/util/windows/adsi.rb +15 -18
- data/lib/puppet/util/windows/com.rb +2 -1
- data/lib/puppet/util/windows/file.rb +2 -2
- data/lib/puppet/util/windows/principal.rb +7 -6
- data/lib/puppet/util/windows/sid.rb +60 -7
- data/lib/puppet/util/windows/taskscheduler.rb +0 -9
- data/lib/puppet/version.rb +1 -1
- data/lib/puppet_pal.rb +53 -48
- data/locales/ja/puppet.po +1357 -912
- data/locales/puppet.pot +549 -466
- data/man/man5/puppet.conf.5 +103 -20
- data/man/man8/puppet-agent.8 +6 -2
- data/man/man8/puppet-apply.8 +2 -2
- data/man/man8/puppet-ca.8 +1 -1
- data/man/man8/puppet-catalog.8 +1 -1
- data/man/man8/puppet-cert.8 +1 -1
- data/man/man8/puppet-certificate.8 +1 -1
- data/man/man8/puppet-certificate_request.8 +1 -1
- data/man/man8/puppet-certificate_revocation_list.8 +1 -1
- data/man/man8/puppet-config.8 +35 -1
- data/man/man8/puppet-describe.8 +1 -1
- data/man/man8/puppet-device.8 +33 -11
- data/man/man8/puppet-doc.8 +1 -1
- data/man/man8/puppet-epp.8 +34 -12
- data/man/man8/puppet-facts.8 +50 -1
- data/man/man8/puppet-filebucket.8 +38 -11
- data/man/man8/puppet-generate.8 +1 -1
- data/man/man8/puppet-help.8 +1 -1
- data/man/man8/puppet-key.8 +1 -1
- data/man/man8/puppet-lookup.8 +1 -1
- data/man/man8/puppet-man.8 +10 -4
- data/man/man8/puppet-master.8 +1 -1
- data/man/man8/puppet-module.8 +15 -6
- data/man/man8/puppet-node.8 +1 -1
- data/man/man8/puppet-parser.8 +31 -8
- data/man/man8/puppet-plugin.8 +1 -1
- data/man/man8/puppet-report.8 +1 -1
- data/man/man8/puppet-resource.8 +1 -1
- data/man/man8/puppet-script.8 +67 -0
- data/man/man8/puppet-status.8 +1 -1
- data/man/man8/puppet.8 +3 -3
- data/spec/fixtures/unit/pops/binder/bindings_composer/ok/modules/awesome2/lib/puppet_x/awesome2/echo_scheme_handler.rb +1 -1
- data/spec/integration/application/apply_spec.rb +15 -15
- data/spec/integration/application/lookup_spec.rb +21 -0
- data/spec/integration/faces/config_spec.rb +16 -4
- data/spec/integration/network/http/api/indirected_routes_spec.rb +5 -5
- data/spec/integration/parser/catalog_spec.rb +1 -1
- data/spec/integration/parser/collection_spec.rb +2 -2
- data/spec/integration/parser/compiler_spec.rb +17 -18
- data/spec/integration/parser/pcore_resource_spec.rb +2 -2
- data/spec/integration/parser/scope_spec.rb +2 -2
- data/spec/integration/ssl/certificate_authority_spec.rb +7 -7
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +1 -1
- data/spec/integration/ssl/key_spec.rb +1 -1
- data/spec/integration/transaction/report_spec.rb +3 -3
- data/spec/integration/transaction_spec.rb +0 -1
- data/spec/integration/type/file_spec.rb +10 -11
- data/spec/integration/type_spec.rb +1 -2
- data/spec/integration/util/windows/adsi_spec.rb +86 -1
- data/spec/integration/util/windows/principal_spec.rb +11 -2
- data/spec/integration/util/windows/security_spec.rb +2 -2
- data/spec/lib/matchers/json.rb +4 -4
- data/spec/lib/puppet_spec/language.rb +34 -35
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/shared_behaviours/file_server_terminus.rb +0 -2
- data/spec/shared_behaviours/things_that_declare_options.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- data/spec/unit/application/cert_spec.rb +21 -9
- data/spec/unit/application/device_spec.rb +96 -2
- data/spec/unit/application/face_base_spec.rb +2 -2
- data/spec/unit/application/lookup_spec.rb +0 -1
- data/spec/unit/configurer_spec.rb +14 -0
- data/spec/unit/confine_spec.rb +16 -0
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +4 -4
- data/spec/unit/datatypes_spec.rb +49 -0
- data/spec/unit/environments_spec.rb +7 -0
- data/spec/unit/face/config_spec.rb +116 -12
- data/spec/unit/face/epp_face_spec.rb +53 -2
- data/spec/unit/face/facts_spec.rb +53 -0
- data/spec/unit/face/help_spec.rb +62 -69
- data/spec/unit/face/man_spec.rb +26 -0
- data/spec/unit/face/module/list_spec.rb +0 -1
- data/spec/unit/face/parser_spec.rb +78 -0
- data/spec/unit/file_bucket/dipper_spec.rb +0 -4
- data/spec/unit/file_serving/content_spec.rb +0 -1
- data/spec/unit/file_serving/fileset_spec.rb +0 -1
- data/spec/unit/file_serving/metadata_spec.rb +0 -1
- data/spec/unit/file_serving/terminus_selector_spec.rb +0 -2
- data/spec/unit/forge_spec.rb +1 -2
- data/spec/unit/functions/assert_type_spec.rb +1 -1
- data/spec/unit/functions/empty_spec.rb +77 -0
- data/spec/unit/functions/epp_spec.rb +1 -1
- data/spec/unit/functions/flatten_spec.rb +31 -0
- data/spec/unit/functions/include_spec.rb +2 -2
- data/spec/unit/functions/inline_epp_spec.rb +1 -1
- data/spec/unit/functions/join_spec.rb +33 -0
- data/spec/unit/functions/keys_spec.rb +31 -0
- data/spec/unit/functions/length_spec.rb +50 -0
- data/spec/unit/functions/lookup_fixture_spec.rb +1 -1
- data/spec/unit/functions/lookup_spec.rb +52 -0
- data/spec/unit/functions/shared.rb +1 -1
- data/spec/unit/functions/values_spec.rb +30 -0
- data/spec/unit/functions/versioncmp_spec.rb +1 -1
- data/spec/unit/functions4_spec.rb +30 -32
- data/spec/unit/graph/title_hash_prioritizer_spec.rb +2 -1
- data/spec/unit/indirector/catalog/compiler_spec.rb +0 -15
- data/spec/unit/indirector/facts/rest_spec.rb +45 -0
- data/spec/unit/indirector/facts/yaml_spec.rb +6 -0
- data/spec/unit/indirector/file_bucket_file/file_spec.rb +2 -2
- data/spec/unit/indirector/indirection_spec.rb +1 -1
- data/spec/unit/indirector/node/ldap_spec.rb +2 -2
- data/spec/unit/indirector/request_spec.rb +0 -2
- data/spec/unit/indirector/rest_spec.rb +2 -2
- data/spec/unit/indirector_spec.rb +0 -1
- data/spec/unit/info_service_spec.rb +1 -1
- data/spec/unit/interface/action_manager_spec.rb +1 -1
- data/spec/unit/interface/action_spec.rb +1 -1
- data/spec/unit/module_spec.rb +0 -5
- data/spec/unit/module_tool/applications/builder_spec.rb +1 -1
- data/spec/unit/module_tool/applications/unpacker_spec.rb +4 -4
- data/spec/unit/network/formats_spec.rb +5 -13
- data/spec/unit/network/http/api/indirected_routes_spec.rb +6 -2
- data/spec/unit/network/http/connection_spec.rb +1 -1
- data/spec/unit/network/http/handler_spec.rb +3 -2
- data/spec/unit/node/environment_spec.rb +1 -1
- data/spec/unit/node_spec.rb +3 -3
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/environment_compiler_spec.rb +8 -8
- data/spec/unit/parser/functions/create_resources_spec.rb +1 -1
- data/spec/unit/parser/functions/fail_spec.rb +1 -1
- data/spec/unit/parser/functions/fqdn_rand_spec.rb +24 -0
- data/spec/unit/parser/functions/realize_spec.rb +1 -1
- data/spec/unit/parser/resource_spec.rb +0 -1
- data/spec/unit/parser/scope_spec.rb +3 -3
- data/spec/unit/parser/type_loader_spec.rb +1 -1
- data/spec/unit/pops/adaptable_spec.rb +0 -1
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +0 -3
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +0 -4
- data/spec/unit/pops/factory_rspec_helper.rb +1 -1
- data/spec/unit/pops/factory_spec.rb +5 -5
- data/spec/unit/pops/issues_spec.rb +23 -8
- data/spec/unit/pops/loaders/loaders_spec.rb +24 -2
- data/spec/unit/pops/loaders/static_loader_spec.rb +1 -1
- data/spec/unit/pops/lookup/interpolation_spec.rb +5 -0
- data/spec/unit/pops/lookup/lookup_spec.rb +56 -0
- data/spec/unit/pops/model/pn_transformer_spec.rb +53 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +14 -5
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +9 -9
- data/spec/unit/pops/parser/parse_calls_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_functions_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_heredoc_spec.rb +3 -3
- data/spec/unit/pops/parser/parse_lambda_spec.rb +1 -1
- data/spec/unit/pops/parser/parse_resource_spec.rb +35 -35
- data/spec/unit/pops/parser/pn_parser_spec.rb +101 -0
- data/spec/unit/pops/pn_spec.rb +148 -0
- data/spec/unit/pops/types/iterable_spec.rb +1 -1
- data/spec/unit/pops/types/p_object_type_spec.rb +5 -5
- data/spec/unit/pops/types/p_timespan_type_spec.rb +11 -4
- data/spec/unit/pops/types/p_timestamp_type_spec.rb +9 -2
- data/spec/unit/pops/types/p_type_set_type_spec.rb +106 -2
- data/spec/unit/pops/types/ruby_generator_spec.rb +3 -8
- data/spec/unit/pops/types/string_converter_spec.rb +3 -3
- data/spec/unit/pops/types/type_calculator_spec.rb +1 -1
- data/spec/unit/pops/validator/validator_spec.rb +3 -1
- data/spec/unit/property_spec.rb +2 -2
- data/spec/unit/provider/aixobject_spec.rb +1 -1
- data/spec/unit/provider/cron/crontab_spec.rb +3 -3
- data/spec/unit/provider/exec/posix_spec.rb +6 -6
- data/spec/unit/provider/group/groupadd_spec.rb +4 -4
- data/spec/unit/provider/group/windows_adsi_spec.rb +79 -22
- data/spec/unit/provider/ldap_spec.rb +0 -1
- data/spec/unit/provider/nameservice_spec.rb +5 -5
- data/spec/unit/provider/package/rpm_spec.rb +3 -4
- data/spec/unit/provider/package/yum_spec.rb +6 -2
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/service/base_spec.rb +2 -4
- data/spec/unit/provider/service/init_spec.rb +2 -2
- data/spec/unit/provider/service/openrc_spec.rb +2 -2
- data/spec/unit/provider/service/redhat_spec.rb +2 -2
- data/spec/unit/provider/service/smf_spec.rb +2 -0
- data/spec/unit/provider/service/systemd_spec.rb +3 -3
- data/spec/unit/provider/service/upstart_spec.rb +7 -7
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +0 -4
- data/spec/unit/provider/sshkey/parsed_spec.rb +0 -2
- data/spec/unit/provider/user/useradd_spec.rb +15 -9
- data/spec/unit/provider/user/windows_adsi_spec.rb +4 -4
- data/spec/unit/provider/yumrepo/inifile_spec.rb +76 -0
- data/spec/unit/puppet_pal_2pec.rb +4 -5
- data/spec/unit/resource/catalog_spec.rb +8 -3
- data/spec/unit/resource/status_spec.rb +15 -4
- data/spec/unit/resource/type_spec.rb +2 -3
- data/spec/unit/settings_spec.rb +9 -4
- data/spec/unit/ssl/certificate_authority_spec.rb +1 -9
- data/spec/unit/ssl/certificate_request_spec.rb +1 -2
- data/spec/unit/transaction/report_spec.rb +41 -0
- data/spec/unit/transaction_spec.rb +1 -1
- data/spec/unit/type/exec_spec.rb +7 -9
- data/spec/unit/type/file/selinux_spec.rb +0 -1
- data/spec/unit/type/file_spec.rb +4 -3
- data/spec/unit/type/k5login_spec.rb +79 -10
- data/spec/unit/type/mount_spec.rb +1 -1
- data/spec/unit/type/nagios_spec.rb +6 -6
- data/spec/unit/type/user_spec.rb +1 -1
- data/spec/unit/type/yumrepo_spec.rb +18 -0
- data/spec/unit/type/zfs_spec.rb +1 -1
- data/spec/unit/type_spec.rb +14 -15
- data/spec/unit/util/docs_spec.rb +1 -1
- data/spec/unit/util/execution_spec.rb +0 -1
- data/spec/unit/util/inifile_spec.rb +35 -4
- data/spec/unit/util/log/destinations_spec.rb +2 -2
- data/spec/unit/util/log_spec.rb +6 -5
- data/spec/unit/util/network_device/cisco/device_spec.rb +2 -2
- data/spec/unit/util/plist_spec.rb +3 -3
- data/spec/unit/util/selinux_spec.rb +2 -2
- data/spec/unit/util/tagging_spec.rb +1 -7
- data/spec/unit/util/windows/adsi_spec.rb +31 -27
- data/spec/unit/util/windows/sid_spec.rb +86 -15
- data/spec/unit/util_spec.rb +2 -2
- data/spec/watchr.rb +0 -1
- data/tasks/benchmark.rake +37 -0
- data/tasks/manpages.rake +1 -1
- metadata +71 -11
- checksums.yaml +0 -7
@@ -179,7 +179,8 @@ class Factory
|
|
179
179
|
end
|
180
180
|
|
181
181
|
def build_ConcatenatedString(o, args)
|
182
|
-
|
182
|
+
# Strip empty segments
|
183
|
+
@init_hash['segments'] = args.reject { |arg| arg.model_class == LiteralString && arg['value'].empty? }
|
183
184
|
end
|
184
185
|
|
185
186
|
def build_HeredocExpression(o, name, expr)
|
@@ -452,10 +453,12 @@ class Factory
|
|
452
453
|
#
|
453
454
|
parent = type_expr['key']
|
454
455
|
hash = type_expr['value']
|
455
|
-
|
456
|
+
pn = parent['cased_value']
|
457
|
+
unless pn == 'Object' || pn == 'TypeSet'
|
456
458
|
hash['entries'] << Factory.KEY_ENTRY(Factory.QNAME('parent'), parent)
|
459
|
+
parent = Factory.QREF('Object')
|
457
460
|
end
|
458
|
-
type_expr =
|
461
|
+
type_expr = parent.access([hash])
|
459
462
|
elsif type_expr.model_class <= LiteralHash
|
460
463
|
# LiteralHash is used for the form:
|
461
464
|
#
|
@@ -28,6 +28,10 @@ class Puppet::Pops::Model::ModelTreeDumper < Puppet::Pops::Model::TreeDumper
|
|
28
28
|
o.value.to_s
|
29
29
|
end
|
30
30
|
|
31
|
+
def dump_QualifiedReference o
|
32
|
+
o.cased_value.to_s
|
33
|
+
end
|
34
|
+
|
31
35
|
def dump_Factory o
|
32
36
|
o['locator'] ||= Puppet::Pops::Parser::Locator.locator("<not from source>", nil)
|
33
37
|
do_dump(o.model)
|
@@ -0,0 +1,400 @@
|
|
1
|
+
module Puppet::Pops
|
2
|
+
module Model
|
3
|
+
|
4
|
+
|
5
|
+
class PNTransformer
|
6
|
+
def self.visitor
|
7
|
+
@visitor ||= Visitor.new(nil, 'transform', 0, 0)
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.singleton
|
11
|
+
@singleton ||= new(visitor)
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.transform(ast)
|
15
|
+
singleton.transform(ast)
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize(visitor)
|
19
|
+
@visitor = visitor
|
20
|
+
end
|
21
|
+
|
22
|
+
def transform(ast)
|
23
|
+
@visitor.visit_this_0(self, ast)
|
24
|
+
end
|
25
|
+
|
26
|
+
def transform_AccessExpression(e)
|
27
|
+
PN::List.new([transform(e.left_expr)] + pn_array(e.keys)).as_call('access')
|
28
|
+
end
|
29
|
+
|
30
|
+
def transform_AndExpression(e)
|
31
|
+
binary_op(e, 'and')
|
32
|
+
end
|
33
|
+
|
34
|
+
def transform_Application(e)
|
35
|
+
definition_to_pn(e, 'application')
|
36
|
+
end
|
37
|
+
|
38
|
+
def transform_ArithmeticExpression(e)
|
39
|
+
binary_op(e, e.operator)
|
40
|
+
end
|
41
|
+
|
42
|
+
def transform_Array(a)
|
43
|
+
PN::List.new(pn_array(a))
|
44
|
+
end
|
45
|
+
|
46
|
+
def transform_AssignmentExpression(e)
|
47
|
+
binary_op(e, e.operator)
|
48
|
+
end
|
49
|
+
|
50
|
+
def transform_AttributeOperation(e)
|
51
|
+
PN::Call.new(e.operator, PN::Literal.new(e.attribute_name), transform(e.value_expr))
|
52
|
+
end
|
53
|
+
|
54
|
+
def transform_AttributesOperation(e)
|
55
|
+
PN::Call.new('splat-hash', transform(e.expr))
|
56
|
+
end
|
57
|
+
|
58
|
+
def transform_BlockExpression(e)
|
59
|
+
transform(e.statements).as_call('block')
|
60
|
+
end
|
61
|
+
|
62
|
+
def transform_CallFunctionExpression(e)
|
63
|
+
call_to_pn(e, 'call-lambda', 'invoke-lambda')
|
64
|
+
end
|
65
|
+
|
66
|
+
def transform_CallMethodExpression(e)
|
67
|
+
call_to_pn(e, 'call-method', 'invoke-method')
|
68
|
+
end
|
69
|
+
|
70
|
+
def transform_CallNamedFunctionExpression(e)
|
71
|
+
call_to_pn(e, 'call', 'invoke')
|
72
|
+
end
|
73
|
+
|
74
|
+
def transform_CapabilityMapping(e)
|
75
|
+
PN::Call.new(e.kind, transform(e.component), PN::List.new([PN::Literal.new(e.capability)] + pn_array(e.mappings)))
|
76
|
+
end
|
77
|
+
|
78
|
+
def transform_CaseExpression(e)
|
79
|
+
PN::Call.new('case', transform(e.test), transform(e.options))
|
80
|
+
end
|
81
|
+
|
82
|
+
def transform_CaseOption(e)
|
83
|
+
PN::Map.new([transform(e.values).with_name('when'), block_as_entry('then', e.then_expr)])
|
84
|
+
end
|
85
|
+
|
86
|
+
def transform_CollectExpression(e)
|
87
|
+
entries = [transform(e.type_expr).with_name('type'), transform(e.query).with_name('query')]
|
88
|
+
entries << transform(e.operations).with_name('ops') unless e.operations.empty?
|
89
|
+
PN::Map.new(entries).as_call('collect')
|
90
|
+
end
|
91
|
+
|
92
|
+
def transform_ComparisonExpression(e)
|
93
|
+
binary_op(e, e.operator)
|
94
|
+
end
|
95
|
+
|
96
|
+
def transform_ConcatenatedString(e)
|
97
|
+
transform(e.segments).as_call('concat')
|
98
|
+
end
|
99
|
+
|
100
|
+
def transform_EppExpression(e)
|
101
|
+
e.body.nil? ? PN::Call.new('epp') : transform(e.body).as_call('epp')
|
102
|
+
end
|
103
|
+
|
104
|
+
def transform_ExportedQuery(e)
|
105
|
+
is_nop?(e.expr) ? PN::Call.new('exported-query') : PN::Call.new('exported-query', transform(e.expr))
|
106
|
+
end
|
107
|
+
|
108
|
+
def transform_Factory(e)
|
109
|
+
transform(e.model)
|
110
|
+
end
|
111
|
+
|
112
|
+
def transform_FunctionDefinition(e)
|
113
|
+
definition_to_pn(e, 'function', nil, e.return_type)
|
114
|
+
end
|
115
|
+
|
116
|
+
def transform_HeredocExpression(e)
|
117
|
+
entries = []
|
118
|
+
entries << PN::Literal.new(e.syntax).with_name('syntax') unless e.syntax == ''
|
119
|
+
entries << transform(e.text_expr).with_name('text')
|
120
|
+
PN::Map.new(entries).as_call('heredoc')
|
121
|
+
end
|
122
|
+
|
123
|
+
def transform_HostClassDefinition(e)
|
124
|
+
definition_to_pn(e, 'class', e.parent_class)
|
125
|
+
end
|
126
|
+
|
127
|
+
def transform_IfExpression(e)
|
128
|
+
if_to_pn(e, 'if')
|
129
|
+
end
|
130
|
+
|
131
|
+
def transform_InExpression(e)
|
132
|
+
binary_op(e, 'in')
|
133
|
+
end
|
134
|
+
|
135
|
+
def transform_KeyedEntry(e)
|
136
|
+
PN::Call.new('=>', transform(e.key), transform(e.value))
|
137
|
+
end
|
138
|
+
|
139
|
+
def transform_LambdaExpression(e)
|
140
|
+
entries = []
|
141
|
+
entries << parameters_entry(e.parameters) unless e.parameters.empty?
|
142
|
+
entries << transform(e.return_type).with_name('returns') unless e.return_type.nil?
|
143
|
+
entries << block_as_entry('body', e.body) unless e.body.nil?
|
144
|
+
PN::Map.new(entries).as_call('lambda')
|
145
|
+
end
|
146
|
+
|
147
|
+
def transform_LiteralBoolean(e)
|
148
|
+
PN::Literal.new(e.value)
|
149
|
+
end
|
150
|
+
|
151
|
+
def transform_LiteralDefault(_)
|
152
|
+
PN::Call.new('default')
|
153
|
+
end
|
154
|
+
|
155
|
+
def transform_LiteralFloat(e)
|
156
|
+
PN::Literal.new(e.value)
|
157
|
+
end
|
158
|
+
|
159
|
+
def transform_LiteralHash(e)
|
160
|
+
transform(e.entries).as_call('hash')
|
161
|
+
end
|
162
|
+
|
163
|
+
def transform_LiteralInteger(e)
|
164
|
+
vl = PN::Literal.new(e.value)
|
165
|
+
e.radix == 10 ? vl : PN::Map.new([PN::Literal.new(e.radix).with_name('radix'), vl.with_name('value')]).as_call('int')
|
166
|
+
end
|
167
|
+
|
168
|
+
def transform_LiteralList(e)
|
169
|
+
transform(e.values).as_call('array')
|
170
|
+
end
|
171
|
+
|
172
|
+
def transform_LiteralRegularExpression(e)
|
173
|
+
PN::Literal.new(Types::PRegexpType.regexp_to_s(e.value)).as_call('regexp')
|
174
|
+
end
|
175
|
+
|
176
|
+
def transform_LiteralString(e)
|
177
|
+
PN::Literal.new(e.value)
|
178
|
+
end
|
179
|
+
|
180
|
+
def transform_LiteralUndef(_)
|
181
|
+
PN::Literal.new(nil)
|
182
|
+
end
|
183
|
+
|
184
|
+
def transform_MatchExpression(e)
|
185
|
+
binary_op(e, e.operator)
|
186
|
+
end
|
187
|
+
|
188
|
+
def transform_NamedAccessExpression(e)
|
189
|
+
binary_op(e, '.')
|
190
|
+
end
|
191
|
+
|
192
|
+
def transform_NodeDefinition(e)
|
193
|
+
entries = [transform(e.host_matches).with_name('matches')]
|
194
|
+
entries << transform(e.parent).with_name('parent') unless e.parent.nil?
|
195
|
+
entries << block_as_entry('body', e.body) unless e.body.nil?
|
196
|
+
PN::Map.new(entries).as_call('node')
|
197
|
+
end
|
198
|
+
|
199
|
+
def transform_Nop(_)
|
200
|
+
PN::Call.new('nop')
|
201
|
+
end
|
202
|
+
|
203
|
+
def transform_NotExpression(e)
|
204
|
+
PN::Call.new('!', transform(e.expr))
|
205
|
+
end
|
206
|
+
|
207
|
+
def transform_OrExpression(e)
|
208
|
+
binary_op(e, 'or')
|
209
|
+
end
|
210
|
+
|
211
|
+
def transform_Parameter(e)
|
212
|
+
entries = [PN::Literal.new(e.name).with_name('name')]
|
213
|
+
entries << transform(e.type_expr).with_name('type') unless e.type_expr.nil?
|
214
|
+
entries << PN::Literal.new(true).with_name('splat') if e.captures_rest
|
215
|
+
entries << transform(e.value).with_name('value') unless e.value.nil?
|
216
|
+
PN::Map.new(entries).with_name('param')
|
217
|
+
end
|
218
|
+
|
219
|
+
def transform_ParenthesizedExpression(e)
|
220
|
+
PN::Call.new('paren', transform(e.expr))
|
221
|
+
end
|
222
|
+
|
223
|
+
def transform_PlanDefinition(e)
|
224
|
+
definition_to_pn(e, 'plan', nil, e.return_type)
|
225
|
+
end
|
226
|
+
|
227
|
+
def transform_Program(e)
|
228
|
+
transform(e.body)
|
229
|
+
end
|
230
|
+
|
231
|
+
def transform_QualifiedName(e)
|
232
|
+
PN::Call.new('qn', PN::Literal.new(e.value))
|
233
|
+
end
|
234
|
+
|
235
|
+
def transform_QualifiedReference(e)
|
236
|
+
PN::Call.new('qr', PN::Literal.new(e.cased_value))
|
237
|
+
end
|
238
|
+
|
239
|
+
def transform_RelationshipExpression(e)
|
240
|
+
binary_op(e, e.operator)
|
241
|
+
end
|
242
|
+
|
243
|
+
def transform_RenderExpression(e)
|
244
|
+
PN::Call.new('render', transform(e.expr))
|
245
|
+
end
|
246
|
+
|
247
|
+
def transform_RenderStringExpression(e)
|
248
|
+
PN::Literal.new(e.value).as_call('render-s')
|
249
|
+
end
|
250
|
+
|
251
|
+
def transform_ReservedWord(e)
|
252
|
+
PN::Literal.new(e.word).as_call('reserved')
|
253
|
+
end
|
254
|
+
|
255
|
+
def transform_ResourceBody(e)
|
256
|
+
PN::Map.new([
|
257
|
+
transform(e.title).with_name('title'),
|
258
|
+
transform(e.operations).with_name('ops')
|
259
|
+
]).as_call('resource_body')
|
260
|
+
end
|
261
|
+
|
262
|
+
def transform_ResourceDefaultsExpression(e)
|
263
|
+
entries = [transform(e.type_ref).with_name('type'), transform(e.operations).with_name('ops')]
|
264
|
+
entries << PN::Literal.new(e.form).with_name('form') unless e.form == 'regular'
|
265
|
+
PN::Map.new(entries).as_call('resource-defaults')
|
266
|
+
end
|
267
|
+
|
268
|
+
def transform_ResourceExpression(e)
|
269
|
+
entries = [
|
270
|
+
transform(e.type_name).with_name('type'),
|
271
|
+
PN::List.new(pn_array(e.bodies).map { |body| body[0] }).with_name('bodies')
|
272
|
+
]
|
273
|
+
entries << PN::Literal.new(e.form).with_name('form') unless e.form == 'regular'
|
274
|
+
PN::Map.new(entries).as_call('resource')
|
275
|
+
end
|
276
|
+
|
277
|
+
def transform_ResourceOverrideExpression(e)
|
278
|
+
entries = [transform(e.resources).with_name('resources'), transform(e.operations).with_name('ops')]
|
279
|
+
entries << PN::Literal.new(e.form).with_name('form') unless e.form == 'regular'
|
280
|
+
PN::Map.new(entries).as_call('resource-override')
|
281
|
+
end
|
282
|
+
|
283
|
+
def transform_ResourceTypeDefinition(e)
|
284
|
+
definition_to_pn(e, 'define')
|
285
|
+
end
|
286
|
+
|
287
|
+
def transform_SelectorEntry(e)
|
288
|
+
PN::Call.new('=>', transform(e.matching_expr), transform(e.value_expr))
|
289
|
+
end
|
290
|
+
|
291
|
+
def transform_SelectorExpression(e)
|
292
|
+
PN::Call.new('?', transform(e.left_expr), transform(e.selectors))
|
293
|
+
end
|
294
|
+
|
295
|
+
def transform_SiteDefinition(e)
|
296
|
+
transform(e.body).as_call('site')
|
297
|
+
end
|
298
|
+
|
299
|
+
def transform_SubLocatedExpression(e)
|
300
|
+
transform(e.expr)
|
301
|
+
end
|
302
|
+
|
303
|
+
def transform_TextExpression(e)
|
304
|
+
PN::Call.new('str', transform(e.expr))
|
305
|
+
end
|
306
|
+
|
307
|
+
def transform_TypeAlias(e)
|
308
|
+
PN::Call.new('type-alias', PN::Literal.new(e.name), transform(e.type_expr))
|
309
|
+
end
|
310
|
+
|
311
|
+
def transform_TypeDefinition(e)
|
312
|
+
PN::Call.new('type-definition', PN::Literal.new(e.name), PN::Literal.new(e.parent), transform(e.body))
|
313
|
+
end
|
314
|
+
|
315
|
+
def transform_TypeMapping(e)
|
316
|
+
PN::Call.new('type-mapping', transform(e.type_expr), transform(e.mapping_expr))
|
317
|
+
end
|
318
|
+
|
319
|
+
def transform_UnaryMinusExpression(e)
|
320
|
+
if e.expr.is_a?(LiteralValue)
|
321
|
+
v = e.expr.value
|
322
|
+
if v.is_a?(Numeric)
|
323
|
+
return PN::Literal.new(-v)
|
324
|
+
end
|
325
|
+
end
|
326
|
+
PN::Call.new('-', transform(e.expr))
|
327
|
+
end
|
328
|
+
|
329
|
+
def transform_UnfoldExpression(e)
|
330
|
+
PN::Call.new('unfold', transform(e.expr))
|
331
|
+
end
|
332
|
+
|
333
|
+
def transform_UnlessExpression(e)
|
334
|
+
if_to_pn(e, 'unless')
|
335
|
+
end
|
336
|
+
|
337
|
+
def transform_VariableExpression(e)
|
338
|
+
ne = e.expr
|
339
|
+
PN::Call.new('var', ne.is_a?(Model::QualifiedName) ? PN::Literal.new(ne.value) : transform(ne))
|
340
|
+
end
|
341
|
+
|
342
|
+
def transform_VirtualQuery(e)
|
343
|
+
is_nop?(e.expr) ? PN::Call.new('virtual-query') : PN::Call.new('virtual-query', transform(e.expr))
|
344
|
+
end
|
345
|
+
|
346
|
+
def is_nop?(e)
|
347
|
+
e.nil? || e.is_a?(Nop)
|
348
|
+
end
|
349
|
+
|
350
|
+
def binary_op(e, op)
|
351
|
+
PN::Call.new(op, transform(e.left_expr), transform(e.right_expr))
|
352
|
+
end
|
353
|
+
|
354
|
+
def definition_to_pn(e, type_name, parent = nil, return_type = nil)
|
355
|
+
entries = [PN::Literal.new(e.name).with_name('name')]
|
356
|
+
entries << PN::Literal.new(parent).with_name('parent') unless parent.nil?
|
357
|
+
entries << parameters_entry(e.parameters) unless e.parameters.empty?
|
358
|
+
entries << block_as_entry('body', e.body) unless e.body.nil?
|
359
|
+
entries << transform(return_type).with_name('returns') unless return_type.nil?
|
360
|
+
PN::Map.new(entries).as_call(type_name)
|
361
|
+
end
|
362
|
+
|
363
|
+
def parameters_entry(parameters)
|
364
|
+
PN::Map.new(parameters.map do |p|
|
365
|
+
entries = []
|
366
|
+
entries << transform(p.type_expr).with_name('type') unless p.type_expr.nil?
|
367
|
+
entries << PN::Literal(true).with_name('splat') if p.captures_rest
|
368
|
+
entries << transform(p.value).with_name('value') unless p.value.nil?
|
369
|
+
PN::Map.new(entries).with_name(p.name)
|
370
|
+
end).with_name('params')
|
371
|
+
end
|
372
|
+
|
373
|
+
def block_as_entry(name, expr)
|
374
|
+
if expr.is_a?(BlockExpression)
|
375
|
+
transform(expr.statements).with_name(name)
|
376
|
+
else
|
377
|
+
transform([expr]).with_name(name)
|
378
|
+
end
|
379
|
+
end
|
380
|
+
|
381
|
+
def pn_array(a)
|
382
|
+
a.map { |e| transform(e) }
|
383
|
+
end
|
384
|
+
|
385
|
+
def call_to_pn(e, r, nr)
|
386
|
+
entries = [transform(e.functor_expr).with_name('functor'), transform(e.arguments).with_name('args')]
|
387
|
+
entries << transform(e.lambda).with_name('block') unless e.lambda.nil?
|
388
|
+
PN::Map.new(entries).as_call(e.rval_required ? r : nr)
|
389
|
+
end
|
390
|
+
|
391
|
+
def if_to_pn(e, name)
|
392
|
+
entries = [transform(e.test).with_name('test')]
|
393
|
+
entries << block_as_entry('then', e.then_expr) unless is_nop?(e.then_expr)
|
394
|
+
entries << block_as_entry('else', e.else_expr) unless is_nop?(e.else_expr)
|
395
|
+
PN::Map.new(entries).as_call(name)
|
396
|
+
end
|
397
|
+
end
|
398
|
+
|
399
|
+
end
|
400
|
+
end
|
@@ -530,7 +530,7 @@ application_expression
|
|
530
530
|
capability_mapping
|
531
531
|
: classname capability_kw classname LBRACE attribute_operations endcomma RBRACE {
|
532
532
|
result = Factory.CAPABILITY_MAPPING(val[1][:value],
|
533
|
-
Factory.
|
533
|
+
Factory.QREF(classname(val[0][:value])),
|
534
534
|
classname(val[2][:value]), val[4])
|
535
535
|
loc result, val[0], val[6]
|
536
536
|
add_mapping(result)
|
@@ -2543,7 +2543,7 @@ module_eval(<<'.,.,', 'egrammar.ra', 524)
|
|
2543
2543
|
module_eval(<<'.,.,', 'egrammar.ra', 531)
|
2544
2544
|
def _reduce_154(val, _values, result)
|
2545
2545
|
result = Factory.CAPABILITY_MAPPING(val[1][:value],
|
2546
|
-
Factory.
|
2546
|
+
Factory.QREF(classname(val[0][:value])),
|
2547
2547
|
classname(val[2][:value]), val[4])
|
2548
2548
|
loc result, val[0], val[6]
|
2549
2549
|
add_mapping(result)
|