openvox 7.37.1 → 8.19.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 (1086) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +7 -3
  3. data/Gemfile +17 -12
  4. data/README.md +25 -30
  5. data/Rakefile +43 -33
  6. data/bin/puppet +1 -0
  7. data/examples/hiera/README.md +68 -57
  8. data/examples/hiera/data/common.yaml +12 -0
  9. data/examples/hiera/data/dc1.yaml +6 -0
  10. data/examples/hiera/hiera.yaml +15 -0
  11. data/examples/hiera/modules/ntp/data/common.yaml +4 -0
  12. data/examples/hiera/modules/ntp/hiera.yaml +9 -0
  13. data/examples/hiera/modules/ntp/manifests/config.pp +16 -4
  14. data/examples/hiera/modules/ntp/templates/ntp.conf.epp +3 -0
  15. data/examples/hiera/modules/users/manifests/common.pp +7 -2
  16. data/examples/hiera/modules/users/manifests/dc1.pp +7 -2
  17. data/examples/hiera/site.pp +1 -1
  18. data/ext/build_defaults.yaml +1 -1
  19. data/ext/windows/service/daemon.rb +54 -60
  20. data/install.rb +21 -92
  21. data/lib/hiera/puppet_function.rb +8 -6
  22. data/lib/hiera/scope.rb +15 -13
  23. data/lib/hiera_puppet.rb +4 -6
  24. data/lib/puppet/agent/disabler.rb +5 -3
  25. data/lib/puppet/agent/locker.rb +2 -2
  26. data/lib/puppet/agent.rb +6 -4
  27. data/lib/puppet/application/agent.rb +305 -301
  28. data/lib/puppet/application/apply.rb +124 -117
  29. data/lib/puppet/application/catalog.rb +2 -0
  30. data/lib/puppet/application/config.rb +2 -0
  31. data/lib/puppet/application/describe.rb +50 -48
  32. data/lib/puppet/application/device.rb +224 -223
  33. data/lib/puppet/application/doc.rb +57 -58
  34. data/lib/puppet/application/epp.rb +2 -0
  35. data/lib/puppet/application/face_base.rb +18 -17
  36. data/lib/puppet/application/facts.rb +2 -0
  37. data/lib/puppet/application/filebucket.rb +174 -168
  38. data/lib/puppet/application/generate.rb +3 -1
  39. data/lib/puppet/application/help.rb +2 -0
  40. data/lib/puppet/application/indirection_base.rb +2 -0
  41. data/lib/puppet/application/lookup.rb +181 -181
  42. data/lib/puppet/application/module.rb +2 -0
  43. data/lib/puppet/application/node.rb +2 -0
  44. data/lib/puppet/application/parser.rb +2 -0
  45. data/lib/puppet/application/plugin.rb +2 -0
  46. data/lib/puppet/application/report.rb +2 -0
  47. data/lib/puppet/application/resource.rb +106 -96
  48. data/lib/puppet/application/script.rb +76 -74
  49. data/lib/puppet/application/ssl.rb +100 -92
  50. data/lib/puppet/application.rb +32 -32
  51. data/lib/puppet/application_support.rb +3 -2
  52. data/lib/puppet/coercion.rb +5 -3
  53. data/lib/puppet/compilable_resource_type.rb +4 -2
  54. data/lib/puppet/concurrent/lock.rb +2 -3
  55. data/lib/puppet/concurrent/synchronized.rb +2 -2
  56. data/lib/puppet/concurrent/thread_local_singleton.rb +1 -0
  57. data/lib/puppet/concurrent.rb +2 -0
  58. data/lib/puppet/configurer/downloader.rb +11 -5
  59. data/lib/puppet/configurer/fact_handler.rb +17 -16
  60. data/lib/puppet/configurer/plugin_handler.rb +2 -0
  61. data/lib/puppet/configurer.rb +40 -36
  62. data/lib/puppet/confine/any.rb +3 -1
  63. data/lib/puppet/confine/boolean.rb +3 -1
  64. data/lib/puppet/confine/exists.rb +3 -1
  65. data/lib/puppet/confine/false.rb +3 -1
  66. data/lib/puppet/confine/feature.rb +3 -2
  67. data/lib/puppet/confine/true.rb +3 -1
  68. data/lib/puppet/confine/variable.rb +4 -2
  69. data/lib/puppet/confine.rb +5 -2
  70. data/lib/puppet/confine_collection.rb +6 -3
  71. data/lib/puppet/confiner.rb +5 -3
  72. data/lib/puppet/context/trusted_information.rb +12 -10
  73. data/lib/puppet/context.rb +2 -0
  74. data/lib/puppet/daemon.rb +26 -10
  75. data/lib/puppet/data_binding.rb +3 -1
  76. data/lib/puppet/datatypes/error.rb +3 -1
  77. data/lib/puppet/datatypes/impl/error.rb +2 -0
  78. data/lib/puppet/datatypes.rb +12 -7
  79. data/lib/puppet/defaults.rb +164 -125
  80. data/lib/puppet/environments.rb +13 -15
  81. data/lib/puppet/error.rb +19 -15
  82. data/lib/puppet/etc.rb +10 -5
  83. data/lib/puppet/external/dot.rb +65 -75
  84. data/lib/puppet/face/catalog/select.rb +4 -2
  85. data/lib/puppet/face/catalog.rb +7 -5
  86. data/lib/puppet/face/config.rb +30 -31
  87. data/lib/puppet/face/epp.rb +25 -26
  88. data/lib/puppet/face/facts.rb +8 -6
  89. data/lib/puppet/face/generate.rb +5 -2
  90. data/lib/puppet/face/help/action.erb +0 -1
  91. data/lib/puppet/face/help/face.erb +0 -1
  92. data/lib/puppet/face/help/global.erb +1 -1
  93. data/lib/puppet/face/help.rb +80 -62
  94. data/lib/puppet/face/module/changes.rb +4 -3
  95. data/lib/puppet/face/module/install.rb +7 -4
  96. data/lib/puppet/face/module/list.rb +52 -53
  97. data/lib/puppet/face/module/uninstall.rb +2 -0
  98. data/lib/puppet/face/module/upgrade.rb +5 -3
  99. data/lib/puppet/face/module.rb +3 -1
  100. data/lib/puppet/face/node/clean.rb +4 -2
  101. data/lib/puppet/face/node.rb +5 -3
  102. data/lib/puppet/face/parser.rb +18 -19
  103. data/lib/puppet/face/plugin.rb +10 -8
  104. data/lib/puppet/face/report.rb +10 -10
  105. data/lib/puppet/face/resource.rb +2 -0
  106. data/lib/puppet/face.rb +2 -0
  107. data/lib/puppet/facter_impl.rb +1 -1
  108. data/lib/puppet/feature/base.rb +13 -13
  109. data/lib/puppet/feature/bolt.rb +2 -0
  110. data/lib/puppet/feature/cfpropertylist.rb +2 -0
  111. data/lib/puppet/feature/eventlog.rb +2 -0
  112. data/lib/puppet/feature/hiera_eyaml.rb +2 -0
  113. data/lib/puppet/feature/hocon.rb +2 -0
  114. data/lib/puppet/feature/libuser.rb +5 -3
  115. data/lib/puppet/feature/msgpack.rb +2 -0
  116. data/lib/puppet/feature/pe_license.rb +4 -2
  117. data/lib/puppet/feature/pson.rb +6 -0
  118. data/lib/puppet/feature/selinux.rb +2 -0
  119. data/lib/puppet/feature/ssh.rb +3 -1
  120. data/lib/puppet/feature/telnet.rb +3 -7
  121. data/lib/puppet/feature/zlib.rb +3 -1
  122. data/lib/puppet/ffi/posix/constants.rb +3 -1
  123. data/lib/puppet/ffi/posix/functions.rb +2 -1
  124. data/lib/puppet/ffi/posix.rb +2 -0
  125. data/lib/puppet/ffi/windows/api_types.rb +3 -1
  126. data/lib/puppet/ffi/windows/constants.rb +80 -78
  127. data/lib/puppet/ffi/windows/functions.rb +76 -75
  128. data/lib/puppet/ffi/windows/structs.rb +6 -5
  129. data/lib/puppet/ffi/windows.rb +2 -0
  130. data/lib/puppet/file_bucket/dipper.rb +20 -11
  131. data/lib/puppet/file_bucket/file.rb +8 -6
  132. data/lib/puppet/file_bucket.rb +2 -0
  133. data/lib/puppet/file_serving/base.rb +17 -9
  134. data/lib/puppet/file_serving/configuration/parser.rb +13 -10
  135. data/lib/puppet/file_serving/configuration.rb +10 -7
  136. data/lib/puppet/file_serving/content.rb +2 -0
  137. data/lib/puppet/file_serving/fileset.rb +23 -19
  138. data/lib/puppet/file_serving/http_metadata.rb +3 -4
  139. data/lib/puppet/file_serving/metadata.rb +26 -23
  140. data/lib/puppet/file_serving/mount/file.rb +15 -11
  141. data/lib/puppet/file_serving/mount/locales.rb +5 -5
  142. data/lib/puppet/file_serving/mount/modules.rb +3 -0
  143. data/lib/puppet/file_serving/mount/pluginfacts.rb +5 -5
  144. data/lib/puppet/file_serving/mount/plugins.rb +5 -5
  145. data/lib/puppet/file_serving/mount/scripts.rb +3 -0
  146. data/lib/puppet/file_serving/mount/tasks.rb +3 -0
  147. data/lib/puppet/file_serving/mount.rb +4 -1
  148. data/lib/puppet/file_serving/terminus_helper.rb +2 -0
  149. data/lib/puppet/file_serving/terminus_selector.rb +3 -1
  150. data/lib/puppet/file_serving.rb +2 -0
  151. data/lib/puppet/file_system/file_impl.rb +9 -8
  152. data/lib/puppet/file_system/jruby.rb +2 -0
  153. data/lib/puppet/file_system/memory_file.rb +3 -0
  154. data/lib/puppet/file_system/memory_impl.rb +5 -1
  155. data/lib/puppet/file_system/path_pattern.rb +4 -2
  156. data/lib/puppet/file_system/posix.rb +7 -2
  157. data/lib/puppet/file_system/uniquefile.rb +33 -31
  158. data/lib/puppet/file_system/windows.rb +33 -22
  159. data/lib/puppet/file_system.rb +5 -3
  160. data/lib/puppet/forge/cache.rb +4 -3
  161. data/lib/puppet/forge/errors.rb +3 -4
  162. data/lib/puppet/forge/repository.rb +6 -3
  163. data/lib/puppet/forge.rb +20 -22
  164. data/lib/puppet/functions/abs.rb +7 -4
  165. data/lib/puppet/functions/alert.rb +2 -0
  166. data/lib/puppet/functions/all.rb +3 -1
  167. data/lib/puppet/functions/annotate.rb +2 -0
  168. data/lib/puppet/functions/any.rb +3 -1
  169. data/lib/puppet/functions/assert_type.rb +5 -2
  170. data/lib/puppet/functions/binary_file.rb +4 -1
  171. data/lib/puppet/functions/break.rb +4 -2
  172. data/lib/puppet/functions/call.rb +2 -1
  173. data/lib/puppet/functions/camelcase.rb +4 -3
  174. data/lib/puppet/functions/capitalize.rb +4 -3
  175. data/lib/puppet/functions/ceiling.rb +3 -2
  176. data/lib/puppet/functions/chomp.rb +3 -2
  177. data/lib/puppet/functions/chop.rb +3 -2
  178. data/lib/puppet/functions/compare.rb +5 -3
  179. data/lib/puppet/functions/contain.rb +7 -4
  180. data/lib/puppet/functions/convert_to.rb +2 -0
  181. data/lib/puppet/functions/crit.rb +2 -0
  182. data/lib/puppet/functions/debug.rb +2 -0
  183. data/lib/puppet/functions/defined.rb +10 -6
  184. data/lib/puppet/functions/dig.rb +13 -10
  185. data/lib/puppet/functions/downcase.rb +4 -2
  186. data/lib/puppet/functions/each.rb +2 -0
  187. data/lib/puppet/functions/emerg.rb +2 -0
  188. data/lib/puppet/functions/empty.rb +2 -0
  189. data/lib/puppet/functions/epp.rb +2 -1
  190. data/lib/puppet/functions/err.rb +2 -0
  191. data/lib/puppet/functions/eyaml_lookup_key.rb +17 -16
  192. data/lib/puppet/functions/filter.rb +8 -7
  193. data/lib/puppet/functions/find_file.rb +6 -0
  194. data/lib/puppet/functions/find_template.rb +2 -0
  195. data/lib/puppet/functions/flatten.rb +2 -0
  196. data/lib/puppet/functions/floor.rb +3 -2
  197. data/lib/puppet/functions/get.rb +4 -2
  198. data/lib/puppet/functions/getvar.rb +7 -5
  199. data/lib/puppet/functions/group_by.rb +2 -2
  200. data/lib/puppet/functions/hiera.rb +2 -0
  201. data/lib/puppet/functions/hiera_array.rb +2 -0
  202. data/lib/puppet/functions/hiera_hash.rb +2 -0
  203. data/lib/puppet/functions/hiera_include.rb +3 -0
  204. data/lib/puppet/functions/hocon_data.rb +5 -5
  205. data/lib/puppet/functions/import.rb +3 -1
  206. data/lib/puppet/functions/include.rb +5 -2
  207. data/lib/puppet/functions/index.rb +5 -4
  208. data/lib/puppet/functions/info.rb +2 -0
  209. data/lib/puppet/functions/inline_epp.rb +2 -1
  210. data/lib/puppet/functions/join.rb +4 -2
  211. data/lib/puppet/functions/json_data.rb +6 -6
  212. data/lib/puppet/functions/keys.rb +2 -0
  213. data/lib/puppet/functions/length.rb +2 -1
  214. data/lib/puppet/functions/lest.rb +2 -0
  215. data/lib/puppet/functions/lookup.rb +12 -12
  216. data/lib/puppet/functions/lstrip.rb +3 -2
  217. data/lib/puppet/functions/map.rb +4 -2
  218. data/lib/puppet/functions/match.rb +8 -5
  219. data/lib/puppet/functions/max.rb +75 -8
  220. data/lib/puppet/functions/min.rb +75 -8
  221. data/lib/puppet/functions/module_directory.rb +2 -0
  222. data/lib/puppet/functions/new.rb +5 -3
  223. data/lib/puppet/functions/next.rb +3 -1
  224. data/lib/puppet/functions/notice.rb +2 -0
  225. data/lib/puppet/functions/reduce.rb +8 -11
  226. data/lib/puppet/functions/regsubst.rb +15 -16
  227. data/lib/puppet/functions/require.rb +7 -3
  228. data/lib/puppet/functions/return.rb +2 -0
  229. data/lib/puppet/functions/reverse_each.rb +2 -0
  230. data/lib/puppet/functions/round.rb +2 -0
  231. data/lib/puppet/functions/rstrip.rb +3 -2
  232. data/lib/puppet/functions/scanf.rb +2 -0
  233. data/lib/puppet/functions/size.rb +2 -2
  234. data/lib/puppet/functions/slice.rb +4 -1
  235. data/lib/puppet/functions/sort.rb +2 -0
  236. data/lib/puppet/functions/split.rb +2 -0
  237. data/lib/puppet/functions/step.rb +2 -0
  238. data/lib/puppet/functions/strftime.rb +5 -3
  239. data/lib/puppet/functions/strip.rb +3 -2
  240. data/lib/puppet/functions/then.rb +3 -0
  241. data/lib/puppet/functions/tree_each.rb +4 -3
  242. data/lib/puppet/functions/type.rb +2 -0
  243. data/lib/puppet/functions/unique.rb +12 -9
  244. data/lib/puppet/functions/unwrap.rb +2 -0
  245. data/lib/puppet/functions/upcase.rb +4 -2
  246. data/lib/puppet/functions/values.rb +2 -0
  247. data/lib/puppet/functions/versioncmp.rb +2 -1
  248. data/lib/puppet/functions/warning.rb +2 -0
  249. data/lib/puppet/functions/with.rb +2 -0
  250. data/lib/puppet/functions/yaml_data.rb +13 -13
  251. data/lib/puppet/functions.rb +57 -61
  252. data/lib/puppet/generate/models/type/property.rb +4 -1
  253. data/lib/puppet/generate/models/type/type.rb +5 -2
  254. data/lib/puppet/generate/type.rb +11 -5
  255. data/lib/puppet/gettext/config.rb +16 -9
  256. data/lib/puppet/gettext/module_translations.rb +2 -1
  257. data/lib/puppet/gettext/stubs.rb +2 -0
  258. data/lib/puppet/graph/key.rb +2 -0
  259. data/lib/puppet/graph/prioritizer.rb +2 -0
  260. data/lib/puppet/graph/rb_tree_map.rb +43 -24
  261. data/lib/puppet/graph/relationship_graph.rb +31 -29
  262. data/lib/puppet/graph/sequential_prioritizer.rb +2 -0
  263. data/lib/puppet/graph/simple_graph.rb +63 -57
  264. data/lib/puppet/graph.rb +2 -0
  265. data/lib/puppet/http/client.rb +10 -6
  266. data/lib/puppet/http/dns.rb +12 -12
  267. data/lib/puppet/http/errors.rb +4 -2
  268. data/lib/puppet/http/external_client.rb +4 -3
  269. data/lib/puppet/http/factory.rb +3 -1
  270. data/lib/puppet/http/pool.rb +3 -1
  271. data/lib/puppet/http/pool_entry.rb +2 -0
  272. data/lib/puppet/http/proxy.rb +21 -19
  273. data/lib/puppet/http/redirector.rb +5 -3
  274. data/lib/puppet/http/resolver/server_list.rb +5 -4
  275. data/lib/puppet/http/resolver/settings.rb +2 -1
  276. data/lib/puppet/http/resolver/srv.rb +2 -1
  277. data/lib/puppet/http/resolver.rb +4 -2
  278. data/lib/puppet/http/response.rb +2 -0
  279. data/lib/puppet/http/response_converter.rb +4 -3
  280. data/lib/puppet/http/response_net_http.rb +2 -1
  281. data/lib/puppet/http/retry_after_handler.rb +4 -3
  282. data/lib/puppet/http/service/ca.rb +37 -5
  283. data/lib/puppet/http/service/compiler.rb +13 -10
  284. data/lib/puppet/http/service/file_server.rb +5 -3
  285. data/lib/puppet/http/service/puppetserver.rb +3 -2
  286. data/lib/puppet/http/service/report.rb +5 -7
  287. data/lib/puppet/http/service.rb +17 -22
  288. data/lib/puppet/http/session.rb +6 -4
  289. data/lib/puppet/http/site.rb +3 -1
  290. data/lib/puppet/http.rb +4 -2
  291. data/lib/puppet/indirector/catalog/compiler.rb +81 -80
  292. data/lib/puppet/indirector/catalog/json.rb +2 -0
  293. data/lib/puppet/indirector/catalog/msgpack.rb +2 -0
  294. data/lib/puppet/indirector/catalog/rest.rb +2 -0
  295. data/lib/puppet/indirector/catalog/store_configs.rb +3 -3
  296. data/lib/puppet/indirector/catalog/yaml.rb +2 -0
  297. data/lib/puppet/indirector/code.rb +2 -0
  298. data/lib/puppet/indirector/data_binding/hiera.rb +2 -1
  299. data/lib/puppet/indirector/data_binding/none.rb +2 -0
  300. data/lib/puppet/indirector/direct_file_server.rb +4 -1
  301. data/lib/puppet/indirector/envelope.rb +2 -0
  302. data/lib/puppet/indirector/errors.rb +2 -0
  303. data/lib/puppet/indirector/exec.rb +5 -3
  304. data/lib/puppet/indirector/face.rb +17 -28
  305. data/lib/puppet/indirector/fact_search.rb +4 -2
  306. data/lib/puppet/indirector/facts/facter.rb +10 -7
  307. data/lib/puppet/indirector/facts/json.rb +4 -2
  308. data/lib/puppet/indirector/facts/memory.rb +2 -0
  309. data/lib/puppet/indirector/facts/network_device.rb +2 -0
  310. data/lib/puppet/indirector/facts/rest.rb +2 -0
  311. data/lib/puppet/indirector/facts/store_configs.rb +3 -2
  312. data/lib/puppet/indirector/facts/yaml.rb +2 -0
  313. data/lib/puppet/indirector/file_bucket_file/file.rb +33 -27
  314. data/lib/puppet/indirector/file_bucket_file/rest.rb +6 -3
  315. data/lib/puppet/indirector/file_bucket_file/selector.rb +2 -1
  316. data/lib/puppet/indirector/file_content/file.rb +2 -0
  317. data/lib/puppet/indirector/file_content/file_server.rb +2 -0
  318. data/lib/puppet/indirector/file_content/rest.rb +3 -1
  319. data/lib/puppet/indirector/file_content/selector.rb +2 -0
  320. data/lib/puppet/indirector/file_content.rb +2 -0
  321. data/lib/puppet/indirector/file_metadata/file.rb +2 -0
  322. data/lib/puppet/indirector/file_metadata/file_server.rb +2 -0
  323. data/lib/puppet/indirector/file_metadata/http.rb +4 -2
  324. data/lib/puppet/indirector/file_metadata/rest.rb +3 -1
  325. data/lib/puppet/indirector/file_metadata/selector.rb +2 -0
  326. data/lib/puppet/indirector/file_metadata.rb +2 -0
  327. data/lib/puppet/indirector/file_server.rb +3 -0
  328. data/lib/puppet/indirector/generic_http.rb +2 -0
  329. data/lib/puppet/indirector/hiera.rb +8 -7
  330. data/lib/puppet/indirector/indirection.rb +50 -41
  331. data/lib/puppet/indirector/json.rb +9 -6
  332. data/lib/puppet/indirector/memory.rb +5 -2
  333. data/lib/puppet/indirector/msgpack.rb +11 -7
  334. data/lib/puppet/indirector/node/exec.rb +6 -6
  335. data/lib/puppet/indirector/node/json.rb +2 -1
  336. data/lib/puppet/indirector/node/memory.rb +2 -0
  337. data/lib/puppet/indirector/node/msgpack.rb +2 -0
  338. data/lib/puppet/indirector/node/plain.rb +2 -0
  339. data/lib/puppet/indirector/node/rest.rb +2 -0
  340. data/lib/puppet/indirector/node/store_configs.rb +3 -3
  341. data/lib/puppet/indirector/node/yaml.rb +2 -0
  342. data/lib/puppet/indirector/none.rb +3 -2
  343. data/lib/puppet/indirector/plain.rb +2 -0
  344. data/lib/puppet/indirector/report/json.rb +4 -2
  345. data/lib/puppet/indirector/report/msgpack.rb +3 -1
  346. data/lib/puppet/indirector/report/processor.rb +3 -0
  347. data/lib/puppet/indirector/report/rest.rb +2 -13
  348. data/lib/puppet/indirector/report/yaml.rb +4 -2
  349. data/lib/puppet/indirector/request.rb +15 -12
  350. data/lib/puppet/indirector/resource/ral.rb +10 -10
  351. data/lib/puppet/indirector/resource/store_configs.rb +3 -1
  352. data/lib/puppet/indirector/resource/validator.rb +2 -0
  353. data/lib/puppet/indirector/rest.rb +3 -1
  354. data/lib/puppet/indirector/store_configs.rb +2 -0
  355. data/lib/puppet/indirector/terminus.rb +8 -4
  356. data/lib/puppet/indirector/yaml.rb +7 -5
  357. data/lib/puppet/indirector.rb +3 -0
  358. data/lib/puppet/info_service/class_information_service.rb +16 -17
  359. data/lib/puppet/info_service/plan_information_service.rb +5 -3
  360. data/lib/puppet/info_service/task_information_service.rb +10 -9
  361. data/lib/puppet/info_service.rb +1 -0
  362. data/lib/puppet/interface/action.rb +46 -42
  363. data/lib/puppet/interface/action_builder.rb +12 -6
  364. data/lib/puppet/interface/action_manager.rb +9 -6
  365. data/lib/puppet/interface/documentation.rb +40 -34
  366. data/lib/puppet/interface/face_collection.rb +18 -14
  367. data/lib/puppet/interface/option.rb +23 -11
  368. data/lib/puppet/interface/option_builder.rb +14 -9
  369. data/lib/puppet/interface/option_manager.rb +12 -10
  370. data/lib/puppet/interface.rb +9 -8
  371. data/lib/puppet/loaders.rb +2 -1
  372. data/lib/puppet/metatype/manager.rb +16 -15
  373. data/lib/puppet/module/plan.rb +22 -15
  374. data/lib/puppet/module/task.rb +33 -28
  375. data/lib/puppet/module.rb +59 -47
  376. data/lib/puppet/module_tool/applications/application.rb +17 -12
  377. data/lib/puppet/module_tool/applications/checksummer.rb +3 -3
  378. data/lib/puppet/module_tool/applications/installer.rb +78 -87
  379. data/lib/puppet/module_tool/applications/uninstaller.rb +24 -22
  380. data/lib/puppet/module_tool/applications/unpacker.rb +11 -9
  381. data/lib/puppet/module_tool/applications/upgrader.rb +66 -60
  382. data/lib/puppet/module_tool/applications.rb +2 -0
  383. data/lib/puppet/module_tool/checksums.rb +4 -3
  384. data/lib/puppet/module_tool/dependency.rb +5 -4
  385. data/lib/puppet/module_tool/errors/base.rb +3 -1
  386. data/lib/puppet/module_tool/errors/installer.rb +6 -5
  387. data/lib/puppet/module_tool/errors/shared.rb +16 -15
  388. data/lib/puppet/module_tool/errors/uninstaller.rb +3 -2
  389. data/lib/puppet/module_tool/errors/upgrader.rb +4 -3
  390. data/lib/puppet/module_tool/errors.rb +2 -0
  391. data/lib/puppet/module_tool/install_directory.rb +8 -5
  392. data/lib/puppet/module_tool/installed_modules.rb +5 -2
  393. data/lib/puppet/module_tool/local_tarball.rb +10 -8
  394. data/lib/puppet/module_tool/metadata.rb +36 -30
  395. data/lib/puppet/module_tool/shared_behaviors.rb +61 -43
  396. data/lib/puppet/module_tool/tar/gnu.rb +12 -8
  397. data/lib/puppet/module_tool/tar/mini.rb +6 -4
  398. data/lib/puppet/module_tool/tar.rb +4 -2
  399. data/lib/puppet/module_tool.rb +11 -11
  400. data/lib/puppet/network/authconfig.rb +2 -0
  401. data/lib/puppet/network/authorization.rb +2 -0
  402. data/lib/puppet/network/client_request.rb +7 -4
  403. data/lib/puppet/network/format.rb +9 -3
  404. data/lib/puppet/network/format_handler.rb +9 -7
  405. data/lib/puppet/network/format_support.rb +8 -7
  406. data/lib/puppet/network/formats.rb +34 -25
  407. data/lib/puppet/network/http/api/indirected_routes.rb +38 -45
  408. data/lib/puppet/network/http/api/indirection_type.rb +2 -1
  409. data/lib/puppet/network/http/api/master/v3/environments.rb +2 -1
  410. data/lib/puppet/network/http/api/master/v3.rb +2 -1
  411. data/lib/puppet/network/http/api/master.rb +2 -0
  412. data/lib/puppet/network/http/api/server/v3/environments.rb +21 -15
  413. data/lib/puppet/network/http/api/server/v3.rb +14 -13
  414. data/lib/puppet/network/http/api/server.rb +2 -0
  415. data/lib/puppet/network/http/api.rb +20 -18
  416. data/lib/puppet/network/http/connection.rb +6 -4
  417. data/lib/puppet/network/http/error.rb +5 -3
  418. data/lib/puppet/network/http/handler.rb +12 -14
  419. data/lib/puppet/network/http/issues.rb +2 -0
  420. data/lib/puppet/network/http/memory_response.rb +3 -1
  421. data/lib/puppet/network/http/request.rb +22 -10
  422. data/lib/puppet/network/http/response.rb +2 -0
  423. data/lib/puppet/network/http/route.rb +14 -11
  424. data/lib/puppet/network/http.rb +2 -0
  425. data/lib/puppet/network/http_pool.rb +4 -3
  426. data/lib/puppet/network/uri.rb +2 -0
  427. data/lib/puppet/network.rb +2 -0
  428. data/lib/puppet/node/environment.rb +36 -33
  429. data/lib/puppet/node/facts.rb +10 -10
  430. data/lib/puppet/node/server_facts.rb +6 -6
  431. data/lib/puppet/node.rb +12 -12
  432. data/lib/puppet/pal/catalog_compiler.rb +2 -3
  433. data/lib/puppet/pal/compiler.rb +11 -6
  434. data/lib/puppet/pal/function_signature.rb +5 -3
  435. data/lib/puppet/pal/json_catalog_encoder.rb +7 -2
  436. data/lib/puppet/pal/pal_api.rb +2 -0
  437. data/lib/puppet/pal/pal_impl.rb +103 -108
  438. data/lib/puppet/pal/plan_signature.rb +4 -2
  439. data/lib/puppet/pal/script_compiler.rb +4 -2
  440. data/lib/puppet/pal/task_signature.rb +15 -9
  441. data/lib/puppet/parameter/boolean.rb +2 -0
  442. data/lib/puppet/parameter/package_options.rb +3 -1
  443. data/lib/puppet/parameter/path.rb +7 -3
  444. data/lib/puppet/parameter/value.rb +5 -3
  445. data/lib/puppet/parameter/value_collection.rb +17 -16
  446. data/lib/puppet/parameter.rb +17 -16
  447. data/lib/puppet/parser/abstract_compiler.rb +2 -3
  448. data/lib/puppet/parser/ast/block_expression.rb +4 -2
  449. data/lib/puppet/parser/ast/branch.rb +2 -0
  450. data/lib/puppet/parser/ast/hostclass.rb +4 -2
  451. data/lib/puppet/parser/ast/leaf.rb +3 -0
  452. data/lib/puppet/parser/ast/node.rb +2 -0
  453. data/lib/puppet/parser/ast/pops_bridge.rb +13 -13
  454. data/lib/puppet/parser/ast/resource.rb +8 -8
  455. data/lib/puppet/parser/ast/resource_instance.rb +3 -0
  456. data/lib/puppet/parser/ast/resourceparam.rb +9 -7
  457. data/lib/puppet/parser/ast/top_level_construct.rb +2 -0
  458. data/lib/puppet/parser/ast.rb +16 -15
  459. data/lib/puppet/parser/catalog_compiler.rb +3 -3
  460. data/lib/puppet/parser/compiler/catalog_validator/relationship_validator.rb +4 -2
  461. data/lib/puppet/parser/compiler/catalog_validator.rb +2 -0
  462. data/lib/puppet/parser/compiler.rb +45 -44
  463. data/lib/puppet/parser/e4_parser_adapter.rb +17 -16
  464. data/lib/puppet/parser/files.rb +8 -6
  465. data/lib/puppet/parser/functions/assert_type.rb +43 -41
  466. data/lib/puppet/parser/functions/binary_file.rb +16 -14
  467. data/lib/puppet/parser/functions/break.rb +29 -27
  468. data/lib/puppet/parser/functions/contain.rb +3 -1
  469. data/lib/puppet/parser/functions/create_resources.rb +18 -14
  470. data/lib/puppet/parser/functions/defined.rb +104 -102
  471. data/lib/puppet/parser/functions/dig.rb +26 -24
  472. data/lib/puppet/parser/functions/digest.rb +3 -1
  473. data/lib/puppet/parser/functions/each.rb +101 -99
  474. data/lib/puppet/parser/functions/epp.rb +4 -3
  475. data/lib/puppet/parser/functions/fail.rb +11 -9
  476. data/lib/puppet/parser/functions/file.rb +16 -14
  477. data/lib/puppet/parser/functions/filter.rb +57 -55
  478. data/lib/puppet/parser/functions/find_file.rb +19 -18
  479. data/lib/puppet/parser/functions/fqdn_rand.rb +25 -23
  480. data/lib/puppet/parser/functions/generate.rb +23 -21
  481. data/lib/puppet/parser/functions/hiera.rb +95 -93
  482. data/lib/puppet/parser/functions/hiera_array.rb +83 -82
  483. data/lib/puppet/parser/functions/hiera_hash.rb +93 -92
  484. data/lib/puppet/parser/functions/hiera_include.rb +93 -92
  485. data/lib/puppet/parser/functions/include.rb +5 -3
  486. data/lib/puppet/parser/functions/inline_epp.rb +4 -3
  487. data/lib/puppet/parser/functions/inline_template.rb +15 -13
  488. data/lib/puppet/parser/functions/lest.rb +36 -34
  489. data/lib/puppet/parser/functions/lookup.rb +132 -130
  490. data/lib/puppet/parser/functions/map.rb +54 -52
  491. data/lib/puppet/parser/functions/match.rb +31 -29
  492. data/lib/puppet/parser/functions/md5.rb +4 -2
  493. data/lib/puppet/parser/functions/new.rb +916 -915
  494. data/lib/puppet/parser/functions/next.rb +36 -34
  495. data/lib/puppet/parser/functions/realize.rb +13 -11
  496. data/lib/puppet/parser/functions/reduce.rb +134 -132
  497. data/lib/puppet/parser/functions/regsubst.rb +8 -5
  498. data/lib/puppet/parser/functions/require.rb +8 -5
  499. data/lib/puppet/parser/functions/return.rb +90 -88
  500. data/lib/puppet/parser/functions/reverse_each.rb +59 -57
  501. data/lib/puppet/parser/functions/scanf.rb +25 -23
  502. data/lib/puppet/parser/functions/sha1.rb +4 -2
  503. data/lib/puppet/parser/functions/sha256.rb +3 -1
  504. data/lib/puppet/parser/functions/shellquote.rb +2 -0
  505. data/lib/puppet/parser/functions/slice.rb +27 -25
  506. data/lib/puppet/parser/functions/split.rb +7 -6
  507. data/lib/puppet/parser/functions/sprintf.rb +8 -7
  508. data/lib/puppet/parser/functions/step.rb +62 -60
  509. data/lib/puppet/parser/functions/strftime.rb +175 -173
  510. data/lib/puppet/parser/functions/tag.rb +10 -7
  511. data/lib/puppet/parser/functions/tagged.rb +16 -13
  512. data/lib/puppet/parser/functions/template.rb +27 -24
  513. data/lib/puppet/parser/functions/then.rb +54 -52
  514. data/lib/puppet/parser/functions/type.rb +36 -34
  515. data/lib/puppet/parser/functions/versioncmp.rb +3 -2
  516. data/lib/puppet/parser/functions/with.rb +22 -20
  517. data/lib/puppet/parser/functions.rb +12 -9
  518. data/lib/puppet/parser/parser_factory.rb +2 -0
  519. data/lib/puppet/parser/relationship.rb +9 -3
  520. data/lib/puppet/parser/resource/param.rb +4 -2
  521. data/lib/puppet/parser/resource.rb +42 -40
  522. data/lib/puppet/parser/scope.rb +84 -70
  523. data/lib/puppet/parser/script_compiler.rb +12 -12
  524. data/lib/puppet/parser/templatewrapper.rb +3 -2
  525. data/lib/puppet/parser/type_loader.rb +31 -30
  526. data/lib/puppet/parser.rb +3 -1
  527. data/lib/puppet/plugins/configuration.rb +2 -0
  528. data/lib/puppet/plugins/syntax_checkers.rb +2 -1
  529. data/lib/puppet/plugins.rb +3 -1
  530. data/lib/puppet/pops/adaptable.rb +5 -3
  531. data/lib/puppet/pops/adapters.rb +4 -1
  532. data/lib/puppet/pops/evaluator/access_operator.rb +133 -120
  533. data/lib/puppet/pops/evaluator/callable_signature.rb +6 -5
  534. data/lib/puppet/pops/evaluator/closure.rb +272 -277
  535. data/lib/puppet/pops/evaluator/collector_transformer.rb +18 -15
  536. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +10 -8
  537. data/lib/puppet/pops/evaluator/collectors/catalog_collector.rb +4 -3
  538. data/lib/puppet/pops/evaluator/collectors/exported_collector.rb +6 -5
  539. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +10 -10
  540. data/lib/puppet/pops/evaluator/compare_operator.rb +36 -21
  541. data/lib/puppet/pops/evaluator/deferred_resolver.rb +19 -17
  542. data/lib/puppet/pops/evaluator/epp_evaluator.rb +19 -18
  543. data/lib/puppet/pops/evaluator/evaluator_impl.rb +245 -245
  544. data/lib/puppet/pops/evaluator/external_syntax_support.rb +3 -2
  545. data/lib/puppet/pops/evaluator/json_strict_literal_evaluator.rb +6 -5
  546. data/lib/puppet/pops/evaluator/literal_evaluator.rb +5 -5
  547. data/lib/puppet/pops/evaluator/puppet_proc.rb +6 -3
  548. data/lib/puppet/pops/evaluator/relationship_operator.rb +14 -11
  549. data/lib/puppet/pops/evaluator/runtime3_converter.rb +34 -30
  550. data/lib/puppet/pops/evaluator/runtime3_resource_support.rb +35 -35
  551. data/lib/puppet/pops/evaluator/runtime3_support.rb +32 -39
  552. data/lib/puppet/pops/functions/dispatch.rb +7 -7
  553. data/lib/puppet/pops/functions/dispatcher.rb +8 -7
  554. data/lib/puppet/pops/functions/function.rb +18 -20
  555. data/lib/puppet/pops/issue_reporter.rb +25 -22
  556. data/lib/puppet/pops/issues.rb +10 -5
  557. data/lib/puppet/pops/label_provider.rb +6 -4
  558. data/lib/puppet/pops/loader/base_loader.rb +4 -4
  559. data/lib/puppet/pops/loader/dependency_loader.rb +8 -4
  560. data/lib/puppet/pops/loader/gem_support.rb +5 -2
  561. data/lib/puppet/pops/loader/generic_plan_instantiator.rb +2 -0
  562. data/lib/puppet/pops/loader/loader.rb +8 -8
  563. data/lib/puppet/pops/loader/loader_paths.rb +42 -41
  564. data/lib/puppet/pops/loader/module_loaders.rb +45 -49
  565. data/lib/puppet/pops/loader/predefined_loader.rb +3 -3
  566. data/lib/puppet/pops/loader/puppet_function_instantiator.rb +6 -2
  567. data/lib/puppet/pops/loader/puppet_plan_instantiator.rb +6 -2
  568. data/lib/puppet/pops/loader/puppet_resource_type_impl_instantiator.rb +6 -5
  569. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +5 -1
  570. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +5 -1
  571. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +18 -8
  572. data/lib/puppet/pops/loader/runtime3_type_loader.rb +4 -3
  573. data/lib/puppet/pops/loader/simple_environment_loader.rb +3 -3
  574. data/lib/puppet/pops/loader/static_loader.rb +29 -27
  575. data/lib/puppet/pops/loader/task_instantiator.rb +4 -2
  576. data/lib/puppet/pops/loader/type_definition_instantiator.rb +9 -5
  577. data/lib/puppet/pops/loader/typed_name.rb +4 -2
  578. data/lib/puppet/pops/loader/uri_helper.rb +3 -1
  579. data/lib/puppet/pops/loaders.rb +27 -23
  580. data/lib/puppet/pops/lookup/configured_data_provider.rb +2 -0
  581. data/lib/puppet/pops/lookup/context.rb +32 -23
  582. data/lib/puppet/pops/lookup/data_adapter.rb +2 -0
  583. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +8 -7
  584. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +5 -3
  585. data/lib/puppet/pops/lookup/data_provider.rb +2 -0
  586. data/lib/puppet/pops/lookup/environment_data_provider.rb +2 -0
  587. data/lib/puppet/pops/lookup/explainer.rb +47 -45
  588. data/lib/puppet/pops/lookup/function_provider.rb +8 -6
  589. data/lib/puppet/pops/lookup/global_data_provider.rb +4 -3
  590. data/lib/puppet/pops/lookup/hiera_config.rb +208 -160
  591. data/lib/puppet/pops/lookup/interpolation.rb +21 -10
  592. data/lib/puppet/pops/lookup/invocation.rb +4 -0
  593. data/lib/puppet/pops/lookup/key_recorder.rb +6 -3
  594. data/lib/puppet/pops/lookup/location_resolver.rb +4 -2
  595. data/lib/puppet/pops/lookup/lookup_adapter.rb +39 -34
  596. data/lib/puppet/pops/lookup/lookup_key.rb +3 -1
  597. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +4 -2
  598. data/lib/puppet/pops/lookup/module_data_provider.rb +12 -9
  599. data/lib/puppet/pops/lookup/sub_lookup.rb +7 -3
  600. data/lib/puppet/pops/lookup.rb +16 -11
  601. data/lib/puppet/pops/merge_strategy.rb +22 -16
  602. data/lib/puppet/pops/migration/migration_checker.rb +8 -5
  603. data/lib/puppet/pops/model/ast.rb +786 -685
  604. data/lib/puppet/pops/model/ast_transformer.rb +18 -18
  605. data/lib/puppet/pops/model/factory.rb +33 -31
  606. data/lib/puppet/pops/model/model_label_provider.rb +5 -2
  607. data/lib/puppet/pops/model/model_tree_dumper.rb +32 -30
  608. data/lib/puppet/pops/model/pn_transformer.rb +5 -6
  609. data/lib/puppet/pops/model/tree_dumper.rb +7 -4
  610. data/lib/puppet/pops/parser/code_merger.rb +3 -3
  611. data/lib/puppet/pops/parser/epp_parser.rb +6 -5
  612. data/lib/puppet/pops/parser/epp_support.rb +10 -9
  613. data/lib/puppet/pops/parser/evaluating_parser.rb +13 -9
  614. data/lib/puppet/pops/parser/heredoc_support.rb +14 -14
  615. data/lib/puppet/pops/parser/interpolation_support.rb +25 -25
  616. data/lib/puppet/pops/parser/lexer2.rb +74 -62
  617. data/lib/puppet/pops/parser/lexer_support.rb +57 -57
  618. data/lib/puppet/pops/parser/locatable.rb +2 -2
  619. data/lib/puppet/pops/parser/locator.rb +47 -43
  620. data/lib/puppet/pops/parser/parser_support.rb +22 -21
  621. data/lib/puppet/pops/parser/pn_parser.rb +10 -9
  622. data/lib/puppet/pops/parser/slurp_support.rb +41 -40
  623. data/lib/puppet/pops/patterns.rb +14 -14
  624. data/lib/puppet/pops/pcore.rb +7 -6
  625. data/lib/puppet/pops/pn.rb +8 -5
  626. data/lib/puppet/pops/puppet_stack.rb +3 -1
  627. data/lib/puppet/pops/resource/param.rb +13 -12
  628. data/lib/puppet/pops/resource/resource_type_impl.rb +47 -45
  629. data/lib/puppet/pops/semantic_error.rb +3 -1
  630. data/lib/puppet/pops/serialization/abstract_reader.rb +6 -4
  631. data/lib/puppet/pops/serialization/abstract_writer.rb +11 -9
  632. data/lib/puppet/pops/serialization/deserializer.rb +3 -0
  633. data/lib/puppet/pops/serialization/extension.rb +8 -0
  634. data/lib/puppet/pops/serialization/from_data_converter.rb +16 -9
  635. data/lib/puppet/pops/serialization/instance_reader.rb +2 -0
  636. data/lib/puppet/pops/serialization/instance_writer.rb +2 -0
  637. data/lib/puppet/pops/serialization/json.rb +9 -5
  638. data/lib/puppet/pops/serialization/json_path.rb +3 -1
  639. data/lib/puppet/pops/serialization/object.rb +6 -3
  640. data/lib/puppet/pops/serialization/serializer.rb +20 -16
  641. data/lib/puppet/pops/serialization/time_factory.rb +2 -1
  642. data/lib/puppet/pops/serialization/to_data_converter.rb +9 -6
  643. data/lib/puppet/pops/serialization/to_stringified_converter.rb +8 -7
  644. data/lib/puppet/pops/serialization.rb +10 -8
  645. data/lib/puppet/pops/time/timespan.rb +33 -21
  646. data/lib/puppet/pops/time/timestamp.rb +12 -5
  647. data/lib/puppet/pops/types/annotatable.rb +3 -2
  648. data/lib/puppet/pops/types/annotation.rb +6 -4
  649. data/lib/puppet/pops/types/class_loader.rb +17 -15
  650. data/lib/puppet/pops/types/implementation_registry.rb +4 -1
  651. data/lib/puppet/pops/types/iterable.rb +24 -14
  652. data/lib/puppet/pops/types/p_binary_type.rb +6 -6
  653. data/lib/puppet/pops/types/p_init_type.rb +15 -12
  654. data/lib/puppet/pops/types/p_meta_type.rb +6 -5
  655. data/lib/puppet/pops/types/p_object_type.rb +104 -79
  656. data/lib/puppet/pops/types/p_object_type_extension.rb +15 -14
  657. data/lib/puppet/pops/types/p_runtime_type.rb +12 -10
  658. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +3 -2
  659. data/lib/puppet/pops/types/p_sem_ver_type.rb +8 -8
  660. data/lib/puppet/pops/types/p_sensitive_type.rb +3 -5
  661. data/lib/puppet/pops/types/p_timespan_type.rb +7 -5
  662. data/lib/puppet/pops/types/p_timestamp_type.rb +4 -3
  663. data/lib/puppet/pops/types/p_type_set_type.rb +51 -44
  664. data/lib/puppet/pops/types/p_uri_type.rb +41 -33
  665. data/lib/puppet/pops/types/puppet_object.rb +2 -1
  666. data/lib/puppet/pops/types/recursion_guard.rb +12 -6
  667. data/lib/puppet/pops/types/ruby_generator.rb +19 -14
  668. data/lib/puppet/pops/types/ruby_method.rb +8 -7
  669. data/lib/puppet/pops/types/string_converter.rb +113 -103
  670. data/lib/puppet/pops/types/tree_iterators.rb +16 -20
  671. data/lib/puppet/pops/types/type_acceptor.rb +2 -0
  672. data/lib/puppet/pops/types/type_asserter.rb +5 -3
  673. data/lib/puppet/pops/types/type_assertion_error.rb +1 -1
  674. data/lib/puppet/pops/types/type_calculator.rb +56 -49
  675. data/lib/puppet/pops/types/type_conversion_error.rb +2 -10
  676. data/lib/puppet/pops/types/type_factory.rb +25 -16
  677. data/lib/puppet/pops/types/type_formatter.rb +60 -65
  678. data/lib/puppet/pops/types/type_mismatch_describer.rb +62 -53
  679. data/lib/puppet/pops/types/type_parser.rb +124 -117
  680. data/lib/puppet/pops/types/type_set_reference.rb +3 -0
  681. data/lib/puppet/pops/types/type_with_members.rb +2 -2
  682. data/lib/puppet/pops/types/types.rb +267 -249
  683. data/lib/puppet/pops/utils.rb +43 -45
  684. data/lib/puppet/pops/validation/checker4_0.rb +65 -58
  685. data/lib/puppet/pops/validation/tasks_checker.rb +7 -5
  686. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -2
  687. data/lib/puppet/pops/validation.rb +26 -23
  688. data/lib/puppet/pops/visitable.rb +2 -0
  689. data/lib/puppet/pops/visitor.rb +18 -4
  690. data/lib/puppet/pops.rb +6 -3
  691. data/lib/puppet/property/boolean.rb +2 -0
  692. data/lib/puppet/property/ensure.rb +17 -16
  693. data/lib/puppet/property/keyvalue.rb +15 -14
  694. data/lib/puppet/property/list.rb +10 -9
  695. data/lib/puppet/property/ordered_list.rb +6 -5
  696. data/lib/puppet/property.rb +47 -48
  697. data/lib/puppet/provider/aix_object.rb +15 -9
  698. data/lib/puppet/provider/command.rb +2 -0
  699. data/lib/puppet/provider/confine.rb +2 -0
  700. data/lib/puppet/provider/exec/posix.rb +4 -1
  701. data/lib/puppet/provider/exec/shell.rb +2 -0
  702. data/lib/puppet/provider/exec/windows.rb +6 -4
  703. data/lib/puppet/provider/exec.rb +6 -4
  704. data/lib/puppet/provider/file/posix.rb +37 -19
  705. data/lib/puppet/provider/file/windows.rb +28 -29
  706. data/lib/puppet/provider/group/aix.rb +4 -2
  707. data/lib/puppet/provider/group/directoryservice.rb +7 -5
  708. data/lib/puppet/provider/group/groupadd.rb +16 -10
  709. data/lib/puppet/provider/group/ldap.rb +3 -0
  710. data/lib/puppet/provider/group/pw.rb +4 -3
  711. data/lib/puppet/provider/group/windows_adsi.rb +10 -7
  712. data/lib/puppet/provider/ldap.rb +5 -3
  713. data/lib/puppet/provider/nameservice/directoryservice.rb +72 -62
  714. data/lib/puppet/provider/nameservice/objectadd.rb +4 -4
  715. data/lib/puppet/provider/nameservice/pw.rb +8 -8
  716. data/lib/puppet/provider/nameservice.rb +23 -19
  717. data/lib/puppet/provider/network_device.rb +2 -2
  718. data/lib/puppet/provider/package/aix.rb +29 -27
  719. data/lib/puppet/provider/package/appdmg.rb +24 -22
  720. data/lib/puppet/provider/package/apple.rb +7 -5
  721. data/lib/puppet/provider/package/apt.rb +28 -25
  722. data/lib/puppet/provider/package/aptitude.rb +3 -3
  723. data/lib/puppet/provider/package/aptrpm.rb +18 -14
  724. data/lib/puppet/provider/package/blastwave.rb +19 -22
  725. data/lib/puppet/provider/package/dnf.rb +12 -5
  726. data/lib/puppet/provider/package/dnfmodule.rb +17 -15
  727. data/lib/puppet/provider/package/dpkg.rb +24 -25
  728. data/lib/puppet/provider/package/fink.rb +17 -15
  729. data/lib/puppet/provider/package/freebsd.rb +6 -4
  730. data/lib/puppet/provider/package/gem.rb +29 -26
  731. data/lib/puppet/provider/package/hpux.rb +9 -7
  732. data/lib/puppet/provider/package/macports.rb +6 -4
  733. data/lib/puppet/provider/package/nim.rb +27 -28
  734. data/lib/puppet/provider/package/openbsd.rb +37 -34
  735. data/lib/puppet/provider/package/opkg.rb +17 -14
  736. data/lib/puppet/provider/package/pacman.rb +39 -42
  737. data/lib/puppet/provider/package/pip.rb +32 -31
  738. data/lib/puppet/provider/package/pip2.rb +3 -2
  739. data/lib/puppet/provider/package/pip3.rb +3 -2
  740. data/lib/puppet/provider/package/pkg.rb +46 -41
  741. data/lib/puppet/provider/package/pkgdmg.rb +23 -17
  742. data/lib/puppet/provider/package/pkgin.rb +14 -13
  743. data/lib/puppet/provider/package/pkgng.rb +20 -15
  744. data/lib/puppet/provider/package/pkgutil.rb +40 -41
  745. data/lib/puppet/provider/package/portage.rb +73 -69
  746. data/lib/puppet/provider/package/ports.rb +19 -16
  747. data/lib/puppet/provider/package/portupgrade.rb +48 -55
  748. data/lib/puppet/provider/package/puppet_gem.rb +6 -15
  749. data/lib/puppet/provider/package/puppetserver_gem.rb +16 -13
  750. data/lib/puppet/provider/package/rpm.rb +45 -40
  751. data/lib/puppet/provider/package/rug.rb +11 -11
  752. data/lib/puppet/provider/package/sun.rb +28 -24
  753. data/lib/puppet/provider/package/sunfreeware.rb +3 -1
  754. data/lib/puppet/provider/package/tdnf.rb +9 -2
  755. data/lib/puppet/provider/package/up2date.rb +10 -10
  756. data/lib/puppet/provider/package/urpmi.rb +9 -7
  757. data/lib/puppet/provider/package/windows/exe_package.rb +11 -9
  758. data/lib/puppet/provider/package/windows/msi_package.rb +5 -3
  759. data/lib/puppet/provider/package/windows/package.rb +8 -5
  760. data/lib/puppet/provider/package/windows.rb +10 -9
  761. data/lib/puppet/provider/package/xbps.rb +127 -0
  762. data/lib/puppet/provider/package/yum.rb +65 -62
  763. data/lib/puppet/provider/package/zypper.rb +29 -29
  764. data/lib/puppet/provider/package.rb +9 -7
  765. data/lib/puppet/provider/package_targetable.rb +5 -3
  766. data/lib/puppet/provider/parsedfile.rb +21 -17
  767. data/lib/puppet/provider/service/base.rb +19 -23
  768. data/lib/puppet/provider/service/bsd.rb +7 -5
  769. data/lib/puppet/provider/service/daemontools.rb +42 -39
  770. data/lib/puppet/provider/service/debian.rb +12 -10
  771. data/lib/puppet/provider/service/freebsd.rb +50 -52
  772. data/lib/puppet/provider/service/gentoo.rb +11 -9
  773. data/lib/puppet/provider/service/init.rb +33 -31
  774. data/lib/puppet/provider/service/launchd.rb +38 -31
  775. data/lib/puppet/provider/service/openbsd.rb +17 -16
  776. data/lib/puppet/provider/service/openrc.rb +6 -5
  777. data/lib/puppet/provider/service/openwrt.rb +7 -6
  778. data/lib/puppet/provider/service/rcng.rb +7 -5
  779. data/lib/puppet/provider/service/redhat.rb +10 -7
  780. data/lib/puppet/provider/service/runit.rb +16 -15
  781. data/lib/puppet/provider/service/service.rb +7 -8
  782. data/lib/puppet/provider/service/smf.rb +42 -37
  783. data/lib/puppet/provider/service/src.rb +29 -29
  784. data/lib/puppet/provider/service/systemd.rb +48 -48
  785. data/lib/puppet/provider/service/upstart.rb +37 -37
  786. data/lib/puppet/provider/service/windows.rb +45 -48
  787. data/lib/puppet/provider/user/aix.rb +24 -20
  788. data/lib/puppet/provider/user/directoryservice.rb +98 -91
  789. data/lib/puppet/provider/user/hpux.rb +33 -35
  790. data/lib/puppet/provider/user/ldap.rb +13 -10
  791. data/lib/puppet/provider/user/openbsd.rb +24 -22
  792. data/lib/puppet/provider/user/pw.rb +8 -7
  793. data/lib/puppet/provider/user/user_role_add.rb +40 -36
  794. data/lib/puppet/provider/user/useradd.rb +64 -53
  795. data/lib/puppet/provider/user/windows_adsi.rb +14 -10
  796. data/lib/puppet/provider.rb +20 -19
  797. data/lib/puppet/reference/configuration.rb +55 -47
  798. data/lib/puppet/reference/function.rb +2 -0
  799. data/lib/puppet/reference/indirection.rb +33 -28
  800. data/lib/puppet/reference/metaparameter.rb +3 -1
  801. data/lib/puppet/reference/providers.rb +12 -10
  802. data/lib/puppet/reference/report.rb +2 -0
  803. data/lib/puppet/reference/type.rb +7 -5
  804. data/lib/puppet/relationship.rb +10 -9
  805. data/lib/puppet/reports/http.rb +3 -2
  806. data/lib/puppet/reports/log.rb +4 -3
  807. data/lib/puppet/reports/store.rb +9 -6
  808. data/lib/puppet/reports.rb +8 -6
  809. data/lib/puppet/resource/catalog.rb +54 -53
  810. data/lib/puppet/resource/status.rb +9 -7
  811. data/lib/puppet/resource/type.rb +65 -41
  812. data/lib/puppet/resource/type_collection.rb +10 -6
  813. data/lib/puppet/resource.rb +91 -81
  814. data/lib/puppet/runtime.rb +2 -0
  815. data/lib/puppet/scheduler/job.rb +2 -0
  816. data/lib/puppet/scheduler/scheduler.rb +4 -2
  817. data/lib/puppet/scheduler/splay_job.rb +16 -3
  818. data/lib/puppet/scheduler/timer.rb +2 -0
  819. data/lib/puppet/scheduler.rb +3 -1
  820. data/lib/puppet/settings/alias_setting.rb +5 -5
  821. data/lib/puppet/settings/array_setting.rb +2 -1
  822. data/lib/puppet/settings/autosign_setting.rb +2 -1
  823. data/lib/puppet/settings/base_setting.rb +23 -18
  824. data/lib/puppet/settings/boolean_setting.rb +5 -3
  825. data/lib/puppet/settings/certificate_revocation_setting.rb +2 -1
  826. data/lib/puppet/settings/config_file.rb +11 -9
  827. data/lib/puppet/settings/directory_setting.rb +2 -0
  828. data/lib/puppet/settings/duration_setting.rb +5 -4
  829. data/lib/puppet/settings/enum_setting.rb +3 -1
  830. data/lib/puppet/settings/environment_conf.rb +19 -15
  831. data/lib/puppet/settings/errors.rb +6 -3
  832. data/lib/puppet/settings/file_or_directory_setting.rb +4 -7
  833. data/lib/puppet/settings/file_setting.rb +15 -24
  834. data/lib/puppet/settings/http_extra_headers_setting.rb +2 -1
  835. data/lib/puppet/settings/ini_file.rb +5 -3
  836. data/lib/puppet/settings/integer_setting.rb +3 -1
  837. data/lib/puppet/settings/path_setting.rb +2 -0
  838. data/lib/puppet/settings/port_setting.rb +4 -2
  839. data/lib/puppet/settings/priority_setting.rb +13 -12
  840. data/lib/puppet/settings/server_list_setting.rb +7 -6
  841. data/lib/puppet/settings/string_setting.rb +2 -0
  842. data/lib/puppet/settings/symbolic_enum_setting.rb +3 -1
  843. data/lib/puppet/settings/terminus_setting.rb +2 -0
  844. data/lib/puppet/settings/ttl_setting.rb +7 -5
  845. data/lib/puppet/settings/value_translator.rb +9 -7
  846. data/lib/puppet/settings.rb +171 -163
  847. data/lib/puppet/ssl/base.rb +9 -6
  848. data/lib/puppet/ssl/certificate.rb +6 -4
  849. data/lib/puppet/ssl/certificate_request.rb +34 -38
  850. data/lib/puppet/ssl/certificate_request_attributes.rb +7 -4
  851. data/lib/puppet/ssl/certificate_signer.rb +3 -3
  852. data/lib/puppet/ssl/digest.rb +2 -0
  853. data/lib/puppet/ssl/error.rb +3 -0
  854. data/lib/puppet/ssl/oids.rb +11 -9
  855. data/lib/puppet/ssl/openssl_loader.rb +6 -4
  856. data/lib/puppet/ssl/ssl_context.rb +2 -0
  857. data/lib/puppet/ssl/ssl_provider.rb +13 -9
  858. data/lib/puppet/ssl/state_machine.rb +153 -22
  859. data/lib/puppet/ssl/verifier.rb +3 -2
  860. data/lib/puppet/ssl.rb +3 -1
  861. data/lib/puppet/syntax_checkers/base64.rb +7 -5
  862. data/lib/puppet/syntax_checkers/epp.rb +7 -6
  863. data/lib/puppet/syntax_checkers/json.rb +7 -7
  864. data/lib/puppet/syntax_checkers/pp.rb +7 -6
  865. data/lib/puppet/syntax_checkers.rb +3 -1
  866. data/lib/puppet/test/test_helper.rb +30 -44
  867. data/lib/puppet/thread_local.rb +2 -0
  868. data/lib/puppet/transaction/additional_resource_generator.rb +12 -7
  869. data/lib/puppet/transaction/event.rb +8 -5
  870. data/lib/puppet/transaction/event_manager.rb +12 -11
  871. data/lib/puppet/transaction/persistence.rb +16 -16
  872. data/lib/puppet/transaction/report.rb +34 -27
  873. data/lib/puppet/transaction/resource_harness.rb +17 -9
  874. data/lib/puppet/transaction.rb +37 -35
  875. data/lib/puppet/trusted_external.rb +10 -5
  876. data/lib/puppet/type/component.rb +14 -7
  877. data/lib/puppet/type/exec.rb +71 -61
  878. data/lib/puppet/type/file/checksum.rb +6 -2
  879. data/lib/puppet/type/file/checksum_value.rb +6 -4
  880. data/lib/puppet/type/file/content.rb +24 -20
  881. data/lib/puppet/type/file/ctime.rb +5 -4
  882. data/lib/puppet/type/file/data_sync.rb +9 -6
  883. data/lib/puppet/type/file/ensure.rb +24 -25
  884. data/lib/puppet/type/file/group.rb +3 -1
  885. data/lib/puppet/type/file/mode.rb +14 -11
  886. data/lib/puppet/type/file/mtime.rb +5 -3
  887. data/lib/puppet/type/file/owner.rb +3 -2
  888. data/lib/puppet/type/file/selcontext.rb +24 -23
  889. data/lib/puppet/type/file/source.rb +31 -30
  890. data/lib/puppet/type/file/target.rb +23 -25
  891. data/lib/puppet/type/file/type.rb +3 -2
  892. data/lib/puppet/type/file.rb +60 -54
  893. data/lib/puppet/type/filebucket.rb +6 -4
  894. data/lib/puppet/type/group.rb +14 -13
  895. data/lib/puppet/type/notify.rb +4 -3
  896. data/lib/puppet/type/package.rb +47 -45
  897. data/lib/puppet/type/resources.rb +39 -34
  898. data/lib/puppet/type/schedule.rb +21 -21
  899. data/lib/puppet/type/service.rb +19 -18
  900. data/lib/puppet/type/stage.rb +2 -0
  901. data/lib/puppet/type/tidy.rb +40 -34
  902. data/lib/puppet/type/user.rb +62 -56
  903. data/lib/puppet/type/whit.rb +2 -1
  904. data/lib/puppet/type.rb +180 -227
  905. data/lib/puppet/util/at_fork/noop.rb +2 -0
  906. data/lib/puppet/util/at_fork/solaris.rb +37 -39
  907. data/lib/puppet/util/at_fork.rb +3 -1
  908. data/lib/puppet/util/autoload.rb +10 -4
  909. data/lib/puppet/util/backups.rb +13 -11
  910. data/lib/puppet/util/character_encoding.rb +9 -6
  911. data/lib/puppet/util/checksums.rb +16 -12
  912. data/lib/puppet/util/classgen.rb +18 -23
  913. data/lib/puppet/util/colors.rb +67 -65
  914. data/lib/puppet/util/command_line/puppet_option_parser.rb +18 -16
  915. data/lib/puppet/util/command_line/trollop.rb +695 -673
  916. data/lib/puppet/util/command_line.rb +7 -5
  917. data/lib/puppet/util/constant_inflector.rb +4 -3
  918. data/lib/puppet/util/diff.rb +17 -18
  919. data/lib/puppet/util/docs.rb +8 -4
  920. data/lib/puppet/util/errors.rb +13 -11
  921. data/lib/puppet/util/execution.rb +58 -36
  922. data/lib/puppet/util/execution_stub.rb +2 -0
  923. data/lib/puppet/util/feature.rb +9 -9
  924. data/lib/puppet/util/file_watcher.rb +3 -0
  925. data/lib/puppet/util/fileparsing.rb +20 -24
  926. data/lib/puppet/util/filetype.rb +43 -43
  927. data/lib/puppet/util/http_proxy.rb +2 -0
  928. data/lib/puppet/util/inifile.rb +13 -18
  929. data/lib/puppet/util/instance_loader.rb +3 -0
  930. data/lib/puppet/util/json.rb +2 -0
  931. data/lib/puppet/util/json_lockfile.rb +4 -1
  932. data/lib/puppet/util/ldap/connection.rb +21 -19
  933. data/lib/puppet/util/ldap/generator.rb +2 -0
  934. data/lib/puppet/util/ldap/manager.rb +20 -21
  935. data/lib/puppet/util/ldap.rb +2 -0
  936. data/lib/puppet/util/libuser.rb +3 -2
  937. data/lib/puppet/util/limits.rb +2 -0
  938. data/lib/puppet/util/lockfile.rb +8 -8
  939. data/lib/puppet/util/log/destination.rb +4 -3
  940. data/lib/puppet/util/log/destinations.rb +20 -20
  941. data/lib/puppet/util/log.rb +40 -31
  942. data/lib/puppet/util/logging.rb +34 -30
  943. data/lib/puppet/util/metaid.rb +2 -1
  944. data/lib/puppet/util/metric.rb +9 -6
  945. data/lib/puppet/util/monkey_patches.rb +22 -30
  946. data/lib/puppet/util/multi_match.rb +9 -5
  947. data/lib/puppet/util/network_device/base.rb +3 -2
  948. data/lib/puppet/util/network_device/config.rb +9 -9
  949. data/lib/puppet/util/network_device/transport/base.rb +1 -1
  950. data/lib/puppet/util/network_device/transport.rb +2 -0
  951. data/lib/puppet/util/network_device.rb +2 -0
  952. data/lib/puppet/util/package/version/debian.rb +33 -31
  953. data/lib/puppet/util/package/version/gem.rb +3 -0
  954. data/lib/puppet/util/package/version/pip.rb +14 -8
  955. data/lib/puppet/util/package/version/range/eq.rb +4 -1
  956. data/lib/puppet/util/package/version/range/gt.rb +3 -0
  957. data/lib/puppet/util/package/version/range/gt_eq.rb +3 -0
  958. data/lib/puppet/util/package/version/range/lt.rb +4 -1
  959. data/lib/puppet/util/package/version/range/lt_eq.rb +3 -0
  960. data/lib/puppet/util/package/version/range/min_max.rb +5 -0
  961. data/lib/puppet/util/package/version/range/simple.rb +2 -0
  962. data/lib/puppet/util/package/version/range.rb +9 -5
  963. data/lib/puppet/util/package/version/rpm.rb +7 -5
  964. data/lib/puppet/util/package.rb +5 -2
  965. data/lib/puppet/util/pidlock.rb +11 -10
  966. data/lib/puppet/util/platform.rb +5 -3
  967. data/lib/puppet/util/plist.rb +16 -16
  968. data/lib/puppet/util/posix.rb +27 -24
  969. data/lib/puppet/util/profiler/aggregate.rb +7 -10
  970. data/lib/puppet/util/profiler/around_profiler.rb +2 -1
  971. data/lib/puppet/util/profiler/logging.rb +3 -1
  972. data/lib/puppet/util/profiler/object_counts.rb +2 -0
  973. data/lib/puppet/util/profiler/wall_clock.rb +6 -5
  974. data/lib/puppet/util/profiler.rb +2 -0
  975. data/lib/puppet/util/provider_features.rb +10 -6
  976. data/lib/puppet/util/psych_support.rb +2 -0
  977. data/lib/puppet/util/rdoc/code_objects.rb +18 -20
  978. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +118 -128
  979. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +62 -79
  980. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +32 -29
  981. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +3 -1
  982. data/lib/puppet/util/rdoc/parser.rb +3 -1
  983. data/lib/puppet/util/rdoc.rb +10 -9
  984. data/lib/puppet/util/reference.rb +7 -32
  985. data/lib/puppet/util/resource_template.rb +3 -1
  986. data/lib/puppet/util/retry_action.rb +6 -5
  987. data/lib/puppet/util/rpm_compare.rb +31 -28
  988. data/lib/puppet/util/rubygems.rb +3 -3
  989. data/lib/puppet/util/run_mode.rb +46 -4
  990. data/lib/puppet/util/selinux.rb +72 -38
  991. data/lib/puppet/util/skip_tags.rb +2 -0
  992. data/lib/puppet/util/splayer.rb +2 -0
  993. data/lib/puppet/util/storage.rb +13 -13
  994. data/lib/puppet/util/suidmanager.rb +38 -37
  995. data/lib/puppet/util/symbolic_file_mode.rb +76 -76
  996. data/lib/puppet/util/tag_set.rb +4 -2
  997. data/lib/puppet/util/tagging.rb +12 -13
  998. data/lib/puppet/util/terminal.rb +6 -4
  999. data/lib/puppet/util/user_attr.rb +9 -7
  1000. data/lib/puppet/util/warnings.rb +4 -0
  1001. data/lib/puppet/util/watched_file.rb +4 -1
  1002. data/lib/puppet/util/watcher/change_watcher.rb +2 -0
  1003. data/lib/puppet/util/watcher/periodic_watcher.rb +2 -1
  1004. data/lib/puppet/util/watcher/timer.rb +2 -0
  1005. data/lib/puppet/util/watcher.rb +5 -5
  1006. data/lib/puppet/util/windows/access_control_entry.rb +3 -1
  1007. data/lib/puppet/util/windows/access_control_list.rb +10 -7
  1008. data/lib/puppet/util/windows/adsi.rb +82 -74
  1009. data/lib/puppet/util/windows/com.rb +10 -7
  1010. data/lib/puppet/util/windows/daemon.rb +77 -80
  1011. data/lib/puppet/util/windows/error.rb +7 -5
  1012. data/lib/puppet/util/windows/eventlog.rb +13 -9
  1013. data/lib/puppet/util/windows/file.rb +49 -45
  1014. data/lib/puppet/util/windows/monkey_patches/process.rb +2 -3
  1015. data/lib/puppet/util/windows/principal.rb +37 -34
  1016. data/lib/puppet/util/windows/process.rb +36 -40
  1017. data/lib/puppet/util/windows/registry.rb +60 -58
  1018. data/lib/puppet/util/windows/root_certs.rb +5 -3
  1019. data/lib/puppet/util/windows/security.rb +92 -90
  1020. data/lib/puppet/util/windows/security_descriptor.rb +2 -0
  1021. data/lib/puppet/util/windows/service.rb +24 -12
  1022. data/lib/puppet/util/windows/sid.rb +23 -21
  1023. data/lib/puppet/util/windows/string.rb +2 -0
  1024. data/lib/puppet/util/windows/user.rb +56 -55
  1025. data/lib/puppet/util/windows.rb +8 -1
  1026. data/lib/puppet/util/yaml.rb +3 -1
  1027. data/lib/puppet/util.rb +112 -161
  1028. data/lib/puppet/vendor.rb +3 -1
  1029. data/lib/puppet/version.rb +5 -2
  1030. data/lib/puppet/x509/cert_provider.rb +48 -12
  1031. data/lib/puppet/x509/pem_store.rb +3 -1
  1032. data/lib/puppet/x509.rb +2 -0
  1033. data/lib/puppet.rb +22 -19
  1034. data/lib/puppet_pal.rb +2 -0
  1035. data/lib/puppet_x.rb +2 -0
  1036. data/locales/puppet.pot +9723 -5
  1037. data/man/man5/puppet.conf.5 +121 -912
  1038. data/man/man8/puppet-agent.8 +39 -107
  1039. data/man/man8/puppet-apply.8 +18 -51
  1040. data/man/man8/puppet-catalog.8 +25 -122
  1041. data/man/man8/puppet-config.8 +22 -70
  1042. data/man/man8/puppet-describe.8 +6 -22
  1043. data/man/man8/puppet-device.8 +13 -49
  1044. data/man/man8/puppet-doc.8 +8 -24
  1045. data/man/man8/puppet-epp.8 +23 -168
  1046. data/man/man8/puppet-facts.8 +14 -92
  1047. data/man/man8/puppet-filebucket.8 +22 -54
  1048. data/man/man8/puppet-generate.8 +5 -35
  1049. data/man/man8/puppet-help.8 +8 -29
  1050. data/man/man8/puppet-lookup.8 +25 -61
  1051. data/man/man8/puppet-module.8 +19 -124
  1052. data/man/man8/puppet-node.8 +47 -68
  1053. data/man/man8/puppet-parser.8 +12 -55
  1054. data/man/man8/puppet-plugin.8 +10 -33
  1055. data/man/man8/puppet-report.8 +10 -53
  1056. data/man/man8/puppet-resource.8 +19 -44
  1057. data/man/man8/puppet-script.8 +11 -33
  1058. data/man/man8/puppet-ssl.8 +12 -30
  1059. data/man/man8/puppet.8 +90 -20
  1060. data/tasks/tag.rake +34 -0
  1061. metadata +77 -65
  1062. data/CONTRIBUTING.md +0 -161
  1063. data/examples/hiera/etc/hiera.yaml +0 -15
  1064. data/examples/hiera/etc/hieradb/common.yaml +0 -3
  1065. data/examples/hiera/etc/hieradb/dc1.yaml +0 -6
  1066. data/examples/hiera/etc/hieradb/development.yaml +0 -2
  1067. data/examples/hiera/etc/puppet.conf +0 -3
  1068. data/examples/hiera/modules/data/manifests/common.pp +0 -4
  1069. data/examples/hiera/modules/ntp/manifests/data.pp +0 -4
  1070. data/examples/hiera/modules/ntp/templates/ntp.conf.erb +0 -3
  1071. data/examples/hiera/modules/users/manifests/development.pp +0 -4
  1072. data/lib/puppet/external/pson/common.rb +0 -374
  1073. data/lib/puppet/external/pson/pure/generator.rb +0 -395
  1074. data/lib/puppet/external/pson/pure/parser.rb +0 -308
  1075. data/lib/puppet/external/pson/pure.rb +0 -15
  1076. data/lib/puppet/external/pson/version.rb +0 -8
  1077. data/lib/puppet/module_tool/contents_description.rb +0 -89
  1078. data/tasks/benchmark.rake +0 -180
  1079. data/tasks/ci.rake +0 -24
  1080. data/tasks/generate_ast_model.rake +0 -90
  1081. data/tasks/generate_cert_fixtures.rake +0 -194
  1082. data/tasks/manpages.rake +0 -67
  1083. data/tasks/memwalk.rake +0 -195
  1084. data/tasks/parallel.rake +0 -410
  1085. data/tasks/parser.rake +0 -22
  1086. data/tasks/yard.rake +0 -59
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Puppet::Pops
2
4
  module Evaluator
