puppet 8.5.0-universal-darwin → 8.6.0-universal-darwin

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 (543) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +29 -26
  3. data/ext/windows/service/daemon.rb +49 -55
  4. data/lib/hiera/scope.rb +3 -3
  5. data/lib/hiera_puppet.rb +1 -1
  6. data/lib/puppet/agent/disabler.rb +1 -1
  7. data/lib/puppet/application/agent.rb +2 -2
  8. data/lib/puppet/application/apply.rb +2 -2
  9. data/lib/puppet/application/describe.rb +6 -6
  10. data/lib/puppet/application/device.rb +99 -100
  11. data/lib/puppet/application/doc.rb +1 -1
  12. data/lib/puppet/application/face_base.rb +7 -7
  13. data/lib/puppet/application/filebucket.rb +1 -1
  14. data/lib/puppet/application/lookup.rb +5 -5
  15. data/lib/puppet/application/resource.rb +10 -3
  16. data/lib/puppet/application/ssl.rb +3 -3
  17. data/lib/puppet/application.rb +16 -18
  18. data/lib/puppet/coercion.rb +1 -1
  19. data/lib/puppet/configurer/downloader.rb +9 -4
  20. data/lib/puppet/configurer/fact_handler.rb +12 -13
  21. data/lib/puppet/configurer.rb +16 -18
  22. data/lib/puppet/confine/feature.rb +1 -1
  23. data/lib/puppet/confine/variable.rb +1 -1
  24. data/lib/puppet/confine.rb +2 -2
  25. data/lib/puppet/confine_collection.rb +1 -1
  26. data/lib/puppet/confiner.rb +2 -2
  27. data/lib/puppet/daemon.rb +3 -3
  28. data/lib/puppet/datatypes.rb +5 -6
  29. data/lib/puppet/defaults.rb +14 -8
  30. data/lib/puppet/environments.rb +3 -7
  31. data/lib/puppet/error.rb +3 -3
  32. data/lib/puppet/external/dot.rb +42 -34
  33. data/lib/puppet/face/catalog/select.rb +1 -1
  34. data/lib/puppet/face/epp.rb +7 -9
  35. data/lib/puppet/face/help.rb +12 -12
  36. data/lib/puppet/face/module/changes.rb +1 -3
  37. data/lib/puppet/face/module/list.rb +37 -37
  38. data/lib/puppet/face/node/clean.rb +1 -1
  39. data/lib/puppet/face/parser.rb +6 -8
  40. data/lib/puppet/face/report.rb +5 -7
  41. data/lib/puppet/facter_impl.rb +1 -1
  42. data/lib/puppet/feature/base.rb +9 -11
  43. data/lib/puppet/feature/pe_license.rb +1 -1
  44. data/lib/puppet/feature/ssh.rb +1 -1
  45. data/lib/puppet/feature/telnet.rb +3 -5
  46. data/lib/puppet/feature/zlib.rb +1 -1
  47. data/lib/puppet/ffi/windows/constants.rb +1 -1
  48. data/lib/puppet/ffi/windows/functions.rb +2 -2
  49. data/lib/puppet/ffi/windows/structs.rb +3 -3
  50. data/lib/puppet/file_bucket/dipper.rb +4 -4
  51. data/lib/puppet/file_bucket/file.rb +4 -4
  52. data/lib/puppet/file_serving/base.rb +5 -5
  53. data/lib/puppet/file_serving/configuration/parser.rb +9 -9
  54. data/lib/puppet/file_serving/configuration.rb +3 -3
  55. data/lib/puppet/file_serving/fileset.rb +13 -13
  56. data/lib/puppet/file_serving/http_metadata.rb +1 -1
  57. data/lib/puppet/file_serving/metadata.rb +13 -9
  58. data/lib/puppet/file_serving/mount/file.rb +6 -6
  59. data/lib/puppet/file_serving/mount/locales.rb +2 -4
  60. data/lib/puppet/file_serving/mount/pluginfacts.rb +2 -4
  61. data/lib/puppet/file_serving/mount/plugins.rb +2 -4
  62. data/lib/puppet/file_serving/mount.rb +1 -1
  63. data/lib/puppet/file_system/file_impl.rb +3 -3
  64. data/lib/puppet/file_system/memory_impl.rb +1 -1
  65. data/lib/puppet/file_system/path_pattern.rb +1 -1
  66. data/lib/puppet/file_system/uniquefile.rb +17 -16
  67. data/lib/puppet/file_system/windows.rb +26 -18
  68. data/lib/puppet/forge/cache.rb +2 -2
  69. data/lib/puppet/forge/errors.rb +1 -1
  70. data/lib/puppet/forge/repository.rb +2 -2
  71. data/lib/puppet/forge.rb +13 -19
  72. data/lib/puppet/functions/abs.rb +2 -2
  73. data/lib/puppet/functions/camelcase.rb +1 -1
  74. data/lib/puppet/functions/compare.rb +2 -2
  75. data/lib/puppet/functions/contain.rb +1 -1
  76. data/lib/puppet/functions/defined.rb +2 -2
  77. data/lib/puppet/functions/dig.rb +1 -1
  78. data/lib/puppet/functions/eyaml_lookup_key.rb +11 -13
  79. data/lib/puppet/functions/get.rb +1 -1
  80. data/lib/puppet/functions/hocon_data.rb +3 -5
  81. data/lib/puppet/functions/import.rb +1 -1
  82. data/lib/puppet/functions/json_data.rb +4 -6
  83. data/lib/puppet/functions/max.rb +2 -2
  84. data/lib/puppet/functions/min.rb +2 -2
  85. data/lib/puppet/functions/new.rb +1 -1
  86. data/lib/puppet/functions/reduce.rb +6 -10
  87. data/lib/puppet/functions/regsubst.rb +2 -2
  88. data/lib/puppet/functions/require.rb +1 -1
  89. data/lib/puppet/functions/yaml_data.rb +11 -13
  90. data/lib/puppet/functions.rb +32 -37
  91. data/lib/puppet/generate/type.rb +2 -2
  92. data/lib/puppet/gettext/config.rb +9 -9
  93. data/lib/puppet/graph/rb_tree_map.rb +31 -23
  94. data/lib/puppet/graph/relationship_graph.rb +12 -12
  95. data/lib/puppet/graph/simple_graph.rb +8 -10
  96. data/lib/puppet/http/client.rb +1 -1
  97. data/lib/puppet/http/dns.rb +4 -4
  98. data/lib/puppet/http/external_client.rb +1 -1
  99. data/lib/puppet/http/factory.rb +1 -1
  100. data/lib/puppet/http/proxy.rb +15 -15
  101. data/lib/puppet/http/redirector.rb +6 -2
  102. data/lib/puppet/http/resolver.rb +2 -2
  103. data/lib/puppet/http/retry_after_handler.rb +2 -2
  104. data/lib/puppet/http/service/ca.rb +1 -1
  105. data/lib/puppet/http/service/compiler.rb +4 -4
  106. data/lib/puppet/http/service/file_server.rb +1 -1
  107. data/lib/puppet/http/service/report.rb +2 -2
  108. data/lib/puppet/http/service.rb +9 -13
  109. data/lib/puppet/http/session.rb +1 -1
  110. data/lib/puppet/http/site.rb +1 -1
  111. data/lib/puppet/indirector/catalog/compiler.rb +44 -45
  112. data/lib/puppet/indirector/catalog/rest.rb +7 -5
  113. data/lib/puppet/indirector/catalog/store_configs.rb +1 -1
  114. data/lib/puppet/indirector/exec.rb +2 -2
  115. data/lib/puppet/indirector/face.rb +7 -9
  116. data/lib/puppet/indirector/fact_search.rb +1 -1
  117. data/lib/puppet/indirector/facts/facter.rb +6 -6
  118. data/lib/puppet/indirector/facts/json.rb +1 -1
  119. data/lib/puppet/indirector/facts/store_configs.rb +1 -1
  120. data/lib/puppet/indirector/file_bucket_file/file.rb +17 -17
  121. data/lib/puppet/indirector/file_bucket_file/rest.rb +3 -3
  122. data/lib/puppet/indirector/file_content/rest.rb +1 -1
  123. data/lib/puppet/indirector/file_metadata/rest.rb +1 -1
  124. data/lib/puppet/indirector/hiera.rb +1 -1
  125. data/lib/puppet/indirector/indirection.rb +27 -29
  126. data/lib/puppet/indirector/json.rb +4 -4
  127. data/lib/puppet/indirector/memory.rb +2 -2
  128. data/lib/puppet/indirector/msgpack.rb +5 -5
  129. data/lib/puppet/indirector/node/store_configs.rb +1 -1
  130. data/lib/puppet/indirector/none.rb +1 -1
  131. data/lib/puppet/indirector/report/json.rb +1 -1
  132. data/lib/puppet/indirector/report/yaml.rb +1 -1
  133. data/lib/puppet/indirector/request.rb +4 -4
  134. data/lib/puppet/indirector/resource/ral.rb +2 -4
  135. data/lib/puppet/indirector/resource/store_configs.rb +1 -1
  136. data/lib/puppet/indirector/terminus.rb +4 -4
  137. data/lib/puppet/indirector/yaml.rb +3 -3
  138. data/lib/puppet/info_service/class_information_service.rb +5 -8
  139. data/lib/puppet/info_service/task_information_service.rb +6 -7
  140. data/lib/puppet/interface/action.rb +5 -5
  141. data/lib/puppet/interface/action_manager.rb +5 -5
  142. data/lib/puppet/interface/documentation.rb +5 -5
  143. data/lib/puppet/interface/face_collection.rb +7 -7
  144. data/lib/puppet/interface/option.rb +2 -2
  145. data/lib/puppet/interface/option_manager.rb +6 -6
  146. data/lib/puppet/interface.rb +4 -4
  147. data/lib/puppet/metatype/manager.rb +2 -2
  148. data/lib/puppet/module/plan.rb +10 -10
  149. data/lib/puppet/module/task.rb +8 -8
  150. data/lib/puppet/module.rb +39 -41
  151. data/lib/puppet/module_tool/applications/application.rb +10 -8
  152. data/lib/puppet/module_tool/applications/installer.rb +53 -50
  153. data/lib/puppet/module_tool/applications/unpacker.rb +6 -8
  154. data/lib/puppet/module_tool/applications/upgrader.rb +37 -34
  155. data/lib/puppet/module_tool/checksums.rb +2 -2
  156. data/lib/puppet/module_tool/dependency.rb +1 -1
  157. data/lib/puppet/module_tool/errors/base.rb +1 -1
  158. data/lib/puppet/module_tool/install_directory.rb +1 -1
  159. data/lib/puppet/module_tool/local_tarball.rb +3 -5
  160. data/lib/puppet/module_tool/metadata.rb +12 -8
  161. data/lib/puppet/module_tool/shared_behaviors.rb +27 -12
  162. data/lib/puppet/module_tool/tar/mini.rb +3 -3
  163. data/lib/puppet/module_tool.rb +4 -4
  164. data/lib/puppet/network/client_request.rb +5 -3
  165. data/lib/puppet/network/format.rb +2 -2
  166. data/lib/puppet/network/format_support.rb +1 -1
  167. data/lib/puppet/network/formats.rb +1 -1
  168. data/lib/puppet/network/http/api/indirected_routes.rb +24 -44
  169. data/lib/puppet/network/http/api/server/v3.rb +1 -1
  170. data/lib/puppet/network/http/connection.rb +1 -1
  171. data/lib/puppet/network/http/handler.rb +8 -12
  172. data/lib/puppet/network/http/request.rb +1 -1
  173. data/lib/puppet/network/http/route.rb +9 -9
  174. data/lib/puppet/node/environment.rb +21 -23
  175. data/lib/puppet/node/facts.rb +1 -1
  176. data/lib/puppet/node.rb +5 -5
  177. data/lib/puppet/pal/json_catalog_encoder.rb +1 -1
  178. data/lib/puppet/pal/pal_impl.rb +48 -50
  179. data/lib/puppet/pal/plan_signature.rb +1 -1
  180. data/lib/puppet/pal/task_signature.rb +1 -1
  181. data/lib/puppet/parameter/package_options.rb +1 -1
  182. data/lib/puppet/parameter/value.rb +2 -2
  183. data/lib/puppet/parameter/value_collection.rb +7 -7
  184. data/lib/puppet/parameter.rb +8 -9
  185. data/lib/puppet/parser/ast/block_expression.rb +2 -2
  186. data/lib/puppet/parser/ast/hostclass.rb +1 -1
  187. data/lib/puppet/parser/ast/pops_bridge.rb +3 -4
  188. data/lib/puppet/parser/ast/resource.rb +4 -4
  189. data/lib/puppet/parser/ast/resourceparam.rb +4 -4
  190. data/lib/puppet/parser/ast.rb +14 -15
  191. data/lib/puppet/parser/compiler.rb +26 -28
  192. data/lib/puppet/parser/functions/create_resources.rb +3 -3
  193. data/lib/puppet/parser/functions/fail.rb +1 -1
  194. data/lib/puppet/parser/functions/generate.rb +2 -2
  195. data/lib/puppet/parser/functions/tag.rb +1 -1
  196. data/lib/puppet/parser/functions.rb +2 -2
  197. data/lib/puppet/parser/relationship.rb +3 -1
  198. data/lib/puppet/parser/resource/param.rb +2 -2
  199. data/lib/puppet/parser/resource.rb +23 -23
  200. data/lib/puppet/parser/scope.rb +10 -10
  201. data/lib/puppet/parser/script_compiler.rb +1 -1
  202. data/lib/puppet/parser/templatewrapper.rb +1 -1
  203. data/lib/puppet/parser/type_loader.rb +10 -12
  204. data/lib/puppet/parser.rb +1 -1
  205. data/lib/puppet/pops/adaptable.rb +1 -1
  206. data/lib/puppet/pops/evaluator/access_operator.rb +8 -8
  207. data/lib/puppet/pops/evaluator/callable_signature.rb +4 -4
  208. data/lib/puppet/pops/evaluator/collector_transformer.rb +4 -4
  209. data/lib/puppet/pops/evaluator/collectors/abstract_collector.rb +7 -7
  210. data/lib/puppet/pops/evaluator/collectors/fixed_set_collector.rb +6 -6
  211. data/lib/puppet/pops/evaluator/compare_operator.rb +10 -10
  212. data/lib/puppet/pops/evaluator/deferred_resolver.rb +1 -1
  213. data/lib/puppet/pops/evaluator/epp_evaluator.rb +2 -2
  214. data/lib/puppet/pops/evaluator/evaluator_impl.rb +56 -60
  215. data/lib/puppet/pops/evaluator/literal_evaluator.rb +4 -0
  216. data/lib/puppet/pops/evaluator/relationship_operator.rb +2 -2
  217. data/lib/puppet/pops/evaluator/runtime3_converter.rb +3 -3
  218. data/lib/puppet/pops/evaluator/runtime3_support.rb +1 -1
  219. data/lib/puppet/pops/functions/dispatcher.rb +3 -3
  220. data/lib/puppet/pops/functions/function.rb +14 -16
  221. data/lib/puppet/pops/issue_reporter.rb +2 -2
  222. data/lib/puppet/pops/label_provider.rb +2 -2
  223. data/lib/puppet/pops/loader/dependency_loader.rb +3 -3
  224. data/lib/puppet/pops/loader/loader.rb +4 -4
  225. data/lib/puppet/pops/loader/loader_paths.rb +3 -3
  226. data/lib/puppet/pops/loader/module_loaders.rb +11 -11
  227. data/lib/puppet/pops/loader/ruby_data_type_instantiator.rb +1 -1
  228. data/lib/puppet/pops/loader/ruby_function_instantiator.rb +1 -1
  229. data/lib/puppet/pops/loader/ruby_legacy_function_instantiator.rb +5 -1
  230. data/lib/puppet/pops/loader/static_loader.rb +3 -3
  231. data/lib/puppet/pops/loaders.rb +3 -3
  232. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +1 -1
  233. data/lib/puppet/pops/lookup/explainer.rb +2 -2
  234. data/lib/puppet/pops/lookup/global_data_provider.rb +1 -1
  235. data/lib/puppet/pops/lookup/hiera_config.rb +15 -11
  236. data/lib/puppet/pops/lookup/interpolation.rb +3 -3
  237. data/lib/puppet/pops/lookup/key_recorder.rb +1 -1
  238. data/lib/puppet/pops/lookup/location_resolver.rb +1 -1
  239. data/lib/puppet/pops/lookup/lookup_adapter.rb +7 -7
  240. data/lib/puppet/pops/lookup/sub_lookup.rb +1 -1
  241. data/lib/puppet/pops/merge_strategy.rb +6 -6
  242. data/lib/puppet/pops/migration/migration_checker.rb +1 -1
  243. data/lib/puppet/pops/model/ast_transformer.rb +9 -11
  244. data/lib/puppet/pops/model/factory.rb +4 -5
  245. data/lib/puppet/pops/parser/epp_parser.rb +2 -2
  246. data/lib/puppet/pops/parser/epp_support.rb +1 -1
  247. data/lib/puppet/pops/parser/evaluating_parser.rb +2 -2
  248. data/lib/puppet/pops/parser/heredoc_support.rb +4 -4
  249. data/lib/puppet/pops/parser/interpolation_support.rb +3 -3
  250. data/lib/puppet/pops/parser/lexer2.rb +20 -12
  251. data/lib/puppet/pops/parser/lexer_support.rb +1 -1
  252. data/lib/puppet/pops/parser/locator.rb +4 -4
  253. data/lib/puppet/pops/parser/parser_support.rb +12 -14
  254. data/lib/puppet/pops/parser/pn_parser.rb +3 -3
  255. data/lib/puppet/pops/parser/slurp_support.rb +8 -8
  256. data/lib/puppet/pops/patterns.rb +12 -12
  257. data/lib/puppet/pops/pcore.rb +1 -1
  258. data/lib/puppet/pops/pn.rb +2 -2
  259. data/lib/puppet/pops/puppet_stack.rb +1 -1
  260. data/lib/puppet/pops/resource/resource_type_impl.rb +1 -1
  261. data/lib/puppet/pops/serialization/abstract_reader.rb +2 -2
  262. data/lib/puppet/pops/serialization/abstract_writer.rb +3 -3
  263. data/lib/puppet/pops/time/timestamp.rb +1 -1
  264. data/lib/puppet/pops/types/class_loader.rb +4 -6
  265. data/lib/puppet/pops/types/iterable.rb +1 -1
  266. data/lib/puppet/pops/types/p_binary_type.rb +1 -1
  267. data/lib/puppet/pops/types/p_init_type.rb +1 -1
  268. data/lib/puppet/pops/types/p_object_type.rb +5 -5
  269. data/lib/puppet/pops/types/p_object_type_extension.rb +4 -6
  270. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +1 -1
  271. data/lib/puppet/pops/types/p_sensitive_type.rb +1 -1
  272. data/lib/puppet/pops/types/p_timespan_type.rb +2 -2
  273. data/lib/puppet/pops/types/p_type_set_type.rb +10 -10
  274. data/lib/puppet/pops/types/p_uri_type.rb +4 -4
  275. data/lib/puppet/pops/types/recursion_guard.rb +4 -4
  276. data/lib/puppet/pops/types/ruby_generator.rb +2 -2
  277. data/lib/puppet/pops/types/string_converter.rb +12 -8
  278. data/lib/puppet/pops/types/tree_iterators.rb +4 -6
  279. data/lib/puppet/pops/types/type_calculator.rb +10 -10
  280. data/lib/puppet/pops/types/type_factory.rb +7 -3
  281. data/lib/puppet/pops/types/type_formatter.rb +22 -24
  282. data/lib/puppet/pops/types/type_mismatch_describer.rb +24 -24
  283. data/lib/puppet/pops/types/types.rb +28 -24
  284. data/lib/puppet/pops/utils.rb +38 -42
  285. data/lib/puppet/pops/validation/checker4_0.rb +10 -10
  286. data/lib/puppet/pops/validation/tasks_checker.rb +1 -1
  287. data/lib/puppet/pops/validation/validator_factory_4_0.rb +2 -0
  288. data/lib/puppet/pops/validation.rb +4 -4
  289. data/lib/puppet/pops/visitor.rb +2 -2
  290. data/lib/puppet/property/ensure.rb +12 -14
  291. data/lib/puppet/property/keyvalue.rb +4 -4
  292. data/lib/puppet/property/list.rb +4 -4
  293. data/lib/puppet/property/ordered_list.rb +1 -1
  294. data/lib/puppet/property.rb +31 -33
  295. data/lib/puppet/provider/exec.rb +2 -2
  296. data/lib/puppet/provider/file/posix.rb +19 -17
  297. data/lib/puppet/provider/file/windows.rb +13 -19
  298. data/lib/puppet/provider/group/directoryservice.rb +3 -2
  299. data/lib/puppet/provider/group/groupadd.rb +4 -4
  300. data/lib/puppet/provider/group/windows_adsi.rb +2 -2
  301. data/lib/puppet/provider/nameservice/directoryservice.rb +29 -29
  302. data/lib/puppet/provider/nameservice/objectadd.rb +2 -4
  303. data/lib/puppet/provider/nameservice/pw.rb +1 -2
  304. data/lib/puppet/provider/nameservice.rb +8 -8
  305. data/lib/puppet/provider/package/aix.rb +19 -19
  306. data/lib/puppet/provider/package/appdmg.rb +2 -2
  307. data/lib/puppet/provider/package/apple.rb +1 -1
  308. data/lib/puppet/provider/package/apt.rb +18 -18
  309. data/lib/puppet/provider/package/aptitude.rb +1 -3
  310. data/lib/puppet/provider/package/aptrpm.rb +9 -9
  311. data/lib/puppet/provider/package/blastwave.rb +10 -14
  312. data/lib/puppet/provider/package/dnfmodule.rb +3 -3
  313. data/lib/puppet/provider/package/dpkg.rb +11 -13
  314. data/lib/puppet/provider/package/fink.rb +14 -14
  315. data/lib/puppet/provider/package/freebsd.rb +1 -1
  316. data/lib/puppet/provider/package/gem.rb +12 -14
  317. data/lib/puppet/provider/package/macports.rb +2 -2
  318. data/lib/puppet/provider/package/nim.rb +10 -10
  319. data/lib/puppet/provider/package/openbsd.rb +22 -22
  320. data/lib/puppet/provider/package/opkg.rb +6 -6
  321. data/lib/puppet/provider/package/pacman.rb +35 -29
  322. data/lib/puppet/provider/package/pip.rb +25 -24
  323. data/lib/puppet/provider/package/pkg.rb +15 -15
  324. data/lib/puppet/provider/package/pkgdmg.rb +10 -10
  325. data/lib/puppet/provider/package/pkgin.rb +2 -2
  326. data/lib/puppet/provider/package/pkgng.rb +5 -5
  327. data/lib/puppet/provider/package/pkgutil.rb +17 -21
  328. data/lib/puppet/provider/package/portage.rb +59 -61
  329. data/lib/puppet/provider/package/ports.rb +12 -11
  330. data/lib/puppet/provider/package/portupgrade.rb +35 -35
  331. data/lib/puppet/provider/package/puppetserver_gem.rb +10 -9
  332. data/lib/puppet/provider/package/rpm.rb +26 -26
  333. data/lib/puppet/provider/package/rug.rb +7 -9
  334. data/lib/puppet/provider/package/sun.rb +4 -4
  335. data/lib/puppet/provider/package/up2date.rb +5 -7
  336. data/lib/puppet/provider/package/urpmi.rb +6 -6
  337. data/lib/puppet/provider/package/windows/exe_package.rb +7 -7
  338. data/lib/puppet/provider/package/windows/msi_package.rb +3 -3
  339. data/lib/puppet/provider/package/windows/package.rb +2 -2
  340. data/lib/puppet/provider/package/windows.rb +3 -5
  341. data/lib/puppet/provider/package/yum.rb +33 -37
  342. data/lib/puppet/provider/package/zypper.rb +12 -14
  343. data/lib/puppet/provider/package.rb +1 -1
  344. data/lib/puppet/provider/package_targetable.rb +1 -1
  345. data/lib/puppet/provider/parsedfile.rb +9 -9
  346. data/lib/puppet/provider/service/base.rb +16 -21
  347. data/lib/puppet/provider/service/bsd.rb +4 -4
  348. data/lib/puppet/provider/service/daemontools.rb +31 -31
  349. data/lib/puppet/provider/service/debian.rb +6 -6
  350. data/lib/puppet/provider/service/freebsd.rb +36 -36
  351. data/lib/puppet/provider/service/gentoo.rb +6 -6
  352. data/lib/puppet/provider/service/init.rb +19 -19
  353. data/lib/puppet/provider/service/launchd.rb +22 -22
  354. data/lib/puppet/provider/service/openbsd.rb +10 -10
  355. data/lib/puppet/provider/service/openrc.rb +1 -1
  356. data/lib/puppet/provider/service/openwrt.rb +3 -3
  357. data/lib/puppet/provider/service/rcng.rb +3 -3
  358. data/lib/puppet/provider/service/redhat.rb +4 -4
  359. data/lib/puppet/provider/service/runit.rb +6 -6
  360. data/lib/puppet/provider/service/service.rb +5 -7
  361. data/lib/puppet/provider/service/smf.rb +28 -27
  362. data/lib/puppet/provider/service/src.rb +7 -7
  363. data/lib/puppet/provider/service/systemd.rb +31 -37
  364. data/lib/puppet/provider/service/upstart.rb +17 -17
  365. data/lib/puppet/provider/service/windows.rb +7 -7
  366. data/lib/puppet/provider/user/aix.rb +4 -2
  367. data/lib/puppet/provider/user/directoryservice.rb +34 -36
  368. data/lib/puppet/provider/user/hpux.rb +10 -14
  369. data/lib/puppet/provider/user/pw.rb +1 -1
  370. data/lib/puppet/provider/user/user_role_add.rb +16 -18
  371. data/lib/puppet/provider/user/useradd.rb +7 -7
  372. data/lib/puppet/provider/user/windows_adsi.rb +1 -1
  373. data/lib/puppet/provider.rb +8 -8
  374. data/lib/puppet/reference/indirection.rb +3 -0
  375. data/lib/puppet/reference/metaparameter.rb +1 -1
  376. data/lib/puppet/reference/providers.rb +3 -3
  377. data/lib/puppet/reference/type.rb +1 -1
  378. data/lib/puppet/relationship.rb +4 -5
  379. data/lib/puppet/reports/http.rb +1 -1
  380. data/lib/puppet/reports/log.rb +2 -2
  381. data/lib/puppet/reports/store.rb +4 -4
  382. data/lib/puppet/reports.rb +2 -2
  383. data/lib/puppet/resource/catalog.rb +16 -16
  384. data/lib/puppet/resource/status.rb +3 -3
  385. data/lib/puppet/resource/type.rb +8 -8
  386. data/lib/puppet/resource/type_collection.rb +1 -1
  387. data/lib/puppet/resource.rb +41 -41
  388. data/lib/puppet/scheduler/scheduler.rb +1 -1
  389. data/lib/puppet/settings/alias_setting.rb +3 -5
  390. data/lib/puppet/settings/base_setting.rb +11 -11
  391. data/lib/puppet/settings/boolean_setting.rb +2 -2
  392. data/lib/puppet/settings/config_file.rb +5 -4
  393. data/lib/puppet/settings/duration_setting.rb +2 -2
  394. data/lib/puppet/settings/environment_conf.rb +3 -3
  395. data/lib/puppet/settings/file_or_directory_setting.rb +2 -2
  396. data/lib/puppet/settings/file_setting.rb +11 -11
  397. data/lib/puppet/settings/ini_file.rb +3 -3
  398. data/lib/puppet/settings/port_setting.rb +1 -1
  399. data/lib/puppet/settings/priority_setting.rb +2 -2
  400. data/lib/puppet/settings/ttl_setting.rb +2 -2
  401. data/lib/puppet/settings/value_translator.rb +8 -8
  402. data/lib/puppet/settings.rb +65 -70
  403. data/lib/puppet/ssl/base.rb +2 -4
  404. data/lib/puppet/ssl/certificate_request.rb +18 -22
  405. data/lib/puppet/ssl/certificate_request_attributes.rb +3 -3
  406. data/lib/puppet/ssl/oids.rb +2 -2
  407. data/lib/puppet/ssl/openssl_loader.rb +4 -4
  408. data/lib/puppet/syntax_checkers/base64.rb +3 -3
  409. data/lib/puppet/syntax_checkers/epp.rb +3 -3
  410. data/lib/puppet/syntax_checkers/json.rb +3 -3
  411. data/lib/puppet/syntax_checkers/pp.rb +3 -3
  412. data/lib/puppet/transaction/additional_resource_generator.rb +1 -1
  413. data/lib/puppet/transaction/event.rb +2 -2
  414. data/lib/puppet/transaction/event_manager.rb +5 -5
  415. data/lib/puppet/transaction/persistence.rb +12 -14
  416. data/lib/puppet/transaction/report.rb +4 -4
  417. data/lib/puppet/transaction/resource_harness.rb +2 -2
  418. data/lib/puppet/transaction.rb +14 -18
  419. data/lib/puppet/type/component.rb +3 -3
  420. data/lib/puppet/type/exec.rb +43 -45
  421. data/lib/puppet/type/file/checksum_value.rb +1 -1
  422. data/lib/puppet/type/file/content.rb +6 -6
  423. data/lib/puppet/type/file/ctime.rb +2 -2
  424. data/lib/puppet/type/file/data_sync.rb +3 -3
  425. data/lib/puppet/type/file/ensure.rb +16 -15
  426. data/lib/puppet/type/file/mode.rb +9 -9
  427. data/lib/puppet/type/file/mtime.rb +2 -2
  428. data/lib/puppet/type/file/selcontext.rb +14 -14
  429. data/lib/puppet/type/file/source.rb +19 -21
  430. data/lib/puppet/type/file/target.rb +11 -11
  431. data/lib/puppet/type/file.rb +21 -21
  432. data/lib/puppet/type/filebucket.rb +3 -3
  433. data/lib/puppet/type/group.rb +3 -3
  434. data/lib/puppet/type/notify.rb +2 -2
  435. data/lib/puppet/type/package.rb +4 -4
  436. data/lib/puppet/type/resources.rb +6 -6
  437. data/lib/puppet/type/schedule.rb +9 -9
  438. data/lib/puppet/type/service.rb +6 -8
  439. data/lib/puppet/type/tidy.rb +22 -24
  440. data/lib/puppet/type/user.rb +13 -13
  441. data/lib/puppet/type.rb +76 -88
  442. data/lib/puppet/util/at_fork/solaris.rb +33 -37
  443. data/lib/puppet/util/autoload.rb +2 -2
  444. data/lib/puppet/util/backups.rb +9 -9
  445. data/lib/puppet/util/character_encoding.rb +7 -6
  446. data/lib/puppet/util/checksums.rb +2 -2
  447. data/lib/puppet/util/classgen.rb +8 -8
  448. data/lib/puppet/util/colors.rb +1 -1
  449. data/lib/puppet/util/command_line/puppet_option_parser.rb +1 -1
  450. data/lib/puppet/util/command_line/trollop.rb +42 -46
  451. data/lib/puppet/util/command_line.rb +2 -2
  452. data/lib/puppet/util/constant_inflector.rb +2 -2
  453. data/lib/puppet/util/diff.rb +19 -21
  454. data/lib/puppet/util/docs.rb +2 -2
  455. data/lib/puppet/util/errors.rb +9 -9
  456. data/lib/puppet/util/execution.rb +32 -9
  457. data/lib/puppet/util/feature.rb +1 -1
  458. data/lib/puppet/util/fileparsing.rb +12 -16
  459. data/lib/puppet/util/filetype.rb +36 -40
  460. data/lib/puppet/util/inifile.rb +6 -12
  461. data/lib/puppet/util/ldap/connection.rb +1 -1
  462. data/lib/puppet/util/ldap/manager.rb +10 -12
  463. data/lib/puppet/util/lockfile.rb +6 -8
  464. data/lib/puppet/util/log/destination.rb +2 -2
  465. data/lib/puppet/util/log/destinations.rb +4 -4
  466. data/lib/puppet/util/log.rb +12 -9
  467. data/lib/puppet/util/logging.rb +11 -11
  468. data/lib/puppet/util/metric.rb +3 -3
  469. data/lib/puppet/util/monkey_patches.rb +5 -7
  470. data/lib/puppet/util/network_device/config.rb +3 -3
  471. data/lib/puppet/util/package/version/debian.rb +27 -28
  472. data/lib/puppet/util/package/version/pip.rb +5 -5
  473. data/lib/puppet/util/package/version/range/eq.rb +1 -1
  474. data/lib/puppet/util/package/version/rpm.rb +1 -1
  475. data/lib/puppet/util/package.rb +2 -2
  476. data/lib/puppet/util/pidlock.rb +2 -2
  477. data/lib/puppet/util/platform.rb +1 -1
  478. data/lib/puppet/util/plist.rb +8 -10
  479. data/lib/puppet/util/posix.rb +17 -17
  480. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  481. data/lib/puppet/util/provider_features.rb +3 -3
  482. data/lib/puppet/util/rdoc/code_objects.rb +3 -3
  483. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +63 -64
  484. data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +23 -23
  485. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +12 -12
  486. data/lib/puppet/util/rdoc/parser/puppet_parser_rdoc2.rb +1 -1
  487. data/lib/puppet/util/rdoc/parser.rb +1 -1
  488. data/lib/puppet/util/reference.rb +13 -9
  489. data/lib/puppet/util/retry_action.rb +1 -1
  490. data/lib/puppet/util/rpm_compare.rb +17 -18
  491. data/lib/puppet/util/rubygems.rb +1 -1
  492. data/lib/puppet/util/selinux.rb +7 -7
  493. data/lib/puppet/util/storage.rb +10 -12
  494. data/lib/puppet/util/suidmanager.rb +18 -19
  495. data/lib/puppet/util/symbolic_file_mode.rb +71 -75
  496. data/lib/puppet/util/tag_set.rb +2 -2
  497. data/lib/puppet/util/tagging.rb +8 -10
  498. data/lib/puppet/util/terminal.rb +4 -4
  499. data/lib/puppet/util/user_attr.rb +7 -7
  500. data/lib/puppet/util/watcher.rb +3 -5
  501. data/lib/puppet/util/windows/access_control_list.rb +1 -1
  502. data/lib/puppet/util/windows/adsi.rb +42 -42
  503. data/lib/puppet/util/windows/daemon.rb +64 -68
  504. data/lib/puppet/util/windows/error.rb +2 -2
  505. data/lib/puppet/util/windows/file.rb +18 -25
  506. data/lib/puppet/util/windows/monkey_patches/process.rb +1 -1
  507. data/lib/puppet/util/windows/principal.rb +8 -8
  508. data/lib/puppet/util/windows/process.rb +16 -28
  509. data/lib/puppet/util/windows/registry.rb +16 -15
  510. data/lib/puppet/util/windows/root_certs.rb +2 -2
  511. data/lib/puppet/util/windows/security.rb +31 -31
  512. data/lib/puppet/util/windows/service.rb +11 -11
  513. data/lib/puppet/util/windows/sid.rb +8 -8
  514. data/lib/puppet/util/windows/user.rb +18 -20
  515. data/lib/puppet/util/yaml.rb +1 -1
  516. data/lib/puppet/util.rb +55 -46
  517. data/lib/puppet/version.rb +2 -2
  518. data/lib/puppet/x509/pem_store.rb +1 -1
  519. data/lib/puppet.rb +3 -3
  520. data/man/man5/puppet.conf.5 +10 -2
  521. data/man/man8/puppet-agent.8 +1 -1
  522. data/man/man8/puppet-apply.8 +1 -1
  523. data/man/man8/puppet-catalog.8 +1 -1
  524. data/man/man8/puppet-config.8 +1 -1
  525. data/man/man8/puppet-describe.8 +1 -1
  526. data/man/man8/puppet-device.8 +1 -1
  527. data/man/man8/puppet-doc.8 +1 -1
  528. data/man/man8/puppet-epp.8 +1 -1
  529. data/man/man8/puppet-facts.8 +1 -1
  530. data/man/man8/puppet-filebucket.8 +1 -1
  531. data/man/man8/puppet-generate.8 +1 -1
  532. data/man/man8/puppet-help.8 +1 -1
  533. data/man/man8/puppet-lookup.8 +1 -1
  534. data/man/man8/puppet-module.8 +1 -1
  535. data/man/man8/puppet-node.8 +1 -1
  536. data/man/man8/puppet-parser.8 +1 -1
  537. data/man/man8/puppet-plugin.8 +1 -1
  538. data/man/man8/puppet-report.8 +1 -1
  539. data/man/man8/puppet-resource.8 +5 -1
  540. data/man/man8/puppet-script.8 +1 -1
  541. data/man/man8/puppet-ssl.8 +1 -1
  542. data/man/man8/puppet.8 +2 -2
  543. metadata +2 -2
