puppet 4.3.0 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. checksums.yaml +7 -0
  2. data/COMMITTERS.md +2 -2
  3. data/CONTRIBUTING.md +6 -6
  4. data/LICENSE +1 -1
  5. data/README.md +8 -9
  6. data/conf/auth.conf +2 -2
  7. data/ext/README.environment +1 -1
  8. data/ext/build_defaults.yaml +1 -1
  9. data/ext/debian/README.source +1 -1
  10. data/ext/debian/control +1 -1
  11. data/ext/debian/copyright +4 -4
  12. data/ext/debian/puppetmaster.README.debian +11 -9
  13. data/ext/emacs/puppet-mode.el +1 -1
  14. data/ext/envpuppet +2 -2
  15. data/ext/ips/puppetagent.xml +1 -1
  16. data/ext/ips/puppetmaster.xml +1 -1
  17. data/ext/project_data.yaml +8 -0
  18. data/ext/puppet-test +3 -3
  19. data/ext/rack/example-passenger-vhost.conf +1 -1
  20. data/ext/redhat/puppet.spec.erb +2 -2
  21. data/ext/regexp_nodes/regexp_nodes.rb +1 -1
  22. data/ext/solaris/pkginfo +1 -1
  23. data/ext/solaris/smf/puppet.xml +1 -1
  24. data/ext/suse/puppet.spec +2 -2
  25. data/ext/upload_facts.rb +1 -1
  26. data/ext/windows/puppet_interactive.bat +6 -0
  27. data/ext/windows/puppet_shell.bat +9 -0
  28. data/ext/windows/run_puppet_interactive.bat +9 -0
  29. data/ext/yaml_nodes.rb +1 -1
  30. data/install.rb +30 -20
  31. data/lib/hiera/scope.rb +1 -1
  32. data/lib/puppet/agent.rb +1 -1
  33. data/lib/puppet/application/agent.rb +4 -2
  34. data/lib/puppet/application/apply.rb +7 -4
  35. data/lib/puppet/application/cert.rb +1 -1
  36. data/lib/puppet/application/device.rb +1 -1
  37. data/lib/puppet/application/filebucket.rb +1 -1
  38. data/lib/puppet/application/inspect.rb +1 -1
  39. data/lib/puppet/application/lookup.rb +45 -47
  40. data/lib/puppet/application/master.rb +2 -2
  41. data/lib/puppet/application/resource.rb +1 -1
  42. data/lib/puppet/configurer.rb +100 -22
  43. data/lib/puppet/data_providers/hiera_config.rb +28 -3
  44. data/lib/puppet/data_providers/hiera_interpolate.rb +30 -15
  45. data/lib/puppet/data_providers/hiera_support.rb +1 -1
  46. data/lib/puppet/data_providers/json_data_provider_factory.rb +2 -2
  47. data/lib/puppet/data_providers/lookup_adapter.rb +73 -26
  48. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +2 -2
  49. data/lib/puppet/defaults.rb +69 -22
  50. data/lib/puppet/environments.rb +3 -1
  51. data/lib/puppet/face/config.rb +1 -1
  52. data/lib/puppet/face/epp.rb +1 -1
  53. data/lib/puppet/face/help/man.erb +1 -1
  54. data/lib/puppet/face/module/install.rb +6 -6
  55. data/lib/puppet/face/parser.rb +12 -9
  56. data/lib/puppet/face/status.rb +2 -1
  57. data/lib/puppet/feature/cfpropertylist.rb +3 -0
  58. data/lib/puppet/feature/telnet.rb +9 -0
  59. data/lib/puppet/file_serving/http_metadata.rb +46 -0
  60. data/lib/puppet/file_serving/metadata.rb +18 -2
  61. data/lib/puppet/file_serving/terminus_selector.rb +2 -0
  62. data/lib/puppet/file_system/file_impl.rb +2 -2
  63. data/lib/puppet/file_system/memory_impl.rb +1 -1
  64. data/lib/puppet/file_system/uniquefile.rb +1 -1
  65. data/lib/puppet/file_system.rb +2 -2
  66. data/lib/puppet/forge/repository.rb +1 -31
  67. data/lib/puppet/forge.rb +1 -1
  68. data/lib/puppet/functions/assert_type.rb +9 -9
  69. data/lib/puppet/functions/each.rb +5 -13
  70. data/lib/puppet/functions/filter.rb +5 -14
  71. data/lib/puppet/functions/lookup.rb +126 -150
  72. data/lib/puppet/functions/map.rb +6 -14
  73. data/lib/puppet/functions/match.rb +1 -0
  74. data/lib/puppet/functions/reduce.rb +5 -13
  75. data/lib/puppet/functions/reverse_each.rb +82 -0
  76. data/lib/puppet/functions/scanf.rb +15 -18
  77. data/lib/puppet/functions/slice.rb +22 -36
  78. data/lib/puppet/functions/split.rb +2 -2
  79. data/lib/puppet/functions/step.rb +88 -0
  80. data/lib/puppet/functions/type.rb +70 -0
  81. data/lib/puppet/functions.rb +45 -6
  82. data/lib/puppet/graph/rb_tree_map.rb +1 -1
  83. data/lib/puppet/indirector/catalog/compiler.rb +188 -5
  84. data/lib/puppet/indirector/facts/facter.rb +2 -13
  85. data/lib/puppet/indirector/file_content/http.rb +15 -0
  86. data/lib/puppet/indirector/file_metadata/http.rb +27 -0
  87. data/lib/puppet/indirector/generic_http.rb +16 -0
  88. data/lib/puppet/indirector/hiera.rb +3 -1
  89. data/lib/puppet/indirector/indirection.rb +6 -2
  90. data/lib/puppet/indirector/json.rb +2 -2
  91. data/lib/puppet/indirector/node/exec.rb +1 -1
  92. data/lib/puppet/indirector/node/ldap.rb +1 -1
  93. data/lib/puppet/indirector/rest.rb +2 -1
  94. data/lib/puppet/info_service/class_information_service.rb +13 -12
  95. data/lib/puppet/loaders.rb +1 -0
  96. data/lib/puppet/module.rb +6 -2
  97. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +9 -2
  98. data/lib/puppet/module_tool/skeleton/templates/generator/spec/classes/init_spec.rb.erb +1 -1
  99. data/lib/puppet/module_tool/skeleton/templates/generator/tests/init.pp.erb +2 -2
  100. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  101. data/lib/puppet/network/http/pool.rb +9 -0
  102. data/lib/puppet/node/environment.rb +11 -2
  103. data/lib/puppet/node.rb +11 -2
  104. data/lib/puppet/parser/ast/pops_bridge.rb +19 -22
  105. data/lib/puppet/parser/compiler.rb +4 -11
  106. data/lib/puppet/parser/environment_compiler.rb +0 -1
  107. data/lib/puppet/parser/functions/fqdn_rand.rb +1 -1
  108. data/lib/puppet/parser/functions/inline_template.rb +1 -1
  109. data/lib/puppet/parser/functions/lookup.rb +128 -149
  110. data/lib/puppet/parser/functions/map.rb +1 -1
  111. data/lib/puppet/parser/functions/match.rb +1 -0
  112. data/lib/puppet/parser/functions/scanf.rb +15 -26
  113. data/lib/puppet/parser/functions/slice.rb +17 -24
  114. data/lib/puppet/parser/functions/split.rb +1 -1
  115. data/lib/puppet/parser/functions.rb +28 -16
  116. data/lib/puppet/parser/resource.rb +19 -17
  117. data/lib/puppet/parser/scope.rb +176 -5
  118. data/lib/puppet/plugins/data_providers/data_provider.rb +56 -14
  119. data/lib/puppet/pops/adaptable.rb +4 -1
  120. data/lib/puppet/pops/adapters.rb +80 -12
  121. data/lib/puppet/pops/binder/binder.rb +21 -17
  122. data/lib/puppet/pops/binder/binder_issues.rb +8 -6
  123. data/lib/puppet/pops/binder/bindings_checker.rb +12 -8
  124. data/lib/puppet/pops/binder/bindings_composer.rb +16 -12
  125. data/lib/puppet/pops/binder/bindings_factory.rb +108 -104
  126. data/lib/puppet/pops/binder/bindings_model.rb +49 -47
  127. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +10 -6
  128. data/lib/puppet/pops/binder/injector.rb +53 -48
  129. data/lib/puppet/pops/binder/key_factory.rb +10 -6
  130. data/lib/puppet/pops/binder/producers.rb +67 -62
  131. data/lib/puppet/pops/evaluator/access_operator.rb +98 -96
  132. data/lib/puppet/pops/evaluator/closure.rb +122 -106
  133. data/lib/puppet/pops/evaluator/collector_transformer.rb +34 -14
  134. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +0 -1
  135. data/lib/puppet/pops/evaluator/compare_operator.rb +13 -9
  136. data/lib/puppet/pops/evaluator/epp_evaluator.rb +9 -8
  137. data/lib/puppet/pops/evaluator/evaluator_impl.rb +78 -76
  138. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +85 -0
  139. data/lib/puppet/pops/evaluator/relationship_operator.rb +13 -11
  140. data/lib/puppet/pops/evaluator/runtime3_converter.rb +5 -0
  141. data/lib/puppet/pops/evaluator/runtime3_support.rb +47 -42
  142. data/lib/puppet/pops/functions/function.rb +6 -2
  143. data/lib/puppet/pops/issue_reporter.rb +6 -4
  144. data/lib/puppet/pops/issues.rb +50 -11
  145. data/lib/puppet/pops/loader/base_loader.rb +1 -1
  146. data/lib/puppet/pops/loader/loader.rb +1 -1
  147. data/lib/puppet/pops/loader/loader_paths.rb +15 -0
  148. data/lib/puppet/pops/loader/module_loaders.rb +17 -13
  149. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +18 -13
  150. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +16 -3
  151. data/lib/puppet/pops/loader/type_definition_instantiator.rb +55 -0
  152. data/lib/puppet/pops/loaders.rb +51 -9
  153. data/lib/puppet/pops/lookup/explainer.rb +73 -3
  154. data/lib/puppet/pops/lookup/invocation.rb +21 -19
  155. data/lib/puppet/pops/lookup.rb +17 -12
  156. data/lib/puppet/pops/merge_strategy.rb +16 -19
  157. data/lib/puppet/pops/model/factory.rb +179 -157
  158. data/lib/puppet/pops/model/model.rb +17 -8
  159. data/lib/puppet/pops/model/model_label_provider.rb +14 -7
  160. data/lib/puppet/pops/model/model_meta.rb +17 -0
  161. data/lib/puppet/pops/model/model_tree_dumper.rb +8 -0
  162. data/lib/puppet/pops/parser/egrammar.ra +38 -14
  163. data/lib/puppet/pops/parser/eparser.rb +1353 -1276
  164. data/lib/puppet/pops/parser/epp_support.rb +11 -7
  165. data/lib/puppet/pops/parser/evaluating_parser.rb +17 -13
  166. data/lib/puppet/pops/parser/heredoc_support.rb +15 -11
  167. data/lib/puppet/pops/parser/lexer2.rb +428 -403
  168. data/lib/puppet/pops/parser/lexer_support.rb +85 -7
  169. data/lib/puppet/pops/parser/locator.rb +21 -0
  170. data/lib/puppet/pops/parser/parser_support.rb +19 -16
  171. data/lib/puppet/pops/parser/slurp_support.rb +16 -8
  172. data/lib/puppet/pops/types/class_loader.rb +23 -19
  173. data/lib/puppet/pops/types/enumeration.rb +9 -26
  174. data/lib/puppet/pops/types/iterable.rb +308 -0
  175. data/lib/puppet/pops/types/recursion_guard.rb +82 -0
  176. data/lib/puppet/pops/types/type_acceptor.rb +25 -0
  177. data/lib/puppet/pops/types/type_asserter.rb +10 -9
  178. data/lib/puppet/pops/types/type_calculator.rb +140 -387
  179. data/lib/puppet/pops/types/type_factory.rb +91 -57
  180. data/lib/puppet/pops/types/type_formatter.rb +334 -0
  181. data/lib/puppet/pops/types/type_mismatch_describer.rb +226 -59
  182. data/lib/puppet/pops/types/type_parser.rb +159 -112
  183. data/lib/puppet/pops/types/types.rb +2057 -1253
  184. data/lib/puppet/pops/utils.rb +11 -10
  185. data/lib/puppet/pops/validation/checker4_0.rb +115 -63
  186. data/lib/puppet/pops/validation/validator_factory_4_0.rb +8 -4
  187. data/lib/puppet/pops/validation.rb +11 -9
  188. data/lib/puppet/pops.rb +0 -8
  189. data/lib/puppet/provider/aixobject.rb +1 -1
  190. data/lib/puppet/provider/augeas/augeas.rb +1 -1
  191. data/lib/puppet/provider/cron/crontab.rb +1 -1
  192. data/lib/puppet/provider/exec/windows.rb +1 -1
  193. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  194. data/lib/puppet/provider/macauthorization/macauthorization.rb +10 -9
  195. data/lib/puppet/provider/nameservice/directoryservice.rb +35 -50
  196. data/lib/puppet/provider/package/appdmg.rb +3 -2
  197. data/lib/puppet/provider/package/dnf.rb +1 -1
  198. data/lib/puppet/provider/package/pip.rb +16 -9
  199. data/lib/puppet/provider/package/pip3.rb +1 -1
  200. data/lib/puppet/provider/package/pkg.rb +1 -1
  201. data/lib/puppet/provider/package/pkgdmg.rb +3 -2
  202. data/lib/puppet/provider/package/pkgng.rb +13 -4
  203. data/lib/puppet/provider/package/rpm.rb +0 -1
  204. data/lib/puppet/provider/package/windows.rb +1 -1
  205. data/lib/puppet/provider/package/yum.rb +2 -2
  206. data/lib/puppet/provider/package/zypper.rb +19 -0
  207. data/lib/puppet/provider/service/debian.rb +7 -20
  208. data/lib/puppet/provider/service/init.rb +7 -0
  209. data/lib/puppet/provider/service/launchd.rb +6 -12
  210. data/lib/puppet/provider/service/systemd.rb +9 -2
  211. data/lib/puppet/provider/sshkey/parsed.rb +1 -1
  212. data/lib/puppet/provider/user/aix.rb +1 -1
  213. data/lib/puppet/provider/user/directoryservice.rb +33 -58
  214. data/lib/puppet/provider/user/windows_adsi.rb +2 -2
  215. data/lib/puppet/provider/yumrepo/inifile.rb +6 -3
  216. data/lib/puppet/provider/zfs/zfs.rb +1 -1
  217. data/lib/puppet/provider/zpool/zpool.rb +1 -1
  218. data/lib/puppet/reference/configuration.rb +1 -1
  219. data/lib/puppet/reference/providers.rb +1 -1
  220. data/lib/puppet/resource/capability_finder.rb +20 -13
  221. data/lib/puppet/resource/catalog.rb +60 -3
  222. data/lib/puppet/resource/status.rb +11 -2
  223. data/lib/puppet/resource/type.rb +33 -42
  224. data/lib/puppet/resource.rb +15 -12
  225. data/lib/puppet/settings/config_file.rb +1 -1
  226. data/lib/puppet/settings/environment_conf.rb +13 -5
  227. data/lib/puppet/settings.rb +1 -1
  228. data/lib/puppet/ssl/certificate_factory.rb +3 -3
  229. data/lib/puppet/ssl/certificate_request.rb +4 -4
  230. data/lib/puppet/ssl/certificate_signer.rb +1 -1
  231. data/lib/puppet/ssl/validator/default_validator.rb +1 -1
  232. data/lib/puppet/test/test_helper.rb +16 -4
  233. data/lib/puppet/transaction/additional_resource_generator.rb +23 -5
  234. data/lib/puppet/transaction/report.rb +31 -1
  235. data/lib/puppet/transaction/resource_harness.rb +0 -25
  236. data/lib/puppet/transaction.rb +15 -2
  237. data/lib/puppet/type/augeas.rb +1 -1
  238. data/lib/puppet/type/cron.rb +12 -12
  239. data/lib/puppet/type/file/checksum_value.rb +53 -0
  240. data/lib/puppet/type/file/content.rb +26 -111
  241. data/lib/puppet/type/file/data_sync.rb +84 -0
  242. data/lib/puppet/type/file/ensure.rb +17 -14
  243. data/lib/puppet/type/file/selcontext.rb +1 -1
  244. data/lib/puppet/type/file/source.rb +103 -18
  245. data/lib/puppet/type/file.rb +91 -39
  246. data/lib/puppet/type/filebucket.rb +1 -1
  247. data/lib/puppet/type/group.rb +6 -2
  248. data/lib/puppet/type/interface.rb +8 -3
  249. data/lib/puppet/type/macauthorization.rb +1 -1
  250. data/lib/puppet/type/package.rb +6 -0
  251. data/lib/puppet/type/schedule.rb +1 -1
  252. data/lib/puppet/type/stage.rb +1 -1
  253. data/lib/puppet/type/user.rb +19 -17
  254. data/lib/puppet/type/yumrepo.rb +20 -0
  255. data/lib/puppet/type.rb +11 -11
  256. data/lib/puppet/util/autoload.rb +16 -11
  257. data/lib/puppet/util/checksums.rb +74 -31
  258. data/lib/puppet/util/execution.rb +1 -1
  259. data/lib/puppet/util/http_proxy.rb +72 -0
  260. data/lib/puppet/util/log.rb +2 -0
  261. data/lib/puppet/util/logging.rb +43 -1
  262. data/lib/puppet/util/monkey_patches.rb +2 -2
  263. data/lib/puppet/util/multi_match.rb +51 -0
  264. data/lib/puppet/util/network_device/cisco/device.rb +10 -2
  265. data/lib/puppet/util/network_device/cisco/interface.rb +21 -8
  266. data/lib/puppet/util/network_device/transport/ssh.rb +7 -3
  267. data/lib/puppet/util/network_device/transport/telnet.rb +39 -36
  268. data/lib/puppet/util/plist.rb +130 -0
  269. data/lib/puppet/util/resource_template.rb +1 -1
  270. data/lib/puppet/util/run_mode.rb +2 -2
  271. data/lib/puppet/util/skip_tags.rb +9 -0
  272. data/lib/puppet/util/windows/access_control_entry.rb +1 -1
  273. data/lib/puppet/util/windows/access_control_list.rb +3 -3
  274. data/lib/puppet/util/windows/adsi.rb +65 -28
  275. data/lib/puppet/util/windows/api_types.rb +24 -18
  276. data/lib/puppet/util/windows/com.rb +3 -3
  277. data/lib/puppet/util/windows/error.rb +1 -1
  278. data/lib/puppet/util/windows/file.rb +8 -8
  279. data/lib/puppet/util/windows/principal.rb +190 -0
  280. data/lib/puppet/util/windows/process.rb +78 -11
  281. data/lib/puppet/util/windows/registry.rb +22 -16
  282. data/lib/puppet/util/windows/root_certs.rb +5 -5
  283. data/lib/puppet/util/windows/security.rb +33 -35
  284. data/lib/puppet/util/windows/security_descriptor.rb +1 -1
  285. data/lib/puppet/util/windows/sid.rb +84 -15
  286. data/lib/puppet/util/windows/taskscheduler.rb +15 -15
  287. data/lib/puppet/util/windows/user.rb +10 -10
  288. data/lib/puppet/util/windows.rb +4 -0
  289. data/lib/puppet/util.rb +109 -22
  290. data/lib/puppet/vendor/deep_merge/deep_merge.gemspec +1 -1
  291. data/lib/puppet/vendor/pathspec/LICENSE +2 -2
  292. data/lib/puppet/vendor/pathspec/README.md +1 -1
  293. data/lib/puppet/vendor/rgen/README.rdoc +1 -1
  294. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +14 -0
  295. data/lib/puppet/version.rb +1 -1
  296. data/lib/puppet.rb +17 -0
  297. data/lib/semver.rb +17 -1
  298. data/man/man5/puppet.conf.5 +12 -12
  299. data/man/man8/extlookup2hiera.8 +1 -1
  300. data/man/man8/puppet-agent.8 +2 -2
  301. data/man/man8/puppet-apply.8 +2 -2
  302. data/man/man8/puppet-ca.8 +2 -2
  303. data/man/man8/puppet-catalog.8 +2 -2
  304. data/man/man8/puppet-cert.8 +2 -2
  305. data/man/man8/puppet-certificate.8 +2 -2
  306. data/man/man8/puppet-certificate_request.8 +2 -2
  307. data/man/man8/puppet-certificate_revocation_list.8 +2 -2
  308. data/man/man8/puppet-config.8 +3 -3
  309. data/man/man8/puppet-describe.8 +1 -1
  310. data/man/man8/puppet-device.8 +1 -1
  311. data/man/man8/puppet-doc.8 +1 -1
  312. data/man/man8/puppet-epp.8 +2 -2
  313. data/man/man8/puppet-facts.8 +2 -2
  314. data/man/man8/puppet-file.8 +2 -2
  315. data/man/man8/puppet-filebucket.8 +2 -2
  316. data/man/man8/puppet-help.8 +2 -2
  317. data/man/man8/puppet-inspect.8 +2 -2
  318. data/man/man8/puppet-key.8 +2 -2
  319. data/man/man8/puppet-man.8 +2 -2
  320. data/man/man8/puppet-master.8 +2 -2
  321. data/man/man8/puppet-module.8 +9 -9
  322. data/man/man8/puppet-node.8 +2 -2
  323. data/man/man8/puppet-parser.8 +2 -2
  324. data/man/man8/puppet-plugin.8 +2 -2
  325. data/man/man8/puppet-report.8 +2 -2
  326. data/man/man8/puppet-resource.8 +2 -2
  327. data/man/man8/puppet-resource_type.8 +2 -2
  328. data/man/man8/puppet-status.8 +3 -3
  329. data/man/man8/puppet.8 +1 -1
  330. data/spec/fixtures/module.tar.gz +0 -0
  331. data/spec/fixtures/unit/application/environments/production/data/common.yaml +4 -0
  332. data/spec/fixtures/unit/application/environments/production/manifests/site.pp +1 -0
  333. data/spec/fixtures/unit/application/environments/puppet_func_provider/environment.conf +1 -0
  334. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/data.pp +10 -0
  335. data/spec/fixtures/unit/application/environments/puppet_func_provider/manifests/site.pp +1 -0
  336. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/common.yaml +4 -0
  337. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/data/specific.yaml +4 -0
  338. data/spec/fixtures/unit/data_providers/environments/hiera_module_config/hiera.yaml +7 -0
  339. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/common.yaml +4 -0
  340. data/spec/fixtures/unit/data_providers/environments/hiera_modules/data/specific.yaml +4 -0
  341. data/spec/fixtures/unit/data_providers/environments/hiera_modules/environment.conf +2 -0
  342. data/spec/fixtures/unit/data_providers/environments/hiera_modules/hiera.yaml +7 -0
  343. data/spec/fixtures/unit/data_providers/environments/hiera_modules/manifests/site.pp +1 -0
  344. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/data/common.yaml +6 -0
  345. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/hiera.yaml +5 -0
  346. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/manifests/init.pp +2 -0
  347. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/one/metadata.json +9 -0
  348. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +4 -0
  349. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/hiera.yaml +5 -0
  350. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/manifests/init.pp +3 -0
  351. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/metadata.json +9 -0
  352. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +1 -0
  353. data/spec/fixtures/unit/functions/lookup/environments/production/modules/bad_data/manifests/init.pp +0 -1
  354. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/data/empty.json +0 -0
  355. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/hiera.yaml +5 -0
  356. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/manifests/init.pp +2 -0
  357. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_json/metadata.json +9 -0
  358. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/data/empty.yaml +1 -0
  359. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/hiera.yaml +5 -0
  360. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/manifests/init.pp +2 -0
  361. data/spec/fixtures/unit/functions/lookup/environments/production/modules/empty_yaml/metadata.json +9 -0
  362. data/spec/fixtures/unit/functions/lookup/environments/production/modules/hieraprovider/data/first.json +2 -1
  363. data/spec/fixtures/unit/module/trailing-comma.json +1 -1
  364. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/functions/usee_puppet.pp +3 -0
  365. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/lib/puppet/functions/usee/usee_ruby.rb +6 -0
  366. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/manifests/init.pp +8 -0
  367. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee/types/zero.pp +1 -0
  368. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/usee2/lib/puppet/functions/usee2/callee.rb +5 -0
  369. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet.pp +5 -0
  370. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_puppet_init.pp +5 -0
  371. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/functions/puppet_calling_ruby.pp +5 -0
  372. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/caller2.rb +5 -0
  373. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet.rb +5 -0
  374. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_puppet_init.rb +5 -0
  375. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/lib/puppet/functions/user/ruby_calling_ruby.rb +5 -0
  376. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/manifests/init.pp +81 -0
  377. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/metadata.json +2 -1
  378. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseeone.pp +1 -0
  379. data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/modules/user/types/withuseezero.pp +1 -0
  380. data/spec/fixtures/unit/provider/package/yum/yum-check-update-broken-notices.txt +187 -0
  381. data/spec/fixtures/unit/provider/sshkey/parsed/sample_with_blank_lines +8 -0
  382. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_fetch_if_not_on_the_local_disk.yml +205 -0
  383. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_not_update_if_content_on_disk_is_up-to-date.yml +213 -0
  384. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_md5/should_update_if_content_differs_on_disk.yml +213 -0
  385. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_mtime_is_older_on_disk.yml +205 -0
  386. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_no_header_specified.yml +197 -0
  387. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_fetch_if_not_on_the_local_disk.yml +205 -0
  388. data/spec/fixtures/vcr/cassettes/Puppet_Type_File/when_sourcing/from_http/using_mtime/should_not_update_if_mtime_is_newer_on_disk.yml +205 -0
  389. data/spec/integration/defaults_spec.rb +14 -2
  390. data/spec/integration/file_system/uniquefile_spec.rb +29 -0
  391. data/spec/integration/module_tool/tar/mini_spec.rb +28 -0
  392. data/spec/integration/node/environment_spec.rb +13 -0
  393. data/spec/integration/parser/collection_spec.rb +8 -0
  394. data/spec/integration/parser/dynamic_scoping_spec.rb +67 -0
  395. data/spec/integration/parser/parameter_defaults_spec.rb +336 -0
  396. data/spec/integration/parser/undef_param_spec.rb +8 -0
  397. data/spec/integration/provider/yumrepo_spec.rb +1 -1
  398. data/spec/integration/test/test_helper_spec.rb +28 -0
  399. data/spec/integration/transaction/report_spec.rb +16 -0
  400. data/spec/integration/transaction_spec.rb +11 -0
  401. data/spec/integration/type/file_spec.rb +194 -4
  402. data/spec/integration/type/package_spec.rb +5 -1
  403. data/spec/integration/type/tidy_spec.rb +21 -9
  404. data/spec/integration/util/execution_spec.rb +22 -0
  405. data/spec/integration/util/windows/principal_spec.rb +201 -0
  406. data/spec/integration/util/windows/process_spec.rb +31 -0
  407. data/spec/{unit → integration}/util/windows/registry_spec.rb +91 -1
  408. data/spec/integration/util/windows/security_spec.rb +8 -8
  409. data/spec/integration/util/windows/user_spec.rb +1 -1
  410. data/spec/integration/util_spec.rb +49 -27
  411. data/spec/lib/puppet_spec/compiler.rb +17 -0
  412. data/spec/lib/puppet_spec/files.rb +2 -2
  413. data/spec/lib/puppet_spec/pops.rb +13 -0
  414. data/spec/shared_behaviours/iterative_functions.rb +1 -1
  415. data/spec/shared_contexts/types_setup.rb +96 -0
  416. data/spec/unit/agent_spec.rb +1 -0
  417. data/spec/unit/application/agent_spec.rb +10 -0
  418. data/spec/unit/application/apply_spec.rb +9 -0
  419. data/spec/unit/application/lookup_spec.rb +138 -28
  420. data/spec/unit/configurer/downloader_spec.rb +5 -5
  421. data/spec/unit/configurer_spec.rb +271 -39
  422. data/spec/unit/data_providers/hiera_data_provider_spec.rb +182 -5
  423. data/spec/unit/data_providers/hiera_interpolation_spec.rb +57 -0
  424. data/spec/unit/defaults_spec.rb +15 -0
  425. data/spec/unit/environments_spec.rb +24 -4
  426. data/spec/unit/face/epp_face_spec.rb +2 -2
  427. data/spec/unit/face/parser_spec.rb +43 -2
  428. data/spec/unit/file_serving/http_metadata_spec.rb +85 -0
  429. data/spec/unit/file_serving/metadata_spec.rb +50 -0
  430. data/spec/unit/file_serving/terminus_selector_spec.rb +12 -2
  431. data/spec/unit/file_system_spec.rb +26 -0
  432. data/spec/unit/functions/assert_type_spec.rb +36 -2
  433. data/spec/unit/functions/defined_spec.rb +2 -2
  434. data/spec/unit/functions/epp_spec.rb +17 -9
  435. data/spec/unit/functions/inline_epp_spec.rb +4 -4
  436. data/spec/unit/functions/lookup_spec.rb +88 -16
  437. data/spec/unit/functions/regsubst_spec.rb +1 -1
  438. data/spec/unit/functions/reverse_each_spec.rb +108 -0
  439. data/spec/unit/functions/step_spec.rb +113 -0
  440. data/spec/unit/functions/type_spec.rb +35 -0
  441. data/spec/unit/functions4_spec.rb +62 -6
  442. data/spec/unit/hiera/scope_spec.rb +5 -2
  443. data/spec/unit/indirector/catalog/compiler_spec.rb +705 -4
  444. data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
  445. data/spec/unit/indirector/indirection_spec.rb +1 -1
  446. data/spec/unit/indirector/json_spec.rb +1 -1
  447. data/spec/unit/info_service_spec.rb +94 -32
  448. data/spec/unit/module_spec.rb +14 -0
  449. data/spec/unit/module_tool/applications/builder_spec.rb +4 -4
  450. data/spec/unit/network/authstore_spec.rb +1 -1
  451. data/spec/unit/network/http/connection_spec.rb +1 -0
  452. data/spec/unit/network/http/pool_spec.rb +30 -0
  453. data/spec/unit/node_spec.rb +8 -0
  454. data/spec/unit/parser/compiler_spec.rb +16 -18
  455. data/spec/unit/parser/scope_spec.rb +28 -11
  456. data/spec/unit/pops/evaluator/access_ops_spec.rb +7 -7
  457. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +3 -0
  458. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +8 -2
  459. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +4 -4
  460. data/spec/unit/pops/evaluator/json_strict_literal_evaluator_spec.rb +63 -0
  461. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +6 -0
  462. data/spec/unit/pops/loaders/dependency_loader_spec.rb +53 -0
  463. data/spec/unit/pops/loaders/loaders_spec.rb +127 -2
  464. data/spec/unit/pops/parser/lexer2_spec.rb +118 -3
  465. data/spec/unit/pops/parser/parse_calls_spec.rb +8 -0
  466. data/spec/unit/pops/parser/parser_rspec_helper.rb +5 -0
  467. data/spec/unit/pops/parser/parser_spec.rb +10 -0
  468. data/spec/unit/pops/parser/source_pos_adapter_spec.rb +26 -0
  469. data/spec/unit/pops/types/iterable_spec.rb +262 -0
  470. data/spec/unit/pops/types/recursion_guard_spec.rb +91 -0
  471. data/spec/unit/pops/types/type_acceptor_spec.rb +105 -0
  472. data/spec/unit/pops/types/type_asserter_spec.rb +43 -0
  473. data/spec/unit/pops/types/type_calculator_spec.rb +275 -390
  474. data/spec/unit/pops/types/type_formatter_spec.rb +280 -0
  475. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +152 -0
  476. data/spec/unit/pops/types/type_parser_spec.rb +58 -13
  477. data/spec/unit/pops/types/types_spec.rb +241 -0
  478. data/spec/unit/pops/validator/validator_spec.rb +159 -15
  479. data/spec/unit/provider/cron/parsed_spec.rb +1 -0
  480. data/spec/unit/provider/group/windows_adsi_spec.rb +8 -8
  481. data/spec/unit/provider/macauthorization_spec.rb +5 -2
  482. data/spec/unit/provider/nameservice/directoryservice_spec.rb +14 -19
  483. data/spec/unit/provider/package/appdmg_spec.rb +3 -3
  484. data/spec/unit/provider/package/dnf_spec.rb +16 -0
  485. data/spec/unit/provider/package/pip3_spec.rb +60 -42
  486. data/spec/unit/provider/package/pip_spec.rb +88 -47
  487. data/spec/unit/provider/package/pkgdmg_spec.rb +18 -9
  488. data/spec/unit/provider/package/pkgng_spec.rb +4 -2
  489. data/spec/unit/provider/package/rpm_spec.rb +2 -25
  490. data/spec/unit/provider/package/yum_spec.rb +12 -1
  491. data/spec/unit/provider/package/zypper_spec.rb +14 -0
  492. data/spec/unit/provider/service/debian_spec.rb +6 -24
  493. data/spec/unit/provider/service/init_spec.rb +11 -1
  494. data/spec/unit/provider/service/launchd_spec.rb +18 -25
  495. data/spec/unit/provider/service/systemd_spec.rb +25 -12
  496. data/spec/unit/provider/service/upstart_spec.rb +57 -0
  497. data/spec/unit/provider/sshkey/parsed_spec.rb +20 -19
  498. data/spec/unit/provider/user/directoryservice_spec.rb +40 -59
  499. data/spec/unit/provider/user/windows_adsi_spec.rb +5 -5
  500. data/spec/unit/provider/yumrepo/inifile_spec.rb +16 -0
  501. data/spec/unit/resource/capability_finder_spec.rb +28 -15
  502. data/spec/unit/resource/catalog_spec.rb +33 -1
  503. data/spec/unit/resource/type_spec.rb +149 -7
  504. data/spec/unit/resource_spec.rb +99 -50
  505. data/spec/unit/settings/environment_conf_spec.rb +18 -1
  506. data/spec/unit/ssl/certificate_revocation_list_spec.rb +3 -3
  507. data/spec/unit/transaction/report_spec.rb +27 -0
  508. data/spec/unit/transaction/resource_harness_spec.rb +0 -47
  509. data/spec/unit/transaction_spec.rb +5 -0
  510. data/spec/unit/type/file/checksum_spec.rb +6 -0
  511. data/spec/unit/type/file/checksum_value_spec.rb +286 -0
  512. data/spec/unit/type/file/content_spec.rb +12 -193
  513. data/spec/unit/type/file/source_spec.rb +211 -119
  514. data/spec/unit/type/file_spec.rb +133 -34
  515. data/spec/unit/type/interface_spec.rb +32 -0
  516. data/spec/unit/type/macauthorization_spec.rb +4 -1
  517. data/spec/unit/type/yumrepo_spec.rb +2 -2
  518. data/spec/unit/util/filetype_spec.rb +1 -1
  519. data/spec/unit/util/http_proxy_spec.rb +2 -2
  520. data/spec/unit/util/log/destinations_spec.rb +0 -2
  521. data/spec/unit/util/logging_spec.rb +69 -0
  522. data/spec/unit/util/multi_match_spec.rb +39 -0
  523. data/spec/unit/util/network_device/cisco/device_spec.rb +253 -216
  524. data/spec/unit/util/network_device/transport/telnet_spec.rb +60 -58
  525. data/spec/unit/util/plist_spec.rb +110 -0
  526. data/spec/unit/util/resource_template_spec.rb +2 -2
  527. data/spec/unit/util/run_mode_spec.rb +27 -3
  528. data/spec/unit/util/windows/adsi_spec.rb +46 -38
  529. data/spec/unit/util/windows/api_types_spec.rb +42 -0
  530. data/spec/unit/util/windows/security_descriptor_spec.rb +3 -3
  531. data/spec/unit/util/windows/sid_spec.rb +48 -11
  532. data/spec/unit/util_spec.rb +123 -13
  533. data/tasks/cfpropertylist.rake +15 -0
  534. metadata +3342 -3195
  535. data/lib/puppet/vendor/load_plist.rb +0 -1
  536. data/lib/puppet/vendor/plist/CHANGELOG +0 -82
  537. data/lib/puppet/vendor/plist/MIT-LICENSE +0 -21
  538. data/lib/puppet/vendor/plist/PUPPET_README.md +0 -6
  539. data/lib/puppet/vendor/plist/README +0 -36
  540. data/lib/puppet/vendor/plist/Rakefile +0 -144
  541. data/lib/puppet/vendor/plist/docs/USAGE +0 -104
  542. data/lib/puppet/vendor/plist/docs/jamis-template.rb +0 -591
  543. data/lib/puppet/vendor/plist/lib/plist/generator.rb +0 -224
  544. data/lib/puppet/vendor/plist/lib/plist/parser.rb +0 -225
  545. data/lib/puppet/vendor/plist/lib/plist.rb +0 -22
  546. data/lib/puppet/vendor/plist/test/assets/AlbumData.xml +0 -203
  547. data/lib/puppet/vendor/plist/test/assets/Cookies.plist +0 -104
  548. data/lib/puppet/vendor/plist/test/assets/commented.plist +0 -9
  549. data/lib/puppet/vendor/plist/test/assets/example_data.bin +0 -0
  550. data/lib/puppet/vendor/plist/test/assets/example_data.jpg +0 -0
  551. data/lib/puppet/vendor/plist/test/assets/example_data.plist +0 -259
  552. data/lib/puppet/vendor/plist/test/assets/test_data_elements.plist +0 -24
  553. data/lib/puppet/vendor/plist/test/assets/test_empty_key.plist +0 -13
  554. data/lib/puppet/vendor/plist/test/test_data_elements.rb +0 -115
  555. data/lib/puppet/vendor/plist/test/test_generator.rb +0 -59
  556. data/lib/puppet/vendor/plist/test/test_generator_basic_types.rb +0 -58
  557. data/lib/puppet/vendor/plist/test/test_generator_collections.rb +0 -82
  558. data/lib/puppet/vendor/plist/test/test_parser.rb +0 -90
  559. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{usee → modules/usee}/lib/puppet/functions/usee/callee.rb +0 -0
  560. /data/spec/fixtures/unit/pops/loaders/loaders/dependent_modules_with_metadata/{user → modules/user}/lib/puppet/functions/user/caller.rb +0 -0