3
5
  # AccessOperator handles operator []
@@ -32,7 +34,7 @@ class AccessOperator
32
34
  access_func = type['[]']
33
35
  return access_func.invoke(o, scope, keys) unless access_func.nil?
34
36
  end
35
- fail(Issues::OPERATOR_NOT_APPLICABLE, @semantic.left_expr, :operator=>'[]', :left_value => o)
37
+ fail(Issues::OPERATOR_NOT_APPLICABLE, @semantic.left_expr, :operator => '[]', :left_value => o)
36
38
  end
37
39
 
38
40
  def access_Binary(o, scope, keys)
@@ -42,36 +44,36 @@ class AccessOperator
42
44
  def access_String(o, scope, keys)
43
45
  keys.flatten!
44
46
  result = case keys.size
45
- when 0
46
- fail(Issues::BAD_STRING_SLICE_ARITY, @semantic.left_expr, {:actual => keys.size})
47
- when 1
48
- # Note that Ruby 1.8.7 requires a length of 1 to produce a String
49
- k1 = Utils.to_n(keys[0])
50
- bad_string_access_key_type(o, 0, k1.nil? ? keys[0] : k1) unless k1.is_a?(Integer)
51
- k2 = 1
52
- k1 = k1 < 0 ? o.length + k1 : k1 # abs pos
53
- # if k1 is outside, a length of 1 always produces an empty string
54
- if k1 < 0
55
- EMPTY_STRING
56
- else
57
- o[ k1, k2 ]
58
- end
59
- when 2
60
- k1 = Utils.to_n(keys[0])
61
- k2 = Utils.to_n(keys[1])
62
- [k1, k2].each_with_index { |k,i| bad_string_access_key_type(o, i, k.nil? ? keys[i] : k) unless k.is_a?(Integer) }
63
-
64
- k1 = k1 < 0 ? o.length + k1 : k1 # abs pos (negative is count from end)
65
- k2 = k2 < 0 ? o.length - k1 + k2 + 1 : k2 # abs length (negative k2 is length from pos to end count)
66
- # if k1 is outside, adjust to first position, and adjust length
67
- if k1 < 0
68
- k2 = k2 + k1
69
- k1 = 0
70
- end
71
- o[ k1, k2 ]
72
- else
73
- fail(Issues::BAD_STRING_SLICE_ARITY, @semantic.left_expr, {:actual => keys.size})
74
- end
47
+ when 0
48
+ fail(Issues::BAD_STRING_SLICE_ARITY, @semantic.left_expr, { :actual => keys.size })
49
+ when 1
50
+ # Note that Ruby 1.8.7 requires a length of 1 to produce a String
51
+ k1 = Utils.to_n(keys[0])
52
+ bad_string_access_key_type(o, 0, k1.nil? ? keys[0] : k1) unless k1.is_a?(Integer)
53
+ k2 = 1
54
+ k1 = k1 < 0 ? o.length + k1 : k1 # abs pos
55
+ # if k1 is outside, a length of 1 always produces an empty string
56
+ if k1 < 0
57
+ EMPTY_STRING
58
+ else
59
+ o[k1, k2]
60
+ end
61
+ when 2
62
+ k1 = Utils.to_n(keys[0])
63
+ k2 = Utils.to_n(keys[1])
64
+ [k1, k2].each_with_index { |k, i| bad_string_access_key_type(o, i, k.nil? ? keys[i] : k) unless k.is_a?(Integer) }
65
+
66
+ k1 = k1 < 0 ? o.length + k1 : k1 # abs pos (negative is count from end)
67
+ k2 = k2 < 0 ? o.length - k1 + k2 + 1 : k2 # abs length (negative k2 is length from pos to end count)
68
+ # if k1 is outside, adjust to first position, and adjust length
69
+ if k1 < 0
70
+ k2 += k1
71
+ k1 = 0
72
+ end
73
+ o[k1, k2]
74
+ else
75
+ fail(Issues::BAD_STRING_SLICE_ARITY, @semantic.left_expr, { :actual => keys.size })
76
+ end
75
77
  # Specified as: an index outside of range, or empty result == empty string
