puppet 4.10.0 → 5.0.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 (1031) hide show
  1. data/CONTRIBUTING.md +17 -0
  2. data/Gemfile +6 -10
  3. data/MAINTAINERS +0 -5
  4. data/Rakefile +2 -1
  5. data/conf/auth.conf +21 -0
  6. data/conf/fileserver.conf +7 -12
  7. data/conf/hiera.yaml +11 -0
  8. data/ext/debian/puppet-common.install +0 -1
  9. data/ext/debian/puppet-common.manpages +0 -2
  10. data/ext/hiera/hiera.yaml +15 -0
  11. data/ext/logcheck/puppet +1 -1
  12. data/ext/project_data.yaml +3 -6
  13. data/ext/puppet-test +0 -24
  14. data/ext/rack/config.ru +2 -2
  15. data/ext/redhat/puppet.spec.erb +0 -3
  16. data/ext/windows/service/daemon.rb +8 -14
  17. data/install.rb +1 -1
  18. data/lib/hiera/puppet_function.rb +1 -1
  19. data/lib/puppet/agent/disabler.rb +3 -3
  20. data/lib/puppet/agent/locker.rb +3 -3
  21. data/lib/puppet/agent.rb +27 -16
  22. data/lib/puppet/application/agent.rb +16 -9
  23. data/lib/puppet/application/apply.rb +19 -17
  24. data/lib/puppet/application/cert.rb +2 -2
  25. data/lib/puppet/application/describe.rb +2 -2
  26. data/lib/puppet/application/device.rb +71 -46
  27. data/lib/puppet/application/doc.rb +9 -9
  28. data/lib/puppet/application/face_base.rb +8 -13
  29. data/lib/puppet/application/filebucket.rb +8 -8
  30. data/lib/puppet/application/lookup.rb +101 -88
  31. data/lib/puppet/application/master.rb +15 -23
  32. data/lib/puppet/application/resource.rb +20 -17
  33. data/lib/puppet/application.rb +11 -11
  34. data/lib/puppet/configurer/downloader.rb +2 -2
  35. data/lib/puppet/configurer/fact_handler.rb +13 -4
  36. data/lib/puppet/configurer.rb +29 -28
  37. data/lib/puppet/context/trusted_information.rb +1 -1
  38. data/lib/puppet/context.rb +5 -5
  39. data/lib/puppet/defaults.rb +58 -104
  40. data/lib/puppet/error.rb +1 -1
  41. data/lib/puppet/etc.rb +75 -39
  42. data/lib/puppet/external/pson/common.rb +4 -0
  43. data/lib/puppet/face/ca.rb +50 -43
  44. data/lib/puppet/face/catalog/select.rb +4 -4
  45. data/lib/puppet/face/catalog.rb +2 -2
  46. data/lib/puppet/face/certificate.rb +21 -21
  47. data/lib/puppet/face/certificate_request.rb +1 -1
  48. data/lib/puppet/face/certificate_revocation_list.rb +1 -1
  49. data/lib/puppet/face/config.rb +10 -10
  50. data/lib/puppet/face/epp.rb +38 -38
  51. data/lib/puppet/face/facts.rb +5 -5
  52. data/lib/puppet/face/generate.rb +8 -8
  53. data/lib/puppet/face/help.rb +8 -8
  54. data/lib/puppet/face/key.rb +3 -3
  55. data/lib/puppet/face/man.rb +7 -7
  56. data/lib/puppet/face/module/build.rb +7 -7
  57. data/lib/puppet/face/module/changes.rb +6 -6
  58. data/lib/puppet/face/module/generate.rb +24 -24
  59. data/lib/puppet/face/module/install.rb +13 -9
  60. data/lib/puppet/face/module/list.rb +16 -12
  61. data/lib/puppet/face/module/search.rb +4 -4
  62. data/lib/puppet/face/module/uninstall.rb +13 -10
  63. data/lib/puppet/face/module/upgrade.rb +11 -7
  64. data/lib/puppet/face/module.rb +3 -3
  65. data/lib/puppet/face/node/clean.rb +8 -8
  66. data/lib/puppet/face/node.rb +6 -6
  67. data/lib/puppet/face/parser.rb +17 -17
  68. data/lib/puppet/face/plugin.rb +7 -7
  69. data/lib/puppet/face/report.rb +10 -10
  70. data/lib/puppet/face/resource.rb +13 -13
  71. data/lib/puppet/face/status.rb +5 -5
  72. data/lib/puppet/feature/base.rb +4 -3
  73. data/lib/puppet/feature/eventlog.rb +1 -1
  74. data/lib/puppet/file_bucket/dipper.rb +9 -9
  75. data/lib/puppet/file_bucket/file.rb +4 -17
  76. data/lib/puppet/file_serving/base.rb +3 -3
  77. data/lib/puppet/file_serving/configuration/parser.rb +12 -12
  78. data/lib/puppet/file_serving/configuration.rb +3 -3
  79. data/lib/puppet/file_serving/content.rb +1 -1
  80. data/lib/puppet/file_serving/fileset.rb +7 -5
  81. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  82. data/lib/puppet/file_serving/metadata.rb +9 -9
  83. data/lib/puppet/file_serving/mount/file.rb +6 -6
  84. data/lib/puppet/file_serving/mount/modules.rb +1 -1
  85. data/lib/puppet/file_serving/mount.rb +1 -1
  86. data/lib/puppet/file_serving/terminus_selector.rb +1 -1
  87. data/lib/puppet/file_system/file_impl.rb +2 -2
  88. data/lib/puppet/file_system/memory_impl.rb +1 -1
  89. data/lib/puppet/file_system/path_pattern.rb +6 -6
  90. data/lib/puppet/file_system/uniquefile.rb +2 -2
  91. data/lib/puppet/file_system/windows.rb +3 -3
  92. data/lib/puppet/forge/cache.rb +1 -0
  93. data/lib/puppet/forge/errors.rb +12 -12
  94. data/lib/puppet/forge/repository.rb +2 -1
  95. data/lib/puppet/forge.rb +10 -8
  96. data/lib/puppet/functions/annotate.rb +108 -0
  97. data/lib/puppet/functions/binary_file.rb +1 -1
  98. data/lib/puppet/functions/call.rb +42 -0
  99. data/lib/puppet/functions/defined.rb +4 -4
  100. data/lib/puppet/functions/dig.rb +1 -1
  101. data/lib/puppet/functions/eyaml_lookup_key.rb +16 -12
  102. data/lib/puppet/functions/hiera.rb +9 -2
  103. data/lib/puppet/functions/hiera_array.rb +9 -2
  104. data/lib/puppet/functions/hiera_hash.rb +10 -2
  105. data/lib/puppet/functions/hiera_include.rb +18 -4
  106. data/lib/puppet/functions/hocon_data.rb +8 -2
  107. data/lib/puppet/functions/json_data.rb +5 -1
  108. data/lib/puppet/functions/match.rb +2 -2
  109. data/lib/puppet/functions/reduce.rb +14 -2
  110. data/lib/puppet/functions/require.rb +1 -1
  111. data/lib/puppet/functions/slice.rb +3 -3
  112. data/lib/puppet/functions/strftime.rb +10 -2
  113. data/lib/puppet/functions/unique.rb +132 -0
  114. data/lib/puppet/functions/yaml_data.rb +4 -0
  115. data/lib/puppet/functions.rb +17 -45
  116. data/lib/puppet/generate/models/type/type.rb +6 -5
  117. data/lib/puppet/generate/templates/type/pcore.erb +1 -1
  118. data/lib/puppet/generate/type.rb +12 -12
  119. data/lib/puppet/graph/relationship_graph.rb +4 -1
  120. data/lib/puppet/graph/simple_graph.rb +45 -66
  121. data/lib/puppet/indirector/catalog/compiler.rb +61 -44
  122. data/lib/puppet/indirector/catalog/json.rb +18 -0
  123. data/lib/puppet/indirector/certificate/disabled_ca.rb +1 -1
  124. data/lib/puppet/indirector/certificate_request/ca.rb +3 -3
  125. data/lib/puppet/indirector/certificate_request/disabled_ca.rb +1 -1
  126. data/lib/puppet/indirector/certificate_revocation_list/disabled_ca.rb +1 -1
  127. data/lib/puppet/indirector/certificate_status/file.rb +6 -6
  128. data/lib/puppet/indirector/exec.rb +2 -2
  129. data/lib/puppet/indirector/face.rb +18 -18
  130. data/lib/puppet/indirector/file_bucket_file/file.rb +9 -8
  131. data/lib/puppet/indirector/file_metadata/http.rb +1 -1
  132. data/lib/puppet/indirector/file_server.rb +10 -2
  133. data/lib/puppet/indirector/hiera.rb +5 -3
  134. data/lib/puppet/indirector/indirection.rb +13 -15
  135. data/lib/puppet/indirector/json.rb +11 -12
  136. data/lib/puppet/indirector/key/disabled_ca.rb +1 -1
  137. data/lib/puppet/indirector/key/file.rb +2 -2
  138. data/lib/puppet/indirector/ldap.rb +6 -5
  139. data/lib/puppet/indirector/memory.rb +1 -1
  140. data/lib/puppet/indirector/msgpack.rb +8 -7
  141. data/lib/puppet/indirector/node/exec.rb +8 -6
  142. data/lib/puppet/indirector/node/ldap.rb +9 -7
  143. data/lib/puppet/indirector/node/plain.rb +2 -1
  144. data/lib/puppet/indirector/node/write_only_yaml.rb +6 -1
  145. data/lib/puppet/indirector/node/yaml.rb +0 -9
  146. data/lib/puppet/indirector/report/processor.rb +2 -2
  147. data/lib/puppet/indirector/report/rest.rb +13 -0
  148. data/lib/puppet/indirector/request.rb +9 -16
  149. data/lib/puppet/indirector/resource/ral.rb +1 -1
  150. data/lib/puppet/indirector/resource/validator.rb +1 -1
  151. data/lib/puppet/indirector/rest.rb +28 -10
  152. data/lib/puppet/indirector/ssl_file.rb +9 -9
  153. data/lib/puppet/indirector/terminus.rb +3 -3
  154. data/lib/puppet/indirector/yaml.rb +5 -5
  155. data/lib/puppet/indirector.rb +2 -2
  156. data/lib/puppet/info_service/class_information_service.rb +4 -5
  157. data/lib/puppet/interface/face_collection.rb +6 -1
  158. data/lib/puppet/interface.rb +2 -6
  159. data/lib/puppet/module.rb +12 -7
  160. data/lib/puppet/module_tool/applications/application.rb +8 -9
  161. data/lib/puppet/module_tool/applications/builder.rb +5 -6
  162. data/lib/puppet/module_tool/applications/checksummer.rb +2 -2
  163. data/lib/puppet/module_tool/applications/installer.rb +11 -10
  164. data/lib/puppet/module_tool/applications/searcher.rb +1 -1
  165. data/lib/puppet/module_tool/applications/uninstaller.rb +2 -1
  166. data/lib/puppet/module_tool/applications/unpacker.rb +3 -3
  167. data/lib/puppet/module_tool/applications/upgrader.rb +10 -9
  168. data/lib/puppet/module_tool/contents_description.rb +1 -1
  169. data/lib/puppet/module_tool/dependency.rb +0 -1
  170. data/lib/puppet/module_tool/errors/installer.rb +22 -22
  171. data/lib/puppet/module_tool/errors/shared.rb +44 -42
  172. data/lib/puppet/module_tool/errors/uninstaller.rb +13 -9
  173. data/lib/puppet/module_tool/errors/upgrader.rb +11 -11
  174. data/lib/puppet/module_tool/install_directory.rb +1 -1
  175. data/lib/puppet/module_tool/installed_modules.rb +3 -3
  176. data/lib/puppet/module_tool/local_tarball.rb +4 -4
  177. data/lib/puppet/module_tool/metadata.rb +16 -13
  178. data/lib/puppet/module_tool/shared_behaviors.rb +6 -6
  179. data/lib/puppet/module_tool/skeleton/templates/generator/Gemfile +1 -1
  180. data/lib/puppet/module_tool/skeleton/templates/generator/README.md.erb +10 -4
  181. data/lib/puppet/module_tool/skeleton/templates/generator/Rakefile +2 -2
  182. data/lib/puppet/module_tool/skeleton/templates/generator/examples/init.pp.erb +1 -1
  183. data/lib/puppet/module_tool/tar.rb +5 -4
  184. data/lib/puppet/module_tool.rb +7 -3
  185. data/lib/puppet/network/auth_config_parser.rb +12 -11
  186. data/lib/puppet/network/authconfig.rb +2 -2
  187. data/lib/puppet/network/authstore.rb +2 -2
  188. data/lib/puppet/network/format.rb +7 -7
  189. data/lib/puppet/network/format_handler.rb +12 -9
  190. data/lib/puppet/network/format_support.rb +11 -5
  191. data/lib/puppet/network/formats.rb +38 -27
  192. data/lib/puppet/network/http/api/indirected_routes.rb +72 -33
  193. data/lib/puppet/network/http/api/master/v3/environment.rb +33 -14
  194. data/lib/puppet/network/http/compression.rb +10 -7
  195. data/lib/puppet/network/http/connection.rb +19 -15
  196. data/lib/puppet/network/http/error.rb +14 -10
  197. data/lib/puppet/network/http/handler.rb +8 -4
  198. data/lib/puppet/network/http/issues.rb +1 -0
  199. data/lib/puppet/network/http/pool.rb +1 -1
  200. data/lib/puppet/network/http/rack/rest.rb +3 -2
  201. data/lib/puppet/network/http/rack.rb +2 -2
  202. data/lib/puppet/network/http/request.rb +34 -20
  203. data/lib/puppet/network/http/response.rb +13 -1
  204. data/lib/puppet/network/http/webrick/rest.rb +2 -2
  205. data/lib/puppet/network/http/webrick.rb +5 -5
  206. data/lib/puppet/network/rights.rb +6 -6
  207. data/lib/puppet/network/server.rb +2 -2
  208. data/lib/puppet/node/environment.rb +21 -4
  209. data/lib/puppet/node/facts.rb +0 -5
  210. data/lib/puppet/node.rb +25 -13
  211. data/lib/puppet/parameter/package_options.rb +1 -1
  212. data/lib/puppet/parameter/path.rb +3 -3
  213. data/lib/puppet/parameter/value_collection.rb +4 -4
  214. data/lib/puppet/parameter.rb +3 -28
  215. data/lib/puppet/parser/ast/node.rb +1 -1
  216. data/lib/puppet/parser/ast/pops_bridge.rb +3 -3
  217. data/lib/puppet/parser/ast/resource.rb +1 -1
  218. data/lib/puppet/parser/ast/resource_instance.rb +1 -1
  219. data/lib/puppet/parser/ast/resourceparam.rb +1 -1
  220. data/lib/puppet/parser/compiler/catalog_validator/env_relationship_validator.rb +2 -2
  221. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +6 -9
  222. data/lib/puppet/parser/compiler/catalog_validator/site_validator.rb +1 -1
  223. data/lib/puppet/parser/compiler.rb +44 -113
  224. data/lib/puppet/parser/e4_parser_adapter.rb +1 -2
  225. data/lib/puppet/parser/environment_compiler.rb +13 -15
  226. data/lib/puppet/parser/functions/contain.rb +1 -1
  227. data/lib/puppet/parser/functions/create_resources.rb +11 -3
  228. data/lib/puppet/parser/functions/file.rb +1 -1
  229. data/lib/puppet/parser/functions/generate.rb +5 -4
  230. data/lib/puppet/parser/functions/hiera_include.rb +1 -1
  231. data/lib/puppet/parser/functions/include.rb +2 -1
  232. data/lib/puppet/parser/functions/inline_template.rb +1 -1
  233. data/lib/puppet/parser/functions/new.rb +14 -1
  234. data/lib/puppet/parser/functions/require.rb +1 -1
  235. data/lib/puppet/parser/functions.rb +6 -6
  236. data/lib/puppet/parser/parser_factory.rb +0 -30
  237. data/lib/puppet/parser/relationship.rb +49 -20
  238. data/lib/puppet/parser/resource/param.rb +0 -3
  239. data/lib/puppet/parser/resource.rb +31 -30
  240. data/lib/puppet/parser/scope.rb +124 -170
  241. data/lib/puppet/parser/templatewrapper.rb +2 -2
  242. data/lib/puppet/parser/type_loader.rb +1 -1
  243. data/lib/puppet/plugins/configuration.rb +15 -67
  244. data/lib/puppet/plugins/syntax_checkers.rb +6 -11
  245. data/lib/puppet/pops/adaptable.rb +8 -3
  246. data/lib/puppet/pops/adapters.rb +33 -87
  247. data/lib/puppet/pops/evaluator/access_operator.rb +10 -39
  248. data/lib/puppet/pops/evaluator/collector_transformer.rb +9 -14
  249. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +2 -2
  250. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +3 -3
  251. data/lib/puppet/pops/evaluator/compare_operator.rb +7 -7
  252. data/lib/puppet/pops/evaluator/epp_evaluator.rb +1 -1
  253. data/lib/puppet/pops/evaluator/evaluator_impl.rb +45 -37
  254. data/lib/puppet/pops/evaluator/external_syntax_support.rb +2 -9
  255. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +0 -2
  256. data/lib/puppet/pops/evaluator/puppet_proc.rb +1 -1
  257. data/lib/puppet/pops/evaluator/relationship_operator.rb +26 -9
  258. data/lib/puppet/pops/evaluator/runtime3_converter.rb +17 -1
  259. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +0 -2
  260. data/lib/puppet/pops/evaluator/runtime3_support.rb +44 -30
  261. data/lib/puppet/pops/functions/dispatch.rb +1 -6
  262. data/lib/puppet/pops/issues.rb +189 -161
  263. data/lib/puppet/pops/loader/base_loader.rb +2 -2
  264. data/lib/puppet/pops/loader/gem_support.rb +2 -2
  265. data/lib/puppet/pops/loader/loader.rb +4 -0
  266. data/lib/puppet/pops/loader/module_loaders.rb +59 -10
  267. data/lib/puppet/pops/loader/predefined_loader.rb +1 -6
  268. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +8 -8
  269. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +9 -10
  270. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +3 -3
  271. data/lib/puppet/pops/loader/static_loader.rb +32 -63
  272. data/lib/puppet/pops/loader/type_definition_instantiator.rb +8 -8
  273. data/lib/puppet/pops/loader/typed_name.rb +6 -0
  274. data/lib/puppet/pops/loaders.rb +22 -20
  275. data/lib/puppet/pops/lookup/context.rb +1 -1
  276. data/lib/puppet/pops/lookup/data_provider.rb +3 -18
  277. data/lib/puppet/pops/lookup/environment_data_provider.rb +1 -1
  278. data/lib/puppet/pops/lookup/global_data_provider.rb +7 -10
  279. data/lib/puppet/pops/lookup/hiera_config.rb +13 -34
  280. data/lib/puppet/pops/lookup/interpolation.rb +9 -8
  281. data/lib/puppet/pops/lookup/invocation.rb +13 -3
  282. data/lib/puppet/pops/lookup/lookup_adapter.rb +30 -69
  283. data/lib/puppet/pops/lookup/lookup_key.rb +2 -2
  284. data/lib/puppet/pops/lookup/module_data_provider.rb +11 -3
  285. data/lib/puppet/pops/lookup/sub_lookup.rb +12 -10
  286. data/lib/puppet/pops/lookup.rb +7 -5
  287. data/lib/puppet/pops/merge_strategy.rb +16 -1
  288. data/lib/puppet/pops/model/ast.pp +692 -0
  289. data/lib/puppet/pops/model/ast.rb +4833 -0
  290. data/lib/puppet/pops/model/ast_transformer.rb +9 -10
  291. data/lib/puppet/pops/model/factory.rb +454 -527
  292. data/lib/puppet/pops/model/model_label_provider.rb +3 -2
  293. data/lib/puppet/pops/model/model_tree_dumper.rb +8 -7
  294. data/lib/puppet/pops/parser/egrammar.ra +66 -60
  295. data/lib/puppet/pops/parser/eparser.rb +1483 -1578
  296. data/lib/puppet/pops/parser/evaluating_parser.rb +5 -5
  297. data/lib/puppet/pops/parser/interpolation_support.rb +4 -4
  298. data/lib/puppet/pops/parser/lexer2.rb +27 -36
  299. data/lib/puppet/pops/parser/locator.rb +39 -16
  300. data/lib/puppet/pops/parser/parser_support.rb +25 -29
  301. data/lib/puppet/pops/pcore.rb +28 -21
  302. data/lib/puppet/pops/resource/param.rb +1 -1
  303. data/lib/puppet/pops/resource/resource_type_impl.rb +3 -3
  304. data/lib/puppet/pops/semantic_error.rb +12 -0
  305. data/lib/puppet/pops/serialization/abstract_writer.rb +9 -1
  306. data/lib/puppet/pops/serialization/deserializer.rb +8 -5
  307. data/lib/puppet/pops/serialization/from_data_converter.rb +181 -0
  308. data/lib/puppet/pops/serialization/json.rb +4 -4
  309. data/lib/puppet/pops/serialization/json_path.rb +126 -0
  310. data/lib/puppet/pops/serialization/object.rb +6 -6
  311. data/lib/puppet/pops/serialization/serializer.rb +32 -11
  312. data/lib/puppet/pops/serialization/to_data_converter.rb +292 -0
  313. data/lib/puppet/pops/serialization.rb +25 -1
  314. data/lib/puppet/pops/time/timespan.rb +11 -11
  315. data/lib/puppet/pops/time/timestamp.rb +8 -8
  316. data/lib/puppet/pops/types/annotatable.rb +7 -7
  317. data/lib/puppet/pops/types/annotation.rb +71 -0
  318. data/lib/puppet/pops/types/class_loader.rb +4 -6
  319. data/lib/puppet/pops/types/enumeration.rb +2 -2
  320. data/lib/puppet/pops/types/iterable.rb +2 -2
  321. data/lib/puppet/pops/types/p_binary_type.rb +7 -1
  322. data/lib/puppet/pops/types/p_meta_type.rb +16 -12
  323. data/lib/puppet/pops/types/p_object_type.rb +135 -96
  324. data/lib/puppet/pops/types/p_runtime_type.rb +1 -1
  325. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +6 -2
  326. data/lib/puppet/pops/types/p_timespan_type.rb +55 -4
  327. data/lib/puppet/pops/types/p_type_set_type.rb +44 -36
  328. data/lib/puppet/pops/types/puppet_object.rb +13 -3
  329. data/lib/puppet/pops/types/ruby_generator.rb +291 -127
  330. data/lib/puppet/pops/types/ruby_method.rb +31 -0
  331. data/lib/puppet/pops/types/string_converter.rb +125 -59
  332. data/lib/puppet/pops/types/type_calculator.rb +55 -93
  333. data/lib/puppet/pops/types/type_factory.rb +34 -6
  334. data/lib/puppet/pops/types/type_formatter.rb +63 -15
  335. data/lib/puppet/pops/types/type_mismatch_describer.rb +8 -7
  336. data/lib/puppet/pops/types/type_parser.rb +28 -13
  337. data/lib/puppet/pops/types/type_set_reference.rb +7 -7
  338. data/lib/puppet/pops/types/types.rb +186 -186
  339. data/lib/puppet/pops/utils.rb +0 -24
  340. data/lib/puppet/pops/validation/checker4_0.rb +89 -75
  341. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -1
  342. data/lib/puppet/pops/validation.rb +3 -9
  343. data/lib/puppet/pops/visitor.rb +21 -0
  344. data/lib/puppet/pops.rb +7 -37
  345. data/lib/puppet/property/ensure.rb +3 -3
  346. data/lib/puppet/property/list.rb +1 -10
  347. data/lib/puppet/property.rb +17 -14
  348. data/lib/puppet/provider/aixobject.rb +7 -7
  349. data/lib/puppet/provider/augeas/augeas.rb +37 -37
  350. data/lib/puppet/provider/command.rb +1 -1
  351. data/lib/puppet/provider/cron/crontab.rb +2 -2
  352. data/lib/puppet/provider/exec/posix.rb +4 -4
  353. data/lib/puppet/provider/exec/windows.rb +3 -3
  354. data/lib/puppet/provider/exec.rb +4 -4
  355. data/lib/puppet/provider/file/posix.rb +5 -5
  356. data/lib/puppet/provider/file/windows.rb +4 -4
  357. data/lib/puppet/provider/group/aix.rb +2 -2
  358. data/lib/puppet/provider/group/groupadd.rb +2 -2
  359. data/lib/puppet/provider/group/pw.rb +1 -1
  360. data/lib/puppet/provider/host/parsed.rb +1 -1
  361. data/lib/puppet/provider/macauthorization/macauthorization.rb +9 -9
  362. data/lib/puppet/provider/maillist/mailman.rb +2 -2
  363. data/lib/puppet/provider/mcx/mcxcontent.rb +3 -3
  364. data/lib/puppet/provider/mount/parsed.rb +10 -8
  365. data/lib/puppet/provider/mount.rb +2 -1
  366. data/lib/puppet/provider/naginator.rb +1 -1
  367. data/lib/puppet/provider/nameservice/directoryservice.rb +11 -11
  368. data/lib/puppet/provider/nameservice.rb +18 -10
  369. data/lib/puppet/provider/network_device.rb +2 -1
  370. data/lib/puppet/provider/package/aix.rb +5 -5
  371. data/lib/puppet/provider/package/appdmg.rb +2 -2
  372. data/lib/puppet/provider/package/apple.rb +1 -1
  373. data/lib/puppet/provider/package/apt.rb +4 -4
  374. data/lib/puppet/provider/package/aptitude.rb +1 -1
  375. data/lib/puppet/provider/package/aptrpm.rb +2 -2
  376. data/lib/puppet/provider/package/blastwave.rb +4 -4
  377. data/lib/puppet/provider/package/dpkg.rb +3 -3
  378. data/lib/puppet/provider/package/fink.rb +3 -3
  379. data/lib/puppet/provider/package/freebsd.rb +1 -1
  380. data/lib/puppet/provider/package/gem.rb +6 -6
  381. data/lib/puppet/provider/package/hpux.rb +1 -1
  382. data/lib/puppet/provider/package/nim.rb +15 -12
  383. data/lib/puppet/provider/package/openbsd.rb +4 -4
  384. data/lib/puppet/provider/package/opkg.rb +1 -1
  385. data/lib/puppet/provider/package/pacman.rb +9 -9
  386. data/lib/puppet/provider/package/pkg.rb +9 -9
  387. data/lib/puppet/provider/package/pkgdmg.rb +4 -4
  388. data/lib/puppet/provider/package/pkgin.rb +3 -3
  389. data/lib/puppet/provider/package/pkgng.rb +1 -1
  390. data/lib/puppet/provider/package/pkgutil.rb +6 -6
  391. data/lib/puppet/provider/package/portage.rb +167 -59
  392. data/lib/puppet/provider/package/ports.rb +3 -3
  393. data/lib/puppet/provider/package/portupgrade.rb +4 -4
  394. data/lib/puppet/provider/package/rpm.rb +7 -4
  395. data/lib/puppet/provider/package/rug.rb +1 -1
  396. data/lib/puppet/provider/package/sun.rb +3 -2
  397. data/lib/puppet/provider/package/up2date.rb +1 -1
  398. data/lib/puppet/provider/package/urpmi.rb +1 -1
  399. data/lib/puppet/provider/package/windows/package.rb +3 -3
  400. data/lib/puppet/provider/package/windows.rb +4 -4
  401. data/lib/puppet/provider/package/yum.rb +13 -13
  402. data/lib/puppet/provider/package/zypper.rb +1 -1
  403. data/lib/puppet/provider/parsedfile.rb +1 -1
  404. data/lib/puppet/provider/service/upstart.rb +0 -2
  405. data/lib/puppet/provider/user/aix.rb +1 -1
  406. data/lib/puppet/provider/user/ldap.rb +1 -1
  407. data/lib/puppet/provider/user/useradd.rb +1 -1
  408. data/lib/puppet/provider/yumrepo/inifile.rb +3 -3
  409. data/lib/puppet/provider.rb +2 -0
  410. data/lib/puppet/reference/configuration.rb +1 -1
  411. data/lib/puppet/reference/indirection.rb +1 -1
  412. data/lib/puppet/reference/metaparameter.rb +1 -1
  413. data/lib/puppet/reference/providers.rb +6 -6
  414. data/lib/puppet/reference/type.rb +2 -2
  415. data/lib/puppet/relationship.rb +7 -9
  416. data/lib/puppet/reports/http.rb +6 -2
  417. data/lib/puppet/resource/capability_finder.rb +2 -2
  418. data/lib/puppet/resource/catalog.rb +26 -41
  419. data/lib/puppet/resource/status.rb +13 -24
  420. data/lib/puppet/resource/type.rb +13 -61
  421. data/lib/puppet/resource/type_collection.rb +30 -23
  422. data/lib/puppet/resource.rb +85 -108
  423. data/lib/puppet/settings/array_setting.rb +1 -1
  424. data/lib/puppet/settings/autosign_setting.rb +1 -1
  425. data/lib/puppet/settings/boolean_setting.rb +1 -1
  426. data/lib/puppet/settings/config_file.rb +2 -2
  427. data/lib/puppet/settings/duration_setting.rb +1 -1
  428. data/lib/puppet/settings/enum_setting.rb +1 -1
  429. data/lib/puppet/settings/environment_conf.rb +2 -2
  430. data/lib/puppet/settings/file_setting.rb +2 -2
  431. data/lib/puppet/settings/priority_setting.rb +1 -1
  432. data/lib/puppet/settings/server_list_setting.rb +1 -1
  433. data/lib/puppet/settings/symbolic_enum_setting.rb +1 -1
  434. data/lib/puppet/settings/terminus_setting.rb +1 -1
  435. data/lib/puppet/settings/ttl_setting.rb +2 -2
  436. data/lib/puppet/settings.rb +1 -1
  437. data/lib/puppet/ssl/base.rb +2 -2
  438. data/lib/puppet/ssl/certificate_authority/interface.rb +13 -13
  439. data/lib/puppet/ssl/certificate_authority.rb +21 -21
  440. data/lib/puppet/ssl/certificate_factory.rb +2 -2
  441. data/lib/puppet/ssl/certificate_request.rb +14 -14
  442. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  443. data/lib/puppet/ssl/certificate_revocation_list.rb +3 -3
  444. data/lib/puppet/ssl/host.rb +29 -29
  445. data/lib/puppet/ssl/inventory.rb +1 -1
  446. data/lib/puppet/ssl/key.rb +1 -1
  447. data/lib/puppet/ssl/oids.rb +5 -5
  448. data/lib/puppet/ssl/validator/default_validator.rb +3 -4
  449. data/lib/puppet/syntax_checkers/base64.rb +7 -7
  450. data/lib/puppet/syntax_checkers/json.rb +5 -5
  451. data/lib/puppet/test/test_helper.rb +0 -4
  452. data/lib/puppet/transaction/additional_resource_generator.rb +4 -3
  453. data/lib/puppet/transaction/event.rb +19 -8
  454. data/lib/puppet/transaction/event_manager.rb +6 -6
  455. data/lib/puppet/transaction/persistence.rb +6 -6
  456. data/lib/puppet/transaction/report.rb +35 -41
  457. data/lib/puppet/transaction/resource_harness.rb +14 -12
  458. data/lib/puppet/transaction.rb +38 -20
  459. data/lib/puppet/type/augeas.rb +2 -2
  460. data/lib/puppet/type/cron.rb +14 -31
  461. data/lib/puppet/type/exec.rb +48 -42
  462. data/lib/puppet/type/file/content.rb +1 -1
  463. data/lib/puppet/type/file/group.rb +3 -3
  464. data/lib/puppet/type/file/mode.rb +10 -6
  465. data/lib/puppet/type/file/owner.rb +3 -3
  466. data/lib/puppet/type/file/selcontext.rb +18 -1
  467. data/lib/puppet/type/file/source.rb +14 -4
  468. data/lib/puppet/type/file.rb +21 -22
  469. data/lib/puppet/type/filebucket.rb +3 -8
  470. data/lib/puppet/type/group.rb +2 -2
  471. data/lib/puppet/type/host.rb +6 -6
  472. data/lib/puppet/type/interface.rb +1 -1
  473. data/lib/puppet/type/k5login.rb +1 -1
  474. data/lib/puppet/type/macauthorization.rb +1 -1
  475. data/lib/puppet/type/mailalias.rb +2 -18
  476. data/lib/puppet/type/maillist.rb +1 -1
  477. data/lib/puppet/type/mount.rb +8 -8
  478. data/lib/puppet/type/notify.rb +2 -0
  479. data/lib/puppet/type/package.rb +5 -5
  480. data/lib/puppet/type/resources.rb +6 -6
  481. data/lib/puppet/type/schedule.rb +9 -9
  482. data/lib/puppet/type/scheduled_task.rb +4 -4
  483. data/lib/puppet/type/service.rb +1 -1
  484. data/lib/puppet/type/ssh_authorized_key.rb +3 -19
  485. data/lib/puppet/type/sshkey.rb +4 -4
  486. data/lib/puppet/type/tidy.rb +15 -11
  487. data/lib/puppet/type/user.rb +29 -27
  488. data/lib/puppet/type/yumrepo.rb +8 -8
  489. data/lib/puppet/type/zone.rb +7 -7
  490. data/lib/puppet/type/zpool.rb +3 -3
  491. data/lib/puppet/type.rb +0 -6
  492. data/lib/puppet/util/at_fork/noop.rb +18 -0
  493. data/lib/puppet/util/at_fork/solaris.rb +158 -0
  494. data/lib/puppet/util/at_fork.rb +35 -0
  495. data/lib/puppet/util/autoload.rb +2 -2
  496. data/lib/puppet/util/backups.rb +6 -6
  497. data/lib/puppet/util/character_encoding.rb +77 -74
  498. data/lib/puppet/util/classgen.rb +4 -4
  499. data/lib/puppet/util/command_line/puppet_option_parser.rb +3 -3
  500. data/lib/puppet/util/command_line/trollop.rb +31 -31
  501. data/lib/puppet/util/command_line.rb +4 -4
  502. data/lib/puppet/util/diff.rb +1 -1
  503. data/lib/puppet/util/errors.rb +4 -4
  504. data/lib/puppet/util/execution.rb +8 -8
  505. data/lib/puppet/util/feature.rb +5 -5
  506. data/lib/puppet/util/fileparsing.rb +8 -8
  507. data/lib/puppet/util/filetype.rb +15 -15
  508. data/lib/puppet/util/http_proxy.rb +1 -1
  509. data/lib/puppet/util/inifile.rb +4 -4
  510. data/lib/puppet/util/instance_loader.rb +1 -1
  511. data/lib/puppet/util/json_lockfile.rb +4 -4
  512. data/lib/puppet/util/ldap/connection.rb +2 -2
  513. data/lib/puppet/util/ldap/manager.rb +2 -2
  514. data/lib/puppet/util/limits.rb +1 -1
  515. data/lib/puppet/util/log/destinations.rb +10 -16
  516. data/lib/puppet/util/log.rb +23 -16
  517. data/lib/puppet/util/logging.rb +11 -8
  518. data/lib/puppet/util/metric.rb +9 -6
  519. data/lib/puppet/util/monkey_patches.rb +30 -67
  520. data/lib/puppet/util/network_device/cisco/device.rb +7 -7
  521. data/lib/puppet/util/network_device/cisco/interface.rb +1 -1
  522. data/lib/puppet/util/network_device/config.rb +6 -6
  523. data/lib/puppet/util/network_device/transport/ssh.rb +6 -6
  524. data/lib/puppet/util/network_device.rb +1 -1
  525. data/lib/puppet/util/plist.rb +4 -2
  526. data/lib/puppet/util/posix.rb +5 -5
  527. data/lib/puppet/util/profiler/wall_clock.rb +1 -1
  528. data/lib/puppet/util/provider_features.rb +1 -1
  529. data/lib/puppet/util/psych_support.rb +3 -11
  530. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +1 -1
  531. data/lib/puppet/util/rdoc.rb +4 -4
  532. data/lib/puppet/util/reference.rb +5 -5
  533. data/lib/puppet/util/resource_template.rb +1 -1
  534. data/lib/puppet/util/retry_action.rb +2 -2
  535. data/lib/puppet/util/selinux.rb +54 -12
  536. data/lib/puppet/util/splayer.rb +1 -1
  537. data/lib/puppet/util/storage.rb +5 -5
  538. data/lib/puppet/util/suidmanager.rb +4 -4
  539. data/lib/puppet/util/symbolic_file_mode.rb +9 -9
  540. data/lib/puppet/util/tag_set.rb +1 -4
  541. data/lib/puppet/util/tagging.rb +2 -2
  542. data/lib/puppet/util/windows/adsi.rb +14 -14
  543. data/lib/puppet/util/windows/api_types.rb +5 -2
  544. data/lib/puppet/util/windows/com.rb +4 -4
  545. data/lib/puppet/util/windows/error.rb +2 -2
  546. data/lib/puppet/util/windows/eventlog.rb +192 -0
  547. data/lib/puppet/util/windows/file.rb +4 -4
  548. data/lib/puppet/util/windows/principal.rb +6 -5
  549. data/lib/puppet/util/windows/process.rb +5 -5
  550. data/lib/puppet/util/windows/registry.rb +11 -11
  551. data/lib/puppet/util/windows/root_certs.rb +1 -1
  552. data/lib/puppet/util/windows/security.rb +14 -14
  553. data/lib/puppet/util/windows/sid.rb +6 -6
  554. data/lib/puppet/util/windows/taskscheduler.rb +62 -62
  555. data/lib/puppet/util/windows/user.rb +6 -6
  556. data/lib/puppet/util/windows.rb +2 -0
  557. data/lib/puppet/util.rb +138 -14
  558. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +1 -1
  559. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version.rb +122 -114
  560. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/version_range.rb +678 -342
  561. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +2 -10
  562. data/lib/puppet/version.rb +1 -1
  563. data/lib/puppet.rb +47 -33
  564. data/locales/config.yaml +1 -1
  565. data/locales/puppet.pot +7931 -29
  566. data/man/man5/puppet.conf.5 +0 -22
  567. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/metadata.json +9 -0
  568. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/metadata.json +9 -0
  569. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/metadata.json +9 -0
  570. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/metadata.json +9 -0
  571. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/metadata.json +9 -0
  572. data/spec/integration/application/apply_spec.rb +29 -22
  573. data/spec/integration/configurer_spec.rb +1 -1
  574. data/spec/integration/defaults_spec.rb +2 -2
  575. data/spec/integration/faces/documentation_spec.rb +2 -2
  576. data/spec/integration/indirector/file_content/file_server_spec.rb +1 -0
  577. data/spec/integration/indirector/file_metadata/file_server_spec.rb +1 -0
  578. data/spec/integration/parser/catalog_spec.rb +1 -1
  579. data/spec/integration/parser/class_spec.rb +6 -6
  580. data/spec/integration/parser/compiler_spec.rb +184 -142
  581. data/spec/integration/parser/dynamic_scoping_spec.rb +0 -1
  582. data/spec/integration/parser/pcore_resource_spec.rb +15 -0
  583. data/spec/integration/parser/scope_spec.rb +53 -4
  584. data/spec/integration/resource/catalog_spec.rb +0 -4
  585. data/spec/integration/resource/type_collection_spec.rb +6 -0
  586. data/spec/integration/transaction/report_spec.rb +2 -2
  587. data/spec/integration/transaction_spec.rb +2 -2
  588. data/spec/integration/type/file_spec.rb +29 -0
  589. data/spec/integration/type/package_spec.rb +7 -1
  590. data/spec/lib/matchers/json.rb +3 -3
  591. data/spec/lib/puppet/face/1.0.0/huzzah.rb +1 -1
  592. data/spec/lib/puppet/face/basetest.rb +1 -1
  593. data/spec/lib/puppet/face/huzzah.rb +1 -1
  594. data/spec/lib/puppet/face/version_matching.rb +1 -1
  595. data/spec/lib/puppet/indirector_testing.rb +4 -0
  596. data/spec/lib/puppet_spec/character_encoding.rb +12 -0
  597. data/spec/lib/puppet_spec/compiler.rb +8 -1
  598. data/spec/lib/puppet_spec/modules.rb +2 -2
  599. data/spec/lib/puppet_spec/network.rb +10 -6
  600. data/spec/shared_contexts/types_setup.rb +52 -15
  601. data/spec/shared_examples/rhel_package_provider.rb +10 -11
  602. data/spec/spec_helper.rb +0 -11
  603. data/spec/unit/agent_spec.rb +12 -1
  604. data/spec/unit/application/agent_spec.rb +7 -0
  605. data/spec/unit/application/apply_spec.rb +28 -13
  606. data/spec/unit/application/describe_spec.rb +19 -0
  607. data/spec/unit/application/device_spec.rb +41 -2
  608. data/spec/unit/application/face_base_spec.rb +6 -6
  609. data/spec/unit/application/master_spec.rb +22 -6
  610. data/spec/unit/application/resource_spec.rb +39 -1
  611. data/spec/unit/application_spec.rb +0 -6
  612. data/spec/unit/capability_spec.rb +2 -6
  613. data/spec/unit/configurer/fact_handler_spec.rb +76 -20
  614. data/spec/unit/configurer/plugin_handler_spec.rb +13 -19
  615. data/spec/unit/configurer_spec.rb +36 -19
  616. data/spec/unit/defaults_spec.rb +0 -30
  617. data/spec/unit/etc_spec.rb +361 -153
  618. data/spec/unit/face/module/list_spec.rb +60 -0
  619. data/spec/unit/file_bucket/file_spec.rb +3 -3
  620. data/spec/unit/file_serving/http_metadata_spec.rb +1 -1
  621. data/spec/unit/file_serving/metadata_spec.rb +35 -9
  622. data/spec/unit/forge/forge_spec.rb +112 -0
  623. data/spec/unit/forge/repository_spec.rb +4 -4
  624. data/spec/unit/functions/annotate_spec.rb +175 -0
  625. data/spec/unit/functions/break_spec.rb +29 -1
  626. data/spec/unit/functions/call_spec.rb +77 -0
  627. data/spec/unit/functions/contain_spec.rb +1 -1
  628. data/spec/unit/functions/lookup_fixture_spec.rb +1 -6
  629. data/spec/unit/functions/lookup_spec.rb +208 -3
  630. data/spec/unit/functions/new_spec.rb +1 -1
  631. data/spec/unit/functions/unique_spec.rb +111 -0
  632. data/spec/unit/functions4_spec.rb +2 -43
  633. data/spec/unit/graph/simple_graph_spec.rb +58 -55
  634. data/spec/unit/indirector/catalog/compiler_spec.rb +213 -153
  635. data/spec/unit/indirector/catalog/json_spec.rb +50 -1
  636. data/spec/unit/indirector/facts/facter_spec.rb +1 -2
  637. data/spec/unit/indirector/file_bucket_file/file_spec.rb +1 -1
  638. data/spec/unit/indirector/file_server_spec.rb +17 -2
  639. data/spec/unit/indirector/indirection_spec.rb +1 -36
  640. data/spec/unit/indirector/json_spec.rb +27 -6
  641. data/spec/unit/indirector/node/exec_spec.rb +12 -12
  642. data/spec/unit/indirector/node/ldap_spec.rb +29 -8
  643. data/spec/unit/indirector/node/plain_spec.rb +16 -6
  644. data/spec/unit/indirector/node/write_only_yaml_spec.rb +12 -0
  645. data/spec/unit/indirector/report/processor_spec.rb +2 -2
  646. data/spec/unit/indirector/report/rest_spec.rb +29 -3
  647. data/spec/unit/indirector/request_spec.rb +15 -4
  648. data/spec/unit/indirector/rest_spec.rb +57 -15
  649. data/spec/unit/interface/face_collection_spec.rb +7 -7
  650. data/spec/unit/module_spec.rb +10 -2
  651. data/spec/unit/module_tool/applications/installer_spec.rb +0 -1
  652. data/spec/unit/module_tool/applications/upgrader_spec.rb +0 -1
  653. data/spec/unit/module_tool/tar_spec.rb +16 -10
  654. data/spec/unit/network/format_handler_spec.rb +11 -11
  655. data/spec/unit/network/format_spec.rb +9 -0
  656. data/spec/unit/network/formats_spec.rb +322 -138
  657. data/spec/unit/network/http/api/indirected_routes_spec.rb +65 -55
  658. data/spec/unit/network/http/api/master/v3/environment_spec.rb +128 -2
  659. data/spec/unit/network/http/api/master/v3_spec.rb +1 -1
  660. data/spec/unit/network/http/api_spec.rb +1 -1
  661. data/spec/unit/network/http/compression_spec.rb +105 -88
  662. data/spec/unit/network/http/error_spec.rb +1 -2
  663. data/spec/unit/network/http/handler_spec.rb +8 -12
  664. data/spec/unit/network/http/rack/rest_spec.rb +3 -3
  665. data/spec/unit/network/http/request_spec.rb +110 -0
  666. data/spec/unit/network/http/response_spec.rb +108 -0
  667. data/spec/unit/node/facts_spec.rb +13 -13
  668. data/spec/unit/node_spec.rb +33 -10
  669. data/spec/unit/parameter_spec.rb +73 -5
  670. data/spec/unit/parser/compiler_spec.rb +1 -1
  671. data/spec/unit/parser/environment_compiler_spec.rb +0 -2
  672. data/spec/unit/parser/functions/create_resources_spec.rb +47 -6
  673. data/spec/unit/parser/resource_spec.rb +86 -24
  674. data/spec/unit/parser/scope_spec.rb +10 -79
  675. data/spec/unit/pops/benchmark_spec.rb +8 -26
  676. data/spec/unit/pops/containment_spec.rb +0 -26
  677. data/spec/unit/pops/evaluator/access_ops_spec.rb +103 -103
  678. data/spec/unit/pops/evaluator/arithmetic_ops_spec.rb +59 -6
  679. data/spec/unit/pops/evaluator/basic_expressions_spec.rb +5 -5
  680. data/spec/unit/pops/evaluator/comparison_ops_spec.rb +26 -26
  681. data/spec/unit/pops/evaluator/evaluating_parser_spec.rb +59 -7
  682. data/spec/unit/pops/evaluator/evaluator_rspec_helper.rb +7 -7
  683. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +36 -1
  684. data/spec/unit/pops/evaluator/string_interpolation_spec.rb +10 -10
  685. data/spec/unit/pops/evaluator/variables_spec.rb +1 -1
  686. data/spec/unit/pops/factory_rspec_helper.rb +0 -4
  687. data/spec/unit/pops/factory_spec.rb +83 -83
  688. data/spec/unit/pops/loaders/loaders_spec.rb +209 -79
  689. data/spec/unit/pops/loaders/static_loader_spec.rb +2 -6
  690. data/spec/unit/pops/lookup/interpolation_spec.rb +50 -10
  691. data/spec/unit/pops/lookup/lookup_spec.rb +32 -0
  692. data/spec/unit/pops/model/model_spec.rb +10 -10
  693. data/spec/unit/pops/parser/epp_parser_spec.rb +1 -1
  694. data/spec/unit/pops/parser/lexer2_spec.rb +32 -29
  695. data/spec/unit/pops/parser/{source_pos_adapter_spec.rb → locator_spec.rb} +9 -11
  696. data/spec/unit/pops/parser/parse_application_spec.rb +0 -3
  697. data/spec/unit/pops/parser/parse_basic_expressions_spec.rb +4 -4
  698. data/spec/unit/pops/parser/parse_capabilities_spec.rb +0 -3
  699. data/spec/unit/pops/parser/parse_containers_spec.rb +17 -19
  700. data/spec/unit/pops/parser/parse_site_spec.rb +0 -3
  701. data/spec/unit/pops/parser/parser_spec.rb +8 -10
  702. data/spec/unit/pops/resource/resource_type_impl_spec.rb +1 -3
  703. data/spec/unit/pops/serialization/serialization_spec.rb +117 -5
  704. data/spec/unit/pops/serialization/to_from_hr_spec.rb +494 -0
  705. data/spec/unit/pops/time/timestamp_spec.rb +13 -0
  706. data/spec/unit/pops/types/iterable_spec.rb +1 -1
  707. data/spec/unit/pops/types/p_object_type_spec.rb +100 -14
  708. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +12 -17
  709. data/spec/unit/pops/types/p_timestamp_type_spec.rb +8 -8
  710. data/spec/unit/pops/types/p_type_set_type_spec.rb +4 -12
  711. data/spec/unit/pops/types/ruby_generator_spec.rb +57 -20
  712. data/spec/unit/pops/types/string_converter_spec.rb +119 -16
  713. data/spec/unit/pops/types/type_acceptor_spec.rb +2 -2
  714. data/spec/unit/pops/types/type_calculator_spec.rb +211 -87
  715. data/spec/unit/pops/types/type_factory_spec.rb +9 -9
  716. data/spec/unit/pops/types/type_formatter_spec.rb +32 -19
  717. data/spec/unit/pops/types/type_parser_spec.rb +6 -6
  718. data/spec/unit/pops/types/types_spec.rb +53 -2
  719. data/spec/unit/pops/validator/validator_spec.rb +53 -61
  720. data/spec/unit/pops/visitor_spec.rb +1 -1
  721. data/spec/unit/property/list_spec.rb +2 -2
  722. data/spec/unit/provider/augeas/augeas_spec.rb +1 -1
  723. data/spec/unit/provider/nameservice/directoryservice_spec.rb +2 -0
  724. data/spec/unit/provider/nameservice_spec.rb +113 -3
  725. data/spec/unit/provider/package/portage_spec.rb +103 -17
  726. data/spec/unit/provider/package/rpm_spec.rb +14 -1
  727. data/spec/unit/provider/user/directoryservice_spec.rb +7 -7
  728. data/spec/unit/provider/user/useradd_spec.rb +13 -0
  729. data/spec/unit/puppet_spec.rb +2 -3
  730. data/spec/unit/relationship_spec.rb +15 -36
  731. data/spec/unit/reports/http_spec.rb +11 -8
  732. data/spec/unit/resource/catalog_spec.rb +81 -53
  733. data/spec/unit/resource/status_spec.rb +114 -103
  734. data/spec/unit/resource/type_collection_spec.rb +5 -5
  735. data/spec/unit/resource/type_spec.rb +4 -71
  736. data/spec/unit/resource_spec.rb +30 -34
  737. data/spec/unit/settings_spec.rb +4 -2
  738. data/spec/unit/ssl/host_spec.rb +34 -34
  739. data/spec/unit/status_spec.rb +7 -7
  740. data/spec/unit/transaction/event_spec.rb +18 -15
  741. data/spec/unit/transaction/report_spec.rb +100 -62
  742. data/spec/unit/transaction/resource_harness_spec.rb +3 -3
  743. data/spec/unit/transaction_spec.rb +53 -8
  744. data/spec/unit/type/file/group_spec.rb +2 -2
  745. data/spec/unit/type/file/mode_spec.rb +9 -9
  746. data/spec/unit/type/file/owner_spec.rb +2 -2
  747. data/spec/unit/type/file/selinux_spec.rb +2 -0
  748. data/spec/unit/type/file/source_spec.rb +13 -0
  749. data/spec/unit/type/file_spec.rb +46 -0
  750. data/spec/unit/type/ssh_authorized_key_spec.rb +2 -2
  751. data/spec/unit/type/user_spec.rb +2 -4
  752. data/spec/unit/util/at_fork_spec.rb +150 -0
  753. data/spec/unit/util/character_encoding_spec.rb +193 -52
  754. data/spec/unit/util/execution_spec.rb +31 -2
  755. data/spec/unit/util/log/destinations_spec.rb +5 -6
  756. data/spec/unit/util/log_spec.rb +62 -17
  757. data/spec/unit/util/metric_spec.rb +9 -2
  758. data/spec/unit/util/monkey_patches_spec.rb +6 -188
  759. data/spec/unit/util/run_mode_spec.rb +17 -10
  760. data/spec/unit/util/tag_set_spec.rb +2 -2
  761. data/spec/unit/util/tagging_spec.rb +55 -0
  762. data/spec/unit/util/windows/eventlog_spec.rb +123 -0
  763. data/spec/unit/util_spec.rb +237 -2
  764. data/tasks/benchmark.rake +3 -3
  765. data/tasks/cfpropertylist.rake +1 -1
  766. data/tasks/generate_ast_model.rake +78 -0
  767. metadata +3386 -3635
  768. checksums.yaml +0 -7
  769. data/bin/extlookup2hiera +0 -56
  770. data/ext/emacs/puppet-mode-init.el +0 -6
  771. data/ext/emacs/puppet-mode.el +0 -433
  772. data/ext/vim/README +0 -3
  773. data/ext/vim/ftdetect/puppet.vim +0 -2
  774. data/ext/vim/ftplugin/puppet.vim +0 -94
  775. data/ext/vim/indent/puppet.vim +0 -76
  776. data/ext/vim/syntax/puppet.vim +0 -115
  777. data/lib/puppet/application/file.rb +0 -4
  778. data/lib/puppet/application/inspect.rb +0 -182
  779. data/lib/puppet/application/resource_type.rb +0 -7
  780. data/lib/puppet/data_providers/data_adapter.rb +0 -37
  781. data/lib/puppet/data_providers/data_function_support.rb +0 -32
  782. data/lib/puppet/data_providers/function_env_data_provider.rb +0 -26
  783. data/lib/puppet/data_providers/function_module_data_provider.rb +0 -24
  784. data/lib/puppet/data_providers/hiera_config.rb +0 -151
  785. data/lib/puppet/data_providers/hiera_env_data_provider.rb +0 -25
  786. data/lib/puppet/data_providers/hiera_interpolate.rb +0 -21
  787. data/lib/puppet/data_providers/hiera_module_data_provider.rb +0 -30
  788. data/lib/puppet/data_providers/hiera_support.rb +0 -42
  789. data/lib/puppet/data_providers/json_data_provider_factory.rb +0 -38
  790. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +0 -40
  791. data/lib/puppet/data_providers.rb +0 -34
  792. data/lib/puppet/face/file/download.rb +0 -56
  793. data/lib/puppet/face/file/store.rb +0 -21
  794. data/lib/puppet/face/file.rb +0 -50
  795. data/lib/puppet/face/resource_type.rb +0 -84
  796. data/lib/puppet/feature/cfacter.rb +0 -15
  797. data/lib/puppet/feature/external_facts.rb +0 -5
  798. data/lib/puppet/indirector/catalog/static_compiler.rb +0 -232
  799. data/lib/puppet/indirector/resource_type/parser.rb +0 -108
  800. data/lib/puppet/indirector/resource_type/rest.rb +0 -7
  801. data/lib/puppet/indirector/resource_type.rb +0 -5
  802. data/lib/puppet/parser/yaml_trimmer.rb +0 -7
  803. data/lib/puppet/plugins/binding_schemes.rb +0 -140
  804. data/lib/puppet/plugins/data_providers/data_provider.rb +0 -406
  805. data/lib/puppet/plugins/data_providers/registry.rb +0 -51
  806. data/lib/puppet/plugins/data_providers.rb +0 -45
  807. data/lib/puppet/pops/binder/binder.rb +0 -398
  808. data/lib/puppet/pops/binder/binder_issues.rb +0 -124
  809. data/lib/puppet/pops/binder/bindings_checker.rb +0 -201
  810. data/lib/puppet/pops/binder/bindings_composer.rb +0 -181
  811. data/lib/puppet/pops/binder/bindings_factory.rb +0 -813
  812. data/lib/puppet/pops/binder/bindings_label_provider.rb +0 -45
  813. data/lib/puppet/pops/binder/bindings_loader.rb +0 -87
  814. data/lib/puppet/pops/binder/bindings_model.rb +0 -70
  815. data/lib/puppet/pops/binder/bindings_model_dumper.rb +0 -215
  816. data/lib/puppet/pops/binder/bindings_model_meta.rb +0 -215
  817. data/lib/puppet/pops/binder/bindings_validator_factory.rb +0 -28
  818. data/lib/puppet/pops/binder/config/binder_config.rb +0 -107
  819. data/lib/puppet/pops/binder/config/binder_config_checker.rb +0 -142
  820. data/lib/puppet/pops/binder/config/diagnostic_producer.rb +0 -36
  821. data/lib/puppet/pops/binder/config/issues.rb +0 -90
  822. data/lib/puppet/pops/binder/injector.rb +0 -771
  823. data/lib/puppet/pops/binder/injector_entry.rb +0 -57
  824. data/lib/puppet/pops/binder/key_factory.rb +0 -65
  825. data/lib/puppet/pops/binder/producers.rb +0 -831
  826. data/lib/puppet/pops/binder/scheme_handler/confdir_scheme.rb +0 -34
  827. data/lib/puppet/pops/binder/scheme_handler/module_scheme.rb +0 -143
  828. data/lib/puppet/pops/binder/scheme_handler/symbolic_scheme.rb +0 -53
  829. data/lib/puppet/pops/binder/system_bindings.rb +0 -60
  830. data/lib/puppet/pops/containment.rb +0 -104
  831. data/lib/puppet/pops/model/model.rb +0 -131
  832. data/lib/puppet/pops/model/model_meta.rb +0 -629
  833. data/lib/puppet/pops/serialization/rgen.rb +0 -152
  834. data/lib/puppet/vendor/load_rgen.rb +0 -2
  835. data/lib/puppet/vendor/rgen/CHANGELOG +0 -197
  836. data/lib/puppet/vendor/rgen/MIT-LICENSE +0 -20
  837. data/lib/puppet/vendor/rgen/PUPPET_README.md +0 -6
  838. data/lib/puppet/vendor/rgen/README.rdoc +0 -78
  839. data/lib/puppet/vendor/rgen/Rakefile +0 -41
  840. data/lib/puppet/vendor/rgen/TODO +0 -41
  841. data/lib/puppet/vendor/rgen/anounce.txt +0 -61
  842. data/lib/puppet/vendor/rgen/design_rationale.txt +0 -71
  843. data/lib/puppet/vendor/rgen/lib/ea_support/ea_support.rb +0 -54
  844. data/lib/puppet/vendor/rgen/lib/ea_support/id_store.rb +0 -32
  845. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel.rb +0 -562
  846. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_ext.rb +0 -45
  847. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_metamodel_generator.rb +0 -43
  848. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_ea_to_uml13.rb +0 -103
  849. data/lib/puppet/vendor/rgen/lib/ea_support/uml13_to_uml13_ea.rb +0 -89
  850. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel.rb +0 -559
  851. data/lib/puppet/vendor/rgen/lib/metamodels/uml13_metamodel_ext.rb +0 -26
  852. data/lib/puppet/vendor/rgen/lib/mmgen/metamodel_generator.rb +0 -20
  853. data/lib/puppet/vendor/rgen/lib/mmgen/mm_ext/ecore_mmgen_ext.rb +0 -91
  854. data/lib/puppet/vendor/rgen/lib/mmgen/mmgen.rb +0 -28
  855. data/lib/puppet/vendor/rgen/lib/mmgen/templates/annotations.tpl +0 -37
  856. data/lib/puppet/vendor/rgen/lib/mmgen/templates/metamodel_generator.tpl +0 -172
  857. data/lib/puppet/vendor/rgen/lib/rgen/array_extensions.rb +0 -45
  858. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore.rb +0 -218
  859. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_builder_methods.rb +0 -81
  860. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_ext.rb +0 -69
  861. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_interface.rb +0 -47
  862. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ecore_to_ruby.rb +0 -167
  863. data/lib/puppet/vendor/rgen/lib/rgen/ecore/ruby_to_ecore.rb +0 -91
  864. data/lib/puppet/vendor/rgen/lib/rgen/environment.rb +0 -129
  865. data/lib/puppet/vendor/rgen/lib/rgen/fragment/dump_file_cache.rb +0 -63
  866. data/lib/puppet/vendor/rgen/lib/rgen/fragment/fragmented_model.rb +0 -140
  867. data/lib/puppet/vendor/rgen/lib/rgen/fragment/model_fragment.rb +0 -289
  868. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_instantiator.rb +0 -66
  869. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/abstract_xml_instantiator.rb +0 -66
  870. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/default_xml_instantiator.rb +0 -117
  871. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/ecore_xml_instantiator.rb +0 -169
  872. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_instantiator.rb +0 -126
  873. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.rb +0 -331
  874. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/json_parser.y +0 -94
  875. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/nodebased_xml_instantiator.rb +0 -137
  876. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/qualified_name_resolver.rb +0 -97
  877. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/reference_resolver.rb +0 -128
  878. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/resolution_helper.rb +0 -47
  879. data/lib/puppet/vendor/rgen/lib/rgen/instantiator/xmi11_instantiator.rb +0 -168
  880. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_extensions.rb +0 -556
  881. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/builder_runtime.rb +0 -174
  882. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/constant_order_helper.rb +0 -89
  883. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/data_types.rb +0 -77
  884. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/annotation.rb +0 -30
  885. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/intermediate/feature.rb +0 -168
  886. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/mm_multiple.rb +0 -23
  887. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder/module_extension.rb +0 -42
  888. data/lib/puppet/vendor/rgen/lib/rgen/metamodel_builder.rb +0 -224
  889. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/builder_context.rb +0 -334
  890. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/model_serializer.rb +0 -225
  891. data/lib/puppet/vendor/rgen/lib/rgen/model_builder/reference_resolver.rb +0 -156
  892. data/lib/puppet/vendor/rgen/lib/rgen/model_builder.rb +0 -32
  893. data/lib/puppet/vendor/rgen/lib/rgen/serializer/json_serializer.rb +0 -121
  894. data/lib/puppet/vendor/rgen/lib/rgen/serializer/opposite_reference_filter.rb +0 -18
  895. data/lib/puppet/vendor/rgen/lib/rgen/serializer/qualified_name_provider.rb +0 -47
  896. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi11_serializer.rb +0 -116
  897. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xmi20_serializer.rb +0 -71
  898. data/lib/puppet/vendor/rgen/lib/rgen/serializer/xml_serializer.rb +0 -98
  899. data/lib/puppet/vendor/rgen/lib/rgen/template_language/directory_template_container.rb +0 -83
  900. data/lib/puppet/vendor/rgen/lib/rgen/template_language/output_handler.rb +0 -87
  901. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_container.rb +0 -234
  902. data/lib/puppet/vendor/rgen/lib/rgen/template_language/template_helper.rb +0 -26
  903. data/lib/puppet/vendor/rgen/lib/rgen/template_language.rb +0 -297
  904. data/lib/puppet/vendor/rgen/lib/rgen/transformer.rb +0 -475
  905. data/lib/puppet/vendor/rgen/lib/rgen/util/auto_class_creator.rb +0 -61
  906. data/lib/puppet/vendor/rgen/lib/rgen/util/cached_glob.rb +0 -67
  907. data/lib/puppet/vendor/rgen/lib/rgen/util/file_cache_map.rb +0 -124
  908. data/lib/puppet/vendor/rgen/lib/rgen/util/file_change_detector.rb +0 -84
  909. data/lib/puppet/vendor/rgen/lib/rgen/util/method_delegation.rb +0 -114
  910. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator.rb +0 -68
  911. data/lib/puppet/vendor/rgen/lib/rgen/util/model_comparator_base.rb +0 -142
  912. data/lib/puppet/vendor/rgen/lib/rgen/util/model_dumper.rb +0 -29
  913. data/lib/puppet/vendor/rgen/lib/rgen/util/name_helper.rb +0 -42
  914. data/lib/puppet/vendor/rgen/lib/rgen/util/pattern_matcher.rb +0 -329
  915. data/lib/puppet/vendor/rgen/lib/transformers/ecore_to_uml13.rb +0 -79
  916. data/lib/puppet/vendor/rgen/lib/transformers/uml13_to_ecore.rb +0 -127
  917. data/lib/puppet/vendor/rgen/test/array_extensions_test.rb +0 -64
  918. data/lib/puppet/vendor/rgen/test/ea_instantiator_test.rb +0 -35
  919. data/lib/puppet/vendor/rgen/test/ea_serializer_test.rb +0 -23
  920. data/lib/puppet/vendor/rgen/test/ecore_self_test.rb +0 -54
  921. data/lib/puppet/vendor/rgen/test/environment_test.rb +0 -90
  922. data/lib/puppet/vendor/rgen/test/json_test.rb +0 -171
  923. data/lib/puppet/vendor/rgen/test/metamodel_builder_test.rb +0 -1482
  924. data/lib/puppet/vendor/rgen/test/metamodel_from_ecore_test.rb +0 -57
  925. data/lib/puppet/vendor/rgen/test/metamodel_order_test.rb +0 -131
  926. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/TestModel.rb +0 -70
  927. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel.ecore +0 -42
  928. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/houseMetamodel_from_ecore.rb +0 -44
  929. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test/using_builtin_types.ecore +0 -9
  930. data/lib/puppet/vendor/rgen/test/metamodel_roundtrip_test.rb +0 -98
  931. data/lib/puppet/vendor/rgen/test/method_delegation_test.rb +0 -178
  932. data/lib/puppet/vendor/rgen/test/model_builder/builder_context_test.rb +0 -59
  933. data/lib/puppet/vendor/rgen/test/model_builder/builder_test.rb +0 -242
  934. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original.rb +0 -163
  935. data/lib/puppet/vendor/rgen/test/model_builder/ecore_original_regenerated.rb +0 -163
  936. data/lib/puppet/vendor/rgen/test/model_builder/reference_resolver_test.rb +0 -156
  937. data/lib/puppet/vendor/rgen/test/model_builder/serializer_test.rb +0 -94
  938. data/lib/puppet/vendor/rgen/test/model_builder/statemachine_metamodel.rb +0 -42
  939. data/lib/puppet/vendor/rgen/test/model_builder/test_model/statemachine1.rb +0 -23
  940. data/lib/puppet/vendor/rgen/test/model_builder_test.rb +0 -6
  941. data/lib/puppet/vendor/rgen/test/model_fragment_test.rb +0 -30
  942. data/lib/puppet/vendor/rgen/test/output_handler_test.rb +0 -58
  943. data/lib/puppet/vendor/rgen/test/qualified_name_provider_test.rb +0 -48
  944. data/lib/puppet/vendor/rgen/test/qualified_name_resolver_test.rb +0 -102
  945. data/lib/puppet/vendor/rgen/test/reference_resolver_test.rb +0 -117
  946. data/lib/puppet/vendor/rgen/test/rgen_test.rb +0 -26
  947. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result1.txt +0 -29
  948. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result2.txt +0 -9
  949. data/lib/puppet/vendor/rgen/test/template_language_test/expected_result3.txt +0 -4
  950. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestDefaultIndent.out +0 -1
  951. data/lib/puppet/vendor/rgen/test/template_language_test/indentStringTestTabIndent.out +0 -1
  952. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/a.tpl +0 -12
  953. data/lib/puppet/vendor/rgen/test/template_language_test/templates/callback_indent_test/b.tpl +0 -5
  954. data/lib/puppet/vendor/rgen/test/template_language_test/templates/code/array.tpl +0 -11
  955. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/author.tpl +0 -7
  956. data/lib/puppet/vendor/rgen/test/template_language_test/templates/content/chapter.tpl +0 -5
  957. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/local.tpl +0 -8
  958. data/lib/puppet/vendor/rgen/test/template_language_test/templates/define_local_test/test.tpl +0 -8
  959. data/lib/puppet/vendor/rgen/test/template_language_test/templates/evaluate_test/test.tpl +0 -7
  960. data/lib/puppet/vendor/rgen/test/template_language_test/templates/indent_string_test.tpl +0 -12
  961. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/c/cmod.tpl +0 -1
  962. data/lib/puppet/vendor/rgen/test/template_language_test/templates/index/chapter.tpl +0 -3
  963. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_backslash_r_test.tpl +0 -5
  964. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/no_indent.tpl +0 -3
  965. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/sub1/no_indent.tpl +0 -3
  966. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test.tpl +0 -24
  967. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test2.tpl +0 -13
  968. data/lib/puppet/vendor/rgen/test/template_language_test/templates/no_indent_test/test3.tpl +0 -10
  969. data/lib/puppet/vendor/rgen/test/template_language_test/templates/null_context_test.tpl +0 -17
  970. data/lib/puppet/vendor/rgen/test/template_language_test/templates/root.tpl +0 -31
  971. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1/sub1.tpl +0 -3
  972. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/sub1.tpl +0 -9
  973. data/lib/puppet/vendor/rgen/test/template_language_test/templates/template_resolution_test/test.tpl +0 -4
  974. data/lib/puppet/vendor/rgen/test/template_language_test/testout.txt +0 -29
  975. data/lib/puppet/vendor/rgen/test/template_language_test.rb +0 -163
  976. data/lib/puppet/vendor/rgen/test/testmodel/class_model_checker.rb +0 -119
  977. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.eap +0 -0
  978. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel.xml +0 -1029
  979. data/lib/puppet/vendor/rgen/test/testmodel/ea_testmodel_partial.xml +0 -317
  980. data/lib/puppet/vendor/rgen/test/testmodel/ecore_model_checker.rb +0 -101
  981. data/lib/puppet/vendor/rgen/test/testmodel/manual_testmodel.xml +0 -22
  982. data/lib/puppet/vendor/rgen/test/testmodel/object_model_checker.rb +0 -67
  983. data/lib/puppet/vendor/rgen/test/transformer_test.rb +0 -254
  984. data/lib/puppet/vendor/rgen/test/util/file_cache_map_test.rb +0 -99
  985. data/lib/puppet/vendor/rgen/test/util/pattern_matcher_test.rb +0 -97
  986. data/lib/puppet/vendor/rgen/test/util_test.rb +0 -5
  987. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_ecore_model_checker.rb +0 -94
  988. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_ecore_instantiator.rb +0 -53
  989. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_metamodel.rb +0 -49
  990. data/lib/puppet/vendor/rgen/test/xml_instantiator_test/simple_xmi_to_ecore.rb +0 -75
  991. data/lib/puppet/vendor/rgen/test/xml_instantiator_test.rb +0 -160
  992. data/lib/puppet/vendor/rgen_patch.rb +0 -132
  993. data/lib/semver.rb +0 -146
  994. data/man/man8/extlookup2hiera.8 +0 -10
  995. data/man/man8/puppet-file.8 +0 -189
  996. data/man/man8/puppet-resource_type.8 +0 -188
  997. data/spec/fixtures/unit/data_providers/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
  998. data/spec/fixtures/unit/data_providers/environments/production/modules/xyz/lib/puppet/bindings/xyz/default.rb +0 -9
  999. data/spec/fixtures/unit/data_providers/environments/sample/environment.conf +0 -2
  1000. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +0 -5
  1001. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +0 -9
  1002. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +0 -23
  1003. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +0 -5
  1004. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +0 -9
  1005. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet/bindings/dataprovider/default.rb +0 -54
  1006. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +0 -33
  1007. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_module_data.rb +0 -33
  1008. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +0 -5
  1009. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -9
  1010. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -9
  1011. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -9
  1012. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -10
  1013. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -23
  1014. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/manifests/init.pp +0 -3
  1015. data/spec/fixtures/unit/functions/lookup_fixture/environments/production/modules/metawcp/metadata.json +0 -9
  1016. data/spec/unit/application/inspect_spec.rb +0 -305
  1017. data/spec/unit/data_providers/custom_data_provider_spec.rb +0 -50
  1018. data/spec/unit/face/file_spec.rb +0 -14
  1019. data/spec/unit/indirector/catalog/static_compiler_spec.rb +0 -255
  1020. data/spec/unit/indirector/resource_type/parser_spec.rb +0 -259
  1021. data/spec/unit/indirector/resource_type/rest_spec.rb +0 -14
  1022. data/spec/unit/pops/binder/binder_spec.rb +0 -43
  1023. data/spec/unit/pops/binder/bindings_checker_spec.rb +0 -155
  1024. data/spec/unit/pops/binder/bindings_composer_spec.rb +0 -64
  1025. data/spec/unit/pops/binder/bindings_validator_factory_spec.rb +0 -18
  1026. data/spec/unit/pops/binder/config/binder_config_spec.rb +0 -42
  1027. data/spec/unit/pops/binder/injector_spec.rb +0 -768
  1028. data/spec/unit/pops/parser/rgen_sanitycheck_spec.rb +0 -23
  1029. data/spec/unit/pops/serialization/rgen_spec.rb +0 -88
  1030. data/spec/unit/semver_spec.rb +0 -546
  1031. /data/lib/puppet/vendor/semantic_puppet/{lib/semantic_puppet/locales → locales}/config.yaml +0 -0
