Skip to content

Commit

Permalink
(PA-4914) Use require_relative
Browse files Browse the repository at this point in the history
Require will scan each entry in the $LOAD_PATH, so avoid that.
  • Loading branch information
joshcooper committed Mar 3, 2023
1 parent f92a2e0 commit 7bb686e
Show file tree
Hide file tree
Showing 87 changed files with 345 additions and 345 deletions.
18 changes: 9 additions & 9 deletions lib/hocon.rb
Expand Up @@ -9,13 +9,13 @@ module Hocon
# is unrecognized, we raise an error.
def self.load(file, opts = nil)
# doing these requires lazily, because otherwise, classes that need to
# `require 'hocon'` to get the module into scope will end up recursing
# `require_relative 'hocon'` to get the module into scope will end up recursing
# through this require and probably ending up with circular dependencies.
require 'hocon/config_factory'
require 'hocon/impl/parseable'
require 'hocon/config_parse_options'
require 'hocon/config_resolve_options'
require 'hocon/config_error'
require_relative 'hocon/config_factory'
require_relative 'hocon/impl/parseable'
require_relative 'hocon/config_parse_options'
require_relative 'hocon/config_resolve_options'
require_relative 'hocon/config_error'
syntax = opts ? opts[:syntax] : nil

if syntax.nil?
Expand All @@ -38,10 +38,10 @@ def self.load(file, opts = nil)

def self.parse(string)
# doing these requires lazily, because otherwise, classes that need to
# `require 'hocon'` to get the module into scope will end up recursing
# `require_relative 'hocon'` to get the module into scope will end up recursing
# through this require and probably ending up with circular dependencies.
require 'hocon/config_factory'
require 'hocon/config_resolve_options'
require_relative 'hocon/config_factory'
require_relative 'hocon/config_resolve_options'
config = Hocon::ConfigFactory.parse_string(string)
resolved_config = Hocon::ConfigFactory.load_from_config(
config, Hocon::ConfigResolveOptions.defaults)
Expand Down
14 changes: 7 additions & 7 deletions lib/hocon/cli.rb
@@ -1,11 +1,11 @@
require 'optparse'
require 'hocon'
require 'hocon/version'
require 'hocon/config_render_options'
require 'hocon/config_factory'
require 'hocon/config_value_factory'
require 'hocon/parser/config_document_factory'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/version'
require_relative '../hocon/config_render_options'
require_relative '../hocon/config_factory'
require_relative '../hocon/config_value_factory'
require_relative '../hocon/parser/config_document_factory'
require_relative '../hocon/config_error'

module Hocon::CLI
# Aliases
Expand Down
6 changes: 3 additions & 3 deletions lib/hocon/config.rb
@@ -1,8 +1,8 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_mergeable'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/config_mergeable'
require_relative '../hocon/config_error'

#
# An immutable map from config paths to config values. Paths are dot-separated
Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/config_error.rb
@@ -1,6 +1,6 @@
# encoding: utf-8

require 'hocon'
require_relative '../hocon'

class Hocon::ConfigError < StandardError
def initialize(origin, message, cause)
Expand Down
10 changes: 5 additions & 5 deletions lib/hocon/config_factory.rb
@@ -1,10 +1,10 @@
# encoding: utf-8

require 'hocon'
require 'hocon/impl/parseable'
require 'hocon/config_parse_options'
require 'hocon/impl/config_impl'
require 'hocon/config_factory'
require_relative '../hocon'
require_relative '../hocon/impl/parseable'
require_relative '../hocon/config_parse_options'
require_relative '../hocon/impl/config_impl'
require_relative '../hocon/config_factory'

## Please note that the `parse` operations will simply create a ConfigValue
## and do nothing else, whereas the `load` operations will perform a higher-level
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_include_context.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/config_error'

#
# Context provided to a {@link ConfigIncluder}; this interface is only useful
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_includer_file.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/config_error'

#
# Implement this <em>in addition to</em> {@link ConfigIncluder} if you want to
Expand Down
6 changes: 3 additions & 3 deletions lib/hocon/config_list.rb
@@ -1,8 +1,8 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_value'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/config_value'
require_relative '../hocon/config_error'

#
# Subtype of {@link ConfigValue} representing a list value, as in JSON's
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_mergeable.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/config_error'

#
# Marker for types whose instances can be merged, that is {@link Config} and
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_object.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_value'
require_relative '../hocon'
require_relative '../hocon/config_value'