76
78
  (result.nil? || result.empty?) ? EMPTY_STRING : result
77
79
  end
@@ -82,7 +84,7 @@ class AccessOperator
82
84
  keys.flatten!
83
85
  unless keys.size == 1
84
86
  blamed = keys.size == 0 ? @semantic : @semantic.keys[1]
85
- fail(Issues::BAD_TYPE_SLICE_ARITY, blamed, :base_type => o, :min=>1, :actual => keys.size)
87
+ fail(Issues::BAD_TYPE_SLICE_ARITY, blamed, :base_type => o, :min => 1, :actual => keys.size)
86
88
  end
87
89
  assert_keys(keys, o, 1, 1, String, Regexp)
88
90
  Types::TypeFactory.regexp(*keys)
@@ -94,7 +96,7 @@ class AccessOperator
94
96
  keys.flatten!
95
97
  case keys.size
96
98
  when 0
97
- fail(Issues::BAD_ARRAY_SLICE_ARITY, @semantic.left_expr, {:actual => keys.size})
99
+ fail(Issues::BAD_ARRAY_SLICE_ARITY, @semantic.left_expr, { :actual => keys.size })
98
100
  when 1
99
101
  key = coerce_numeric(keys[0], @semantic.keys[0], scope)
100
102
  unless key.is_a?(Integer)