@@ -48,9 +48,9 @@ describe 'the Puppet::Pops::Types::TypeAcceptor' do
48
48
  POptionalType
49
49
  ].each do |tc|
50
50
  it "should get a visit from the contained type of an #{tc.class.name} that accepts it" do
51
- t = tc.new(PDataType::DEFAULT)
51
+ t = tc.new(PStringType::DEFAULT)
52
52
  t.accept(acceptor, nil)
53
- expect(acceptor.visitors).to include(t, PDataType::DEFAULT)
53
+ expect(acceptor.visitors).to include(t, PStringType::DEFAULT)
54
54
  end
55
55
  end
56
56
 
@@ -43,7 +43,7 @@ describe 'The type calculator' do
43
43
  end
44
44
 
45
45
  def type_alias_t(name, type_string)
46
- type_expr = Parser::EvaluatingParser.new.parse_string(type_string).current
46
+ type_expr = Parser::EvaluatingParser.new.parse_string(type_string)
47
47
  TypeFactory.type_alias(name, type_expr)
48
48
  end
49
49
 
@@ -91,7 +91,7 @@ describe 'The type calculator' do
91
91
  TypeFactory.struct(type_hash)
92
92
  end
93
93
 
94
- def object_t
94
+ def any_t
95
95
  TypeFactory.any