@@ -6,49 +6,40 @@
6
6
  # @todo All those uppercase methods ... they look bad in one way, but stand out nicely in the grammar...
7
7
  # decide if they should change into lower case names (some of the are lower case)...
8
8
  #
9
- class Puppet::Pops::Model::Factory
10
- Model = Puppet::Pops::Model
11
-
9
+ module Puppet::Pops
10
+ module Model
11
+ class Factory
12
12
  attr_accessor :current
13
13
 
14
14
  alias_method :model, :current
15
15
 
16
16
  # Shared build_visitor, since there are many instances of Factory being used
17
- @@build_visitor = Puppet::Pops::Visitor.new(self, "build")
18
- @@interpolation_visitor = Puppet::Pops::Visitor.new(self, "interpolate")
17
+ @@build_visitor = Visitor.new(self, "build")
18
+ @@interpolation_visitor = Visitor.new(self, "interpolate")
19
19
 
20
20
  # Initialize a factory with a single object, or a class with arguments applied to build of
21
21
  # created instance
22
22
  #
23
- def initialize o, *args
24
- @current = case o
25
- when Model::PopsObject
23
+ def initialize(o, *args)
24
+ @current = if o.instance_of?(Class)
25
+ @@build_visitor.visit_this(self, o.new, args)
26
+ elsif o.is_a?(PopsObject)
26
27
  o