@@ -61,14 +61,12 @@ class Puppet::Pops::Model::AstTransformer
61
61
 
62
62
  # Transforms pops expressions into AST 3.1 statements/expressions
63
63
  def transform(o)
64
- begin
65
- @@transform_visitor.visit_this_0(self, o)
66
- rescue StandardError => e
67
- loc_data = {}
68
- merge_location(loc_data, o)
69
- raise Puppet::ParseError.new(_("Error while transforming to Puppet 3 AST: %{message}") % { message: e.message },
70
- loc_data[:file], loc_data[:line], loc_data[:pos], e)
71
- end
64
+ @@transform_visitor.visit_this_0(self, o)
65
+ rescue StandardError => e
66
+ loc_data = {}
67
+ merge_location(loc_data, o)
68
+ raise Puppet::ParseError.new(_("Error while transforming to Puppet 3 AST: %{message}") % { message: e.message },
69
+ loc_data[:file], loc_data[:line], loc_data[:pos], e)
72
70
  end
73
71
 
74
72
  # Transforms pops expressions into AST 3.1 query expressions
@@ -93,11 +91,11 @@ class Puppet::Pops::Model::AstTransformer
93
91
  end
94
92
 
95
93
  def hostname_LiteralValue(o)
96
- return o.value
94
+ o.value
97
95
  end