96
96
  end
97
97
 
@@ -116,6 +116,14 @@ describe 'The type calculator' do
116
116
  PUnitType::DEFAULT
117
117
  end
118
118
 
119
+ def runtime_t(t, c)
120
+ TypeFactory.runtime(t, c)
121
+ end
122
+
123
+ def object_t(hash)
124
+ TypeFactory.object(hash)
125
+ end
126
+
119
127
  def types
120
128
  Types
121
129
  end
@@ -234,8 +242,8 @@ describe 'The type calculator' do
234
242
  t = calculator.infer_set(v)
235
243
  expect(t.class).to eq(PSemVerType)
236
244
  expect(t.ranges.size).to eq(1)
237
- expect(t.ranges[0].min).to eq(v)
238
- expect(t.ranges[0].max).to eq(v)
245
+ expect(t.ranges[0].begin).to eq(v)
246
+ expect(t.ranges[0].end).to eq(v)
239
247
  end
240
248
  end
241
249
 
@@ -268,10 +276,48 @@ describe 'The type calculator' do
268
276
  end
269
277
 
270
278
  context 'array' do
279
+ let(:derived) do
280
+ Class.new(Array).new([1,2])
281
+ end
282
+
283
+ let(:derived_object) do
284
+ Class.new(Array) do
285
+ include PuppetObject
286
+
287
+ def self._pcore_type
288
+ @type ||= TypeFactory.object('name' => 'DerivedObjectArray')
289
+ end
290
+ end.new([1,2])
291
+ end
292
+
271
293
  it 'translates to PArrayType' do