@@ -106,7 +108,7 @@ class AccessOperator
106
108
  k1 = coerce_numeric(keys[0], @semantic.keys[0], scope)
107
109
  k2 = coerce_numeric(keys[1], @semantic.keys[1], scope)
108
110
 
109
- [k1, k2].each_with_index { |k,i| bad_access_key_type(o, i, k, Integer) unless k.is_a?(Integer) }
111
+ [k1, k2].each_with_index { |k, i| bad_access_key_type(o, i, k, Integer) unless k.is_a?(Integer) }
110
112
 
111
113
  # Help confused Ruby do the right thing (it truncates to the right, but negative index + length can never overlap
112
114
  # the available range.
@@ -114,18 +116,17 @@ class AccessOperator
114
116
  k2 = k2 < 0 ? o.length - k1 + k2 + 1 : k2 # abs length (negative k2 is length from pos to end count)
115
117
  # if k1 is outside, adjust to first position, and adjust length
116
118
  if k1 < 0
117
- k2 = k2 + k1
119
+ k2 += k1
118
120
  k1 = 0
119
121
  end
120
122
  # Help ruby always return empty array when asking for a sub array
121
- result = o[ k1, k2 ]
123
+ result = o[k1, k2]
122
124
  result.nil? ? [] : result
123
125
  else
