summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith84@gmail.com>2020-10-16 09:50:01 -0700
committerTim Smith <tsmith84@gmail.com>2020-10-16 09:50:01 -0700
commit0b26c901cf3fa8a3e32e4a3f513864bc2d959e04 (patch)
treeb5a3091a06d4df36c9c32b628b74463058ff1849
parent8c67bf7746301cb73dea14917a7a91f92a37eb13 (diff)
downloadchef-0b26c901cf3fa8a3e32e4a3f513864bc2d959e04.tar.gz
Avoid declaring arrays in loops
There's still a few of these left over, but these are the easy wins with obvious wins. Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r--lib/chef/provider/registry_key.rb7
-rw-r--r--lib/chef/provider/service/debian.rb3
-rw-r--r--lib/chef/resource/registry_key.rb4
-rwxr-xr-xtasks/docs.rb4
4 files changed, 12 insertions, 6 deletions
diff --git a/lib/chef/provider/registry_key.rb b/lib/chef/provider/registry_key.rb
index d1849066f8..316a2a1081 100644
--- a/lib/chef/provider/registry_key.rb
+++ b/lib/chef/provider/registry_key.rb
@@ -35,6 +35,8 @@ class Chef
include Chef::Mixin::Checksum
+ WORD_TYPES = %i{dword dword_big_endian qword}.freeze
+
def running_on_windows!
unless ChefUtils.windows?
raise Chef::Exceptions::Win32NotWindows, "Attempt to manipulate the windows registry on a non-windows node"
@@ -122,9 +124,8 @@ class Chef
new_resource.unscrubbed_values.each do |value|
if @name_hash.key?(value[:name].downcase)
current_value = @name_hash[value[:name].downcase]
- if %i{dword dword_big_endian qword}.include? value[:type]
- value[:data] = value[:data].to_i
- end
+ value[:data] = value[:data].to_i if WORD_TYPES.include?(value[:type])
+
unless current_value[:type] == value[:type] && current_value[:data] == value[:data]
converge_by_value = if new_resource.sensitive
value.merge(data: "*sensitive value suppressed*")
diff --git a/lib/chef/provider/service/debian.rb b/lib/chef/provider/service/debian.rb
index da599fa2f6..17e0b19b9c 100644
--- a/lib/chef/provider/service/debian.rb
+++ b/lib/chef/provider/service/debian.rb
@@ -28,6 +28,7 @@ class Chef
UPDATE_RC_D_ENABLED_MATCHES = %r{/rc[\dS].d/S|not installed}i.freeze
UPDATE_RC_D_PRIORITIES = %r{/rc([\dS]).d/([SK])(\d\d)}i.freeze
+ RUNLEVELS = %w{ 1 2 3 4 5 S }.freeze
def self.supports?(resource, action)
service_script_exist?(:initd, resource.service_name)
@@ -121,7 +122,7 @@ class Chef
priority.each do |runlevel, arguments|
logger.trace("#{new_resource} runlevel #{runlevel}, action #{arguments[0]}, priority #{arguments[1]}")
# if we are in a update-rc.d default startup runlevel && we start in this runlevel
- if %w{ 1 2 3 4 5 S }.include?(runlevel) && arguments[0] == :start
+ if RUNLEVELS.include?(runlevel) && arguments[0] == :start
enabled = true
end
end
diff --git a/lib/chef/resource/registry_key.rb b/lib/chef/resource/registry_key.rb
index ae8fcc3688..7e51ea1ef6 100644
--- a/lib/chef/resource/registry_key.rb
+++ b/lib/chef/resource/registry_key.rb
@@ -71,6 +71,8 @@ class Chef
property :key, String, name_property: true
+ VALID_VALUE_HASH_KEYS = %i{name type data}.freeze
+
def values(arg = nil)
if not arg.nil?
if arg.is_a?(Hash)
@@ -88,7 +90,7 @@ class Chef
raise ArgumentError, "Missing name key in RegistryKey values hash" unless v.key?(:name)
v.each_key do |key|
- raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless %i{name type data}.include?(key)
+ raise ArgumentError, "Bad key #{key} in RegistryKey values hash" unless VALID_VALUE_HASH_KEYS.include?(key)
end
raise ArgumentError, "Type of name => #{v[:name]} should be string" unless v[:name].is_a?(String)
diff --git a/tasks/docs.rb b/tasks/docs.rb
index ff5a38afda..14b15e0d15 100755
--- a/tasks/docs.rb
+++ b/tasks/docs.rb
@@ -11,6 +11,8 @@ namespace :docs_site do
require "fileutils"
require "yaml"
+ RESOURCES_TO_SKIP = ["whyrun_safe_ruby_block", "l_w_r_p_base", "user_resource_abstract_base_class", "linux_user", "pw_user", "aix_user", "dscl_user", "solaris_user", "windows_user", "mac_user", ""].freeze
+
# @return [String, nil] a pretty default value string or nil if we want to skip it
def pretty_default(default)
return nil if default.nil? || default == "" || default == "lazy default"
@@ -295,7 +297,7 @@ namespace :docs_site do
resources.each do |resource, data|
# skip some resources we don't directly document
- next if ["whyrun_safe_ruby_block", "l_w_r_p_base", "user_resource_abstract_base_class", "linux_user", "pw_user", "aix_user", "dscl_user", "solaris_user", "windows_user", "mac_user", ""].include?(resource)
+ next if RESOURCES_TO_SKIP.include?(resource)
next if ENV["DEBUG"] && !(resource == ENV["DEBUG"])