272
294
  expect(calculator.infer([1,2]).class).to eq(PArrayType)
273
295
  end
274
296
 
297
+ it 'translates derived Array to PRuntimeType' do
298
+ expect(calculator.infer(derived).class).to eq(PRuntimeType)
299
+ end
300
+
301
+ it 'translates derived Puppet Object Array to PObjectType' do
302
+ expect(calculator.infer(derived_object).class).to eq(PObjectType)
303
+ end
304
+
305
+ it 'Instance of derived Array class is not instance of Array type' do
306
+ expect(PArrayType::DEFAULT).not_to be_instance(derived)
307
+ end
308
+
309
+ it 'Instance of derived Array class is instance of Runtime type' do
310
+ expect(runtime_t('ruby', nil)).to be_instance(derived)
311
+ end
312
+
313
+ it 'Instance of derived Puppet Object Array class is not instance of Array type' do
314
+ expect(PArrayType::DEFAULT).not_to be_instance(derived_object)
315
+ end
316
+
317
+ it 'Instance of derived Puppet Object Array class is instance of Object type' do
318
+ expect(object_t('name' => 'DerivedObjectArray')).to be_instance(derived_object)
319
+ end
320
+
275
321
  it 'with fixnum values translates to PArrayType[PIntegerType]' do
276
322
  expect(calculator.infer([1,2]).element_type.class).to eq(PIntegerType)
