puppet 3.6.2 → 3.7.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 +4 -4
- data/CONTRIBUTING.md +2 -3
- data/Gemfile +14 -10
- data/README.md +1 -1
- data/ext/build_defaults.yaml +16 -1
- data/ext/debian/control +3 -2
- data/ext/debian/puppet-common.dirs +1 -0
- data/ext/debian/puppet-common.postinst +8 -8
- data/ext/debian/puppet-common.postrm +2 -1
- data/ext/project_data.yaml +16 -12
- data/ext/rack/example-passenger-vhost.conf +2 -2
- data/ext/redhat/puppet.spec.erb +6 -3
- data/ext/windows/service/daemon.rb +47 -41
- data/install.rb +1 -1
- data/lib/puppet.rb +34 -24
- data/lib/puppet/application.rb +34 -1
- data/lib/puppet/application/agent.rb +9 -8
- data/lib/puppet/application/apply.rb +14 -5
- data/lib/puppet/application/doc.rb +4 -11
- data/lib/puppet/application/master.rb +19 -17
- data/lib/puppet/application/queue.rb +1 -1
- data/lib/puppet/application/resource.rb +0 -1
- data/lib/puppet/configurer.rb +39 -2
- data/lib/puppet/configurer/downloader.rb +5 -10
- data/lib/puppet/configurer/downloader_factory.rb +34 -0
- data/lib/puppet/configurer/plugin_handler.rb +11 -17
- data/lib/puppet/defaults.rb +244 -119
- data/lib/puppet/environments.rb +8 -0
- data/lib/puppet/external/nagios/base.rb +1 -1
- data/lib/puppet/external/pson/pure/generator.rb +1 -8
- data/lib/puppet/face/ca.rb +7 -0
- data/lib/puppet/face/file/download.rb +5 -2
- data/lib/puppet/face/file/store.rb +1 -1
- data/lib/puppet/face/instrumentation_data.rb +2 -1
- data/lib/puppet/face/instrumentation_listener.rb +2 -1
- data/lib/puppet/face/instrumentation_probe.rb +2 -1
- data/lib/puppet/face/module/build.rb +2 -2
- data/lib/puppet/face/module/generate.rb +20 -12
- data/lib/puppet/face/module/install.rb +4 -3
- data/lib/puppet/face/module/uninstall.rb +7 -0
- data/lib/puppet/face/module/upgrade.rb +11 -3
- data/lib/puppet/face/node/clean.rb +1 -1
- data/lib/puppet/face/parser.rb +99 -7
- data/lib/puppet/feature/base.rb +18 -12
- data/lib/puppet/feature/cfacter.rb +14 -0
- data/lib/puppet/feature/pe_license.rb +4 -0
- data/lib/puppet/file_bucket/dipper.rb +19 -12
- data/lib/puppet/file_bucket/file.rb +73 -10
- data/lib/puppet/file_serving/configuration/parser.rb +3 -3
- data/lib/puppet/file_system.rb +1 -1
- data/lib/puppet/file_system/file19.rb +41 -0
- data/lib/puppet/file_system/file19windows.rb +0 -1
- data/lib/puppet/file_system/uniquefile.rb +190 -0
- data/lib/puppet/forge.rb +34 -7
- data/lib/puppet/forge/errors.rb +5 -6
- data/lib/puppet/forge/repository.rb +14 -2
- data/lib/puppet/functions.rb +19 -12
- data/lib/puppet/functions/assert_type.rb +27 -10
- data/lib/puppet/functions/each.rb +111 -0
- data/lib/puppet/functions/epp.rb +54 -0
- data/lib/puppet/functions/filter.rb +113 -0
- data/lib/puppet/functions/inline_epp.rb +88 -0
- data/lib/puppet/functions/map.rb +97 -0
- data/lib/puppet/functions/match.rb +102 -0
- data/lib/puppet/functions/reduce.rb +94 -0
- data/lib/puppet/functions/slice.rb +126 -0
- data/lib/puppet/functions/with.rb +23 -0
- data/lib/puppet/indirector/catalog/compiler.rb +4 -4
- data/lib/puppet/indirector/data_binding/hiera.rb +2 -45
- data/lib/puppet/indirector/facts/couch.rb +3 -1
- data/lib/puppet/indirector/facts/facter.rb +52 -65
- data/lib/puppet/indirector/file_bucket_file/file.rb +6 -3
- data/lib/puppet/indirector/hiera.rb +48 -0
- data/lib/puppet/indirector/indirection.rb +1 -1
- data/lib/puppet/indirector/request.rb +9 -3
- data/lib/puppet/indirector/resource/ral.rb +1 -1
- data/lib/puppet/indirector/rest.rb +7 -3
- data/lib/puppet/loaders.rb +0 -1
- data/lib/puppet/module.rb +2 -1
- data/lib/puppet/module_tool.rb +2 -0
- data/lib/puppet/module_tool/applications/application.rb +4 -5
- data/lib/puppet/module_tool/applications/builder.rb +64 -5
- data/lib/puppet/module_tool/applications/uninstaller.rb +3 -2
- data/lib/puppet/module_tool/applications/unpacker.rb +14 -0
- data/lib/puppet/module_tool/applications/upgrader.rb +23 -13
- data/lib/puppet/module_tool/dependency.rb +12 -0
- data/lib/puppet/module_tool/errors/shared.rb +1 -1
- data/lib/puppet/module_tool/errors/upgrader.rb +20 -0
- data/lib/puppet/module_tool/installed_modules.rb +6 -1
- data/lib/puppet/module_tool/metadata.rb +53 -3
- data/lib/puppet/module_tool/modulefile.rb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +7 -0
- data/lib/puppet/module_tool/skeleton/templates/generator/manifests/init.pp.erb +1 -1
- data/lib/puppet/module_tool/skeleton/templates/generator/spec/spec_helper.rb +1 -17
- data/lib/puppet/module_tool/tar/mini.rb +20 -2
- data/lib/puppet/network/http.rb +5 -0
- data/lib/puppet/network/http/api/v1.rb +2 -2
- data/lib/puppet/network/http/api/v2/environments.rb +15 -1
- data/lib/puppet/network/http/connection.rb +54 -68
- data/lib/puppet/network/http/factory.rb +44 -0
- data/lib/puppet/network/http/handler.rb +12 -6
- data/lib/puppet/network/http/nocache_pool.rb +21 -0
- data/lib/puppet/network/http/pool.rb +120 -0
- data/lib/puppet/network/http/rack/rest.rb +3 -1
- data/lib/puppet/network/http/session.rb +17 -0
- data/lib/puppet/network/http/site.rb +39 -0
- data/lib/puppet/network/http/webrick/rest.rb +3 -1
- data/lib/puppet/network/http_pool.rb +3 -4
- data/lib/puppet/node.rb +19 -6
- data/lib/puppet/node/environment.rb +34 -8
- data/lib/puppet/parser/ast/collection.rb +4 -0
- data/lib/puppet/parser/ast/collexpr.rb +1 -1
- data/lib/puppet/parser/ast/node.rb +5 -0
- data/lib/puppet/parser/ast/pops_bridge.rb +49 -6
- data/lib/puppet/parser/compiler.rb +66 -38
- data/lib/puppet/parser/e4_parser_adapter.rb +2 -2
- data/lib/puppet/parser/files.rb +76 -33
- data/lib/puppet/parser/functions.rb +1 -7
- data/lib/puppet/parser/functions/assert_type.rb +31 -0
- data/lib/puppet/parser/functions/contain.rb +15 -5
- data/lib/puppet/parser/functions/create_resources.rb +5 -1
- data/lib/puppet/parser/functions/digest.rb +5 -0
- data/lib/puppet/parser/functions/each.rb +46 -107
- data/lib/puppet/parser/functions/epp.rb +13 -9
- data/lib/puppet/parser/functions/file.rb +20 -12
- data/lib/puppet/parser/functions/filter.rb +32 -88
- data/lib/puppet/parser/functions/include.rb +12 -24
- data/lib/puppet/parser/functions/inline_epp.rb +9 -12
- data/lib/puppet/parser/functions/lookup.rb +1 -1
- data/lib/puppet/parser/functions/map.rb +30 -83
- data/lib/puppet/parser/functions/match.rb +28 -0
- data/lib/puppet/parser/functions/reduce.rb +69 -98
- data/lib/puppet/parser/functions/require.rb +13 -5
- data/lib/puppet/parser/functions/search.rb +6 -1
- data/lib/puppet/parser/functions/slice.rb +35 -103
- data/lib/puppet/parser/functions/template.rb +12 -5
- data/lib/puppet/parser/functions/with.rb +21 -0
- data/lib/puppet/parser/lexer.rb +1 -1
- data/lib/puppet/parser/parser_factory.rb +21 -33
- data/lib/puppet/parser/resource.rb +2 -3
- data/lib/puppet/parser/scope.rb +85 -15
- data/lib/puppet/pops.rb +9 -11
- data/lib/puppet/pops/adapters.rb +2 -1
- data/lib/puppet/pops/binder/bindings_checker.rb +4 -4
- data/lib/puppet/pops/binder/bindings_factory.rb +6 -6
- data/lib/puppet/pops/binder/bindings_label_provider.rb +1 -1
- data/lib/puppet/pops/binder/bindings_loader.rb +2 -2
- data/lib/puppet/pops/binder/bindings_model.rb +58 -191
- data/lib/puppet/pops/binder/bindings_model_dumper.rb +1 -1
- data/lib/puppet/pops/binder/bindings_model_meta.rb +215 -0
- data/lib/puppet/pops/binder/injector.rb +9 -9
- data/lib/puppet/pops/binder/key_factory.rb +2 -2
- data/lib/puppet/pops/binder/lookup.rb +14 -6
- data/lib/puppet/pops/binder/producers.rb +9 -12
- data/lib/puppet/pops/evaluator/access_operator.rb +35 -29
- data/lib/puppet/pops/evaluator/callable_mismatch_describer.rb +175 -0
- data/lib/puppet/pops/evaluator/callable_signature.rb +1 -2
- data/lib/puppet/pops/evaluator/closure.rb +151 -35
- data/lib/puppet/pops/evaluator/compare_operator.rb +26 -22
- data/lib/puppet/pops/evaluator/epp_evaluator.rb +16 -15
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +277 -229
- data/lib/puppet/pops/evaluator/relationship_operator.rb +3 -2
- data/lib/puppet/pops/evaluator/runtime3_support.rb +86 -53
- data/lib/puppet/pops/functions/dispatch.rb +9 -4
- data/lib/puppet/pops/functions/dispatcher.rb +2 -169
- data/lib/puppet/pops/issue_reporter.rb +14 -6
- data/lib/puppet/pops/issues.rb +96 -21
- data/lib/puppet/pops/loader/base_loader.rb +3 -3
- data/lib/puppet/pops/loader/loader.rb +1 -1
- data/lib/puppet/pops/loader/loader_paths.rb +2 -21
- data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
- data/lib/puppet/pops/loader/static_loader.rb +12 -2
- data/lib/puppet/pops/model/ast_transformer.rb +4 -24
- data/lib/puppet/pops/model/factory.rb +72 -10
- data/lib/puppet/pops/model/model.rb +82 -574
- data/lib/puppet/pops/model/model_label_provider.rb +4 -2
- data/lib/puppet/pops/model/model_meta.rb +576 -0
- data/lib/puppet/pops/model/model_tree_dumper.rb +27 -5
- data/lib/puppet/pops/parser/egrammar.ra +209 -221
- data/lib/puppet/pops/parser/eparser.rb +1459 -1431
- data/lib/puppet/pops/parser/evaluating_parser.rb +15 -75
- data/lib/puppet/pops/parser/lexer2.rb +14 -10
- data/lib/puppet/pops/parser/lexer_support.rb +6 -0
- data/lib/puppet/pops/parser/locator.rb +1 -1
- data/lib/puppet/pops/parser/parser_support.rb +31 -49
- data/lib/puppet/pops/patterns.rb +10 -10
- data/lib/puppet/pops/semantic_error.rb +1 -1
- data/lib/puppet/pops/types/class_loader.rb +24 -13
- data/lib/puppet/pops/types/type_calculator.rb +188 -87
- data/lib/puppet/pops/types/type_factory.rb +79 -53
- data/lib/puppet/pops/types/type_parser.rb +22 -16
- data/lib/puppet/pops/types/types.rb +283 -392
- data/lib/puppet/pops/types/types_meta.rb +223 -0
- data/lib/puppet/pops/utils.rb +16 -14
- data/lib/puppet/pops/validation/checker4_0.rb +264 -18
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +0 -1
- data/lib/puppet/pops/visitor.rb +0 -103
- data/lib/puppet/provider/exec.rb +10 -1
- data/lib/puppet/provider/file/windows.rb +3 -4
- data/lib/puppet/provider/group/windows_adsi.rb +10 -10
- data/lib/puppet/provider/nameservice/directoryservice.rb +3 -4
- data/lib/puppet/provider/package/apt.rb +5 -1
- data/lib/puppet/provider/package/gem.rb +7 -3
- data/lib/puppet/provider/package/openbsd.rb +84 -7
- data/lib/puppet/provider/package/pacman.rb +29 -4
- data/lib/puppet/provider/package/rpm.rb +5 -7
- data/lib/puppet/provider/package/sun.rb +5 -1
- data/lib/puppet/provider/package/windows.rb +6 -1
- data/lib/puppet/provider/package/windows/exe_package.rb +1 -1
- data/lib/puppet/provider/package/windows/msi_package.rb +1 -1
- data/lib/puppet/provider/package/windows/package.rb +13 -1
- data/lib/puppet/provider/package/yum.rb +7 -3
- data/lib/puppet/provider/package/zypper.rb +5 -1
- data/lib/puppet/provider/parsedfile.rb +17 -1
- data/lib/puppet/provider/scheduled_task/win32_taskscheduler.rb +6 -12
- data/lib/puppet/provider/service/freebsd.rb +12 -12
- data/lib/puppet/provider/service/init.rb +5 -0
- data/lib/puppet/provider/service/launchd.rb +0 -3
- data/lib/puppet/provider/service/openbsd.rb +8 -7
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +2 -2
- data/lib/puppet/provider/sshkey/parsed.rb +5 -0
- data/lib/puppet/provider/user/user_role_add.rb +5 -4
- data/lib/puppet/provider/user/windows_adsi.rb +8 -8
- data/lib/puppet/provider/zone/solaris.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +8 -6
- data/lib/puppet/reports/store.rb +4 -9
- data/lib/puppet/resource.rb +75 -11
- data/lib/puppet/resource/catalog.rb +9 -7
- data/lib/puppet/resource/type.rb +27 -0
- data/lib/puppet/settings.rb +61 -41
- data/lib/puppet/settings/base_setting.rb +9 -3
- data/lib/puppet/settings/environment_conf.rb +32 -4
- data/lib/puppet/settings/file_setting.rb +9 -1
- data/lib/puppet/settings/priority_setting.rb +5 -5
- data/lib/puppet/ssl.rb +1 -0
- data/lib/puppet/ssl/certificate_authority.rb +15 -6
- data/lib/puppet/ssl/certificate_authority/autosign_command.rb +2 -1
- data/lib/puppet/ssl/host.rb +3 -2
- data/lib/puppet/ssl/inventory.rb +11 -6
- data/lib/puppet/ssl/validator/default_validator.rb +1 -0
- data/lib/puppet/ssl/validator/no_validator.rb +3 -0
- data/lib/puppet/transaction.rb +29 -0
- data/lib/puppet/transaction/resource_harness.rb +16 -3
- data/lib/puppet/type.rb +71 -49
- data/lib/puppet/type/exec.rb +36 -8
- data/lib/puppet/type/file.rb +56 -16
- data/lib/puppet/type/file/content.rb +3 -3
- data/lib/puppet/type/file/mode.rb +12 -3
- data/lib/puppet/type/file/source.rb +4 -1
- data/lib/puppet/type/group.rb +1 -1
- data/lib/puppet/type/mount.rb +1 -3
- data/lib/puppet/type/resources.rb +59 -35
- data/lib/puppet/type/ssh_authorized_key.rb +54 -16
- data/lib/puppet/type/sshkey.rb +1 -1
- data/lib/puppet/type/user.rb +17 -11
- data/lib/puppet/type/yumrepo.rb +59 -8
- data/lib/puppet/type/zone.rb +3 -6
- data/lib/puppet/util.rb +64 -55
- data/lib/puppet/util/autoload.rb +2 -2
- data/lib/puppet/util/colors.rb +61 -19
- data/lib/puppet/util/command_line.rb +21 -4
- data/lib/puppet/util/execution.rb +41 -29
- data/lib/puppet/util/feature.rb +15 -4
- data/lib/puppet/util/filetype.rb +6 -2
- data/lib/puppet/util/http_proxy.rb +29 -2
- data/lib/puppet/util/lockfile.rb +1 -1
- data/lib/puppet/util/log/destinations.rb +7 -3
- data/lib/puppet/util/logging.rb +44 -14
- data/lib/puppet/util/pidlock.rb +11 -5
- data/lib/puppet/util/posix.rb +21 -31
- data/lib/puppet/util/profiler.rb +17 -9
- data/lib/puppet/util/profiler/aggregate.rb +85 -0
- data/lib/puppet/util/profiler/around_profiler.rb +67 -0
- data/lib/puppet/util/profiler/logging.rb +12 -11
- data/lib/puppet/util/profiler/wall_clock.rb +7 -6
- data/lib/puppet/util/rdoc.rb +8 -1
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +1 -8
- data/lib/puppet/util/windows.rb +14 -3
- data/lib/puppet/util/windows/access_control_list.rb +4 -4
- data/lib/puppet/util/{adsi.rb → windows/adsi.rb} +99 -37
- data/lib/puppet/util/windows/api_types.rb +255 -0
- data/lib/puppet/util/windows/com.rb +224 -0
- data/lib/puppet/util/windows/error.rb +72 -5
- data/lib/puppet/util/windows/file.rb +254 -132
- data/lib/puppet/util/windows/process.rb +293 -177
- data/lib/puppet/util/windows/registry.rb +12 -2
- data/lib/puppet/util/windows/root_certs.rb +16 -9
- data/lib/puppet/util/windows/security.rb +501 -232
- data/lib/puppet/util/windows/sid.rb +80 -36
- data/lib/puppet/util/windows/string.rb +2 -0
- data/lib/puppet/util/windows/taskscheduler.rb +1241 -0
- data/lib/puppet/util/windows/user.rb +241 -57
- data/lib/puppet/vendor.rb +3 -1
- data/lib/puppet/vendor/load_pathspec.rb +1 -0
- data/lib/puppet/vendor/load_rgen.rb +1 -0
- data/lib/puppet/vendor/pathspec/CHANGELOG.md +2 -0
- data/lib/puppet/vendor/pathspec/LICENSE +201 -0
- data/lib/puppet/vendor/pathspec/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/pathspec/README.md +53 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +121 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/gitignorespec.rb +275 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/regexspec.rb +17 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec/spec.rb +14 -0
- data/lib/puppet/vendor/require_vendored.rb +2 -0
- data/lib/puppet/vendor/rgen/CHANGELOG +197 -0
- data/lib/puppet/vendor/rgen/MIT-LICENSE +20 -0
- data/lib/puppet/vendor/rgen/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/rgen/README.rdoc +78 -0
- data/lib/puppet/vendor/rgen/Rakefile +41 -0
- data/lib/puppet/vendor/rgen/TODO +41 -0
- data/lib/puppet/vendor/rgen/anounce.txt +61 -0
- data/lib/puppet/vendor/rgen/design_rationale.txt +71 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +54 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +32 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +562 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +45 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +43 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +103 -0
- data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +89 -0
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +559 -0
- data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +26 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +20 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +91 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +28 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +37 -0
- data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +172 -0
- data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +45 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +218 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +81 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +69 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +167 -0
- data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +91 -0
- data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +129 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +63 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +140 -0
- data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +289 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +66 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +66 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +117 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +169 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +126 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +331 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +94 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +137 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +97 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +128 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +168 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +224 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +556 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +174 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +89 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +77 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +30 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +168 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +23 -0
- data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +42 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +32 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +334 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +225 -0
- data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +156 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +121 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +18 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +47 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +116 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +71 -0
- data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +98 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +297 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +83 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +87 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +234 -0
- data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +26 -0
- data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +475 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +61 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +67 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +124 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +84 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +114 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +68 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +142 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +29 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +42 -0
- data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +329 -0
- data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +79 -0
- data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +127 -0
- data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +64 -0
- data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +35 -0
- data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +23 -0
- data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +54 -0
- data/lib/puppet/vendor/rgen/test/environment_test.rb +90 -0
- data/lib/puppet/vendor/rgen/test/json_test.rb +171 -0
- data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +1482 -0
- data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +57 -0
- data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +131 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +98 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +70 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +42 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +44 -0
- data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +9 -0
- data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +178 -0
- data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +59 -0
- data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +242 -0
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +163 -0
- data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +163 -0
- data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +156 -0
- data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +94 -0
- data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +42 -0
- data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +23 -0
- data/lib/puppet/vendor/rgen/test/model_builder_test.rb +6 -0
- data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +30 -0
- data/lib/puppet/vendor/rgen/test/output_handler_test.rb +58 -0
- data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +48 -0
- data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +102 -0
- data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +117 -0
- data/lib/puppet/vendor/rgen/test/rgen_test.rb +26 -0
- data/lib/puppet/vendor/rgen/test/template_language_test.rb +163 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +29 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +9 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +4 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +12 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +11 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +7 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +8 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +8 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +7 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +12 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +1 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +5 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +24 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +13 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +10 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +17 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +31 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +9 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +3 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +4 -0
- data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +29 -0
- data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +119 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +1029 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +317 -0
- data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +101 -0
- data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +22 -0
- data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +67 -0
- data/lib/puppet/vendor/rgen/test/transformer_test.rb +254 -0
- data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +99 -0
- data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +97 -0
- data/lib/puppet/vendor/rgen/test/util_test.rb +5 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +160 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +94 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +53 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +49 -0
- data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +75 -0
- data/lib/puppet/vendor/safe_yaml/PUPPET_README.md +6 -0
- data/lib/puppet/vendor/semantic/PUPPET_README.md +6 -0
- data/lib/puppet/version.rb +1 -1
- data/spec/fixtures/integration/node/environment/sitedir2/00_a.pp +2 -0
- data/spec/fixtures/integration/node/environment/sitedir2/02_folder/01_b.pp +6 -0
- data/spec/fixtures/integration/node/environment/sitedir2/03_c.pp +1 -0
- data/spec/fixtures/integration/node/environment/sitedir2/04_include.pp +2 -0
- data/spec/fixtures/releases/jamtur01-apache/manifests/vhost.pp +1 -1
- data/spec/fixtures/unit/indirector/hiera/global.yaml +10 -0
- data/spec/fixtures/unit/indirector/hiera/invalid.yaml +1 -0
- data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/init.pp +3 -0
- data/spec/fixtures/unit/parser/functions/create_resources/foo/manifests/wrongdefine.pp +3 -0
- data/spec/fixtures/unit/parser/lexer/argumentdefaults.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/casestatement.pp +14 -14
- data/spec/fixtures/unit/parser/lexer/classheirarchy.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/classincludes.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/classpathtest.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/collection_override.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/componentrequire.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/deepclassheirarchy.pp +5 -5
- data/spec/fixtures/unit/parser/lexer/defineoverrides.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/filecreate.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/ifexpression.pp +1 -1
- data/spec/fixtures/unit/parser/lexer/implicititeration.pp +4 -4
- data/spec/fixtures/unit/parser/lexer/multipleinstances.pp +3 -3
- data/spec/fixtures/unit/parser/lexer/multisubs.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/namevartest.pp +2 -2
- data/spec/fixtures/unit/parser/lexer/simpledefaults.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/argumentdefaults.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/casestatement.pp +14 -14
- data/spec/fixtures/unit/pops/parser/lexer/classheirarchy.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/classincludes.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/classpathtest.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/collection_override.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/componentrequire.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/deepclassheirarchy.pp +5 -5
- data/spec/fixtures/unit/pops/parser/lexer/defineoverrides.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/filecreate.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/ifexpression.pp +1 -1
- data/spec/fixtures/unit/pops/parser/lexer/implicititeration.pp +4 -4
- data/spec/fixtures/unit/pops/parser/lexer/multipleinstances.pp +3 -3
- data/spec/fixtures/unit/pops/parser/lexer/multisubs.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/namevartest.pp +2 -2
- data/spec/fixtures/unit/pops/parser/lexer/simpledefaults.pp +1 -1
- data/spec/fixtures/unit/provider/package/gem/gem-list-single-package +4 -0
- data/spec/fixtures/unit/type/user/authorized_keys +1 -1
- data/spec/integration/agent/logging_spec.rb +4 -0
- data/spec/integration/application/doc_spec.rb +4 -3
- data/spec/integration/configurer_spec.rb +0 -14
- data/spec/integration/defaults_spec.rb +26 -0
- data/spec/integration/environments/default_manifest_spec.rb +274 -0
- data/spec/integration/faces/documentation_spec.rb +0 -4
- data/spec/integration/file_bucket/file_spec.rb +21 -0
- data/spec/integration/indirector/catalog/compiler_spec.rb +0 -2
- data/spec/integration/indirector/catalog/queue_spec.rb +0 -2
- data/spec/integration/indirector/facts/facter_spec.rb +1 -1
- data/spec/integration/indirector/file_content/file_server_spec.rb +2 -2
- data/spec/integration/node/environment_spec.rb +24 -8
- data/spec/integration/parser/catalog_spec.rb +10 -10
- data/spec/integration/parser/class_spec.rb +37 -0
- data/spec/integration/parser/collector_spec.rb +234 -75
- data/spec/integration/parser/compiler_spec.rb +385 -401
- data/spec/integration/parser/conditionals_spec.rb +117 -0
- data/spec/integration/parser/future_compiler_spec.rb +359 -8
- data/spec/integration/parser/node_spec.rb +185 -0
- data/spec/integration/parser/resource_expressions_spec.rb +286 -0
- data/spec/integration/parser/ruby_manifest_spec.rb +0 -4
- data/spec/integration/parser/scope_spec.rb +94 -151
- data/spec/integration/provider/cron/crontab_spec.rb +137 -148
- data/spec/integration/ssl/certificate_authority_spec.rb +26 -0
- data/spec/integration/ssl/certificate_request_spec.rb +0 -6
- data/spec/integration/ssl/certificate_revocation_list_spec.rb +0 -2
- data/spec/integration/ssl/host_spec.rb +0 -2
- data/spec/integration/transaction_spec.rb +16 -0
- data/spec/integration/type/file_spec.rb +14 -13
- data/spec/integration/type/nagios_spec.rb +6 -15
- data/spec/integration/type/sshkey_spec.rb +22 -0
- data/spec/integration/type/tidy_spec.rb +3 -0
- data/spec/integration/type/user_spec.rb +8 -3
- data/spec/integration/util/autoload_spec.rb +6 -6
- data/spec/integration/util/rdoc/parser_spec.rb +7 -0
- data/spec/integration/util/windows/process_spec.rb +12 -0
- data/spec/integration/util/windows/security_spec.rb +36 -35
- data/spec/integration/util/windows/user_spec.rb +75 -9
- data/spec/integration/util_spec.rb +2 -2
- data/spec/lib/matchers/resource.rb +1 -0
- data/spec/lib/puppet_spec/compiler.rb +15 -2
- data/spec/lib/puppet_spec/files.rb +10 -0
- data/spec/lib/puppet_spec/language.rb +74 -0
- data/spec/lib/puppet_spec/matchers.rb +59 -32
- data/spec/lib/puppet_spec/module_tool/stub_source.rb +3 -0
- data/spec/shared_behaviours/hiera_indirections.rb +99 -0
- data/spec/shared_behaviours/iterative_functions.rb +69 -0
- data/spec/unit/application/apply_spec.rb +4 -2
- data/spec/unit/application/doc_spec.rb +17 -13
- data/spec/unit/application/master_spec.rb +35 -27
- data/spec/unit/application/resource_spec.rb +0 -5
- data/spec/unit/configurer/downloader_factory_spec.rb +96 -0
- data/spec/unit/configurer/downloader_spec.rb +3 -24
- data/spec/unit/configurer/plugin_handler_spec.rb +22 -22
- data/spec/unit/configurer_spec.rb +0 -4
- data/spec/unit/defaults_spec.rb +30 -0
- data/spec/unit/face/config_spec.rb +2 -1
- data/spec/unit/face/module/build_spec.rb +2 -2
- data/spec/unit/face/module/install_spec.rb +8 -8
- data/spec/unit/face/parser_spec.rb +71 -33
- data/spec/unit/file_bucket/file_spec.rb +2 -2
- data/spec/unit/file_system/uniquefile_spec.rb +184 -0
- data/spec/unit/forge/errors_spec.rb +4 -6
- data/spec/unit/forge/module_release_spec.rb +178 -89
- data/spec/unit/forge/repository_spec.rb +110 -2
- data/spec/unit/forge_spec.rb +39 -3
- data/spec/unit/functions/assert_type_spec.rb +22 -3
- data/spec/unit/{parser/methods → functions}/each_spec.rb +21 -1
- data/spec/unit/{parser/functions → functions}/epp_spec.rb +61 -9
- data/spec/unit/{parser/methods → functions}/filter_spec.rb +34 -38
- data/spec/unit/{parser/functions → functions}/inline_epp_spec.rb +18 -3
- data/spec/unit/functions/map_spec.rb +169 -0
- data/spec/unit/functions/match_spec.rb +57 -0
- data/spec/unit/{parser/methods → functions}/reduce_spec.rb +23 -5
- data/spec/unit/{parser/methods → functions}/slice_spec.rb +34 -21
- data/spec/unit/functions/with_spec.rb +35 -0
- data/spec/unit/functions4_spec.rb +7 -8
- data/spec/unit/indirector/catalog/compiler_spec.rb +0 -2
- data/spec/unit/indirector/catalog/static_compiler_spec.rb +11 -0
- data/spec/unit/indirector/data_binding/hiera_spec.rb +1 -96
- data/spec/unit/indirector/facts/facter_spec.rb +69 -102
- data/spec/unit/indirector/hiera_spec.rb +17 -0
- data/spec/unit/indirector/request_spec.rb +2 -4
- data/spec/unit/indirector/resource/ral_spec.rb +5 -0
- data/spec/unit/indirector/resource_type/parser_spec.rb +17 -12
- data/spec/unit/indirector/rest_spec.rb +36 -6
- data/spec/unit/interface/face_collection_spec.rb +2 -2
- data/spec/unit/module_tool/applications/builder_spec.rb +364 -14
- data/spec/unit/module_tool/applications/uninstaller_spec.rb +22 -0
- data/spec/unit/module_tool/applications/unpacker_spec.rb +40 -0
- data/spec/unit/module_tool/applications/upgrader_spec.rb +22 -0
- data/spec/unit/module_tool/installed_modules_spec.rb +49 -0
- data/spec/unit/module_tool/metadata_spec.rb +72 -4
- data/spec/unit/module_tool/tar/mini_spec.rb +2 -1
- data/spec/unit/network/authentication_spec.rb +4 -0
- data/spec/unit/network/http/api/v2/environments_spec.rb +24 -3
- data/spec/unit/network/http/connection_spec.rb +127 -92
- data/spec/unit/network/http/factory_spec.rb +82 -0
- data/spec/unit/network/http/handler_spec.rb +23 -13
- data/spec/unit/network/http/nocache_pool_spec.rb +43 -0
- data/spec/unit/network/http/pool_spec.rb +269 -0
- data/spec/unit/network/http/rack/rest_spec.rb +1 -1
- data/spec/unit/network/http/session_spec.rb +43 -0
- data/spec/unit/network/http/site_spec.rb +90 -0
- data/spec/unit/network/http/webrick_spec.rb +1 -1
- data/spec/unit/network/http_pool_spec.rb +9 -6
- data/spec/unit/network/http_spec.rb +10 -0
- data/spec/unit/node/environment_spec.rb +54 -0
- data/spec/unit/node_spec.rb +3 -5
- data/spec/unit/parser/compiler_spec.rb +9 -2
- data/spec/unit/parser/files_spec.rb +19 -0
- data/spec/unit/parser/functions/contain_spec.rb +51 -0
- data/spec/unit/parser/functions/create_resources_spec.rb +8 -1
- data/spec/unit/parser/functions/digest_spec.rb +31 -0
- data/spec/unit/parser/functions/file_spec.rb +48 -5
- data/spec/unit/parser/functions/include_spec.rb +15 -1
- data/spec/unit/parser/functions/realize_spec.rb +43 -35
- data/spec/unit/parser/functions/require_spec.rb +19 -5
- data/spec/unit/parser/functions/search_spec.rb +5 -0
- data/spec/unit/parser/functions/shared.rb +82 -0
- data/spec/unit/parser/functions_spec.rb +1 -1
- data/spec/unit/parser/lexer_spec.rb +10 -1
- data/spec/unit/parser/type_loader_spec.rb +0 -1
- data/spec/unit/pops/benchmark_spec.rb +1 -1
- data/spec/unit/pops/binder/bindings_composer_spec.rb +24 -22
- data/spec/unit/pops/binder/injector_spec.rb +8 -6
- data/spec/unit/pops/evaluator/access_ops_spec.rb +3 -3
- data/spec/unit/pops/evaluator/comparison_ops_spec.rb +7 -4
- data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +250 -30
- data/spec/unit/pops/evaluator/logical_ops_spec.rb +2 -2
- data/spec/unit/pops/evaluator/variables_spec.rb +0 -105
- data/spec/unit/pops/issues_spec.rb +170 -0
- data/spec/unit/pops/loaders/dependency_loader_spec.rb +17 -0
- data/spec/unit/pops/loaders/loader_paths_spec.rb +4 -15
- data/spec/unit/pops/loaders/loaders_spec.rb +31 -11
- data/spec/unit/pops/loaders/module_loaders_spec.rb +0 -29
- data/spec/unit/pops/loaders/static_loader_spec.rb +6 -0
- data/spec/unit/pops/parser/epp_parser_spec.rb +38 -9
- data/spec/unit/pops/parser/evaluating_parser_spec.rb +0 -1
- data/spec/unit/pops/parser/lexer2_spec.rb +21 -4
- data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +5 -0
- data/spec/unit/pops/parser/parse_calls_spec.rb +6 -3
- data/spec/unit/pops/parser/parse_conditionals_spec.rb +12 -5
- data/spec/unit/pops/parser/parse_containers_spec.rb +62 -7
- data/spec/unit/pops/parser/parse_resource_spec.rb +155 -73
- data/spec/unit/pops/parser/parser_spec.rb +16 -0
- data/spec/unit/pops/parser/parsing_typed_parameters_spec.rb +72 -0
- data/spec/unit/pops/transformer/transform_calls_spec.rb +1 -1
- data/spec/unit/pops/types/type_calculator_spec.rb +254 -57
- data/spec/unit/pops/types/type_factory_spec.rb +8 -3
- data/spec/unit/pops/types/type_parser_spec.rb +26 -5
- data/spec/unit/pops/validator/validator_spec.rb +143 -27
- data/spec/unit/provider/exec/posix_spec.rb +22 -14
- data/spec/unit/provider/exec/shell_spec.rb +2 -2
- data/spec/unit/provider/file/windows_spec.rb +7 -7
- data/spec/unit/provider/group/windows_adsi_spec.rb +17 -17
- data/spec/unit/provider/package/gem_spec.rb +10 -0
- data/spec/unit/provider/package/openbsd_spec.rb +66 -9
- data/spec/unit/provider/package/pacman_spec.rb +90 -71
- data/spec/unit/provider/package/windows/package_spec.rb +21 -6
- data/spec/unit/provider/package/yum_spec.rb +1 -0
- data/spec/unit/provider/parsedfile_spec.rb +1 -1
- data/spec/unit/provider/scheduled_task/win32_taskscheduler_spec.rb +9 -9
- data/spec/unit/provider/service/openbsd_spec.rb +26 -2
- data/spec/unit/provider/service/upstart_spec.rb +12 -1
- data/spec/unit/provider/ssh_authorized_key/parsed_spec.rb +6 -0
- data/spec/unit/provider/user/user_role_add_spec.rb +23 -1
- data/spec/unit/provider/user/windows_adsi_spec.rb +17 -17
- data/spec/unit/reports/store_spec.rb +0 -16
- data/spec/unit/resource/catalog_spec.rb +0 -5
- data/spec/unit/resource_spec.rb +2 -2
- data/spec/unit/settings/autosign_setting_spec.rb +2 -2
- data/spec/unit/settings/environment_conf_spec.rb +77 -10
- data/spec/unit/settings/file_setting_spec.rb +5 -4
- data/spec/unit/settings/priority_setting_spec.rb +4 -4
- data/spec/unit/settings_spec.rb +41 -3
- data/spec/unit/ssl/certificate_authority_spec.rb +25 -2
- data/spec/unit/ssl/inventory_spec.rb +13 -0
- data/spec/unit/ssl/validator_spec.rb +0 -1
- data/spec/unit/transaction/resource_harness_spec.rb +64 -0
- data/spec/unit/transaction_spec.rb +98 -47
- data/spec/unit/type/cron_spec.rb +3 -3
- data/spec/unit/type/exec_spec.rb +9 -0
- data/spec/unit/type/file/content_spec.rb +54 -71
- data/spec/unit/type/file/mode_spec.rb +26 -1
- data/spec/unit/type/file/source_spec.rb +26 -4
- data/spec/unit/type/file_spec.rb +3 -3
- data/spec/unit/type/nagios_spec.rb +12 -3
- data/spec/unit/type/resources_spec.rb +64 -30
- data/spec/unit/type/user_spec.rb +1 -1
- data/spec/unit/type/yumrepo_spec.rb +136 -0
- data/spec/unit/type/zone_spec.rb +44 -1
- data/spec/unit/type_spec.rb +20 -0
- data/spec/unit/util/colors_spec.rb +14 -8
- data/spec/unit/util/command_line_spec.rb +11 -7
- data/spec/unit/util/execution_spec.rb +35 -42
- data/spec/unit/util/feature_spec.rb +12 -0
- data/spec/unit/util/http_proxy_spec.rb +43 -1
- data/spec/unit/util/log/destinations_spec.rb +45 -1
- data/spec/unit/util/logging_spec.rb +38 -0
- data/spec/unit/util/pidlock_spec.rb +37 -1
- data/spec/unit/util/profiler/aggregate_spec.rb +59 -0
- data/spec/unit/util/profiler/around_profiler_spec.rb +61 -0
- data/spec/unit/util/profiler/logging_spec.rb +18 -29
- data/spec/unit/util/profiler/wall_clock_spec.rb +1 -1
- data/spec/unit/util/profiler_spec.rb +55 -0
- data/spec/unit/util/queue_spec.rb +0 -1
- data/spec/unit/util/rdoc/parser_spec.rb +14 -6
- data/spec/unit/util/tagging_spec.rb +1 -1
- data/spec/unit/util/windows/access_control_entry_spec.rb +1 -1
- data/spec/unit/util/{adsi_spec.rb → windows/adsi_spec.rb} +111 -108
- data/spec/unit/util/windows/api_types_spec.rb +28 -0
- data/spec/unit/util/windows/registry_spec.rb +7 -6
- data/spec/unit/util/windows/sid_spec.rb +3 -6
- data/spec/unit/util/windows/string_spec.rb +4 -0
- data/spec/unit/util/zaml_spec.rb +5 -1
- data/tasks/benchmark.rake +40 -5
- data/tasks/parser.rake +16 -2
- data/tasks/yard.rake +1 -1
- metadata +296 -68
- data/lib/puppet/file_system/tempfile.rb +0 -20
- data/lib/puppet/parser/e_parser_adapter.rb +0 -119
- data/lib/puppet/parser/functions/collect.rb +0 -15
- data/lib/puppet/parser/functions/select.rb +0 -15
- data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +0 -109
- data/lib/puppet/pops/parser/lexer.rb +0 -753
- data/lib/puppet/pops/parser/makefile +0 -6
- data/lib/puppet/pops/validation/checker3_1.rb +0 -558
- data/lib/puppet/pops/validation/validator_factory_3_1.rb +0 -31
- data/lib/puppet/util/profiler/none.rb +0 -8
- data/spec/unit/face/certificate_request_spec.rb +0 -7
- data/spec/unit/face/certificate_revocation_list_spec.rb +0 -7
- data/spec/unit/face/key_spec.rb +0 -7
- data/spec/unit/face/report_spec.rb +0 -7
- data/spec/unit/face/resource_spec.rb +0 -7
- data/spec/unit/face/resource_type_spec.rb +0 -7
- data/spec/unit/file_system/tempfile_spec.rb +0 -48
- data/spec/unit/parser/eparser_adapter_spec.rb +0 -407
- data/spec/unit/parser/methods/map_spec.rb +0 -184
- data/spec/unit/parser/methods/shared.rb +0 -45
- data/spec/unit/pops/parser/lexer_spec.rb +0 -840
- data/spec/unit/pops/transformer/transform_resource_spec.rb +0 -185
- data/spec/unit/util/profiler/none_spec.rb +0 -12
@@ -0,0 +1,197 @@
|
|
1
|
+
=0.1.0 (August 3rd, 2006)
|
2
|
+
|
3
|
+
* First public release
|
4
|
+
|
5
|
+
=0.2.0 (September 3rd, 2006)
|
6
|
+
|
7
|
+
* Added model transformation language (Transformer)
|
8
|
+
* Now RGen is distributed as a gem
|
9
|
+
* More complete documentation
|
10
|
+
|
11
|
+
=0.3.0 (October 9th, 2006)
|
12
|
+
|
13
|
+
* Improved XML Instantiator (Namespaces, Resolver, Customization)
|
14
|
+
* Added many_to_one builder method
|
15
|
+
* Added attribute reflection to MMBase (one_attributes, many_attributes)
|
16
|
+
* Added +copy+ method to Transformer
|
17
|
+
* Added simple model dumper module
|
18
|
+
* Fixed mmgen/mmgen.rb
|
19
|
+
|
20
|
+
=0.4.0 (Aug 8th, 2007)
|
21
|
+
|
22
|
+
* Added ECore metamodel and use it as the core metametamodel
|
23
|
+
* Revised and extended MetamodelBuilder language
|
24
|
+
* There is an ECore instance describing each metamodel built using MetamodelBuilder now
|
25
|
+
* Metamodel generator is now ECore based
|
26
|
+
* Added Ruby implementation of Boolean and Enum types
|
27
|
+
* Switched XML Instantiator to xmlscan for performance reasons
|
28
|
+
* Cleaned up instantiator file structure
|
29
|
+
* Renamed RGen::XMLInstantiator into RGen::Instantiator::DefaultXMLInstantiator
|
30
|
+
* Included xmlscan as a redistributed module
|
31
|
+
* Added support for chardata within XML tags
|
32
|
+
* Added (Enterprise Architect) XMI to ECore instantiator
|
33
|
+
* Some minor fixes in NameHelper
|
34
|
+
* Some fixes to template language
|
35
|
+
* Added UML1.3 Metamodel
|
36
|
+
* Added tranformation from UML1.3 to ECore
|
37
|
+
|
38
|
+
=0.4.1 (Nov 25th, 2007)
|
39
|
+
|
40
|
+
* Template language performance improvement
|
41
|
+
* Bugfix: use true/false instead of symbols for boolean attribute default values in metamodel classes
|
42
|
+
* Minor fixes on metamodel generator and ecore primitive type handling
|
43
|
+
* Made transformer implementation non-recursive to prevent "stack level too deep" exception for large models
|
44
|
+
* Minor fixes on EAInstantiator
|
45
|
+
* Made transformer search for matching rules for superclasses
|
46
|
+
* Bugfix: Enums are now added to EPackages created using the "ecore" method on a module
|
47
|
+
* Bugfix: Metamodel generator now writes enum names
|
48
|
+
* Performance improvement: don't require ecore transformer every time someone calls "ecore"
|
49
|
+
* Major performance improvement of template engine (no Regexps to check \n at end of line)
|
50
|
+
* Major performance improvement: AbstractXMLInstantiator optionally controls the garbage collector
|
51
|
+
* Major performance improvement: ERB templates are reused in metamodel_builder
|
52
|
+
* Added delete method to Environment
|
53
|
+
|
54
|
+
=0.4.2 (Mar 2nd, 2008)
|
55
|
+
|
56
|
+
* Performance improvement: collection feature of array extension uses hashes now to speed up array union
|
57
|
+
* Performance improvement: find on environment hashes elements by class
|
58
|
+
* Extended Transformer to allow sharing of result maps between several Transformer instances
|
59
|
+
* Bugfix: User defined upper bound values are no longer overwritten by -1 in all "many" metamodel builder methods
|
60
|
+
|
61
|
+
=0.4.3 (Aug 12th, 2008)
|
62
|
+
|
63
|
+
* Performance improvement: significant speed up of metamodel reverse registration
|
64
|
+
* Bugfix: Use object identity for metamodel to-many add/remove methods
|
65
|
+
* Bugfix: If expand's :for expression evaluates to nil an error is generated (silently used current context before)
|
66
|
+
* Template language indentation string can be set on DirectoryTemplateContainer and with the "file" command
|
67
|
+
|
68
|
+
=0.4.4 (Sep 10th, 2008)
|
69
|
+
|
70
|
+
* Added "abstract" metamodel DSL command
|
71
|
+
* Added ecore_ext.rb with convenience methods
|
72
|
+
* Added XMI1.1 serializer, revised XMLSerializer super class
|
73
|
+
|
74
|
+
=0.4.5 (Nov 17th, 2008)
|
75
|
+
|
76
|
+
* Updated XMI1.1 serializer to support explicit placement of elements on content level of the XMI file
|
77
|
+
|
78
|
+
=0.4.6 (Mar 1st, 2009)
|
79
|
+
|
80
|
+
* Bugfix: expand :foreach silently assumed current context if :foreach evalutated to nil
|
81
|
+
* Bugfix: fixed unit test for non-Windows plattforms (\r\n)
|
82
|
+
* Bugfix: depending on the Ruby version and/or platform constants used in templates could not be resolved
|
83
|
+
* Added automatic line ending detection (\n or \r\n) for template language +nl+ command
|
84
|
+
|
85
|
+
=0.5.0 (Jun 8th, 2009)
|
86
|
+
|
87
|
+
* Added ModelBuilder and ModelSerializer
|
88
|
+
* Added template language "define_local" command
|
89
|
+
* Added template language "evaluate" command
|
90
|
+
* Fixed template language bug: indentation problem when expand continues a non-empty line
|
91
|
+
* Fixed template language bug: template content expands several times when a template container is called recursively
|
92
|
+
* Fixed template language bug: template resolution problem if a template file has the same name as a template directory
|
93
|
+
* Cleaned up EA support
|
94
|
+
* Added method to clear ecore metamodel reflection cache
|
95
|
+
* Improved overriding of metamodel features in reopened classes
|
96
|
+
|
97
|
+
=0.5.1 (Nov 10th, 2009)
|
98
|
+
|
99
|
+
* Fixed metamodel builder bug: _register at one-side did not unregister from the element referenced by the old value
|
100
|
+
* Added helper class for building simple model comparators
|
101
|
+
|
102
|
+
=0.5.2 (Jun 13th, 2010)
|
103
|
+
|
104
|
+
* Added has_many_attr to metamodel builder, support for "many" attributes
|
105
|
+
* Added JSON support (json instantiator and serializer)
|
106
|
+
* Added QualifiedNameResolver instantiation helper
|
107
|
+
* Added reference proxy support
|
108
|
+
* Added more generic access methods on metaclasses
|
109
|
+
* Added ReferenceResolver resolver mixin
|
110
|
+
* Fixed ecore xml instantiator and serializer to handle references to builtin datatypes correctly
|
111
|
+
* Fixed bug in ecore xml serializer to not output references which are opposites of containment references
|
112
|
+
|
113
|
+
=0.5.3 (Aug 13th, 2010)
|
114
|
+
|
115
|
+
* Fixed string escaping in JSON instantiator and serializer
|
116
|
+
* Fixed order of eClassifiers and eSubpackages within an EPackage created by reflection on a RGen module
|
117
|
+
|
118
|
+
=0.5.4
|
119
|
+
|
120
|
+
* Fixed undeterministic order of child elements in ModelSerializer
|
121
|
+
* Fixed undeterministic order of attributes in XMI serializers
|
122
|
+
* Fixed ModelSerializer to always serialize the to-one part of bidirectional 1:N references
|
123
|
+
* Fixed ModelSerializer to add :as => in case of ambiguous child roles
|
124
|
+
* Made JsonInstantiator search subpackages for unqualified class names
|
125
|
+
|
126
|
+
=0.6.0
|
127
|
+
|
128
|
+
* Added exception when trying to instantiate abstract class
|
129
|
+
* Replaced xmlscan by dependency to nokogiri
|
130
|
+
* Made RGen work with Ruby 1.9
|
131
|
+
* Cleaned up intermediate attribute and reference description, improvement of metamodel load time
|
132
|
+
* Added optional data property for MMProxy
|
133
|
+
* Added ECoreToRuby which can create Ruby classes and modules from ECore models in memory (without metamodel generator)
|
134
|
+
* Refactored out QualifiedNameProvider and OppositeReferenceFilter
|
135
|
+
* Added model fragment/fragmented models support
|
136
|
+
* Extended Instantiator::ReferenceResolver and changed it into a class
|
137
|
+
* Moved utilities into util folder/module
|
138
|
+
* Added FileCacheMap
|
139
|
+
* Fixed template language bug: indenting not correct after callback into same template container and iinc/idec
|
140
|
+
* Added support for fragmented models
|
141
|
+
* Added FileChangeDetector utility
|
142
|
+
* Added CachedGlob utility
|
143
|
+
* Added index parameter to model element add methods
|
144
|
+
* Added MMGeneric
|
145
|
+
* Modified has_many_attr to allow the same value in the same attribute multiple times
|
146
|
+
* Made Environment#delete faster on large models
|
147
|
+
* Added type check of ecore defaultValueLiteral content in MetamodelBuilder
|
148
|
+
* Many-feature setters can work with an Enumerable instead of an Array
|
149
|
+
* Added pattern matcher utility
|
150
|
+
* Fixed problem of Ruby hanging when exceptions occur
|
151
|
+
* Fixed metamodel generator to quote illegal enum literal symbols
|
152
|
+
* Imporved UML to ECore transformer and EA support
|
153
|
+
|
154
|
+
=0.6.1
|
155
|
+
|
156
|
+
* Fixed metamodel builder to not overwrite a model element's 'class' method
|
157
|
+
* Added enum type transformation to ECoreToUML13 transformer, primitive type mapping based on instanceClassName
|
158
|
+
* Fixed default value appearing on read after setting a feature value to nil
|
159
|
+
* Added eIsSet and eUnset methods
|
160
|
+
* Added eContainer and eContainingFeature methods
|
161
|
+
* Fixed ModelFragment#elements not containing root elements
|
162
|
+
* Added optional output of invalidation reason to FileCacheMap#load_data
|
163
|
+
|
164
|
+
=0.6.2
|
165
|
+
|
166
|
+
* Made qualified name provider work with unidirectional containment references
|
167
|
+
* Fixed array_extension breaking the Hash[] method
|
168
|
+
|
169
|
+
=0.6.3
|
170
|
+
|
171
|
+
* Added BigDecimal support
|
172
|
+
|
173
|
+
=0.6.4
|
174
|
+
|
175
|
+
* Made FileChangeDetector and FileCacheMap robust against missing files
|
176
|
+
|
177
|
+
=0.6.5
|
178
|
+
|
179
|
+
* Fixed missing default argument of FragmentedModel#resolve
|
180
|
+
* Added to_str to methods which aren't forwarded by array extension on empty arrays
|
181
|
+
|
182
|
+
=0.6.6
|
183
|
+
|
184
|
+
* Added ModelFragment#mark_resolved and ResolutionHelper
|
185
|
+
* Added ReferenceResolver option to output failed resolutions
|
186
|
+
* Major performance improvement of FragmentedModel#resolve
|
187
|
+
* Fixed a Ruby 2.0 related warning
|
188
|
+
|
189
|
+
=0.7.0
|
190
|
+
|
191
|
+
* Enforce unique container rule by automatically disconnecting elements from other containers
|
192
|
+
* Added support for long typed values (ELong), thanks to Thomas Hallgren;
|
193
|
+
Note that this is merely an EMF compatibility thing, RGen could already handle big integers before
|
194
|
+
* Added eContents and eAllContents methods
|
195
|
+
* Added setNilOrRemoveGeneric and setNilOrRemoveAllGeneric methods
|
196
|
+
* Added disconnectContainer method
|
197
|
+
|
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2013 Martin Thiede
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
@@ -0,0 +1,78 @@
|
|
1
|
+
= RGen - Ruby Modelling and Generator Framework
|
2
|
+
|
3
|
+
RGen is a framework for Model Driven Software Development (MDSD)in Ruby.
|
4
|
+
This means that it helps you build Metamodels, instantiate Models, modify
|
5
|
+
and transform Models and finally generate arbitrary textual content from it.
|
6
|
+
|
7
|
+
RGen features include:
|
8
|
+
* Supporting Ruby 1.8.6, 1.8.7 and 1.9.x
|
9
|
+
* Metamodel definition language (internal Ruby DSL)
|
10
|
+
* ECore Meta-metamodel with an ECore instance available for every Metamodel
|
11
|
+
* Generator creating the Ruby metamodel definition from an ECore instance
|
12
|
+
* Transformer creating Ruby metamodel classes/modules from an ECore instance
|
13
|
+
* Instantiation of Metamodels, i.e. creation of Models (e.g. from XML)
|
14
|
+
* Model builder, internal Ruby DSL
|
15
|
+
* Model fragmentation over several several files and per-fragment caching
|
16
|
+
* Model Transformation language (internal Ruby DSL)
|
17
|
+
* Powerful template based generator language (internal Ruby DSL inside of ERB)
|
18
|
+
* UML 1.3 metamodel and XMI 1.1 instantiator included
|
19
|
+
* ECore XML support (XMI 2.0)
|
20
|
+
* UML-to-ECore and ECore-to-UML transformation (UML class models)
|
21
|
+
* Enterprise Architect support (UML1.3/XMI1.1)
|
22
|
+
|
23
|
+
|
24
|
+
== Download
|
25
|
+
|
26
|
+
Get the latest release from Github: https://github.com/mthiede/rgen
|
27
|
+
|
28
|
+
|
29
|
+
== Installation
|
30
|
+
|
31
|
+
Install RGen as a Ruby gem:
|
32
|
+
|
33
|
+
gem install rgen
|
34
|
+
|
35
|
+
|
36
|
+
== Running the Tests
|
37
|
+
|
38
|
+
Change to the 'test' folder and run the test suite:
|
39
|
+
|
40
|
+
cd test
|
41
|
+
ruby rgen_test.rb
|
42
|
+
|
43
|
+
|
44
|
+
== Documentation
|
45
|
+
|
46
|
+
RDoc documentation is available at Github: http://mthiede.github.com/rgen/
|
47
|
+
|
48
|
+
Find the main documentation parts for:
|
49
|
+
* RGen::MetamodelBuilder
|
50
|
+
* RGen::Transformer
|
51
|
+
* RGen::TemplateLanguage
|
52
|
+
* RGen::Fragment::FragmentedModel
|
53
|
+
|
54
|
+
|
55
|
+
== Examples
|
56
|
+
|
57
|
+
There are several examples of using RGen within the framework itself.
|
58
|
+
|
59
|
+
Metamodel Definition:
|
60
|
+
lib/rgen/ecore/ecore.rb
|
61
|
+
lib/metamodels/uml13_metamodel.rb
|
62
|
+
|
63
|
+
Instantiation:
|
64
|
+
lib/rgen/instantiator/xmi11_instantiator.rb
|
65
|
+
lib/rgen/instantiator/ecore_xml_instantiator.rb
|
66
|
+
|
67
|
+
Transformations:
|
68
|
+
lib/rgen/ecore/ruby_to_ecore.rb
|
69
|
+
lib/transformers/uml13_to_ecore.rb
|
70
|
+
|
71
|
+
Generators:
|
72
|
+
lib/mmgen/metamodel_generator.rb
|
73
|
+
|
74
|
+
|
75
|
+
== License
|
76
|
+
|
77
|
+
RGen is released under the MIT license.
|
78
|
+
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'rubygems/package_task'
|
2
|
+
require 'rdoc/task'
|
3
|
+
|
4
|
+
RGenGemSpec = Gem::Specification.new do |s|
|
5
|
+
s.name = %q{rgen}
|
6
|
+
s.version = "0.7.0"
|
7
|
+
s.date = Time.now.strftime("%Y-%m-%d")
|
8
|
+
s.summary = %q{Ruby Modelling and Generator Framework}
|
9
|
+
s.email = %q{martin dot thiede at gmx de}
|
10
|
+
s.homepage = %q{http://ruby-gen.org}
|
11
|
+
s.rubyforge_project = %q{rgen}
|
12
|
+
s.description = %q{RGen is a framework for Model Driven Software Development (MDSD) in Ruby. This means that it helps you build Metamodels, instantiate Models, modify and transform Models and finally generate arbitrary textual content from it.}
|
13
|
+
s.authors = ["Martin Thiede"]
|
14
|
+
gemfiles = Rake::FileList.new
|
15
|
+
gemfiles.include("{lib,test}/**/*")
|
16
|
+
gemfiles.include("README.rdoc", "CHANGELOG", "MIT-LICENSE", "Rakefile")
|
17
|
+
gemfiles.exclude(/\b\.bak\b/)
|
18
|
+
s.files = gemfiles
|
19
|
+
s.rdoc_options = ["--main", "README.rdoc", "-x", "test", "-x", "metamodels", "-x", "ea_support/uml13*"]
|
20
|
+
s.extra_rdoc_files = ["README.rdoc", "CHANGELOG", "MIT-LICENSE"]
|
21
|
+
end
|
22
|
+
|
23
|
+
RDoc::Task.new do |rd|
|
24
|
+
rd.main = "README.rdoc"
|
25
|
+
rd.rdoc_files.include("README.rdoc", "CHANGELOG", "MIT-LICENSE", "lib/**/*.rb")
|
26
|
+
rd.rdoc_files.exclude("lib/metamodels/*")
|
27
|
+
rd.rdoc_files.exclude("lib/ea_support/uml13*")
|
28
|
+
rd.rdoc_dir = "doc"
|
29
|
+
end
|
30
|
+
|
31
|
+
RGenPackageTask = Gem::PackageTask.new(RGenGemSpec) do |p|
|
32
|
+
p.need_zip = false
|
33
|
+
end
|
34
|
+
|
35
|
+
task :prepare_package_rdoc => :rdoc do
|
36
|
+
RGenPackageTask.package_files.include("doc/**/*")
|
37
|
+
end
|
38
|
+
|
39
|
+
task :release => [:prepare_package_rdoc, :package]
|
40
|
+
|
41
|
+
task :clobber => [:clobber_rdoc, :clobber_package]
|
@@ -0,0 +1,41 @@
|
|
1
|
+
=Known Bugs
|
2
|
+
* <% expand ... :indent => 0 %> seems to change behaviour of active template not only expanded subtemplate
|
3
|
+
* Ecore build in types (EString, ...) do not work in ECore instantiator, define your own EDatatype instead
|
4
|
+
* ECore datatypes in RGen::ECore should use Java like instanceClassNames
|
5
|
+
* overloading of transformation rules not working correctly
|
6
|
+
* with \r\n in templates, empty lines appear in output
|
7
|
+
* <%nl%> after <%nows%> creates no indentation (<%nl%> in another template in same file)
|
8
|
+
|
9
|
+
=Major issues
|
10
|
+
* XML instantiator documentation
|
11
|
+
* revise builder datatypes, especially enum implementation using Enum objects as types,
|
12
|
+
also revise ecore metamodel at this point
|
13
|
+
* revise documentation of BuilderExtensions
|
14
|
+
* further cleanup EA UML import/export
|
15
|
+
- The differences between EA UML and uml13_metamodel.rb seem to be violations by EA, ArgoUML follows the standard much more closely
|
16
|
+
- Enums should be instances of Enumeration class with EnumerationLiterals (UML Standard),
|
17
|
+
for EA convert to Classes with stereotype "enumeration" and attributes as literals
|
18
|
+
(this is what EA 7 creates when clicking on the "New Enumeration" button, EA will reference these classes as type)
|
19
|
+
This is whats missing for Pragma MM generators.
|
20
|
+
- Support primitive types as instances of DataType (which basically have a name) instead of tagged values
|
21
|
+
(this should also be working with EA 7, the tagged values are just add on)
|
22
|
+
- Support more UML metamodel features in the transformers
|
23
|
+
* Model Serializer:
|
24
|
+
- make "name" attribute configurable
|
25
|
+
- convert chars in string into something Ruby compatible (e.g newline to \n)
|
26
|
+
|
27
|
+
=Minor Issues
|
28
|
+
* allow definition of templates from within regular code
|
29
|
+
* indexed find in environment
|
30
|
+
* XMI Instantiator fixmap: add element names to make feature names unique
|
31
|
+
* no error for expand '..', :forach => (foreach misspelled)
|
32
|
+
* With JRuby (1.3.1) exceptions raised in templates have a short or no backtrace
|
33
|
+
|
34
|
+
|
35
|
+
* extended constraint checks (feature bounds)
|
36
|
+
* class filter in RText language
|
37
|
+
* root classes for RText language
|
38
|
+
* command/class aliases in RText language
|
39
|
+
* language variants (different root classes depending on file type)
|
40
|
+
* reference name in reference_qualifier
|
41
|
+
|
@@ -0,0 +1,61 @@
|
|
1
|
+
=RGen - Ruby Modelling and Generator Framework
|
2
|
+
|
3
|
+
RGen is a framework to support the "Model Driven Software Development (MDSD)" approach. Some people may want to call just about the same thing "Domain Specific Languages".
|
4
|
+
|
5
|
+
The essence is to have a Metamodel which imposes a structure as well as certain other constraints on the Models to be instantiated from it. The Metamodel can be part of the software which is being developed.
|
6
|
+
From a formal language point of view, the metamodel could be regarded as a grammer with the model being a sentence of the grammer.
|
7
|
+
|
8
|
+
One possible application of MDSD are large domain specific software systems like banking systems. In this case one would define a metamodel which reflects the application domain (e.g. accounts, customers, their relations, ...).
|
9
|
+
The metamodel can then serve as a common means of communication between users from the application domain (e.g. the customer) and software developers, as well as between software developers working on different subsystems. In addition, the metamodel can be used to generate recurring parts of the software instead of writing it by hand
|
10
|
+
(e.g. database interfaces, application server glue code, etc). In a particular project a lot more usescases will typically show up.
|
11
|
+
|
12
|
+
A very good framework implementing the MDSD approach is the open source Java framework OpenArchitectureWare (http://www.openarchitectureware.org/). Actually OpenArchitectureWare inspired the development of RGen.
|
13
|
+
|
14
|
+
RGen implements many features also provided by OpenArchitectureWare:
|
15
|
+
* Programmatic (textual) definition of Metamodels
|
16
|
+
* Instantiation of models from various sources (XML, UML Models, ...)
|
17
|
+
* Support of Model Transformations
|
18
|
+
* Powerful template language (based on ERB) to generate arbitrary textual content
|
19
|
+
|
20
|
+
In contrast to the mentioned Java framework, RGen is a more lightweight approach.
|
21
|
+
It can be used to write powerful generator or transformation scripts quickly.
|
22
|
+
However I believe RGen can also be useful in large software development projects.
|
23
|
+
|
24
|
+
|
25
|
+
Here are some example usecases of RGen:
|
26
|
+
|
27
|
+
Example 1: Generating C Code from a XML description
|
28
|
+
* Directly instantiate the XML file using RGen's XMLInstantiator
|
29
|
+
An implicit Metamodel (Ruby classes) will be created automatically
|
30
|
+
The model is now available as Ruby objects in memory
|
31
|
+
* Use the template language to navigate the instantiated model and generate C code
|
32
|
+
|
33
|
+
Example 2: UML Defined Application specific Metamodel
|
34
|
+
* Specify your metamodel as a UML Class Diagram
|
35
|
+
* If the tool you use is Enterprise Architect, the UML Class Diagram can directly be instantiated using RGen's XMIClassInstantiator
|
36
|
+
* If not, support for your tool should be added. The existing XMI instantiator is basically a transformation from an XMI model to an UML Class model. For a tool producing different XMI output the transformation has to be adapted.
|
37
|
+
* Use the included MetamodelGenerator to generate Ruby classes from the UML model. These classes act as your application specific metamodel. Of course the generated classes can be extended by hand written code, either by subclassing or by just adding methods using Ruby's open classes. The generated code itself should not be touched.
|
38
|
+
* Extend RGen with an own instantiator which reads your specific file format and instantiates your application specific metamodel
|
39
|
+
* Then go on doing transformations on your model(s) or generate output.
|
40
|
+
|
41
|
+
|
42
|
+
RGen could also be useful in combination with Rails.
|
43
|
+
One application to Rails could be to generate not only the model, view and controller classes, but also the database schemas and code reflecting associations between Rails model elements (i.e. the has_many, belongs_to, .. code in the ActiveRecord subclasses)
|
44
|
+
The base model for such a generation could be a description of the model elements and its associations as an UML class model.
|
45
|
+
Another application could be to base new Rails generators (like the Login generator, etc) on RGen.
|
46
|
+
|
47
|
+
|
48
|
+
=Major Performance Improvement
|
49
|
+
|
50
|
+
RGen 0.4.1 features major performance improvements.
|
51
|
+
All applications using the template language will be faster now.
|
52
|
+
Applications using the AbstractXMLInstantiator can benefit if explicit garbage collection is enabled.
|
53
|
+
(see documentation of AbstractXMLInstantiator)
|
54
|
+
Another improvement makes the "ecore" class method of classes and modules much faster.
|
55
|
+
Last but not least the loading of metamodels takes about half the time as before.
|
56
|
+
|
57
|
+
For large models the metamodel generator is about 20 times faster.
|
58
|
+
Reading a 50 000 lines ecore file now takes 9 seconds on a Centrino Duo 2GHz (85s with RGen 0.4.0)
|
59
|
+
Generating the RGen metamodel code for the ecore model takes 5 seconds (200s with RGen 0.4.0)
|
60
|
+
Requiring this RGen metamodel takes about 3 seconds (about 6s with RGen 0.4.0).
|
61
|
+
|