code: public static ConfigValue fromAnyRef(Object object, String originDescription) {
          return ConfigImpl.fromAnyRef(object, originDescription);
      }
docs: Creates a ConfigValue from a plain Java boxed value, which may be a
  Boolean, Number, String, Map, Iterable, or null. A Map must be a Map from
  String to more values that can be supplied to fromAnyRef(). An Iterable
  must iterate over more values that can be supplied to fromAnyRef(). A Map
  will become a ConfigObject and an Iterable will become a ConfigList. If
  the Iterable is not an ordered collection, results could be strange,
  since ConfigList is ordered.
  
  <p>
  In a Map passed to fromAnyRef(), the map's keys are plain keys, not path
  expressions. So if your Map has a key "foo.bar" then you will lookup one
  object with a key called "foo.bar", rather than an object with a key
  "foo" containing another object with a key "bar".
  
  <p>
  The originDescription will be used to set the origin() field on the
  ConfigValue. It should normally be the name of the file the values came
  from, or something short describing the value such as "default settings".
  The originDescription is prefixed to error messages so users can tell
  where problematic values are coming from.
  
  <p>
  Supplying the result of ConfigValue.unwrapped() to this function is
  guaranteed to work and should give you back a ConfigValue that matches
  the one you unwrapped. The re-wrapped ConfigValue will lose some
  information that was present in the original such as its origin, but it
  will have matching values.
  
  <p>
  This function throws if you supply a value that cannot be converted to a
  ConfigValue, but supplying such a value is a bug in your program, so you
  should never handle the exception. Just fix your program (or report a bug
  against this library).
  
  @param object
  object to convert to ConfigValue
  @param originDescription
  name of origin file or brief description of what the value is
  @return a new value