277
323
  end
@@ -293,23 +339,23 @@ describe 'The type calculator' do
293
339
  expect(t.values).to eq(['a', 'b', 'c'])
294
340
  end
295
341
 
296
- it 'with fixnum and float values translates to PArrayType[PNumericType]' do
342
+ it 'with integer and float values translates to PArrayType[PNumericType]' do
297
343
  expect(calculator.infer([1,2.0]).element_type.class).to eq(PNumericType)
298
344
  end
299
345
 
300
- it 'with fixnum and string values translates to PArrayType[PScalarType]' do
301
- expect(calculator.infer([1,'two']).element_type.class).to eq(PScalarType)
346
+ it 'with integer and string values translates to PArrayType[PScalarDataType]' do
347
+ expect(calculator.infer([1,'two']).element_type.class).to eq(PScalarDataType)
302
348
  end
303
349
 
304
- it 'with float and string values translates to PArrayType[PScalarType]' do
305
- expect(calculator.infer([1.0,'two']).element_type.class).to eq(PScalarType)
350
+ it 'with float and string values translates to PArrayType[PScalarDataType]' do
351
+ expect(calculator.infer([1.0,'two']).element_type.class).to eq(PScalarDataType)
306
352
  end
307
353
 
308
- it 'with fixnum, float, and string values translates to PArrayType[PScalarType]' do
309
- expect(calculator.infer([1, 2.0,'two']).element_type.class).to eq(PScalarType)
354
+ it 'with integer, float, and string values translates to PArrayType[PScalarDataType]' do
355
+ expect(calculator.infer([1, 2.0,'two']).element_type.class).to eq(PScalarDataType)
310
356
  end