27
- when Puppet::Pops::Model::Factory
28
+ elsif o.instance_of?(Factory)
28
29
  o.current
29
30
  else
30
- build(o, *args)
31
+ @@build_visitor.visit_this(self, o, args)
31
32
  end
32
33
  end
33
34
 
34
35
  # Polymorphic build
35
36
  def build(o, *args)
36
- begin
37
- @@build_visitor.visit_this(self, o, args)
38
- rescue =>e
39
- # debug here when in trouble...
40
- raise e
41
- end
37
+ @@build_visitor.visit_this(self, o, args)
42
38
  end
43
39
 
44
40
  # Polymorphic interpolate
45
41
  def interpolate()
46
- begin
47
- @@interpolation_visitor.visit_this_0(self, current)
48
- rescue =>e
49
- # debug here when in trouble...
50
- raise e
51
- end
42
+ @@interpolation_visitor.visit_this_0(self, current)
52
43
  end
53
44
 
54
45
  # Building of Model classes
@@ -142,10 +133,10 @@ class Puppet::Pops::Model::Factory
142
133
  end
143
134
 
144
135
  # @param name [String] a valid classname
145
- # @param parameters [Array<Model::Parameter>] may be empty
136
+ # @param parameters [Array<Parameter>] may be empty
146
137
  # @param parent_class_name [String, nil] a valid classname referencing a parent class, optional.