124
- fail(Issues::BAD_ARRAY_SLICE_ARITY, @semantic.left_expr, {:actual => keys.size})
126
+ fail(Issues::BAD_ARRAY_SLICE_ARITY, @semantic.left_expr, { :actual => keys.size })
125
127
  end
126
128
  end
127
129
 
128
-
129
130
  # Evaluates <hsh>[] with support for one or more arguments. If more than one argument is used, the result
130
131
  # is an array with each lookup.
131
132
  # @note
@@ -139,7 +140,7 @@ class AccessOperator
139
140
  end
140
141
  case result.size
141
142
  when 0
142
- fail(Issues::BAD_HASH_SLICE_ARITY, @semantic.left_expr, {:actual => keys.size})
143
+ fail(Issues::BAD_HASH_SLICE_ARITY, @semantic.left_expr, { :actual => keys.size })
143
144
  when 1
144
145
  result.pop
145
146
  else
@@ -181,13 +182,15 @@ class AccessOperator
181
182
 
182
183
  def access_PTimestampType(o, scope, keys)
183
184
  keys.flatten!
184
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min=>0, :max => 2, :actual => keys.size) if keys.size > 2
185
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min => 0, :max => 2, :actual => keys.size) if keys.size > 2
186
+
185
187
  Types::TypeFactory.timestamp(*keys)