98
96
 
99
97
  def hostname_QualifiedName(o)
100
- return o.value
98
+ o.value
101
99
  end
102
100
 
103
101
  def hostname_LiteralNumber(o)
@@ -105,7 +103,7 @@ class Puppet::Pops::Model::AstTransformer
105
103
  end
106
104
 
107
105
  def hostname_LiteralDefault(o)
108
- return 'default'
106
+ 'default'
109
107
  end
110
108
 
111
109
  def hostname_LiteralRegularExpression(o)
@@ -648,7 +648,7 @@ class Factory
648
648
  return false unless expr.instance_of?(self) && expr.model_class <= AbstractResource
649
649
 
650
650
  expr['form'] = form
651
- return true
651
+ true
652
652
  end
653
653
 
654
654
  # Returns symbolic information about an expected shape of a resource expression given the LHS of a resource expr.
@@ -1052,8 +1052,7 @@ class Factory
1052
1052
  end
1053
1053
  a_hash = HASH(keyed_entries)
1054
1054
  a_hash.record_position(left[KEY_LOCATOR], lbrace_token, rbrace_token)
1055
- result = block_or_expression(transform_calls([left, a_hash]))
1056
- result
1055
+ block_or_expression(transform_calls([left, a_hash]))
1057
1056
  end