#
# Subtype of {@link ConfigValue} representing an object (AKA dictionary or map)
Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/config_parse_options.rb
@@ -1,6 +1,6 @@
# encoding: utf-8

require 'hocon'
require_relative '../hocon'

class Hocon::ConfigParseOptions
attr_accessor :syntax, :origin_description, :allow_missing, :includer
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_parseable.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/config_error'

#
# An opaque handle to something that can be parsed, obtained from
Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/config_render_options.rb
@@ -1,6 +1,6 @@
# encoding: utf-8

require 'hocon'
require_relative '../hocon'

class Hocon::ConfigRenderOptions
def initialize(origin_comments, comments, formatted, json, key_value_separator=:equals)
Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/config_resolve_options.rb
@@ -1,6 +1,6 @@
# encoding: utf-8

require 'hocon'
require_relative '../hocon'

class Hocon::ConfigResolveOptions
attr_reader :use_system_environment, :allow_unresolved
Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/config_syntax.rb
@@ -1,6 +1,6 @@
# encoding: utf-8

require 'hocon'
require_relative '../hocon'

module Hocon::ConfigSyntax
JSON = 0
Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/config_util.rb
@@ -1,4 +1,4 @@
require 'hocon/impl/config_impl_util'
require_relative '../hocon/impl/config_impl_util'


# Contains static utility methods
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_value.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_mergeable'
require_relative '../hocon'
require_relative '../hocon/config_mergeable'

#
# An immutable value, following the <a href="http://json.org">JSON</a> type
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_value_factory.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/impl/config_impl'
require_relative '../hocon'
require_relative '../hocon/impl/config_impl'

class Hocon::ConfigValueFactory
ConfigImpl = Hocon::Impl::ConfigImpl
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/config_value_type.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon'
require 'hocon/config_error'
require_relative '../hocon'
require_relative '../hocon/config_error'

#
# The type of a configuration value (following the <a
Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/impl.rb
@@ -1,6 +1,6 @@
# encoding: utf-8

require 'hocon'
require_relative '../hocon'

module Hocon::Impl

Expand Down
6 changes: 3 additions & 3 deletions lib/hocon/impl/abstract_config_node.rb
@@ -1,8 +1,8 @@
# encoding: utf-8

require 'hocon/impl'
require 'hocon/parser/config_node'
require 'hocon/config_error'
require_relative '../../hocon/impl'
require_relative '../../hocon/parser/config_node'
require_relative '../../hocon/config_error'

module Hocon::Impl::AbstractConfigNode
include Hocon::Parser::ConfigNode
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/impl/abstract_config_node_value.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon/impl'
require 'hocon/impl/abstract_config_node'
require_relative '../../hocon/impl'
require_relative '../../hocon/impl/abstract_config_node'

# This essentially exists in the upstream so we can ensure only certain types of
# config nodes can be passed into some methods. That's not a problem in Ruby, so this is
Expand Down
22 changes: 11 additions & 11 deletions lib/hocon/impl/abstract_config_object.rb
@@ -1,16 +1,16 @@
# encoding: utf-8

require 'hocon/impl'
require 'hocon/impl/abstract_config_value'
require 'hocon/impl/simple_config'
require 'hocon/config_object'
require 'hocon/config_value_type'
require 'hocon/impl/resolve_status'
require 'hocon/impl/simple_config_origin'
require 'hocon/config_error'
require 'hocon/impl/config_impl'
require 'hocon/impl/unsupported_operation_error'
require 'hocon/impl/container'
require_relative '../../hocon/impl'
require_relative '../../hocon/impl/abstract_config_value'
require_relative '../../hocon/impl/simple_config'
require_relative '../../hocon/config_object'
require_relative '../../hocon/config_value_type'
require_relative '../../hocon/impl/resolve_status'
require_relative '../../hocon/impl/simple_config_origin'
require_relative '../../hocon/config_error'
require_relative '../../hocon/impl/config_impl'
require_relative '../../hocon/impl/unsupported_operation_error'
require_relative '../../hocon/impl/container'

module Hocon::Impl::AbstractConfigObject
include Hocon::ConfigObject
Expand Down
20 changes: 10 additions & 10 deletions lib/hocon/impl/abstract_config_value.rb
@@ -1,15 +1,15 @@
# encoding: utf-8