147
138
  # @param body [Array<Expression>, Expression, nil] expression that constitute the body
148
- # @return [Model::HostClassDefinition] configured from the parameters
139
+ # @return [HostClassDefinition] configured from the parameters
149
140
  #
150
141
  def build_HostClassDefinition(o, name, parameters, parent_class_name, body)
151
142
  build_NamedDefinition(o, name, parameters, body)
@@ -218,7 +209,7 @@ class Puppet::Pops::Model::Factory
218
209
  when NilClass
219
210
  nil
220
211
  when Array
221
- Puppet::Pops::Model::Factory.new(Model::BlockExpression, *body)
212
+ Factory.new(BlockExpression, *body)
222
213
  else
223
214
  build(body)
224
215
  end
@@ -241,14 +232,14 @@ class Puppet::Pops::Model::Factory
241
232
 
242
233
  def build_CapabilityMapping(o, kind, component, capability, mappings)
243
234
  o.kind = kind
244
- component = component.current if component.is_a?(Puppet::Pops::Model::Factory)
235
+ component = component.current if component.instance_of?(Factory)
245
236
  o.component = component
246
237
  o.capability = capability
247
238
  o.mappings = mappings.map { |m| build(m) }
248
239
  o
249
240
  end
250
241
 
251
- # @param o [Model::NodeDefinition]
242
+ # @param o [NodeDefinition]
252
243
  # @param hosts [Array<Expression>] host matches