311
357
 
312
- it 'with fixnum and regexp values translates to PArrayType[PScalarType]' do
358
+ it 'with integer and regexp values translates to PArrayType[PScalarType]' do
313
359
  expect(calculator.infer([1, /two/]).element_type.class).to eq(PScalarType)
314
360
  end
315
361
 
@@ -321,10 +367,26 @@ describe 'The type calculator' do
321
367
  expect(calculator.infer(['one', :two]).element_type.class).to eq(PAnyType)
322
368
  end
323
369
 
324
- it 'with fixnum and nil values translates to PArrayType[PIntegerType]' do
370
+ it 'with integer and nil values translates to PArrayType[PIntegerType]' do
325
371
  expect(calculator.infer([1, nil]).element_type.class).to eq(PIntegerType)
326
372
  end
327
373
 
374
+ it 'with integer value, and array of string values, translates to Array[Data]' do
375
+ expect(calculator.infer([1, ['two']]).element_type.name).to eq('Data')
376
+ end
377
+
378
+ it 'with integer value, and hash of string => string values, translates to Array[Data]' do
379
+ expect(calculator.infer([1, {'two' => 'three'} ]).element_type.name).to eq('Data')
380
+ end
381
+
382
+ it 'with integer value, and hash of integer => string values, translates to Array[RichData]' do
383
+ expect(calculator.infer([1, {2 => 'three'} ]).element_type.name).to eq('RichData')
384
+ end
385
+
386
+ it 'with integer, regexp, and binary values translates to Array[RichData]' do
387
+ expect(calculator.infer([1, /two/, PBinaryType::Binary.from_string('three')]).element_type.name).to eq('RichData')
388
+ end
389
+
328
390
  it 'with arrays of string values translates to PArrayType[PArrayType[PStringType]]' do
329
391
  et = calculator.infer([['first', 'array'], ['second','array']])
330
392
  expect(et.class).to eq(PArrayType)