require 'hocon/impl'
require_relative '../../hocon/impl'
require 'stringio'
require 'hocon/config_render_options'
require 'hocon/config_object'
require 'hocon/impl/resolve_status'
require 'hocon/impl/resolve_result'
require 'hocon/impl/unmergeable'
require 'hocon/impl/config_impl_util'
require 'hocon/config_error'
require 'hocon/config_value'
require_relative '../../hocon/config_render_options'
require_relative '../../hocon/config_object'
require_relative '../../hocon/impl/resolve_status'
require_relative '../../hocon/impl/resolve_result'
require_relative '../../hocon/impl/unmergeable'
require_relative '../../hocon/impl/config_impl_util'
require_relative '../../hocon/config_error'
require_relative '../../hocon/config_value'

##
## Trying very hard to avoid a parent reference in config values; when you have
Expand Down Expand Up @@ -161,7 +161,7 @@ def require_not_ignoring_fallbacks
def construct_delayed_merge(origin, stack)
# TODO: this might not work because ConfigDelayedMerge inherits
# from this class, so we can't `require` it from this file
require 'hocon/impl/config_delayed_merge'
require_relative '../../hocon/impl/config_delayed_merge'
Hocon::Impl::ConfigDelayedMerge.new(origin, stack)
end

Expand Down
2 changes: 1 addition & 1 deletion lib/hocon/impl/array_iterator.rb
@@ -1,6 +1,6 @@
# encoding: utf-8

require 'hocon/impl'
require_relative '../../hocon/impl'

class Hocon::Impl::ArrayIterator
def initialize(a)
Expand Down
4 changes: 2 additions & 2 deletions lib/hocon/impl/config_boolean.rb
@@ -1,7 +1,7 @@
# encoding: utf-8

require 'hocon/impl'
require 'hocon/impl/abstract_config_value'
require_relative '../../hocon/impl'
require_relative '../../hocon/impl/abstract_config_value'

class Hocon::Impl::ConfigBoolean
include Hocon::Impl::AbstractConfigValue
Expand Down
18 changes: 9 additions & 9 deletions lib/hocon/impl/config_concatenation.rb
@@ -1,14 +1,14 @@
# encoding: utf-8

require 'hocon/impl'
require 'hocon/impl/abstract_config_value'
require 'hocon/impl/abstract_config_object'
require 'hocon/impl/simple_config_list'
require 'hocon/config_object'
require 'hocon/impl/unmergeable'
require 'hocon/impl/simple_config_origin'
require 'hocon/impl/config_string'
require 'hocon/impl/container'
require_relative '../../hocon/impl'
require_relative '../../hocon/impl/abstract_config_value'
require_relative '../../hocon/impl/abstract_config_object'
require_relative '../../hocon/impl/simple_config_list'
require_relative '../../hocon/config_object'
require_relative '../../hocon/impl/unmergeable'
require_relative '../../hocon/impl/simple_config_origin'
require_relative '../../hocon/impl/config_string'
require_relative '../../hocon/impl/container'

class Hocon::Impl::ConfigConcatenation
include Hocon::Impl::Unmergeable
Expand Down
12 changes: 6 additions & 6 deletions lib/hocon/impl/config_delayed_merge.rb
@@ -1,9 +1,9 @@
require 'hocon/impl'
require 'hocon/impl/replaceable_merge_stack'
require 'hocon/impl/config_delayed_merge_object'
require 'hocon/impl/config_impl'
require 'hocon/impl/resolve_result'
require 'hocon/impl/abstract_config_value'
require_relative '../../hocon/impl'
require_relative '../../hocon/impl/replaceable_merge_stack'
require_relative '../../hocon/impl/config_delayed_merge_object'
require_relative '../../hocon/impl/config_impl'
require_relative '../../hocon/impl/resolve_result'
require_relative '../../hocon/impl/abstract_config_value'

#
# The issue here is that we want to first merge our stack of config files, and
Expand Down
6 changes: 3 additions & 3 deletions lib/hocon/impl/config_delayed_merge_object.rb
@@ -1,6 +1,6 @@
require 'hocon/impl'
require 'hocon/impl/unmergeable'
require 'hocon/impl/replaceable_merge_stack'
require_relative '../../hocon/impl'
require_relative '../../hocon/impl/unmergeable'
require_relative '../../hocon/impl/replaceable_merge_stack'

# This is just like ConfigDelayedMerge except we know statically
# that it will turn out to be an object.
Expand Down

0 comments on commit 7bb686e

Please sign in to comment.