253
244
  # @param parent [Expression] parent node matcher
254
245
  # @param body [Object] see {#f_build_body}
@@ -260,7 +251,7 @@ class Puppet::Pops::Model::Factory
260
251
  o
261
252
  end
262
253
 
263
- # @param o [Model::SiteDefinition]
254
+ # @param o [SiteDefinition]
264
255
  # @param body [Object] see {#f_build_body}
265
256
  def build_SiteDefinition(o, body)
266
257
  b = f_build_body(body)
@@ -339,13 +330,27 @@ class Puppet::Pops::Model::Factory
339
330
 
340
331
  def build_QueryExpression(o, expr)
341
332
  ops = to_ops(expr)
342
- o.expr = ops unless Puppet::Pops::Model::Factory.nop? ops
333
+ o.expr = ops unless Factory.nop? ops
334
+ o
335
+ end
336
+
337
+ def build_TypeAlias(o, name, type_expr)
338
+ o.type_expr = build(type_expr)
339
+ o.name = name
340
+ o
341
+ end
342
+
343
+ def build_TypeDefinition(o, name, parent, body)
344
+ b = f_build_body(body)
345
+ o.body = b.current if b
346
+ o.parent = parent
347
+ o.name = name
343
348
  o
344
349
  end
345
350
 
346
351
  def build_UnaryExpression(o, expr)
347
352
  ops = to_ops(expr)
348
- o.expr = ops unless Puppet::Pops::Model::Factory.nop? ops
353
+ o.expr = ops unless Factory.nop? ops
349
354
  o
350
355
  end
351
356
 
@@ -369,55 +374,55 @@ class Puppet::Pops::Model::Factory
369
374
  raise "Factory can not deal with a Lexer Token. Got token: #{o}. Probably caused by wrong index in grammar val[n]."
370
375
  end
371
376
 
372
- # Puppet::Pops::Model::Factory helpers
377
+ # Factory helpers
373
378
  def f_build_unary(klazz, expr)
374
- Puppet::Pops::Model::Factory.new(build(klazz.new, expr))
379
+ Factory.new(build(klazz, expr))
375
380
  end
376
381
 
377
382
  def f_build_binary_op(klazz, op, left, right)
378
- Puppet::Pops::Model::Factory.new(build(klazz.new, op, left, right))
383
+ Factory.new(build(klazz, op, left, right))
379
384
  end
380
385
 
381
386
  def f_build_binary(klazz, left, right)
382
- Puppet::Pops::Model::Factory.new(build(klazz.new, left, right))
387
+ Factory.new(build(klazz, left, right))
383
388
  end
384
389
 
385
390
  def f_build_vararg(klazz, left, *arg)
386
- Puppet::Pops::Model::Factory.new(build(klazz.new, left, *arg))
391
+ Factory.new(build(klazz, left, *arg))
387
392
  end
388
393
 
389
394
  def f_arithmetic(op, r)
390
- f_build_binary_op(Model::ArithmeticExpression, op, current, r)
395
+ f_build_binary_op(ArithmeticExpression, op, current, r)
391
396
  end
392
397
 
393
398
  def f_comparison(op, r)
394
- f_build_binary_op(Model::ComparisonExpression, op, current, r)
399
+ f_build_binary_op(ComparisonExpression, op, current, r)
395
400
  end
396
401
 
397
402
  def f_match(op, r)
398
- f_build_binary_op(Model::MatchExpression, op, current, r)
403
+ f_build_binary_op(MatchExpression, op, current, r)
399
404
  end
400
405
 
401
406
  # Operator helpers
402
- def in(r) f_build_binary(Model::InExpression, current, r); end
407
+ def in(r) f_build_binary(InExpression, current, r); end
403
408
 
404
- def or(r) f_build_binary(Model::OrExpression, current, r); end
409
+ def or(r) f_build_binary(OrExpression, current, r); end
405
410
 
