summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Smith <tsmith84@gmail.com>2020-08-12 14:34:47 -0700
committerTim Smith <tsmith84@gmail.com>2020-08-12 14:34:47 -0700
commit0a2f993c69dc4d5644067bf8ae6f6bb078bf522b (patch)
tree831047783d2ed214bbf11921db94364f4c9adcd3
parent53dcbe99d02e4514ff19ca55add795686b2dfc13 (diff)
downloadchef-require_optimization.tar.gz
Optimize requires for non-omnibus installsrequire_optimization
Only require external libraries if we need to. Also use require_relative everywhere we can. Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r--lib/chef/application.rb2
-rw-r--r--lib/chef/client.rb2
-rw-r--r--lib/chef/dsl/platform_introspection.rb2
-rw-r--r--lib/chef/encrypted_data_bag_item/decryptor.rb2
-rw-r--r--lib/chef/json_compat.rb2
-rw-r--r--lib/chef/knife/core/generic_presenter.rb2
-rw-r--r--lib/chef/knife/yaml_convert.rb2
-rw-r--r--lib/chef/mixin/shell_out.rb2
-rw-r--r--lib/chef/mixin/which.rb2
-rw-r--r--lib/chef/platform/service_helpers.rb2
-rw-r--r--lib/chef/provider/ifconfig.rb2
-rw-r--r--lib/chef/provider/package/snap.rb2
-rw-r--r--lib/chef/provider/route.rb2
-rw-r--r--lib/chef/recipe.rb2
14 files changed, 14 insertions, 14 deletions
diff --git a/lib/chef/application.rb b/lib/chef/application.rb
index 1e3b72e1ad..322c10460d 100644
--- a/lib/chef/application.rb
+++ b/lib/chef/application.rb
@@ -25,7 +25,7 @@ require_relative "log"
require_relative "platform"
require "mixlib/cli" unless defined?(Mixlib::CLI)
require "tmpdir" unless defined?(Dir.mktmpdir)
-require "rbconfig"
+require "rbconfig" unless defined?(RbConfig)
require_relative "application/exit_code"
require_relative "dist"
require "license_acceptance/acceptor"
diff --git a/lib/chef/client.rb b/lib/chef/client.rb
index c0f1eddc9d..91d1758f70 100644
--- a/lib/chef/client.rb
+++ b/lib/chef/client.rb
@@ -54,7 +54,7 @@ require_relative "platform/rebooter"
require_relative "mixin/deprecation"
require "chef-utils" unless defined?(ChefUtils::CANARY)
require "ohai" unless defined?(Ohai::System)
-require "rbconfig"
+require "rbconfig" unless defined?(RbConfig)
require_relative "dist"
require "forwardable" unless defined?(Forwardable)
diff --git a/lib/chef/dsl/platform_introspection.rb b/lib/chef/dsl/platform_introspection.rb
index 98ea9dc670..aa6c8946d9 100644
--- a/lib/chef/dsl/platform_introspection.rb
+++ b/lib/chef/dsl/platform_introspection.rb
@@ -17,7 +17,7 @@
#
require "chef-utils" unless defined?(ChefUtils::CANARY)
-require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
+require_relative "../mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
class Chef
module DSL
diff --git a/lib/chef/encrypted_data_bag_item/decryptor.rb b/lib/chef/encrypted_data_bag_item/decryptor.rb
index 19c3a82bb7..e73d94f580 100644
--- a/lib/chef/encrypted_data_bag_item/decryptor.rb
+++ b/lib/chef/encrypted_data_bag_item/decryptor.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "yaml"
+require "yaml" unless defined?(YAML)
require_relative "../json_compat"
require "openssl" unless defined?(OpenSSL)
require "base64"
diff --git a/lib/chef/json_compat.rb b/lib/chef/json_compat.rb
index 79ed3f1ba2..188a5d38f3 100644
--- a/lib/chef/json_compat.rb
+++ b/lib/chef/json_compat.rb
@@ -20,7 +20,7 @@
require "ffi_yajl" unless defined?(FFI_Yajl)
require_relative "exceptions"
# We're requiring this to prevent breaking consumers using Hash.to_json
-require "json"
+require "json" unless defined?(JSON)
class Chef
class JSONCompat
diff --git a/lib/chef/knife/core/generic_presenter.rb b/lib/chef/knife/core/generic_presenter.rb
index bca5b5bfaf..850bfa8b3d 100644
--- a/lib/chef/knife/core/generic_presenter.rb
+++ b/lib/chef/knife/core/generic_presenter.rb
@@ -87,7 +87,7 @@ class Chef
when :json
Chef::JSONCompat.to_json_pretty(data)
when :yaml
- require "yaml"
+ require "yaml" unless defined?(YAML)
YAML.dump(data)
when :pp
require "stringio" unless defined?(StringIO)
diff --git a/lib/chef/knife/yaml_convert.rb b/lib/chef/knife/yaml_convert.rb
index 6a6e11aeec..ff64f5c53a 100644
--- a/lib/chef/knife/yaml_convert.rb
+++ b/lib/chef/knife/yaml_convert.rb
@@ -16,7 +16,7 @@
# limitations under the License.
#
-require "yaml"
+require "yaml" unless defined?(YAML)
require_relative "../knife"
class Chef::Knife::YamlConvert < Chef::Knife
diff --git a/lib/chef/mixin/shell_out.rb b/lib/chef/mixin/shell_out.rb
index c3eacc57f0..222cd73a73 100644
--- a/lib/chef/mixin/shell_out.rb
+++ b/lib/chef/mixin/shell_out.rb
@@ -16,7 +16,7 @@
# limitations under the License.
require "mixlib/shellout/helper" unless defined?(Mixlib::ShellOut::Helper)
-require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
+require_relative "chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
class Chef
module Mixin
diff --git a/lib/chef/mixin/which.rb b/lib/chef/mixin/which.rb
index 9f2ad83702..a8048962ee 100644
--- a/lib/chef/mixin/which.rb
+++ b/lib/chef/mixin/which.rb
@@ -17,7 +17,7 @@
require "chef-utils/dsl/which" unless defined?(ChefUtils::DSL::Which)
require "chef-utils/dsl/default_paths" unless defined?(ChefUtils::DSL::DefaultPaths)
-require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
+require_relative "chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
class Chef
module Mixin
diff --git a/lib/chef/platform/service_helpers.rb b/lib/chef/platform/service_helpers.rb
index 627fd8d694..8f492260b0 100644
--- a/lib/chef/platform/service_helpers.rb
+++ b/lib/chef/platform/service_helpers.rb
@@ -18,7 +18,7 @@
require_relative "../chef_class"
require "chef-utils" unless defined?(ChefUtils::CANARY)
-require "chef/mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
+require_relative "../mixin/chef_utils_wiring" unless defined?(Chef::Mixin::ChefUtilsWiring)
class Chef
class Platform
diff --git a/lib/chef/provider/ifconfig.rb b/lib/chef/provider/ifconfig.rb
index f8d84507a3..fbff49468a 100644
--- a/lib/chef/provider/ifconfig.rb
+++ b/lib/chef/provider/ifconfig.rb
@@ -20,7 +20,7 @@ require_relative "../log"
require_relative "../provider"
require_relative "../resource/file"
require_relative "../exceptions"
-require "erb"
+require "erb" unless defined?(Erb)
class Chef
class Provider
diff --git a/lib/chef/provider/package/snap.rb b/lib/chef/provider/package/snap.rb
index 77b33d5c7f..de723c5eb5 100644
--- a/lib/chef/provider/package/snap.rb
+++ b/lib/chef/provider/package/snap.rb
@@ -20,7 +20,7 @@ require_relative "../package"
require_relative "../../resource/snap_package"
require_relative "../../mixin/shell_out"
require "socket" unless defined?(Socket)
-require "json"
+require "json" unless defined?(JSON)
class Chef
class Provider
diff --git a/lib/chef/provider/route.rb b/lib/chef/provider/route.rb
index b6687bfb1f..afb1fd5a88 100644
--- a/lib/chef/provider/route.rb
+++ b/lib/chef/provider/route.rb
@@ -19,7 +19,7 @@
require_relative "../log"
require_relative "../provider"
-require "ipaddr"
+require "ipaddr" unless defined?(IPAddr)
class Chef
class Provider
diff --git a/lib/chef/recipe.rb b/lib/chef/recipe.rb
index 21e9387f2a..be188817d6 100644
--- a/lib/chef/recipe.rb
+++ b/lib/chef/recipe.rb
@@ -17,7 +17,7 @@
# limitations under the License.
#
-require "yaml"
+require "yaml" unless defined?(YAML)
require_relative "dsl/recipe"
require_relative "mixin/from_file"
require_relative "mixin/deprecation"