1058
1057
 
1059
1058
  def interpolate_Factory(c)
@@ -1062,7 +1061,7 @@ class Factory
1062
1061
 
1063
1062
  def interpolate_LiteralInteger(c)
1064
1063
  # convert number to a variable
1065
- self.var
1064
+ var
1066
1065
  end
1067
1066
 
1068
1067
  def interpolate_Object(c)
@@ -1070,7 +1069,7 @@ class Factory
1070
1069
  end
1071
1070
 
1072
1071
  def interpolate_QualifiedName(c)
1073
- self.var
1072
+ var
1074
1073
  end
1075
1074
 
1076
1075
  # rewrite left expression to variable if it is name, number, and recurse if it is an access expression
@@ -14,7 +14,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
14
14
  def parse_file(file)
15
15
  unless FileTest.exist?(file)
16
16
  unless file =~ /\.epp$/
17
- file = file + ".epp"
17
+ file += ".epp"
18
18
  end
19
19
  end
20
20
  @lexer.file = file
@@ -43,7 +43,7 @@ class Puppet::Pops::Parser::EppParser < Puppet::Pops::Parser::Parser
43
43
  # rescue => except
44
44
  # raise Puppet::ParseError.new(except.message, @lexer.file, @lexer.line, @lexer.pos, except)