406
- def and(r) f_build_binary(Model::AndExpression, current, r); end
411
+ def and(r) f_build_binary(AndExpression, current, r); end
407
412
 
408
- def not(); f_build_unary(Model::NotExpression, self); end
413
+ def not(); f_build_unary(NotExpression, self); end
409
414
 
410
- def minus(); f_build_unary(Model::UnaryMinusExpression, self); end
415
+ def minus(); f_build_unary(UnaryMinusExpression, self); end
411
416
 
412
- def unfold(); f_build_unary(Model::UnfoldExpression, self); end
417
+ def unfold(); f_build_unary(UnfoldExpression, self); end
413
418
 
414
- def text(); f_build_unary(Model::TextExpression, self); end
419
+ def text(); f_build_unary(TextExpression, self); end
415
420
 
416
- def var(); f_build_unary(Model::VariableExpression, self); end
421
+ def var(); f_build_unary(VariableExpression, self); end
417
422
 
418
- def [](*r); f_build_vararg(Model::AccessExpression, current, *r); end
423
+ def [](*r); f_build_vararg(AccessExpression, current, *r); end
419
424
 
420
- def dot r; f_build_binary(Model::NamedAccessExpression, current, r); end
425
+ def dot r; f_build_binary(NamedAccessExpression, current, r); end
421
426
 
422
427
  def + r; f_arithmetic(:+, r); end
423
428
 
@@ -449,19 +454,19 @@ class Puppet::Pops::Model::Factory
449
454
 
450
455
  def mne r; f_match(:'!~', r); end
451
456
 
452
- def paren(); f_build_unary(Model::ParenthesizedExpression, current); end
457
+ def paren(); f_build_unary(ParenthesizedExpression, current); end
453
458
 
454
459
  def relop op, r
455
- f_build_binary_op(Model::RelationshipExpression, op.to_sym, current, r)
460
+ f_build_binary_op(RelationshipExpression, op.to_sym, current, r)
456
461
  end
457
462
 
458
463
  def select *args
459
- Puppet::Pops::Model::Factory.new(build(Model::SelectorExpression, current, *args))
464
+ Factory.new(build(SelectorExpression, current, *args))
460
465
  end
461
466
 
462
467
  # For CaseExpression, setting the default for an already build CaseExpression
463
468
  def default r
464
- current.addOptions(Puppet::Pops::Model::Factory.WHEN(:default, r).current)
469
+ current.addOptions(Factory.WHEN(:default, r).current)
465
470
  self
466
471
  end
467
472
 
@@ -472,17 +477,17 @@ class Puppet::Pops::Model::Factory
472
477
 
473
478
  # Assignment =
474
479
  def set(r)
475
- f_build_binary_op(Model::AssignmentExpression, :'=', current, r)
480
+ f_build_binary_op(AssignmentExpression, :'=', current, r)
476
481
  end
477
482
 
478
483
  # Assignment +=
479
484
  def plus_set(r)
480
- f_build_binary_op(Model::AssignmentExpression, :'+=', current, r)
485
+ f_build_binary_op(AssignmentExpression, :'+=', current, r)
481
486
  end
482
487
 
483
488
  # Assignment -=
484
489
  def minus_set(r)
485
- f_build_binary_op(Model::AssignmentExpression, :'-=', current, r)
490
+ f_build_binary_op(AssignmentExpression, :'-=', current, r)
486
491
  end
487
492
 
488
493
  def attributes(*args)
@@ -507,31 +512,35 @@ class Puppet::Pops::Model::Factory
507
512
  new(o).record_position(start_locatable, end_locateable)
508
513
  end
509
514
 
515
+ def offset
516
+ @current.offset
517
+ end
518
+
519
+ def length
520
+ @current.length
521
+ end
522
+
510
523
  # Records the position (start -> end) and computes the resulting length.
511
524
  #
512
525
  def record_position(start_locatable, end_locatable)
513
- from = start_locatable.is_a?(Puppet::Pops::Model::Factory) ? start_locatable.current : start_locatable
514
- to = end_locatable.is_a?(Puppet::Pops::Model::Factory) ? end_locatable.current : end_locatable
515
- to = from if to.nil? || to.offset.nil?
516
- o = current
517
- # record information directly in the Model::Positioned object
518
- o.offset = from.offset
519
- o.length ||= to.offset - from.offset + to.length
526
+ # record information directly in the Positioned object
527
+ start_offset = start_locatable.offset
528
+ @current.set_loc(start_offset, end_locatable ? end_locatable.offset - start_offset + end_locatable.length : start_locatable.length)
520
529
  self
521
530
  end
522
531
 
523
532
  # @return [Puppet::Pops::Adapters::SourcePosAdapter] with location information
524
533
  def loc()
525
- Puppet::Pops::Adapters::SourcePosAdapter.adapt(current)
534
+ Adapters::SourcePosAdapter.adapt(current)
526
535
  end
527
536
 
528
537
  # Sets the form of the resource expression (:regular (the default), :virtual, or :exported).
529
538
  # Produces true if the expression was a resource expression, false otherwise.
530
539
  #
531
540
  def self.set_resource_form(expr, form)
532
- expr = expr.current if expr.is_a?(Puppet::Pops::Model::Factory)
541
+ expr = expr.current if expr.instance_of?(Factory)
533
542
  # Note: Validation handles illegal combinations
534
- return false unless expr.is_a?(Puppet::Pops::Model::AbstractResource)
543
+ return false unless expr.is_a?(AbstractResource)
535
544
  expr.form = form
536
545
  return true
537
546
  end
@@ -544,15 +553,15 @@ class Puppet::Pops::Model::Factory
544
553
  # * _any other_ => ':error', all other are considered illegal
545
554
  #
546
555
  def self.resource_shape(expr)
547
- expr = expr.current if expr.is_a?(Puppet::Pops::Model::Factory)
556
+ expr = expr.current if expr.instance_of?(Factory)
548
557
  case expr
549
- when Model::QualifiedName
558
+ when QualifiedName
550
559
  :resource
551
- when Model::QualifiedReference
560
+ when QualifiedReference
552
561
  :defaults
553
- when Model::AccessExpression
562
+ when AccessExpression
554
563
  # if Resource[e], then it is not resource specific
555
- if expr.left_expr.is_a?(Model::QualifiedReference) && expr.left_expr.value == 'resource' && expr.keys.size == 1
564
+ if expr.left_expr.is_a?(QualifiedReference) && expr.left_expr.value == 'resource' && expr.keys.size == 1
556
565
  :defaults
557
566
  else
558
567
  :override
@@ -573,43 +582,43 @@ class Puppet::Pops::Model::Factory
573
582
 
574
583
  def self.var(o); new(o).var; end
575
584
 
576
- def self.block(*args); new(Model::BlockExpression, *args); end
585
+ def self.block(*args); new(BlockExpression, *args); end
577
586
 
578
- def self.string(*args); new(Model::ConcatenatedString, *args); end
587
+ def self.string(*args); new(ConcatenatedString, *args); end
579
588
 
580
589
  def self.text(o); new(o).text; end
581
590
 
582
- def self.IF(test_e,then_e,else_e); new(Model::IfExpression, test_e, then_e, else_e); end
591
+ def self.IF(test_e,then_e,else_e); new(IfExpression, test_e, then_e, else_e); end
583
592
 
584
- def self.UNLESS(test_e,then_e,else_e); new(Model::UnlessExpression, test_e, then_e, else_e); end
593
+ def self.UNLESS(test_e,then_e,else_e); new(UnlessExpression, test_e, then_e, else_e); end
585
594
 
586
- def self.CASE(test_e,*options); new(Model::CaseExpression, test_e, *options); end
595
+ def self.CASE(test_e,*options); new(CaseExpression, test_e, *options); end
587
596
 
588
- def self.WHEN(values_list, block); new(Model::CaseOption, values_list, block); end
597
+ def self.WHEN(values_list, block); new(CaseOption, values_list, block); end
589
598
 
590
- def self.MAP(match, value); new(Model::SelectorEntry, match, value); end
599
+ def self.MAP(match, value); new(SelectorEntry, match, value); end
591
600
 
592
- def self.TYPE(name, super_name=nil); new(Model::CreateTypeExpression, name, super_name); end
601
+ def self.TYPE(name, super_name=nil); new(CreateTypeExpression, name, super_name); end
593
602
 
594
- def self.ATTR(name, type_expr=nil); new(Model::CreateAttributeExpression, name, type_expr); end
603
+ def self.ATTR(name, type_expr=nil); new(CreateAttributeExpression, name, type_expr); end
595
604
 
596
- def self.ENUM(*args); new(Model::CreateEnumExpression, *args); end
605
+ def self.ENUM(*args); new(CreateEnumExpression, *args); end
597
606
 
598
- def self.KEY_ENTRY(key, val); new(Model::KeyedEntry, key, val); end
607
+ def self.KEY_ENTRY(key, val); new(KeyedEntry, key, val); end
599
608
 
600
- def self.HASH(entries); new(Model::LiteralHash, *entries); end
609
+ def self.HASH(entries); new(LiteralHash, *entries); end
601
610
 
602
- def self.HEREDOC(name, expr); new(Model::HeredocExpression, name, expr); end
611
+ def self.HEREDOC(name, expr); new(HeredocExpression, name, expr); end
603
612
 