@@ -334,13 +396,13 @@ describe 'The type calculator' do
334
396
  expect(et.class).to eq(PEnumType)
335
397
  end
336
398
 
337
- it 'with array of string values and array of fixnums translates to PArrayType[PArrayType[PScalarType]]' do
399
+ it 'with array of string values and array of fixnums translates to PArrayType[PArrayType[PScalarDataType]]' do
338
400
  et = calculator.infer([['first', 'array'], [1,2]])
339
401
  expect(et.class).to eq(PArrayType)
340
402
  et = et.element_type
341
403
  expect(et.class).to eq(PArrayType)
342
404
  et = et.element_type
343
- expect(et.class).to eq(PScalarType)
405
+ expect(et.class).to eq(PScalarDataType)
344
406
  end
345
407
 
346
408
  it 'with hashes of string values translates to PArrayType[PHashType[PEnumType]]' do
@@ -352,21 +414,59 @@ describe 'The type calculator' do
352
414
  expect(et.class).to eq(PEnumType)
353
415
  end
354
416
 
355
- it 'with hash of string values and hash of fixnums translates to PArrayType[PHashType[PScalarType]]' do
417
+ it 'with hash of string values and hash of fixnums translates to PArrayType[PHashType[PScalarDataType]]' do
356
418
  et = calculator.infer([{:first => 'first', :second => 'second' }, {:first => 1, :second => 2 }])
357
419
  expect(et.class).to eq(PArrayType)
358
420
  et = et.element_type
359
421
  expect(et.class).to eq(PHashType)
360
422
  et = et.value_type
361
- expect(et.class).to eq(PScalarType)
423
+ expect(et.class).to eq(PScalarDataType)
362
424
  end
363
425
  end
364
426
 
365
427
  context 'hash' do
428
+ let(:derived) do
429
+ Class.new(Hash)[:first => 1, :second => 2]
430
+ end
431
+
432
+ let(:derived_object) do
433
+ Class.new(Hash) do
434
+ include PuppetObject
435
+
436
+ def self._pcore_type
437
+ @type ||= TypeFactory.object('name' => 'DerivedObjectHash')
438
+ end
439
+ end[:first => 1, :second => 2]
440
+ end
441
+
366
442
  it 'translates to PHashType' do
367
443
  expect(calculator.infer({:first => 1, :second => 2}).class).to eq(PHashType)
368
444
  end
369
445
 
446
+ it 'translates derived Hash to PRuntimeType' do
447
+ expect(calculator.infer(derived).class).to eq(PRuntimeType)
448
+ end
449
+
450
+ it 'translates derived Puppet Object Hash to PObjectType' do
451
+ expect(calculator.infer(derived_object).class).to eq(PObjectType)
452
+ end
453
+
454
+ it 'Instance of derived Hash class is not instance of Hash type' do
455
+ expect(PHashType::DEFAULT).not_to be_instance(derived)
456
+ end
457
+
458
+ it 'Instance of derived Hash class is instance of Runtime type' do
459
+ expect(runtime_t('ruby', nil)).to be_instance(derived)
460
+ end
461
+
462
+ it 'Instance of derived Puppet Object Hash class is not instance of Hash type' do
463
+ expect(PHashType::DEFAULT).not_to be_instance(derived_object)
464
+ end
465
+
466
+ it 'Instance of derived Puppet Object Hash class is instance of Object type' do
467
+ expect(object_t('name' => 'DerivedObjectHash')).to be_instance(derived_object)
468
+ end
469
+
370
470
  it 'with symbolic keys translates to PHashType[PRuntimeType[ruby, Symbol], value]' do
371
471
  k = calculator.infer({:first => 1, :second => 2}).key_type
372
472
  expect(k.class).to eq(PRuntimeType)
@@ -551,6 +651,38 @@ describe 'The type calculator' do
551
651
  expect(Set.new(common_t.types)).to eq(Set.new([a_t1, a_t2]))
552
652
  end
553
653
 
654
+ context 'commonality of scalar data types' do
655
+ it 'Numeric and String == ScalarData' do
656
+ expect(calculator.common_type(PNumericType::DEFAULT, PStringType::DEFAULT).class).to eq(PScalarDataType)
657
+ end
658
+
659
+ it 'Numeric and Boolean == ScalarData' do
660
+ expect(calculator.common_type(PNumericType::DEFAULT, PBooleanType::DEFAULT).class).to eq(PScalarDataType)
661
+ end
662
+
663
+ it 'String and Boolean == ScalarData' do
664
+ expect(calculator.common_type(PStringType::DEFAULT, PBooleanType::DEFAULT).class).to eq(PScalarDataType)
665
+ end
666
+ end
667
+
668
+ context 'commonality of scalar types' do
669
+ it 'Regexp and Integer == Scalar' do
670
+ expect(calculator.common_type(PRegexpType::DEFAULT, PScalarDataType::DEFAULT).class).to eq(PScalarType)
671
+ end
672
+
673
+ it 'Regexp and SemVer == ScalarData' do
674
+ expect(calculator.common_type(PRegexpType::DEFAULT, PSemVerType::DEFAULT).class).to eq(PScalarType)
675
+ end
676
+
677
+ it 'Timestamp and Timespan == ScalarData' do
678
+ expect(calculator.common_type(PTimestampType::DEFAULT, PTimespanType::DEFAULT).class).to eq(PScalarType)
679
+ end
680
+
681
+ it 'Timestamp and Boolean == ScalarData' do
682
+ expect(calculator.common_type(PTimestampType::DEFAULT, PBooleanType::DEFAULT).class).to eq(PScalarType)
683
+ end
684
+ end
685
+
554
686
  context 'of callables' do
555
687
  it 'incompatible instances => generic callable' do
556
688
  t1 = callable_t(String)
@@ -728,28 +860,21 @@ describe 'The type calculator' do
728
860
  end
729
861
 
730
862
  context 'for Data, such that' do
731
- it 'all scalars + array and hash are assignable to Data' do
732
- t = PDataType::DEFAULT
733
- data_compatible_types.each { |t2|
734
- expect(type_from_class(t2)).to be_assignable_to(t)
735
- }
736
- end
737
-
738
- it 'a scalar, hash, or array is assignable to Data' do
739
- t = PDataType::DEFAULT
740
- data_compatible_types.each { |t2| expect(type_from_class(t2)).to be_assignable_to(t) }
863
+ let(:data) { TypeFactory.data }
864
+ data_compatible_types.map { |t2| type_from_class(t2) }.each do |tc|
865
+ it "#{tc.name} is assignable to Data" do
866
+ expect(tc).to be_assignable_to(data)
867
+ end
741
868
  end
742
869
 
743
870
  it 'Data is not assignable to any of its subtypes' do
744
- t = PDataType::DEFAULT
745
- types_to_test = data_compatible_types- [PDataType]
746
- types_to_test.each {|t2| expect(t).not_to be_assignable_to(type_from_class(t2)) }
871
+ types_to_test = data_compatible_types
872
+ types_to_test.each {|t2| expect(data).not_to be_assignable_to(type_from_class(t2)) }
747
873
  end
748
874
 
749
875
  it 'Data is not assignable to any disjunct type' do
750
- tested_types = all_types - [PAnyType, POptionalType, PDataType] - scalar_types
751
- t = PDataType::DEFAULT
752
- tested_types.each {|t2| expect(t).not_to be_assignable_to(t2::DEFAULT) }
876
+ tested_types = all_types - [PAnyType, POptionalType] - scalar_types
877
+ tested_types.each {|t2| expect(data).not_to be_assignable_to(t2::DEFAULT) }
753
878
  end
754
879
  end
755
880
 
@@ -784,7 +909,7 @@ describe 'The type calculator' do
784
909
  end
785
910
 
786
911
  it 'Scalar is not assignable to any disjunct type' do
787
- tested_types = all_types - [PAnyType, POptionalType, PNotUndefType, PDataType] - scalar_types
912
+ tested_types = all_types - [PAnyType, POptionalType, PNotUndefType] - scalar_types
788
913
  t = PScalarType::DEFAULT
789
914
  tested_types.each {|t2| expect(t).not_to be_assignable_to(t2::DEFAULT) }
790
915
  end
@@ -807,8 +932,8 @@ describe 'The type calculator' do
807
932
  PAnyType,
808
933
  POptionalType,
809
934
  PNotUndefType,
810
- PDataType,
811
935
  PScalarType,
936
+ PScalarDataType,
812
937
  ] - numeric_types
813
938
  t = PNumericType::DEFAULT
814
939
  tested_types.each {|t2| expect(t).not_to be_assignable_to(t2::DEFAULT) }
@@ -854,8 +979,7 @@ describe 'The type calculator' do
854
979
  PAnyType,
855
980
  POptionalType,
856
981
  PNotUndefType,
857
- PIterableType,
858
- PDataType] - collection_types
982
+ PIterableType] - collection_types
859
983
  t = PArrayType::DEFAULT
860
984
  tested_types.each {|t2| expect(t).not_to be_assignable_to(t2::DEFAULT) }
861
985
  end
@@ -893,8 +1017,7 @@ describe 'The type calculator' do
893
1017
  PAnyType,
894
1018
  POptionalType,
895
1019
  PNotUndefType,
896
- PIterableType,
897
- PDataType] - collection_types
1020
+ PIterableType] - collection_types
898
1021
  t = PHashType::DEFAULT
899
1022
  tested_types.each {|t2| expect(t).not_to be_assignable_to(t2::DEFAULT) }
900
1023
  end
@@ -965,8 +1088,7 @@ describe 'The type calculator' do
965
1088
  PAnyType,
966
1089
  POptionalType,
967
1090
  PNotUndefType,
968
- PIterableType,
969
- PDataType] - collection_types
1091
+ PIterableType] - collection_types
970
1092
  t = PTupleType::DEFAULT
971
1093
  tested_types.each {|t2| expect(t).not_to be_assignable_to(t2::DEFAULT) }
972
1094
  end
@@ -987,8 +1109,7 @@ describe 'The type calculator' do
987
1109
  PAnyType,
988
1110
  POptionalType,
989
1111
  PNotUndefType,
990
- PIterableType,
991
- PDataType] - collection_types
1112
+ PIterableType] - collection_types
992
1113
  t = PStructType::DEFAULT
993
1114
  tested_types.each {|t2| expect(t).not_to be_assignable_to(t2::DEFAULT) }
994
1115
  end
@@ -996,7 +1117,7 @@ describe 'The type calculator' do
996
1117
  it 'Default key optionality is controlled by value assignability to undef' do
997
1118
  t1 = struct_t({'member' => string_t})
998
1119
  expect(t1.elements[0].key_type).to eq(string_t('member'))
999
- t1 = struct_t({'member' => object_t})
1120
+ t1 = struct_t({'member' => any_t})
1000
1121
  expect(t1.elements[0].key_type).to eq(optional_t(string_t('member')))
1001
1122
  end
1002
1123
 
@@ -1017,7 +1138,7 @@ describe 'The type calculator' do
1017
1138
  end
1018
1139
 
1019
1140
  it 'Required members not optional even when value is' do
1020
- t1 = struct_t({not_undef_t('required_member') => object_t, not_undef_t('other_member') => string_t})
1141
+ t1 = struct_t({not_undef_t('required_member') => any_t, not_undef_t('other_member') => string_t})
1021
1142
  t2 = struct_t({not_undef_t('other_member') => string_t})
1022
1143
  expect(t2).not_to be_assignable_to(t1)
1023
1144
  end
@@ -1063,11 +1184,11 @@ describe 'The type calculator' do
1063
1184
  end
1064
1185
 
1065
1186
  it 'a callable with a return type Any is assignable to the default callable' do
1066
- expect(callable_t([], object_t)).to be_assignable_to(PCallableType::DEFAULT)
1187
+ expect(callable_t([], any_t)).to be_assignable_to(PCallableType::DEFAULT)
1067
1188
  end
1068
1189
 
1069
1190
  it 'a callable with a return type Any is equal to a callable with the same parameters and no return type' do
1070
- expect(callable_t([string_t], object_t)).to eql(callable_t(string_t))
1191
+ expect(callable_t([string_t], any_t)).to eql(callable_t(string_t))
1071
1192
  end
1072
1193
 
1073
1194
  it 'a callable with a return type different than Any is not equal to a callable with the same parameters and no return type' do
@@ -1095,8 +1216,8 @@ describe 'The type calculator' do
1095
1216
  String => PStringType::DEFAULT,
1096
1217
  Regexp => PRegexpType::DEFAULT,
1097
1218
  Regexp => PRegexpType::DEFAULT,
1098
- Array => TypeFactory.array_of_data,
1099
- Hash => TypeFactory.hash_of_data
1219
+ Array => TypeFactory.array_of_any,
1220
+ Hash => TypeFactory.hash_of_any
1100
1221
  }.each do |ruby_type, puppet_type |
1101
1222
  expect(ruby_type).to be_assignable_to(puppet_type)
1102
1223
  end
@@ -1606,7 +1727,6 @@ describe 'The type calculator' do
1606
1727
  types_to_test = all_types - [
1607
1728
  PAnyType,
1608
1729
  PUndefType,
1609
- PDataType,
1610
1730
  POptionalType,
1611
1731
  ]
1612
1732
 
@@ -1629,12 +1749,12 @@ describe 'The type calculator' do
1629
1749
  types_to_test.each {|t| expect(calculator.instance?(t::DEFAULT, :default)).to eq(false) }
1630
1750
  end
1631
1751
 
1632
- it 'should consider fixnum instanceof PIntegerType' do
1752
+ it 'should consider integer instanceof PIntegerType' do
1633
1753
  expect(calculator.instance?(PIntegerType::DEFAULT, 1)).to eq(true)
