diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2017-12-12 12:59:58 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2018-03-20 10:36:06 -0700 |
commit | ad60747d58855395aebd6cf7d182ae553b70e0a2 (patch) | |
tree | 6c3bb7a5b3076cd6b5cd3bc70db8f1cda95af6aa | |
parent | 51c59ecb887e9122aa849d8153b9984df74b2b09 (diff) | |
download | chef-ad60747d58855395aebd6cf7d182ae553b70e0a2.tar.gz |
memoize some work in the package class
Signed-off-by: Lamont Granquist <lamont@scriptkiddie.org>
-rw-r--r-- | lib/chef/provider/package.rb | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/lib/chef/provider/package.rb b/lib/chef/provider/package.rb index 0011efbcf4..70483f9124 100644 --- a/lib/chef/provider/package.rb +++ b/lib/chef/provider/package.rb @@ -591,12 +591,12 @@ class Chef # @return [Boolean] if we're doing a multipackage install or not def multipackage? - new_resource.package_name.is_a?(Array) + @multipackage_bool ||= new_resource.package_name.is_a?(Array) end # @return [Array] package_name(s) as an array def package_name_array - [ new_resource.package_name ].flatten + @package_name_array ||= [ new_resource.package_name ].flatten end # @return [Array] candidate_version(s) as an array @@ -608,12 +608,12 @@ class Chef # @return [Array] current_version(s) as an array def current_version_array - [ current_resource.version ].flatten + @current_version_array ||= [ current_resource.version ].flatten end # @return [Array] new_version(s) as an array def new_version_array - [ new_resource.version ].flatten.map { |v| v.to_s.empty? ? nil : v } + @new_version_array ||= [ new_resource.version ].flatten.map { |v| v.to_s.empty? ? nil : v } end # TIP: less error prone to simply always call resolved_source_array, even if you @@ -621,11 +621,14 @@ class Chef # # @return [Array] new_resource.source as an array def source_array - if new_resource.source.nil? - package_name_array.map { nil } - else - [ new_resource.source ].flatten - end + @source_array ||= + begin + if new_resource.source.nil? + package_name_array.map { nil } + else + [ new_resource.source ].flatten + end + end end # Helper to handle use_package_name_for_source to convert names into local packages to install. |