186
188
  end
187
189
 
188
190
  def access_PTimespanType(o, scope, keys)
189
191
  keys.flatten!
190
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min=>0, :max => 2, :actual => keys.size) if keys.size > 2
192
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min => 0, :max => 2, :actual => keys.size) if keys.size > 2
193
+
191
194
  Types::TypeFactory.timespan(*keys)
192
195
  end
193
196
 
@@ -207,8 +210,9 @@ class AccessOperator
207
210
  def access_PCallableType(o, scope, keys)
208
211
  if keys.size > 0 && keys[0].is_a?(Array)
209
212
  unless keys.size == 2
210
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min=>2, :max => 2, :actual => keys.size)
213
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min => 2, :max => 2, :actual => keys.size)
211
214
  end
215
+
212
216
  unless keys[1].is_a?(Types::PAnyType)
213
217
  bad_type_specialization_key_type(o, 1, k, Types::PAnyType)
214
218
  end
@@ -229,7 +233,7 @@ class AccessOperator
229
233
  when 2
230
234
  size_t = collection_size_t(0, keys[0], keys[1])
231
235
  else
232
- fail(Issues::BAD_STRING_SLICE_ARITY, @semantic, {:actual => keys.size})
236
+ fail(Issues::BAD_STRING_SLICE_ARITY, @semantic, { :actual => keys.size })
233
237
  end
