From c36c0dc9e0f43cc34d41acc437edaae276d2d8fa Mon Sep 17 00:00:00 2001 From: Lamont Granquist Date: Tue, 12 Dec 2017 12:59:58 -0800 Subject: memoize some work in the package class Signed-off-by: Lamont Granquist --- lib/chef/provider/package.rb | 21 ++++++++++++--------- 1 file 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. -- cgit v1.2.1