45
45
  end
46
- return main
46
+ main
47
47
  ensure
48
48
  @lexer.clear
49
49
  @namestack = []
@@ -44,7 +44,7 @@ module EppSupport
44
44
  interpolate_epp
45
45
 
46
46
  # This is the lexer's main loop
47
- until queue.empty? && scn.eos? do
47
+ until queue.empty? && scn.eos?
48
48
  token = queue.shift || lex_token
49
49
  if token
50
50
  yield [ctx[:after] = token[0], token[1]]
@@ -71,7 +71,7 @@ class EvaluatingParser
71
71
 
72
72
  def evaluator
73
73
  # Do not use the cached evaluator if this is a migration run
74
- if (Puppet.lookup(:migration_checker) { nil })
74
+ if Puppet.lookup(:migration_checker) { nil }
75
75
  return Evaluator::EvaluatorImpl.new()
76
76
  end
77
77
 
@@ -146,7 +146,7 @@ class EvaluatingParser
146
146
  when '"'
147
147
  escaped << '\\"'
148
148
  when '\\'
149
- escaped << if c == '$' || c == 's'; p; else '\\\\'; end # don't escape \ when followed by s or $
149
+ escaped << ((c == '$' || c == 's') ? p : '\\\\') # don't escape \ when followed by s or $
150
150
  else
151
151
  escaped << p
152
152
  end
@@ -8,7 +8,7 @@ module HeredocSupport
8
8
  # Pattern for heredoc `@(endtag[:syntax][/escapes])
9
9
  # Produces groups for endtag (group 1), syntax (group 2), and escapes (group 3)
10
10
  #
11
- PATTERN_HEREDOC = %r{@\(([^:/\r\n\)]+)(?::[[:blank:]]*([a-z][a-zA-Z0-9_+]+)[[:blank:]]*)?(?:/((?:\w|[$])*)[[:blank:]]*)?\)}
11
+ PATTERN_HEREDOC = %r{@\(([^:/\r\n)]+)(?::[[:blank:]]*([a-z][a-zA-Z0-9_+]+)[[:blank:]]*)?(?:/((?:\w|[$])*)[[:blank:]]*)?\)}
12
12
 
13
13
  def heredoc
14
14
  scn = @scanner
@@ -32,7 +32,7 @@ module HeredocSupport
32
32
  # Is this a dq string style heredoc? (endtag enclosed in "")