604
- def self.SUBLOCATE(token, expr) new(Model::SubLocatedExpression, token, expr); end
613
+ def self.SUBLOCATE(token, expr) new(SubLocatedExpression, token, expr); end
605
614
 
606
- def self.LIST(entries); new(Model::LiteralList, *entries); end
615
+ def self.LIST(entries); new(LiteralList, *entries); end
607
616
 
608
- def self.PARAM(name, expr=nil); new(Model::Parameter, name, expr); end
617
+ def self.PARAM(name, expr=nil); new(Parameter, name, expr); end
609
618
 
610
- def self.NODE(hosts, parent, body); new(Model::NodeDefinition, hosts, parent, body); end
619
+ def self.NODE(hosts, parent, body); new(NodeDefinition, hosts, parent, body); end
611
620
 
612
- def self.SITE(body); new(Model::SiteDefinition, body); end
621
+ def self.SITE(body); new(SiteDefinition, body); end
613
622
 
614
623
  # Parameters
615
624
 
@@ -627,8 +636,8 @@ class Puppet::Pops::Model::Factory
627
636
  # case it is returned.
628
637
  #
629
638
  def self.fqn(o)
630
- o = o.current if o.is_a?(Puppet::Pops::Model::Factory)
631
- o = new(Model::QualifiedName, o) unless o.is_a? Model::QualifiedName
639
+ o = o.current if o.instance_of?(Factory)
640
+ o = new(QualifiedName, o) unless o.is_a? QualifiedName
632
641
  o
633
642
  end
634
643
 
@@ -636,22 +645,22 @@ class Puppet::Pops::Model::Factory
636
645
  # case it is returned.
637
646
  #
638
647
  def self.fqr(o)
639
- o = o.current if o.is_a?(Puppet::Pops::Model::Factory)
640
- o = new(Model::QualifiedReference, o) unless o.is_a? Model::QualifiedReference
648
+ o = o.current if o.instance_of?(Factory)
649
+ o = new(QualifiedReference, o) unless o.is_a? QualifiedReference
641
650
  o
642
651
  end
643
652
 
644
653
  def self.TEXT(expr)
645
- new(Model::TextExpression, new(expr).interpolate)
654
+ new(TextExpression, new(expr).interpolate)
646
655
  end
647
656
 
648
657
  # TODO_EPP
649
658
  def self.RENDER_STRING(o)
650
- new(Model::RenderStringExpression, o)
659
+ new(RenderStringExpression, o)
651
660
  end
652
661
 
653
662
  def self.RENDER_EXPR(expr)
654
- new(Model::RenderExpression, expr)
663
+ new(RenderExpression, expr)
655
664
  end
656
665
 
657
666
  def self.EPP(parameters, body)
@@ -662,27 +671,27 @@ class Puppet::Pops::Model::Factory
662
671
  params = parameters
663
672
  parameters_specified = true
664
673
  end
665
- LAMBDA(params, new(Model::EppExpression, parameters_specified, body))
674
+ LAMBDA(params, new(EppExpression, parameters_specified, body))
666
675
  end
667
676
 
668
677
  def self.RESERVED(name, future=false)
669
- new(Model::ReservedWord, name, future)
678
+ new(ReservedWord, name, future)
670
679
  end
671
680
 
672
681
  # TODO: This is the same a fqn factory method, don't know if callers to fqn and QNAME can live with the
673
682
  # same result or not yet - refactor into one method when decided.
674
683
  #
675
684
  def self.QNAME(name)
676
- new(Model::QualifiedName, name)
685
+ new(QualifiedName, name)
677
686
  end
678
687
 
679
688
  def self.NUMBER(name_or_numeric)
680
- if n_radix = Puppet::Pops::Utils.to_n_with_radix(name_or_numeric)
689
+ if n_radix = Utils.to_n_with_radix(name_or_numeric)
681
690
  val, radix = n_radix
682
691
  if val.is_a?(Float)
683
- new(Model::LiteralFloat, val)
692
+ new(LiteralFloat, val)
684
693
  else
685
- new(Model::LiteralInteger, val, radix)
694
+ new(LiteralInteger, val, radix)
686
695
  end
687
696
  else
688
697
  # Bad number should already have been caught by lexer - this should never happen
@@ -693,112 +702,120 @@ class Puppet::Pops::Model::Factory
693
702
  # Convert input string to either a qualified name, a LiteralInteger with radix, or a LiteralFloat
694
703
  #
695
704
  def self.QNAME_OR_NUMBER(name)
696
- if n_radix = Puppet::Pops::Utils.to_n_with_radix(name)
705
+ if n_radix = Utils.to_n_with_radix(name)
697
706
  val, radix = n_radix
698
707
  if val.is_a?(Float)
699
- new(Model::LiteralFloat, val)
708
+ new(LiteralFloat, val)
700
709
  else
701
- new(Model::LiteralInteger, val, radix)
710
+ new(LiteralInteger, val, radix)
702
711
  end
703
712
  else
704
- new(Model::QualifiedName, name)
713
+ new(QualifiedName, name)
705
714
  end
706
715
  end
707
716
 
708
717
  def self.QREF(name)
709
- new(Model::QualifiedReference, name)
718
+ new(QualifiedReference, name)
710
719
  end
711
720
 
712
721
  def self.VIRTUAL_QUERY(query_expr)
713
- new(Model::VirtualQuery, query_expr)
722
+ new(VirtualQuery, query_expr)
714
723
  end
715
724
 
716
725
  def self.EXPORTED_QUERY(query_expr)
717
- new(Model::ExportedQuery, query_expr)
726
+ new(ExportedQuery, query_expr)
718
727
  end
719
728
 
720
729
  def self.ATTRIBUTE_OP(name, op, expr)
721
- new(Model::AttributeOperation, name, op, expr)
730
+ new(AttributeOperation, name, op, expr)
722
731
  end
723
732
 
724
733
  def self.ATTRIBUTES_OP(expr)
725
- new(Model::AttributesOperation, expr)
734
+ new(AttributesOperation, expr)
726
735
  end
727
736
 
728
737
  def self.CALL_NAMED(name, rval_required, argument_list)
729
- unless name.kind_of?(Model::PopsObject)
730
- name = Puppet::Pops::Model::Factory.fqn(name) unless name.is_a?(Puppet::Pops::Model::Factory)
738
+ unless name.kind_of?(PopsObject)
739
+ name = Factory.fqn(name) unless name.instance_of?(Factory)
731
740
  end
732
- new(Model::CallNamedFunctionExpression, name, rval_required, *argument_list)
741
+ new(CallNamedFunctionExpression, name, rval_required, *argument_list)
733
742
  end
734
743
 
735
744
  def self.CALL_METHOD(functor, argument_list)
736
- new(Model::CallMethodExpression, functor, true, nil, *argument_list)
745
+ new(CallMethodExpression, functor, true, nil, *argument_list)
737
746
  end
738
747
 
739
748
  def self.COLLECT(type_expr, query_expr, attribute_operations)
740
- new(Model::CollectExpression, type_expr, query_expr, attribute_operations)
749
+ new(CollectExpression, type_expr, query_expr, attribute_operations)
741
750
  end
742
751
 
743
752
  def self.NAMED_ACCESS(type_name, bodies)
744
- new(Model::NamedAccessExpression, type_name, bodies)
753
+ new(NamedAccessExpression, type_name, bodies)
745
754
  end
746
755
 
747
756
  def self.RESOURCE(type_name, bodies)
748
- new(Model::ResourceExpression, type_name, bodies)
757
+ new(ResourceExpression, type_name, bodies)
749
758
  end
750
759
 
751
760
  def self.RESOURCE_DEFAULTS(type_name, attribute_operations)
752
- new(Model::ResourceDefaultsExpression, type_name, attribute_operations)
761
+ new(ResourceDefaultsExpression, type_name, attribute_operations)
753
762
  end
754
763
 
755
764
  def self.RESOURCE_OVERRIDE(resource_ref, attribute_operations)
756
- new(Model::ResourceOverrideExpression, resource_ref, attribute_operations)
765
+ new(ResourceOverrideExpression, resource_ref, attribute_operations)
757
766
  end
758
767
 
759
768
  def self.RESOURCE_BODY(resource_title, attribute_operations)
760
- new(Model::ResourceBody, resource_title, attribute_operations)
769
+ new(ResourceBody, resource_title, attribute_operations)
761
770
  end
762
771
 
763
772
  def self.PROGRAM(body, definitions, locator)
764
- new(Model::Program, body, definitions, locator)
773
+ new(Program, body, definitions, locator)
765
774
  end
766
775
 
767
776
  # Builds a BlockExpression if args size > 1, else the single expression/value in args
768
777
  def self.block_or_expression(*args)
769
778
  if args.size > 1
770
- new(Model::BlockExpression, *args)
779
+ new(BlockExpression, *args)
771
780
  else
772
781
  new(args[0])
773
782
  end
774
783
  end
775
784
 
776
785
  def self.HOSTCLASS(name, parameters, parent, body)
777
- new(Model::HostClassDefinition, name, parameters, parent, body)
786
+ new(HostClassDefinition, name, parameters, parent, body)
778
787
  end
779
788
 
780
789
  def self.DEFINITION(name, parameters, body)
781
- new(Model::ResourceTypeDefinition, name, parameters, body)
790
+ new(ResourceTypeDefinition, name, parameters, body)
782
791
  end
783
792
 
784
793
  def self.CAPABILITY_MAPPING(kind, component, cap_name, mappings)
