class EacRubyUtils::RequireSub::SubFile

def active_support_require

def active_support_require
  return false unless owner.active_support_require?
  ::Kernel.require_dependency(path)
  true
end

def autoload_require

def autoload_require
  return false unless owner.base?
  basename = ::File.basename(path, '.*')
  return false if basename.start_with?('_')
  owner.base.autoload ::ActiveSupport::Inflector.camelize(basename), path
  true
end

def base_constant

def base_constant
  return nil unless owner.base?
  owner.base.const_get(constant_name)
rescue ::NameError
  nil
end

def constant_name

def constant_name
  ::ActiveSupport::Inflector.camelize(::File.basename(path, '.rb'))
end

def include_module

def include_module
  return unless module?
  owner.include_or_prepend_method.if_present do |v|
    owner.base.send(v, base_constant)
  end
end

def initialize(owner, path)

def initialize(owner, path)
  @owner = owner
  @path = path
end

def kernel_require

def kernel_require
  ::Kernel.require(path)
end

def module?

def module?
  base_constant.is_a?(::Module) && !base_constant.is_a?(::Class)
end

def require_file

def require_file
  active_support_require || autoload_require || kernel_require
end