234
238
  Types::TypeFactory.string(size_t)
235
239
  end
@@ -245,10 +249,11 @@ class AccessOperator
245
249
  def assert_keys(keys, o, min, max, *allowed_classes)
246
250
  size = keys.size
247
251
  unless size.between?(min, max || Float::INFINITY)
248
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min=>1, :max => max, :actual => keys.size)
252
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, :base_type => o, :min => 1, :max => max, :actual => keys.size)
249
253
  end
254
+
250
255
  keys.each_with_index do |k, i|
251
- unless allowed_classes.any? {|clazz| k.is_a?(clazz) }
256
+ unless allowed_classes.any? { |clazz| k.is_a?(clazz) }
252
257
  bad_type_specialization_key_type(o, i, k, *allowed_classes)
253
258
  end
254
259
  end
@@ -256,17 +261,17 @@ class AccessOperator
256
261
 
257
262
  def bad_access_key_type(lhs, key_index, actual, *expected_classes)
258
263
  fail(Issues::BAD_SLICE_KEY_TYPE, @semantic.keys[key_index], {
259
- :left_value => lhs,
260
- :actual => bad_key_type_name(actual),
261
- :expected_classes => expected_classes
262
- })
264
+ :left_value => lhs,
265
+ :actual => bad_key_type_name(actual),
266
+ :expected_classes => expected_classes
267
+ })
263
268
  end
264
269
 
265
270
  def bad_string_access_key_type(lhs, key_index, actual)
266
271
  fail(Issues::BAD_STRING_SLICE_KEY_TYPE, @semantic.keys[key_index], {
267
- :left_value => lhs,
268
- :actual_type => bad_key_type_name(actual),
269
- })
272
+ :left_value => lhs,
273
+ :actual_type => bad_key_type_name(actual),
274
+ })
270
275
  end
271
276
 
272
277
  def bad_key_type_name(actual)
@@ -282,11 +287,11 @@ class AccessOperator
282
287
 
283
288
  def bad_type_specialization_key_type(type, key_index, actual, *expected_classes)
284
289
  label_provider = Model::ModelLabelProvider.new()
285
- expected = expected_classes.map {|c| label_provider.label(c) }.join(' or ')
290
+ expected = expected_classes.map { |c| label_provider.label(c) }.join(' or ')
286
291
  fail(Issues::BAD_TYPE_SPECIALIZATION, @semantic.keys[key_index], {
287
- :type => type,
288
- :message => _("Cannot use %{key} where %{expected} is expected") % { key: bad_key_type_name(actual), expected: expected }
289
- })
292
+ :type => type,
293
+ :message => _("Cannot use %{key} where %{expected} is expected") % { key: bad_key_type_name(actual), expected: expected }
294
+ })
290
295
  end
291
296
 
292
297
  def access_PPatternType(o, scope, keys)
@@ -300,11 +305,12 @@ class AccessOperator
300
305
  if keys.size == 1
301
306
  param = keys[0]
302
307
  unless Types::PURIType::TYPE_URI_PARAM_TYPE.instance?(param)
303
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'URI-Type', :actual => param.class})
308
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'URI-Type', :actual => param.class })
304
309
  end
310
+
305
311
  Types::PURIType.new(param)
306
312
  else
307
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'URI-Type', :min => 1, :actual => keys.size})
313
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'URI-Type', :min => 1, :actual => keys.size })
308
314
  end
309
315
  end
310
316
 
@@ -316,12 +322,12 @@ class AccessOperator
316
322
  if type.is_a?(String)
317
323
  type = Types::TypeFactory.string(type)
318
324
  else
319
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Optional-Type', :actual => type.class})
325
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Optional-Type', :actual => type.class })
320
326
  end
321
327
  end
322
328
  Types::POptionalType.new(type)
323
329
  else
324
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Optional-Type', :min => 1, :actual => keys.size})
330
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'Optional-Type', :min => 1, :actual => keys.size })
325
331
  end
326
332
  end
327
333
 
@@ -330,11 +336,12 @@ class AccessOperator
330
336
  if keys.size == 1
331
337
  type = keys[0]
332
338
  unless type.is_a?(Types::PAnyType)
333
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Sensitive-Type', :actual => type.class})
339
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Sensitive-Type', :actual => type.class })
334
340
  end
341
+
335
342
  Types::PSensitiveType.new(type)
336
343
  else
337
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Sensitive-Type', :min => 1, :actual => keys.size})
344
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'Sensitive-Type', :min => 1, :actual => keys.size })
338
345
  end
339
346
  end
340
347
 
@@ -342,12 +349,10 @@ class AccessOperator
342
349
  keys.flatten!
343
350
  if o.resolved? && !o.name.nil?
344
351
  Types::PObjectTypeExtension.create(o, keys)
352
+ elsif keys.size == 1
353
+ Types::TypeFactory.object(keys[0])
345
354
  else
346
- if keys.size == 1
347
- Types::TypeFactory.object(keys[0])
348
- else
349
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Object-Type', :min => 1, :actual => keys.size})
350
- end
355
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'Object-Type', :min => 1, :actual => keys.size })
351
356
  end
352
357
  end
353
358
 
@@ -356,7 +361,7 @@ class AccessOperator
356
361
  if keys.size == 1
357
362
  Types::TypeFactory.type_set(keys[0])
358
363
  else
359
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'TypeSet-Type', :min => 1, :actual => keys.size})
364
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'TypeSet-Type', :min => 1, :actual => keys.size })
360
365
  end
361
366
  end
362
367
 
@@ -371,13 +376,13 @@ class AccessOperator
371
376
  when String
372
377
  type = Types::TypeFactory.string(type)
373
378
  when Types::PAnyType
374
- type = nil if type.class == Types::PAnyType
379
+ type = nil if type.instance_of?(Types::PAnyType)
375
380
  else
376
- fail(Issues::BAD_NOT_UNDEF_SLICE_TYPE, @semantic.keys[0], {:base_type => 'NotUndef-Type', :actual => type.class})
381
+ fail(Issues::BAD_NOT_UNDEF_SLICE_TYPE, @semantic.keys[0], { :base_type => 'NotUndef-Type', :actual => type.class })
377
382
  end
378
383
  Types::TypeFactory.not_undef(type)
379
384
  else
380
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'NotUndef-Type', :min => 0, :max => 1, :actual => keys.size})
385
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'NotUndef-Type', :min => 0, :max => 1, :actual => keys.size })
381
386
  end
382
387
  end
383
388
 
@@ -385,18 +390,20 @@ class AccessOperator
385
390
  keys.flatten!
386
391
  if keys.size == 1
387
392
  unless keys[0].is_a?(Types::PAnyType)
388
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Type-Type', :actual => keys[0].class})
393
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Type-Type', :actual => keys[0].class })
389
394
  end
395
+
390
396
  Types::PTypeType.new(keys[0])
391
397
  else
392
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Type-Type', :min => 1, :actual => keys.size})
398
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'Type-Type', :min => 1, :actual => keys.size })
393
399
  end
394
400
  end
395
401
 
396
402
  def access_PInitType(o, scope, keys)
397
403
  unless keys[0].is_a?(Types::PAnyType)
398
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Init-Type', :actual => keys[0].class})
404
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Init-Type', :actual => keys[0].class })
399
405
  end
406
+
400
407
  Types::TypeFactory.init(*keys)
401
408
  end
402
409
 
@@ -404,11 +411,12 @@ class AccessOperator
404
411
  keys.flatten!
405
412
  if keys.size == 1
406
413
  unless keys[0].is_a?(Types::PAnyType)
407
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Iterable-Type', :actual => keys[0].class})
414
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Iterable-Type', :actual => keys[0].class })
408
415
  end
416
+
409
417
  Types::PIterableType.new(keys[0])
410
418
  else
411
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Iterable-Type', :min => 1, :actual => keys.size})
419
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'Iterable-Type', :min => 1, :actual => keys.size })
412
420
  end
413
421
  end
414
422
 
@@ -416,11 +424,12 @@ class AccessOperator
416
424
  keys.flatten!
417
425
  if keys.size == 1
418
426
  unless keys[0].is_a?(Types::PAnyType)
419
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Iterator-Type', :actual => keys[0].class})
427
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Iterator-Type', :actual => keys[0].class })
420
428
  end
429
+
421
430
  Types::PIteratorType.new(keys[0])
422
431
  else
423
- fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {:base_type => 'Iterator-Type', :min => 1, :actual => keys.size})
432
+ fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, { :base_type => 'Iterator-Type', :min => 1, :actual => keys.size })
424
433
  end
425
434
  end
426
435
 
@@ -434,11 +443,12 @@ class AccessOperator
434
443
  def access_PIntegerType(o, scope, keys)
435
444
  keys.flatten!
436
445
  unless keys.size.between?(1, 2)
437
- fail(Issues::BAD_INTEGER_SLICE_ARITY, @semantic, {:actual => keys.size})
446
+ fail(Issues::BAD_INTEGER_SLICE_ARITY, @semantic, { :actual => keys.size })
438
447
  end
448
+
439
449
  keys.each_with_index do |x, index|
440
450
  fail(Issues::BAD_INTEGER_SLICE_TYPE, @semantic.keys[index],
441
- {:actual => x.class}) unless (x.is_a?(Integer) || x == :default)
451
+ { :actual => x.class }) unless x.is_a?(Integer) || x == :default
442
452
  end
443
453
  Types::PIntegerType.new(*keys)
444
454
  end