33
33
  if endtag =~ /^"(.*)"$/
34
34
  dqstring_style = true
35
- endtag = $1.strip
35
+ endtag = ::Regexp.last_match(1).strip
36
36
  end
37
37
 
38
38
  lex_error(Issues::HEREDOC_EMPTY_ENDTAG) unless endtag.length >= 1
@@ -81,9 +81,9 @@ module HeredocSupport
81
81
  # that terminates the heredoc is found.
82
82
 
83
83
  # (Endline in EBNF form): WS* ('|' WS*)? ('-' WS*)? endtag WS* \r? (\n|$)
84
- endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(\-)[[:blank:]]*)?#{Regexp.escape(endtag)}[[:blank:]]*\r?(?:\n|\z)/
84
+ endline_pattern = /([[:blank:]]*)(?:([|])[[:blank:]]*)?(?:(-)[[:blank:]]*)?#{Regexp.escape(endtag)}[[:blank:]]*\r?(?:\n|\z)/
85
85
  lines = []
86
- while !scn.eos? do
86
+ until scn.eos?
87
87
  one_line = scn.scan_until(/(?:\n|\z)/)
88
88
  raise eof_error unless one_line
89
89
 
@@ -7,7 +7,7 @@
7
7
  # of passing parameters and evaluating conditional logic has a negative impact on performance.
8
8
  #
9
9
  module Puppet::Pops::Parser::InterpolationSupport
10
- PATTERN_VARIABLE = %r{(::)?(\w+::)*\w+}
10
+ PATTERN_VARIABLE = /(::)?(\w+::)*\w+/
11
11
 
12
12
  # This is the starting point for a double quoted string with possible interpolation
13
13
  # The structure mimics that of the grammar.
@@ -194,7 +194,7 @@ module Puppet::Pops::Parser::InterpolationSupport
194
194
 
195
195
  scn.skip(self.class::PATTERN_WS)
196
196
  queue_size = queue.size
197
- until scn.eos? do
197
+ until scn.eos?
198
198
  token = lex_token
199
199
  if token
200
200
  if token.equal?(queue_base)
@@ -242,7 +242,7 @@ module Puppet::Pops::Parser::InterpolationSupport
242
242
  def interpolate_uq_to(lexer)
243
243
  interpolate_uq
244
244
  queue = @token_queue
245
- until queue.empty? do
245
+ until queue.empty?
246
246
  lexer.enqueue(queue.shift)
247
247
  end
248
248
  end
@@ -150,11 +150,11 @@ class Lexer2
150
150
  KEYWORDS.each { |k, v| KEYWORD_NAMES[v[0]] = k }
151
151
  KEYWORD_NAMES.freeze
152
152
 
153
- PATTERN_WS = %r{[[:blank:]\r]+}
154
- PATTERN_NON_WS = %r{\w+\b?}
153
+ PATTERN_WS = /[[:blank:]\r]+/
154
+ PATTERN_NON_WS = /\w+\b?/
155
155
 
156
156
  # The single line comment includes the line ending.
157
- PATTERN_COMMENT = %r{#.*\r?}
157
+ PATTERN_COMMENT = /#.*\r?/
158
158
  PATTERN_MLCOMMENT = %r{/\*(.*?)\*/}m
159
159
 
160
160
  PATTERN_REGEX = %r{/[^/]*/}
@@ -170,13 +170,13 @@ class Lexer2
170
170
  # The NAME and CLASSREF in 4x are strict. Each segment must start with
171
171
  # a letter a-z and may not contain dashes (\w includes letters, digits and _).
172
172
  #
173
- PATTERN_CLASSREF = %r{((::){0,1}[A-Z][\w]*)+}
174
- PATTERN_NAME = %r{^((::)?[a-z][\w]*)(::[a-z][\w]*)*$}
173
+ PATTERN_CLASSREF = /((::){0,1}[A-Z]\w*)+/
174
+ PATTERN_NAME = /^((::)?[a-z]\w*)(::[a-z]\w*)*$/
175
175
 
176
- PATTERN_BARE_WORD = %r{((?:::){0,1}(?:[a-z_](?:[\w-]*[\w])?))+}
176
+ PATTERN_BARE_WORD = /((?:::){0,1}(?:[a-z_](?:[\w-]*\w)?))+/
177
177
 
178
- PATTERN_DOLLAR_VAR = %r{\$(::)?(\w+::)*\w+}
179
- PATTERN_NUMBER = %r{\b(?:0[xX][0-9A-Fa-f]+|0?\d+(?:\.\d+)?(?:[eE]-?\d+)?)\b}
178
+ PATTERN_DOLLAR_VAR = /\$(::)?(\w+::)*\w+/
179
+ PATTERN_NUMBER = /\b(?:0[xX][0-9A-Fa-f]+|0?\d+(?:\.\d+)?(?:[eE]-?\d+)?)\b/
180
180
 
181
181
  # PERFORMANCE NOTE:
182
182
  # Comparison against a frozen string is faster (than unfrozen).
@@ -268,7 +268,11 @@ class Lexer2
268
268
  '|' => lambda do
269
269
  scn = @scanner
270
270
  la = scn.peek(3)
271
- emit(la[1] == '>' ? (la[2] == '>' ? TOKEN_RRCOLLECT : TOKEN_RCOLLECT) : TOKEN_PIPE, scn.pos)
271
+ emit(if la[1] == '>'
272
+ la[2] == '>' ? TOKEN_RRCOLLECT : TOKEN_RCOLLECT
273
+ else
274
+ TOKEN_PIPE
275
+ end, scn.pos)
272
276
  end,
273
277
 
274
278
  # TOKENS =, =>, ==, =~
@@ -522,7 +526,7 @@ class Lexer2
522
526
  end
523
527
  end
524
528
  scn.pos = before
525
- invalid_number = scn.peek(after - before) unless invalid_number
529
+ invalid_number ||= scn.peek(after - before)
526
530
  end
527
531
  assert_numeric(invalid_number, before)
528
532
  scn.pos = before + 1
@@ -635,7 +639,11 @@ class Lexer2
635
639
  @scanner = StringScanner.new(string)
636
640
  @locator = locator || Locator.locator(string, '')
637
641
  @lexing_context[:escapes] = escapes || UQ_ESCAPES
638
- @lexing_context[:uq_slurp_pattern] = interpolate ? (escapes.include?('$') ? SLURP_UQ_PATTERN : SLURP_UQNE_PATTERN) : SLURP_ALL_PATTERN
642
+ @lexing_context[:uq_slurp_pattern] = if interpolate
643
+ escapes.include?('$') ? SLURP_UQ_PATTERN : SLURP_UQNE_PATTERN
644
+ else
645
+ SLURP_ALL_PATTERN
646
+ end
639
647
  end
640
648
 
641
649
  # Convenience method, and for compatibility with older lexer. Use the lex_file instead.
@@ -706,7 +714,7 @@ class Lexer2
706
714
  scn.skip(PATTERN_WS)
707
715
 
708
716
  # This is the lexer's main loop
709
- until queue.empty? && scn.eos? do
717
+ until queue.empty? && scn.eos?
710
718
  token = queue.shift || selector[scn.peek(1)].call
711
719
  if token
712
720
  ctx[:after] = token[0]
@@ -200,7 +200,7 @@ module LexerSupport
200
200
  lex_error_without_pos(
201
201
  Puppet::Pops::Issues::ILLEGAL_BOM,
202
202
  { :format_name => name,
203
- :bytes => "[#{bom.values[0, size].map { |b| "%X" % b }.join(" ")}]" }
203
+ :bytes => "[#{bom.values[0, size].map { |b| '%X' % b }.join(' ')}]" }
204
204
  )
205
205
  end
206
206
 
@@ -141,7 +141,7 @@ class Locator
141
141
  satisfied = false
142
142
  v = nil
143
143
 
144
- while low < high do
144
+ while low < high
145
145
  mid = low + ((high - low) / 2)
146
146
  v = (ary[mid] > value)
147
147
  if v == true
@@ -161,9 +161,9 @@ class Locator
161
161
  end
162
162
 
163
163
  return nil if low == ary.length
164
- return nil if !satisfied
164
+ return nil unless satisfied
165
165
 
166
- return low
166
+ low
167
167
  end
168
168
 
169
169
  def hash
@@ -192,7 +192,7 @@ class Locator
192
192
  # If not found it is after last
193
193
  # clear cache
194
194
  @prev_offset = @prev_line = nil
195
- return line_index.size
195
+ line_index.size
196
196
  end
197
197
  end
198
198
 
@@ -77,7 +77,7 @@ class Parser
77
77
  def parse_file(file)
78
78
  unless Puppet::FileSystem.exist?(file)
79
79
  unless file =~ /\.pp$/
80
- file = file + ".pp"
80
+ file += ".pp"
81
81
  end