785
- new(Model::CapabilityMapping, kind, component, cap_name, mappings)
794
+ new(CapabilityMapping, kind, component, cap_name, mappings)
786
795
  end
787
796
 
788
797
  def self.APPLICATION(name, parameters, body)
789
- new(Model::Application, name, parameters, body)
798
+ new(Application, name, parameters, body)
790
799
  end
791
800
 
792
801
  def self.FUNCTION(name, parameters, body)
793
- new(Model::FunctionDefinition, name, parameters, body)
802
+ new(FunctionDefinition, name, parameters, body)
794
803
  end
795
804
 
796
805
  def self.LAMBDA(parameters, body)
797
- new(Model::LambdaExpression, parameters, body)
806
+ new(LambdaExpression, parameters, body)
807
+ end
808
+
809
+ def self.TYPE_ALIAS(name, type_expr)
810
+ new(TypeAlias, name, type_expr)
811
+ end
812
+
813
+ def self.TYPE_DEFINITION(name, parent, body)
814
+ new(TypeDefinition, name, parent, body)
798
815
  end
799
816
 
800
817
  def self.nop? o
801
- o.nil? || o.is_a?(Puppet::Pops::Model::Nop)
818
+ o.nil? || o.is_a?(Nop)
802
819
  end
803
820
 
804
821
  STATEMENT_CALLS = {
@@ -837,19 +854,19 @@ class Puppet::Pops::Model::Factory
837
854
  #
838
855
  def self.transform_calls(expressions)
839
856
  expressions.reduce([]) do |memo, expr|
840
- expr = expr.current if expr.is_a?(Puppet::Pops::Model::Factory)
857
+ expr = expr.current if expr.instance_of?(Factory)
841
858
  name = memo[-1]
842
- if name.is_a?(Model::QualifiedName) && STATEMENT_CALLS[name.value]
859
+ if name.is_a?(QualifiedName) && STATEMENT_CALLS[name.value]
843
860
  if expr.is_a?(Array)
844
- expr = expr.reject {|e| e.is_a?(Puppet::Pops::Parser::LexerSupport::TokenValue) }
861
+ expr = expr.reject {|e| e.is_a?(Parser::LexerSupport::TokenValue) }
845
862
  else
846
863
  expr = [expr]
847
864
  end
848
- the_call = Puppet::Pops::Model::Factory.CALL_NAMED(name, false, expr)
865
+ the_call = Factory.CALL_NAMED(name, false, expr)
849
866
  # last positioned is last arg if there are several
850
867
  record_position(the_call, name, expr.is_a?(Array) ? expr[-1] : expr)
851
868
  memo[-1] = the_call
852
- if expr.is_a?(Model::CallNamedFunctionExpression)
869
+ if expr.is_a?(CallNamedFunctionExpression)
853
870
  # Patch statement function call to expression style
854
871
  # This is needed because it is first parsed as a "statement" and the requirement changes as it becomes
855
872
  # an argument to the name to call transform above.
@@ -859,7 +876,7 @@ class Puppet::Pops::Model::Factory
859
876
  raise ArgsToNonCallError.new(expr, name)
860
877
  else
861
878
  memo << expr
862
- if expr.is_a?(Model::CallNamedFunctionExpression)
879
+ if expr.is_a?(CallNamedFunctionExpression)
863
880
  # Patch rvalue expression function call to statement style.
864
881
  # This is not really required but done to be AST model compliant
865
882
  expr.rval_required = false
@@ -872,15 +889,17 @@ class Puppet::Pops::Model::Factory
872
889
 
873
890
  # Transforms a left expression followed by an untitled resource (in the form of attribute_operations)
874
891
  # @param left [Factory, Expression] the lhs followed what may be a hash
875
- def self.transform_resource_wo_title(left, attribute_ops)
892
+ def self.transform_resource_wo_title(left, attribute_ops, lbrace_token, rbrace_token)
876
893
  # Returning nil means accepting the given as a potential resource expression
877
894
  return nil unless attribute_ops.is_a? Array
878
- return nil unless left.current.is_a?(Puppet::Pops::Model::QualifiedName)
895
+ return nil unless left.current.is_a?(QualifiedName)
879
896
  keyed_entries = attribute_ops.map do |ao|
880
897
  return nil if ao.operator == :'+>'
881
898
  KEY_ENTRY(ao.attribute_name, ao.value_expr)
882
899
  end
883
- result = block_or_expression(*transform_calls([left, HASH(keyed_entries)]))
900
+ a_hash = HASH(keyed_entries)
901
+ a_hash.record_position(lbrace_token, rbrace_token)
902
+ result = block_or_expression(*transform_calls([left, a_hash]))
884
903
  result
885
904
  end
886
905
 
@@ -890,42 +909,42 @@ class Puppet::Pops::Model::Factory
890
909
  # that when evaluated produce the same thing.
891
910
 
892
911
  def build_String(o)
893
- x = Model::LiteralString.new
912
+ x = LiteralString.new
894
913
  x.value = o;
895
914
  x
896
915
  end
897
916
 
898
917
  def build_NilClass(o)
899
- x = Model::Nop.new
918
+ x = Nop.new
900
919
  x
901
920
  end
902
921
 
903
922
  def build_TrueClass(o)
904
- x = Model::LiteralBoolean.new
923
+ x = LiteralBoolean.new
905
924
  x.value = o
906
925
  x
907
926
  end
908
927
 
909
928
  def build_FalseClass(o)
910
- x = Model::LiteralBoolean.new
929
+ x = LiteralBoolean.new
911
930
  x.value = o
912
931
  x
913
932
  end
914
933
 
915
934
  def build_Fixnum(o)
916
- x = Model::LiteralInteger.new
935
+ x = LiteralInteger.new
917
936
  x.value = o;
918
937
  x
919
938
  end
920
939
 
921
940
  def build_Float(o)
922
- x = Model::LiteralFloat.new
941
+ x = LiteralFloat.new
923
942
  x.value = o;
924
943
  x
925
944
  end
926
945
 
927
946
  def build_Regexp(o)
928
- x = Model::LiteralRegularExpression.new
947
+ x = LiteralRegularExpression.new
929
948
  x.value = o;
930
949
  x
931
950
  end
@@ -948,9 +967,9 @@ class Puppet::Pops::Model::Factory
948
967
  def build_Symbol(o)
949
968
  case o
950
969
  when :undef
951
- Model::LiteralUndef.new
970
+ LiteralUndef.new
952
971
  when :default
953
- Model::LiteralDefault.new
972
+ LiteralDefault.new
954
973
  else
955
974
  build_String(o.to_s)
956
975
  end
@@ -958,7 +977,7 @@ class Puppet::Pops::Model::Factory
958
977
 
959
978
  # Creates a LiteralList instruction from an Array, where the entries are built.
960
979
  def build_Array(o)
961
- x = Model::LiteralList.new
980
+ x = LiteralList.new
962
981
  o.each { |v| x.addValues(build(v)) }
963
982
  x
964
983
  end
@@ -967,8 +986,8 @@ class Puppet::Pops::Model::Factory
967
986
  # The hash entries are added in sorted order based on key.to_s
968
987
  #
969
988
  def build_Hash(o)
970
- x = Model::LiteralHash.new
971
- (o.sort_by {|k,v| k.to_s}).each {|k,v| x.addEntries(build(Model::KeyedEntry.new, k, v)) }
989
+ x = LiteralHash.new
990
+ (o.sort_by {|k,v| k.to_s}).each {|k,v| x.addEntries(build(KeyedEntry.new, k, v)) }
972
991
  x
973
992
  end
974
993
 
@@ -1051,10 +1070,10 @@ class Puppet::Pops::Model::Factory
1051
1070
 
1052
1071
  def is_interop_rewriteable?(o)
1053
1072
  case o
1054
- when Model::AccessExpression, Model::QualifiedName,
1055
- Model::NamedAccessExpression, Model::CallMethodExpression
1073
+ when AccessExpression, QualifiedName,
1074
+ NamedAccessExpression, CallMethodExpression
1056
1075
  true
1057
- when Model::LiteralInteger
1076
+ when LiteralInteger
1058
1077
  # Only decimal integers can represent variables, else it is a number
1059
1078
  o.radix == 10
1060
1079
  else
@@ -1065,9 +1084,9 @@ class Puppet::Pops::Model::Factory
1065
1084
  # Checks if the object is already a model object, or build it
1066
1085
  def to_ops(o, *args)
1067
1086
  case o
1068
- when Model::PopsObject
1087
+ when PopsObject
1069
1088
  o
1070
- when Puppet::Pops::Model::Factory
1089
+ when Factory
1071
1090
  o.current
1072
1091
  else
1073
1092
  build(o, *args)
@@ -1078,7 +1097,7 @@ class Puppet::Pops::Model::Factory
1078
1097
  new(args.map do |e|
1079
1098
  e = e.current if e.is_a?(self)
1080
1099
  case e
1081
- when Model::LiteralString
1100
+ when LiteralString
1082
1101
  e.value
1083
1102
  when String
1084
1103
  e
@@ -1089,6 +1108,9 @@ class Puppet::Pops::Model::Factory
1089
1108
  end
1090
1109
 
1091
1110
  def to_s
1092
- Puppet::Pops::Model::ModelTreeDumper.new.dump(self)
1111
+ ModelTreeDumper.new.dump(self)
1093
1112
  end
1094
1113
  end
1114
+ end
1115
+ end
1116
+