diff --git a/lib/hocon.rb b/lib/hocon.rb
index cc7499e..b0e4d84 100644
--- a/lib/hocon.rb
+++ b/lib/hocon.rb
@@ -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?
@@ -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)
diff --git a/lib/hocon/cli.rb b/lib/hocon/cli.rb
index d966c55..9bc1043 100644
--- a/lib/hocon/cli.rb
+++ b/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
diff --git a/lib/hocon/config.rb b/lib/hocon/config.rb
index 5ff47e6..6637d66 100644
--- a/lib/hocon/config.rb
+++ b/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
diff --git a/lib/hocon/config_error.rb b/lib/hocon/config_error.rb
index c89b109..21af151 100644
--- a/lib/hocon/config_error.rb
+++ b/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)
diff --git a/lib/hocon/config_factory.rb b/lib/hocon/config_factory.rb
index cce3a04..f1b0b79 100644
--- a/lib/hocon/config_factory.rb
+++ b/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
diff --git a/lib/hocon/config_include_context.rb b/lib/hocon/config_include_context.rb
index d5e4bdc..d696654 100644
--- a/lib/hocon/config_include_context.rb
+++ b/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
diff --git a/lib/hocon/config_includer_file.rb b/lib/hocon/config_includer_file.rb
index cfaf54d..0dc4f68 100644
--- a/lib/hocon/config_includer_file.rb
+++ b/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 in addition to {@link ConfigIncluder} if you want to
diff --git a/lib/hocon/config_list.rb b/lib/hocon/config_list.rb
index bd3a79f..8349520 100644
--- a/lib/hocon/config_list.rb
+++ b/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
diff --git a/lib/hocon/config_mergeable.rb b/lib/hocon/config_mergeable.rb
index c485ac2..040c0f2 100644
--- a/lib/hocon/config_mergeable.rb
+++ b/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
diff --git a/lib/hocon/config_object.rb b/lib/hocon/config_object.rb
index 3f44399..0b2e26d 100644
--- a/lib/hocon/config_object.rb
+++ b/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)
diff --git a/lib/hocon/config_parse_options.rb b/lib/hocon/config_parse_options.rb
index 7303185..ffc6c8a 100644
--- a/lib/hocon/config_parse_options.rb
+++ b/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
diff --git a/lib/hocon/config_parseable.rb b/lib/hocon/config_parseable.rb
index 35a019d..51e356b 100644
--- a/lib/hocon/config_parseable.rb
+++ b/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
diff --git a/lib/hocon/config_render_options.rb b/lib/hocon/config_render_options.rb
index 898a5f2..42120bc 100644
--- a/lib/hocon/config_render_options.rb
+++ b/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)
diff --git a/lib/hocon/config_resolve_options.rb b/lib/hocon/config_resolve_options.rb
index f6ac601..74e7a9d 100644
--- a/lib/hocon/config_resolve_options.rb
+++ b/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
diff --git a/lib/hocon/config_syntax.rb b/lib/hocon/config_syntax.rb
index ada51ea..e809db9 100644
--- a/lib/hocon/config_syntax.rb
+++ b/lib/hocon/config_syntax.rb
@@ -1,6 +1,6 @@
# encoding: utf-8
-require 'hocon'
+require_relative '../hocon'
module Hocon::ConfigSyntax
JSON = 0
diff --git a/lib/hocon/config_util.rb b/lib/hocon/config_util.rb
index 8529a0a..9be65e0 100644
--- a/lib/hocon/config_util.rb
+++ b/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
diff --git a/lib/hocon/config_value.rb b/lib/hocon/config_value.rb
index cfbcae2..fd55d34 100644
--- a/lib/hocon/config_value.rb
+++ b/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 JSON type
diff --git a/lib/hocon/config_value_factory.rb b/lib/hocon/config_value_factory.rb
index 56ddaa1..08b4610 100644
--- a/lib/hocon/config_value_factory.rb
+++ b/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
diff --git a/lib/hocon/config_value_type.rb b/lib/hocon/config_value_type.rb
index 614130e..d41a3ad 100644
--- a/lib/hocon/config_value_type.rb
+++ b/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