@@ -446,11 +456,12 @@ class AccessOperator
446
456
  def access_PFloatType(o, scope, keys)
447
457
  keys.flatten!
448
458
  unless keys.size.between?(1, 2)
449
- fail(Issues::BAD_FLOAT_SLICE_ARITY, @semantic, {:actual => keys.size})
459
+ fail(Issues::BAD_FLOAT_SLICE_ARITY, @semantic, { :actual => keys.size })
450
460
  end
461
+
451
462
  keys.each_with_index do |x, index|
452
463
  fail(Issues::BAD_FLOAT_SLICE_TYPE, @semantic.keys[index],
453
- {:actual => x.class}) unless (x.is_a?(Float) || x.is_a?(Integer) || x == :default)
464
+ { :actual => x.class }) unless x.is_a?(Float) || x.is_a?(Integer) || x == :default
454
465
  end
455
466
  from, to = keys
456
467
  from = from == :default || from.nil? ? nil : Float(from)
@@ -468,9 +479,9 @@ class AccessOperator
468
479
  return Types::PHashType.new(nil, nil, Types::PIntegerType.new(*keys))
469
480
  end
470
481
 
471
- keys[0,2].each_with_index do |k, index|
482
+ keys[0, 2].each_with_index do |k, index|
472
483
  unless k.is_a?(Types::PAnyType)
473
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[index], {:base_type => 'Hash-Type', :actual => k.class})
484
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[index], { :base_type => 'Hash-Type', :actual => k.class })
474
485
  end
475
486
  end
476
487
  case keys.size
@@ -483,8 +494,8 @@ class AccessOperator
483
494
  size_t = collection_size_t(2, keys[2], keys[3])
484
495
  else
485
496
  fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic, {
486
- :base_type => 'Hash-Type', :min => 2, :max => 4, :actual => keys.size
487
- })
497
+ :base_type => 'Hash-Type', :min => 2, :max => 4, :actual => keys.size
498
+ })
488
499
  end
489
500
  Types::PHashType.new(keys[0], keys[1], size_t)
490
501
  end
@@ -499,7 +510,7 @@ class AccessOperator
499
510
  size_t = collection_size_t(0, keys[0], keys[1])
500
511
  else
501
512
  fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic,
502
- {:base_type => 'Collection-Type', :min => 1, :max => 2, :actual => keys.size})
513
+ { :base_type => 'Collection-Type', :min => 1, :max => 2, :actual => keys.size })
503
514
  end
504
515
  Types::PCollectionType.new(size_t)
505
516
  end
@@ -511,8 +522,9 @@ class AccessOperator
511
522
  case keys.size
512
523
  when 1
513
524
  unless keys[0].is_a?(Types::PAnyType)
514
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Array-Type', :actual => keys[0].class})
525
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Array-Type', :actual => keys[0].class })
515
526
  end
527
+
516
528
  type = keys[0]
517
529
  size_t = nil
518
530
  when 2
@@ -528,11 +540,11 @@ class AccessOperator
528
540
  size_t = collection_size_t(1, keys[1], keys[2])
529
541
  type = keys[0]
530
542
  else
531
- fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], {:base_type => 'Array-Type', :actual => keys[0].class})
543
+ fail(Issues::BAD_TYPE_SLICE_TYPE, @semantic.keys[0], { :base_type => 'Array-Type', :actual => keys[0].class })
532
544
  end
533
545
  else
534
546
  fail(Issues::BAD_TYPE_SLICE_ARITY, @semantic,
535
- {:base_type => 'Array-Type', :min => 1, :max => 3, :actual => keys.size})
547
+ { :base_type => 'Array-Type', :min => 1, :max => 3, :actual => keys.size })
536
548
  end
537
549
  Types::PArrayType.new(type, size_t)
538
550
  end
@@ -544,7 +556,7 @@ class AccessOperator
544
556
  else
545
557
  keys.each_with_index do |x, index|
546
558
  fail(Issues::BAD_COLLECTION_SLICE_TYPE, @semantic.keys[start_index + index],
547
- {:actual => x.class}) unless (x.is_a?(Integer) || x == :default)
559
+ { :actual => x.class }) unless x.is_a?(Integer) || x == :default
548
560
  end
549
561
  Types::PIntegerType.new(*keys)
550
562
  end
@@ -563,7 +575,7 @@ class AccessOperator
563
575
 
564
576
  # If a type reference is encountered here, it's an error
565
577
  def access_PTypeReferenceType(o, scope, keys)
566
- fail(Issues::UNKNOWN_RESOURCE_TYPE, @semantic, {:type_name => o.type_string })
578
+ fail(Issues::UNKNOWN_RESOURCE_TYPE, @semantic, { :type_name => o.type_string })
567
579
  end
568
580
 
569
581
  # A Resource can create a new more specific Resource type, and/or an array of resource types
@@ -583,7 +595,7 @@ class AccessOperator
583
595
 
584
596
  if keys.size == 0
585
597
  fail(Issues::BAD_TYPE_SLICE_ARITY, blamed,
586
- :base_type => o.to_s, :min => 1, :max => -1, :actual => 0)
598
+ :base_type => o.to_s, :min => 1, :max => -1, :actual => 0)
587
599
  end
588
600
 
589
601
  # Must know which concrete resource type to operate on in all cases.
@@ -591,19 +603,19 @@ class AccessOperator
591
603
  # type_name is LHS type_name if set, else the first given arg
592
604
  type_name = o.type_name || Types::TypeFormatter.singleton.capitalize_segments(keys.shift)
593
605
  type_name = case type_name
594
- when Types::PResourceType
595
- type_name.type_name
596
- when String
597
- type_name
598
- else
599
- # blame given left expression if it defined the type, else the first given key expression
600
- blame = o.type_name.nil? ? @semantic.keys[0] : @semantic.left_expr
601
- fail(Issues::ILLEGAL_RESOURCE_SPECIALIZATION, blame, {:actual => bad_key_type_name(type_name)})
602
- end
606
+ when Types::PResourceType
607
+ type_name.type_name
608
+ when String
609
+ type_name
610
+ else
611
+ # blame given left expression if it defined the type, else the first given key expression
612
+ blame = o.type_name.nil? ? @semantic.keys[0] : @semantic.left_expr
613
+ fail(Issues::ILLEGAL_RESOURCE_SPECIALIZATION, blame, { :actual => bad_key_type_name(type_name) })
614
+ end
603
615
 
604
616
  # type name must conform
605
617
  if type_name !~ Patterns::CLASSREF_EXT
606
- fail(Issues::ILLEGAL_CLASSREF, blamed, {:name=>type_name})
618
+ fail(Issues::ILLEGAL_CLASSREF, blamed, { :name => type_name })
607
619
  end
608
620
 
609
621
  # The result is an array if multiple titles are given, or if titles are specified with an array
@@ -623,41 +635,40 @@ class AccessOperator
623
635
  return result_type_array ? [] : nil
624
636
  end
625
637
 
626
- if !o.title.nil?
638
+ unless o.title.nil?
627
639
  # lookup resource and return one or more parameter values
628
640
  resource = find_resource(scope, o.type_name, o.title)
629
641
  unless resource
630
- fail(Issues::UNKNOWN_RESOURCE, @semantic, {:type_name => o.type_name, :title => o.title})
642
+ fail(Issues::UNKNOWN_RESOURCE, @semantic, { :type_name => o.type_name, :title => o.title })
631
643
  end
632
644
 
633
645
  result = keys.map do |k|
634
646
  unless is_parameter_of_resource?(scope, resource, k)
635
647
  fail(Issues::UNKNOWN_RESOURCE_PARAMETER, @semantic,
636
- {:type_name => o.type_name, :title => o.title, :param_name=>k})
648
+ { :type_name => o.type_name, :title => o.title, :param_name => k })
637
649
  end
638
650
  get_resource_parameter_value(scope, resource, k)
639
651
  end
640
652
  return result_type_array ? result : result.pop
641
653
  end
642
654
 
643
-
644
655
  keys = [:no_title] if keys.size < 1 # if there was only a type_name and it was consumed
645
656
  result = keys.each_with_index.map do |t, i|
646
657
  unless t.is_a?(String) || t == :no_title
647
- index = keys_orig_size != keys.size ? i+1 : i
658
+ index = keys_orig_size != keys.size ? i + 1 : i
648
659
  fail(Issues::BAD_TYPE_SPECIALIZATION, @semantic.keys[index], {
649
- :type => o,
650
- :message => "Cannot use #{bad_key_type_name(t)} where a resource title String is expected"
651
- })
660
+ :type => o,
661
+ :message => "Cannot use #{bad_key_type_name(t)} where a resource title String is expected"
662
+ })
652
663
  end
653
664
 
654
665
  Types::PResourceType.new(type_name, t == :no_title ? nil : t)
655
666
  end
656
667
  # returns single type if request was for a single entity, else an array of types (possibly empty)
657
- return result_type_array ? result : result.pop
668
+ result_type_array ? result : result.pop
658
669
  end
659
670
 
660
- NS = '::'.freeze
671
+ NS = '::'
661
672
 
662
673
  def access_PClassType(o, scope, keys)
663
674
  blamed = keys.size == 0 ? @semantic : @semantic.keys[0]
@@ -665,7 +676,7 @@ class AccessOperator
665
676
 
666
677
  if keys_orig_size == 0
667
678
  fail(Issues::BAD_TYPE_SLICE_ARITY, blamed,
668
- :base_type => o.to_s, :min => 1, :max => -1, :actual => 0)
679
+ :base_type => o.to_s, :min => 1, :max => -1, :actual => 0)
669
680
  end
670
681
 
671
682
  # The result is an array if multiple classnames are given, or if classnames are specified with an array
@@ -686,12 +697,14 @@ class AccessOperator
686
697
 
687
698
  if o.class_name.nil?
688
699
  result = keys.each_with_index.map do |c, i|
689
- fail(Issues::ILLEGAL_HOSTCLASS_NAME, @semantic.keys[i], {:name => c}) unless c.is_a?(String)
700
+ fail(Issues::ILLEGAL_HOSTCLASS_NAME, @semantic.keys[i], { :name => c }) unless c.is_a?(String)
701
+
690
702
  name = c.downcase
691
703
  # Remove leading '::' since all references are global, and 3x runtime does the wrong thing
692
- name = name[2..-1] if name[0,2] == NS
704
+ name = name[2..] if name[0, 2] == NS
705
+
706
+ fail(Issues::ILLEGAL_NAME, @semantic.keys[i], { :name => c }) unless name =~ Patterns::NAME
693
707
 
694
- fail(Issues::ILLEGAL_NAME, @semantic.keys[i], {:name=>c}) unless name =~ Patterns::NAME
695
708
  Types::PClassType.new(name)
696
709
  end
697
710
  else
@@ -703,16 +716,16 @@ class AccessOperator
703
716
  get_resource_parameter_value(scope, resource, k)
704
717
  else
705
718
  fail(Issues::UNKNOWN_RESOURCE_PARAMETER, @semantic,
706
- {:type_name => 'Class', :title => o.class_name, :param_name=>k})
719
+ { :type_name => 'Class', :title => o.class_name, :param_name => k })
707
720
  end
708
721
  end
709
722
  else
710
- fail(Issues::UNKNOWN_RESOURCE, @semantic, {:type_name => 'Class', :title => o.class_name})
723
+ fail(Issues::UNKNOWN_RESOURCE, @semantic, { :type_name => 'Class', :title => o.class_name })
711
724
  end
712
725
  end
713
726
 
714
727
  # returns single type as type, else an array of types
715
- return result_type_array ? result : result.pop
728
+ result_type_array ? result : result.pop
716
729
  end
717
730
  end
718
731
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # CallableSignature
2
4
  # ===
3
5
  # A CallableSignature describes how something callable expects to be called.
@@ -6,7 +8,6 @@
6
8
  # @api public
7
9
  #
8
10
  class Puppet::Pops::Evaluator::CallableSignature
9
-
10
11
  # Returns the names of the parameters as an array of strings. This does not include the name
11
12
  # of an optional block parameter.
12
13
  #
@@ -21,7 +22,7 @@ class Puppet::Pops::Evaluator::CallableSignature
21
22
  # @api public
22
23
  #
23
24
  def parameter_names
24
- raise NotImplementedError.new
25
+ raise NotImplementedError
25
26
  end
26
27
 
27
28
  # Returns a PCallableType with the type information, required and optional count, and type information about
@@ -33,7 +34,7 @@ class Puppet::Pops::Evaluator::CallableSignature
33
34
  # @api public
34
35
  #
35
36
  def type
36
- raise NotImplementedError.new
37
+ raise NotImplementedError
37
38
  end
38
39
 
39
40
  # Returns the expected type for an optional block. The type may be nil, which means that the callable does
@@ -55,7 +56,7 @@ class Puppet::Pops::Evaluator::CallableSignature
55
56
  # @api public
56
57
  #
57
58
  def block_name
58
- raise NotImplementedError.new
59
+ raise NotImplementedError
59
60
  end
60
61
 
61
62
  # Returns a range indicating the optionality of a block. One of [0,0] (does not accept block), [0,1] (optional
@@ -86,7 +87,7 @@ class Puppet::Pops::Evaluator::CallableSignature
86
87
  # @api public
87
88
  #
88
89
  def last_captures_rest?
89
- raise NotImplementedError.new
90
+ raise NotImplementedError
90
91
  end
91
92
 
92
93
  # Returns true if the given x is infinity