82
82
  end
83
83
  @lexer.file = file
@@ -193,16 +193,15 @@ class Parser
193
193
  # where the "10, notice" forms an argument list. The parser builds an Array with the expressions and includes
194
194
  # the comma tokens to enable the error to be reported against the first comma.
195
195
  #
196
- begin
197
- Factory.transform_calls(expressions)
198
- rescue Factory::ArgsToNonCallError => e
199
- # e.args[1] is the first comma token in the list
200
- # e.name_expr is the function name expression
201
- if e.name_expr.is_a?(Factory) && e.name_expr.model_class <= Model::QualifiedName
202
- error(e.args[1], _("attempt to pass argument list to the function '%{name}' which cannot be called without parentheses") % { name: e.name_expr['value'] })
203
- else
204
- error(e.args[1], _("illegal comma separated argument list"))
205
- end
196
+
197
+ Factory.transform_calls(expressions)
198
+ rescue Factory::ArgsToNonCallError => e
199
+ # e.args[1] is the first comma token in the list
200
+ # e.name_expr is the function name expression
201
+ if e.name_expr.is_a?(Factory) && e.name_expr.model_class <= Model::QualifiedName
202
+ error(e.args[1], _("attempt to pass argument list to the function '%{name}' which cannot be called without parentheses") % { name: e.name_expr['value'] })
203
+ else
204
+ error(e.args[1], _("illegal comma separated argument list"))
206
205
  end
207
206
  end
208
207
 
@@ -229,8 +228,7 @@ class Parser
229
228
  _, token = @lexer.emit_completed([:NOOP, '', 0], locator.string.bytesize)
230
229
  loc(no_op, token)
231
230
  # Program with a Noop
232
- program = Factory.PROGRAM(no_op, [], locator)
233
- program
231
+ Factory.PROGRAM(no_op, [], locator)
234
232
  end
235
233
 
236
234
  # Performs the parsing and returns the resulting model.
@@ -243,7 +241,7 @@ class Parser
243
241
  @yydebug = false
244
242
  main = yyparse(@lexer, :scan)
245
243
  end
246
- return main
244
+ main
247
245
  ensure
248
246
  @lexer.clear
249
247
  @namestack = []
@@ -196,7 +196,7 @@ class PNParser
196
196
  end
197
197
 
198
198
  def consume_identifier(s)
199
- while @char_types[peek_cp] >= TYPE_IDENTIFIER do
199
+ while @char_types[peek_cp] >= TYPE_IDENTIFIER
200
200
  @pos += 1
201
201
  end
202
202
  id = @text[s...@pos]
@@ -287,7 +287,7 @@ class PNParser
287
287
  c = peek_cp
288
288
  end
289
289
 
290
- while @char_types[c] == TYPE_DIGIT do
290
+ while @char_types[c] == TYPE_DIGIT
291
291
  @pos += 1
292
292
  c = peek_cp
293
293
  count += 1
@@ -296,7 +296,7 @@ class PNParser
296
296
  end
297
297
 
298
298
  def skip_white
299
- while @char_types[peek_cp] == TYPE_WS do
299
+ while @char_types[peek_cp] == TYPE_WS
300
300
  @pos += 1
301
301
  end
302
302
  end
@@ -13,15 +13,15 @@ module Parser
13
13
  module SlurpSupport
14
14
  include LexerSupport
15
15
 