1634
1754
  end
1635
1755
 
1636
- it 'should consider fixnum instanceof Fixnum' do
1637
- expect(calculator.instance?(Fixnum, 1)).to eq(true)
1756
+ it 'should consider integer instanceof Integer' do
1757
+ expect(calculator.instance?(Integer, 1)).to eq(true)
1638
1758
  end
1639
1759
 
1640
1760
  it 'should consider integer in range' do
@@ -1760,7 +1880,7 @@ describe 'The type calculator' do
1760
1880
  end
1761
1881
 
1762
1882
  it 'should consider nil to be a valid element value' do
1763
- struct = struct_t({not_undef_t('a') => object_t, 'b'=>String})
1883
+ struct = struct_t({not_undef_t('a') => any_t, 'b'=>String})
1764
1884
  expect(calculator.instance?(struct, {'a'=>nil , 'b'=>'a'})).to eq(true)
1765
1885
  end
1766
1886
 
@@ -1820,11 +1940,11 @@ describe 'The type calculator' do
1820
1940
  it 'a Closure should be considered a Callable' do
1821
1941
  factory = Model::Factory
1822
1942
  params = [factory.PARAM('a')]
1823
- the_block = factory.LAMBDA(params,factory.literal(42), nil)
1943
+ the_block = factory.LAMBDA(params,factory.literal(42), nil).model
1824
1944
  the_closure = Evaluator::Closure::Dynamic.new(:fake_evaluator, the_block, :fake_scope)
1825
1945
  expect(calculator.instance?(all_callables_t, the_closure)).to be_truthy
1826
- expect(calculator.instance?(callable_t(object_t), the_closure)).to be_truthy
1827
- expect(calculator.instance?(callable_t(object_t, object_t), the_closure)).to be_falsey
1946
+ expect(calculator.instance?(callable_t(any_t), the_closure)).to be_truthy
1947
+ expect(calculator.instance?(callable_t(any_t, any_t), the_closure)).to be_falsey
1828
1948
  end
1829
1949
 
1830
1950
  it 'a Function instance should be considered a Callable' do
@@ -1885,10 +2005,16 @@ describe 'The type calculator' do
1885
2005
  end
1886
2006
 
1887
2007
  context 'when converting a ruby class' do
1888
- it 'should yield \'PIntegerType\' for Integer, Fixnum, and Bignum' do
1889
- [Integer,Fixnum,Bignum].each do |c|
1890
- expect(calculator.type(c).class).to eq(PIntegerType)
1891
- end
2008
+ it 'should yield \'PIntegerType\' for Fixnum' do
2009
+ expect(calculator.type(Fixnum).class).to eq(PIntegerType)
2010
+ end
2011
+
2012
+ it 'should yield \'PIntegerType\' for Bignum' do
2013
+ expect(calculator.type(Bignum).class).to eq(PIntegerType)
2014
+ end
2015
+
2016
+ it 'should yield \'PIntegerType\' for Integer' do
2017
+ expect(calculator.type(Integer).class).to eq(PIntegerType)
1892
2018
  end
1893
2019
 
1894
2020
  it 'should yield \'PFloatType\' for Float' do
@@ -1913,17 +2039,17 @@ describe 'The type calculator' do
1913
2039
  expect(calculator.type(Regexp).class).to eq(PRegexpType)
1914
2040
  end
1915
2041
 
1916
- it 'should yield \'PArrayType[PDataType]\' for Array' do
2042
+ it 'should yield \'PArrayType[PAnyType]\' for Array' do
1917
2043
  t = calculator.type(Array)
1918
2044
  expect(t.class).to eq(PArrayType)
1919
- expect(t.element_type.class).to eq(PDataType)
2045
+ expect(t.element_type.class).to eq(PAnyType)
1920
2046
  end
1921
2047
 
1922
- it 'should yield \'PHashType[PScalarType,PDataType]\' for Hash' do
2048
+ it 'should yield \'PHashType[PAnyType,PAnyType]\' for Hash' do
1923
2049
  t = calculator.type(Hash)
1924
2050
  expect(t.class).to eq(PHashType)
1925
- expect(t.key_type.class).to eq(PScalarType)
1926
- expect(t.value_type.class).to eq(PDataType)
2051
+ expect(t.key_type.class).to eq(PAnyType)
2052
+ expect(t.value_type.class).to eq(PAnyType)
1927
2053
  end
1928
2054
  end
1929
2055
 
@@ -1931,8 +2057,8 @@ describe 'The type calculator' do
1931
2057
  it 'should infer PType as the type of all other types' do
1932
2058
  ptype = PType
1933
2059
  expect(calculator.infer(PUndefType::DEFAULT ).is_a?(ptype)).to eq(true)
1934
- expect(calculator.infer(PDataType::DEFAULT ).is_a?(ptype)).to eq(true)
1935
2060
  expect(calculator.infer(PScalarType::DEFAULT ).is_a?(ptype)).to eq(true)
2061
+ expect(calculator.infer(PScalarDataType::DEFAULT).is_a?(ptype)).to eq(true)
1936
2062
  expect(calculator.infer(PStringType::DEFAULT ).is_a?(ptype)).to eq(true)
1937
2063
  expect(calculator.infer(PNumericType::DEFAULT ).is_a?(ptype)).to eq(true)
1938
2064
  expect(calculator.infer(PIntegerType::DEFAULT ).is_a?(ptype)).to eq(true)
@@ -1956,8 +2082,8 @@ describe 'The type calculator' do
1956
2082
 
1957
2083
  it 'should infer PType as the type of all other types' do
1958
2084
  expect(calculator.infer(PUndefType::DEFAULT ).to_s).to eq('Type[Undef]')
1959
- expect(calculator.infer(PDataType::DEFAULT ).to_s).to eq('Type[Data]')
1960
2085
  expect(calculator.infer(PScalarType::DEFAULT ).to_s).to eq('Type[Scalar]')
2086
+ expect(calculator.infer(PScalarDataType::DEFAULT).to_s).to eq('Type[ScalarData]')
1961
2087
  expect(calculator.infer(PStringType::DEFAULT ).to_s).to eq('Type[String]')
1962
2088
  expect(calculator.infer(PNumericType::DEFAULT ).to_s).to eq('Type[Numeric]')
1963
2089
  expect(calculator.infer(PIntegerType::DEFAULT ).to_s).to eq('Type[Integer]')
@@ -1965,8 +2091,8 @@ describe 'The type calculator' do
1965
2091
  expect(calculator.infer(PRegexpType::DEFAULT ).to_s).to eq('Type[Regexp]')
1966
2092
  expect(calculator.infer(PBooleanType::DEFAULT ).to_s).to eq('Type[Boolean]')
1967
2093
  expect(calculator.infer(PCollectionType::DEFAULT).to_s).to eq('Type[Collection]')
1968
- expect(calculator.infer(PArrayType::DEFAULT ).to_s).to eq('Type[Array[?]]')
1969
- expect(calculator.infer(PHashType::DEFAULT ).to_s).to eq('Type[Hash[?, ?]]')
2094
+ expect(calculator.infer(PArrayType::DEFAULT ).to_s).to eq('Type[Array]')
2095
+ expect(calculator.infer(PHashType::DEFAULT ).to_s).to eq('Type[Hash]')
1970
2096
  expect(calculator.infer(PIterableType::DEFAULT ).to_s).to eq('Type[Iterable]')
1971
2097
  expect(calculator.infer(PRuntimeType::DEFAULT ).to_s).to eq('Type[Runtime[?, ?]]')
1972
2098
  expect(calculator.infer(PHostClassType::DEFAULT ).to_s).to eq('Type[Class]')
@@ -1987,7 +2113,7 @@ describe 'The type calculator' do
1987
2113
  int_t = PIntegerType::DEFAULT
1988
2114
  string_t = PStringType::DEFAULT
1989
2115
  expect(calculator.infer([int_t]).to_s).to eq('Array[Type[Integer], 1, 1]')
1990
- expect(calculator.infer([int_t, string_t]).to_s).to eq('Array[Type[Scalar], 2, 2]')
2116
+ expect(calculator.infer([int_t, string_t]).to_s).to eq('Array[Type[ScalarData], 2, 2]')
1991
2117
  end
1992
2118
 
1993
2119
  it 'should infer PType as the type of ruby classes' do
@@ -2075,9 +2201,9 @@ describe 'The type calculator' do
2075
2201
  end
2076
2202
 
2077
2203
  it 'ensures that Struct key types are not generalized' do
2078
- generic = struct_t({'a' => object_t}).generalize
2204
+ generic = struct_t({'a' => any_t}).generalize
2079
2205
  expect(generic.to_s).to eq("Struct[{'a' => Any}]")
2080
- generic = struct_t({not_undef_t('a') => object_t}).generalize
2206
+ generic = struct_t({not_undef_t('a') => any_t}).generalize
2081
2207
  expect(generic.to_s).to eq("Struct[{NotUndef['a'] => Any}]")
2082
2208
  generic = struct_t({optional_t('a') => string_t}).generalize
2083
2209
  expect(generic.to_s).to eq("Struct[{Optional['a'] => String}]")
@@ -2090,7 +2216,7 @@ describe 'The type calculator' do
2090
2216
 
2091
2217
  it "does not reduce by combining types when using infer_set" do
2092
2218
  element_type = calculator.infer(['a','b',1,2]).element_type
2093
- expect(element_type.class).to eq(PScalarType)
2219
+ expect(element_type.class).to eq(PScalarDataType)
2094
2220
  inferred_type = calculator.infer_set(['a','b',1,2])
2095
2221
  expect(inferred_type.class).to eq(PTupleType)
2096
2222
  element_types = inferred_type.types
@@ -2153,50 +2279,50 @@ describe 'The type calculator' do
2153
2279
  context 'and given is more generic' do
2154
2280
  it 'with callable' do
2155
2281
  required = callable_t(string_t)
2156
- given = callable_t(object_t)
2282
+ given = callable_t(any_t)
2157
2283
  expect(calculator.callable?(required, given)).to eq(true)
2158
2284
  end
2159
2285
 
2160
2286
  it 'with args tuple' do
2161
2287
  required = callable_t(string_t)
2162
- given = tuple_t(object_t)
2288
+ given = tuple_t(any_t)
2163
2289
  expect(calculator.callable?(required, given)).to eq(false)
2164
2290
  end
2165
2291
 
2166
2292
  it 'with args tuple having a block' do
2167
2293
  required = callable_t(string_t, callable_t(string_t))
2168
- given = tuple_t(string_t, callable_t(object_t))
2294
+ given = tuple_t(string_t, callable_t(any_t))
2169
2295
  expect(calculator.callable?(required, given)).to eq(true)
2170
2296
  end
2171
2297
 
2172
2298
  it 'with args tuple having a block with captures rest' do
2173
2299
  required = callable_t(string_t, callable_t(string_t))
2174
- given = tuple_t(string_t, callable_t(object_t, 0, :default))
2300
+ given = tuple_t(string_t, callable_t(any_t, 0, :default))
2175
2301
  expect(calculator.callable?(required, given)).to eq(true)
2176
2302
  end
2177
2303
  end
2178
2304
 
2179
2305
  context 'and given is more specific' do
2180
2306
  it 'with callable' do
2181
- required = callable_t(object_t)
2307
+ required = callable_t(any_t)
2182
2308
  given = callable_t(string_t)
2183
2309
  expect(calculator.callable?(required, given)).to eq(false)
2184
2310
  end
2185
2311
 
2186
2312
  it 'with args tuple' do
2187
- required = callable_t(object_t)
2313
+ required = callable_t(any_t)
2188
2314
  given = tuple_t(string_t)
2189
2315
  expect(calculator.callable?(required, given)).to eq(true)
2190
2316
  end
2191
2317
 
2192
2318
  it 'with args tuple having a block' do
2193
- required = callable_t(string_t, callable_t(object_t))
2319
+ required = callable_t(string_t, callable_t(any_t))
2194
2320
  given = tuple_t(string_t, callable_t(string_t))
2195
2321
  expect(calculator.callable?(required, given)).to eq(false)
2196
2322
  end
2197
2323
 
2198
2324
  it 'with args tuple having a block with captures rest' do
2199
- required = callable_t(string_t, callable_t(object_t))
2325
+ required = callable_t(string_t, callable_t(any_t))
2200
2326
  given = tuple_t(string_t, callable_t(string_t, 0, :default))
2201
2327
  expect(calculator.callable?(required, given)).to eq(false)
2202
2328
  end
@@ -2204,18 +2330,16 @@ describe 'The type calculator' do
2204
2330
  end
2205
2331
 
2206
2332
  matcher :be_assignable_to do |type|
2207
- calc = TypeCalculator.singleton
2208
-
2209
2333
  match do |actual|
2210
- calc.assignable?(type, actual)
2334
+ type.is_a?(PAnyType) && type.assignable?(actual)
2211
2335
  end
2212
2336
 
2213
2337
  failure_message do |actual|
2214
- "#{calc.string(actual)} should be assignable to #{calc.string(type)}"
2338
+ "#{TypeFormatter.string(actual)} should be assignable to #{TypeFormatter.string(type)}"
2215
2339
  end
2216
2340
 
2217
2341
  failure_message_when_negated do |actual|
2218
- "#{calc.string(actual)} is assignable to #{calc.string(type)} when it should not"
2342
+ "#{TypeFormatter.string(actual)} is assignable to #{TypeFormatter.string(type)} when it should not"
2219
2343
  end
2220
2344
  end
2221
2345
  end