module Toys::Compat

def self.allow_fork?

Other tags:
    Private: -
def self.allow_fork?
  !jruby? && ::RbConfig::CONFIG["host_os"] !~ /mswin/
end

def self.glob_in_dir(glob, dir)

Other tags:
    Private: -
def self.glob_in_dir(glob, dir)
  ::Dir.glob(glob, base: dir)
end

def self.glob_in_dir(glob, dir)

Other tags:
    Private: -
def self.glob_in_dir(glob, dir)
  ::Dir.chdir(dir) { ::Dir.glob(glob) }
end

def self.instantiate(klass, args, kwargs, block)

Other tags:
    Private: -
def self.instantiate(klass, args, kwargs, block)
  klass.new(*args, **kwargs, &block)
end

def self.instantiate(klass, args, kwargs, block)

Other tags:
    Private: -
def self.instantiate(klass, args, kwargs, block)
  formals = klass.instance_method(:initialize).parameters
  if kwargs.empty? && formals.all? { |arg| arg.first != :key && arg.first != :keyrest }
    klass.new(*args, &block)
  else
    klass.new(*args, **kwargs, &block)
  end
end

def self.jruby?

Other tags:
    Private: -
def self.jruby?
  ::RUBY_PLATFORM == "java"
end

def self.merge_clones(hash, orig)

Other tags:
    Private: -
def self.merge_clones(hash, orig)
  orig.each { |k, v| hash[k] = v.clone }
  hash
end

def self.merge_clones(hash, orig)

Other tags:
    Private: -
def self.merge_clones(hash, orig)
  orig.each do |k, v|
    hash[k] =
      begin
        v.clone
      rescue ::TypeError
        v
      end
  end
  hash
end

def self.suggestions(word, list)

Other tags:
    Private: -
def self.suggestions(word, list)
  if supports_suggestions?
    ::DidYouMean::SpellChecker.new(dictionary: list).correct(word)
  else
    []
  end
end

def self.supports_suggestions?

Other tags:
    Private: -
def self.supports_suggestions?
  unless defined?(@supports_suggestions)
    require "rubygems"
    begin
      require "did_you_mean"
      @supports_suggestions = defined?(::DidYouMean::SpellChecker)
    rescue ::LoadError
      @supports_suggestions = false
    end
  end
  @supports_suggestions
end