16
- SLURP_SQ_PATTERN = /(?:[^\\]|^)(?:[\\]{2})*[']/
17
- SLURP_DQ_PATTERN = /(?:[^\\]|^)(?:[\\]{2})*(["]|[$]\{?)/
18
- SLURP_UQ_PATTERN = /(?:[^\\]|^)(?:[\\]{2})*([$]\{?|\z)/
16
+ SLURP_SQ_PATTERN = /(?:[^\\]|^)(?:\\{2})*'/
17
+ SLURP_DQ_PATTERN = /(?:[^\\]|^)(?:\\{2})*("|[$]\{?)/
18
+ SLURP_UQ_PATTERN = /(?:[^\\]|^)(?:\\{2})*([$]\{?|\z)/
19
19
  # unquoted, no escapes
20
20
  SLURP_UQNE_PATTERN = /(\$\{?|\z)/m
21
21
  SLURP_ALL_PATTERN = /.*(\z)/m
22
- SQ_ESCAPES = %w{\\ '}
23
- DQ_ESCAPES = %w{\\ $ ' " r n t s u} + ["\r\n", "\n"]
24
- UQ_ESCAPES = %w{\\ $ r n t s u} + ["\r\n", "\n"]
22
+ SQ_ESCAPES = %w[\\ ']
23
+ DQ_ESCAPES = %w[\\ $ ' " r n t s u] + ["\r\n", "\n"]
24
+ UQ_ESCAPES = %w[\\ $ r n t s u] + ["\r\n", "\n"]
25
25
 
26
26
  def slurp_sqstring
27
27
  # skip the leading '
@@ -76,14 +76,14 @@ module SlurpSupport
76
76
  # If later a \u is found it is warned not to be a unicode escape
77
77
  if escapes.include?('u')
78
78
  # gsub must be repeated to cater for adjacent escapes
79
- while (str.gsub!(/((?:[^\\]|^)(?:[\\]{2})*)\\u(?:([\da-fA-F]{4})|\{([\da-fA-F]{1,6})\})/m) { $1 + [($2 || $3).hex].pack("U") })
79
+ while str.gsub!(/((?:[^\\]|^)(?:\\{2})*)\\u(?:([\da-fA-F]{4})|\{([\da-fA-F]{1,6})\})/m) { ::Regexp.last_match(1) + [(::Regexp.last_match(2) || ::Regexp.last_match(3)).hex].pack("U") }
80
80
  # empty block. Everything happens in the gsub block
81
81
  end
82
82
  end
83
83
 
84
84
  begin
85
85
  str.gsub!(/\\([^\r\n]|(?:\r?\n))/m) {
86
- ch = $1
86
+ ch = ::Regexp.last_match(1)
87
87
  if escapes.include? ch
88
88
  case ch
89
89
  when 'r'; "\r"
@@ -13,48 +13,48 @@ module Puppet::Pops::Patterns
13
13
  # Thus, a hex number has group 3 value, an octal value has group 4 (if it starts with 0), and no group 3
14
14
  # and a floating point value has group 4 and group 5.
15
15
  #
16
- NUMERIC = %r{\A[[:blank:]]*([-+]?)[[:blank:]]*((0[xX][0-9A-Fa-f]+)|(0?\d+)((?:\.\d+)?(?:[eE]-?\d+)?))[[:blank:]]*\z}
16
+ NUMERIC = /\A[[:blank:]]*([-+]?)[[:blank:]]*((0[xX][0-9A-Fa-f]+)|(0?\d+)((?:\.\d+)?(?:[eE]-?\d+)?))[[:blank:]]*\z/
17
17
 
18
18
  # Special expression that tests if there is whitespace between sign and number. The expression is used
19
19
  # to strip such whitespace when normal Float or Integer conversion fails.
20
- WS_BETWEEN_SIGN_AND_NUMBER = %r{\A([+-])[[:blank:]]+(.*)\z}
20
+ WS_BETWEEN_SIGN_AND_NUMBER = /\A([+-])[[:blank:]]+(.*)\z/
21
21
 
22
22
  # ILLEGAL_P3_1_HOSTNAME matches if a hostname contains illegal characters.
23
23
  # This check does not prevent pathological names like 'a....b', '.....', "---". etc.
24
- ILLEGAL_HOSTNAME_CHARS = %r{[^-\w.]}
24
+ ILLEGAL_HOSTNAME_CHARS = /[^-\w.]/
25
25
 
26
26
  # NAME matches a name the same way as the lexer.
27
- NAME = %r{\A((::)?[a-z]\w*)(::[a-z]\w*)*\z}
27
+ NAME = /\A((::)?[a-z]\w*)(::[a-z]\w*)*\z/
28
28
 
29
29
  # CLASSREF_EXT matches a class reference the same way as the lexer - i.e. the external source form
30
30
  # where each part must start with a capital letter A-Z.
31
31
  #
32
- CLASSREF_EXT = %r{\A((::){0,1}[A-Z][\w]*)+\z}
32
+ CLASSREF_EXT = /\A((::){0,1}[A-Z]\w*)+\z/
33
33
 
34
34
  # Same as CLASSREF_EXT but cannot start with '::'
35
35
  #
36
- CLASSREF_EXT_DECL = %r{\A[A-Z][\w]*(?:::[A-Z][\w]*)*\z}
36
+ CLASSREF_EXT_DECL = /\A[A-Z]\w*(?:::[A-Z]\w*)*\z/
37
37
 
38
38
  # CLASSREF matches a class reference the way it is represented internally in the
39
39
  # model (i.e. in lower case).
40
40
  #
41
- CLASSREF = %r{\A((::){0,1}[a-z][\w]*)+\z}
41
+ CLASSREF = /\A((::){0,1}[a-z]\w*)+\z/
42
42
 
43
43
  # Same as CLASSREF but cannot start with '::'
44
44
  #
45
- CLASSREF_DECL = %r{\A[a-z][\w]*(?:::[a-z][\w]*)*\z}
45
+ CLASSREF_DECL = /\A[a-z]\w*(?:::[a-z]\w*)*\z/
46
46
 
47
47
  # DOLLAR_VAR matches a variable name including the initial $ character
48
- DOLLAR_VAR = %r{\$(::)?(\w+::)*\w+}
48
+ DOLLAR_VAR = /\$(::)?(\w+::)*\w+/
49
49
 
50
50
  # VAR_NAME matches the name part of a variable (The $ character is not included)
51
51
  # Note, that only the final segment may start with an underscore.
52
52
  # Note, regexp sensitive to backtracking
53
- VAR_NAME = %r{\A(?:::)?(?:[a-z]\w*::)*[a-z_]\w*\z}
53
+ VAR_NAME = /\A(?:::)?(?:[a-z]\w*::)*[a-z_]\w*\z/
54
54
 
55
55
  # PARAM_NAME matches the name part of a parameter (The $ character is not included)
56
- PARAM_NAME = %r{\A[a-z_]\w*\z}
56
+ PARAM_NAME = /\A[a-z_]\w*\z/
57
57
 
58
58
  # A Numeric var name must be the decimal number 0, or a decimal number not starting with 0
59
- NUMERIC_VAR_NAME = %r{\A(?:0|(?:[1-9][0-9]*))\z}
59
+ NUMERIC_VAR_NAME = /\A(?:0|(?:[1-9][0-9]*))\z/
60
60
  end
@@ -10,7 +10,7 @@ module Pcore
10
10
  TYPE_URI = Types::TypeFactory.pattern(TYPE_URI_RX)
11
11
  TYPE_URI_ALIAS = Types::PTypeAliasType.new('Pcore::URI', nil, TYPE_URI)
12
12
  TYPE_SIMPLE_TYPE_NAME = Types::TypeFactory.pattern(/\A[A-Z]\w*\z/)
13
- TYPE_QUALIFIED_REFERENCE = Types::TypeFactory.pattern(/\A[A-Z][\w]*(?:::[A-Z][\w]*)*\z/)
13
+ TYPE_QUALIFIED_REFERENCE = Types::TypeFactory.pattern(/\A[A-Z]\w*(?:::[A-Z]\w*)*\z/)
14
14
  TYPE_MEMBER_NAME = Types::PPatternType.new([Types::PRegexpType.new(Patterns::PARAM_NAME)])
15
15
 
16
16
  KEY_PCORE_URI = 'pcore_uri'
@@ -116,7 +116,7 @@ module PN
116
116
  end
117
117
 
118
118
  def to_data
119
- { '^' => [@name] + @elements.map { |e| e.to_data } }
119
+ { '^' => [@name] + @elements.map(&:to_data) }
120
120
  end
121
121
  end
122
122
 
@@ -166,7 +166,7 @@ module PN
166
166
  end
167
167
 
168
168
  def to_data
169
- @elements.map { |e| e.to_data }
169
+ @elements.map(&:to_data)
170
170
  end
171
171
  end
172
172
 
@@ -32,7 +32,7 @@ module Puppet
32
32
  @stack = Puppet::ThreadLocal.new { Array.new }
33
33
 
34
34
  def self.stack(file, line, obj, message, args, &block)
35
- file = 'unknown' if (file.nil? || file == '')
35
+ file = 'unknown' if file.nil? || file == ''
36
36
  line = 0 if line.nil?
37
37
 
38
38
  result = nil
@@ -75,7 +75,7 @@ class ResourceTypeImpl
75
75
  return nil unless other.is_a?(Puppet::CompilableResourceType)
76
76
 
77
77
  # against other type instances.
78
- self.ref <=> other.ref
78
+ ref <=> other.ref
79
79
  end
80
80
 
81
81
  METAPARAMS = [
@@ -143,7 +143,7 @@ class AbstractReader
143
143
  read_payload(data) do |ep|
144
144
  sec = ep.read
145
145
  nsec = ep.read
146
- Time::Timestamp.new(sec * 1000000000 + nsec)
146
+ Time::Timestamp.new(sec * 1_000_000_000 + nsec)
147
147
  end
148
148
  end
149
149
 
@@ -151,7 +151,7 @@ class AbstractReader
151
151
  read_payload(data) do |ep|
152
152
  sec = ep.read
153
153
  nsec = ep.read
154
- Time::Timespan.new(sec * 1000000000 + nsec)
154
+ Time::Timespan.new(sec * 1_000_000_000 + nsec)
155
155
  end
156
156
  end
157
157
 
@@ -178,11 +178,11 @@ class AbstractWriter
178
178
  end
179
179
 
180
180
  register_type(Extension::TIME, Time::Timestamp) do |o|
181
- build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs / 1000000000); ep.write(nsecs % 1000000000) }
181
+ build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs / 1_000_000_000); ep.write(nsecs % 1_000_000_000) }
182
182
  end
183
183
 
184
184
  register_type(Extension::TIMESPAN, Time::Timespan) do |o|
185
- build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs / 1000000000); ep.write(nsecs % 1000000000) }
185
+ build_payload { |ep| nsecs = o.nsecs; ep.write(nsecs / 1_000_000_000); ep.write(nsecs % 1_000_000_000) }
186
186
  end
187
187
 
188
188
  register_type(Extension::VERSION, SemanticPuppet::Version) do |o|
@@ -213,7 +213,7 @@ class AbstractWriter
213
213
  end
214
214
 
215
215
  def to_s
216
- "#{self.class.name}"
216
+ self.class.name.to_s
217
217
  end
218
218
 
219
219
  def inspect
@@ -107,7 +107,7 @@ class Timestamp < TimeData
107
107
  fraction = parsed[:sec_fraction]
108
108
 
109
109
  # Convert msec rational found in _strptime hash to usec
110
- fraction = fraction * 1000000 unless fraction.nil?
110
+ fraction *= 1_000_000 unless fraction.nil?
111
111
 
112
112
  # Create the Time instance and adjust for timezone
113
113
  parsed_time = ::Time.utc(parsed[:year], parsed[:mon], parsed[:mday], parsed[:hour], parsed[:min], parsed[:sec], fraction)
@@ -37,7 +37,7 @@ class ClassLoader
37
37
  def self.provide_from_type(type)
38
38
  case type
39
39
  when PRuntimeType
40
- raise ArgumentError.new("Only Runtime type 'ruby' is supported, got #{type.runtime}") unless type.runtime == :ruby
40
+ raise ArgumentError, "Only Runtime type 'ruby' is supported, got #{type.runtime}" unless type.runtime == :ruby
41
41
 
42
42
  provide_from_string(type.runtime_type_name)
43
43
 
@@ -105,11 +105,9 @@ class ClassLoader
105
105
 
106
106
  def self.find_class(name_path)
107
107
  name_path.reduce(Object) do |ns, name|
108
- begin
109
- ns.const_get(name, false) # don't search ancestors
110
- rescue NameError
111
- return nil
112
- end
108
+ ns.const_get(name, false) # don't search ancestors
109
+ rescue NameError
110
+ return nil
113
111
  end
114
112
  end
115
113
  private_class_method :find_class
@@ -32,7 +32,7 @@ module Puppet::Pops::Types
32
32
  # @raise [ArgumentError] In case an `Iterable` cannot be produced
33
33
  # @api public
34
34
  def self.asserted_iterable(my_caller, obj, infer_elements = false)
35
- iter = self.on(obj, nil, infer_elements)
35
+ iter = on(obj, nil, infer_elements)
36
36
  raise ArgumentError, "#{my_caller.class}(): wrong argument type (#{obj.class}; is not Iterable." if iter.nil?
37
37
 
38
38
  iter
@@ -122,7 +122,7 @@ class PBinaryType < PAnyType
122
122
  end
123
123
 
124
124
  def ==(o)
125
- self.eql?(o)
125
+ eql?(o)
126
126
  end
127
127
 
128
128
  def length
@@ -152,7 +152,7 @@ class PInitType < PTypeWithContainedType
152
152
  # The Optional is the same as Variant[T,Undef].
153
153
  # The NotUndef is not meaningful to create instances of
154
154
  if @type.instance_of?(PInitType) || @type.instance_of?(POptionalType) || @type.instance_of?(PNotUndefType)
155
- raise ArgumentError.new
155
+ raise ArgumentError
156
156
  end
157
157
 
158
158
  new_func = @type.new_function