def brice(package)
      package, libs = case package
        when Hash
          names = package.keys

          err = names.size > 1 ? "Too many package names: #{names.join(' ')}" :
                names.size < 1 ? 'No package name given' : nil

          raise ArgumentError, err if err

          [names.first, Array(package.values.first)]
        else
          [package, [package]]
      end

      if Brice.include?(package)
        if libs.all? { |lib| !lib || brice_require(lib) { true } }
          yield Brice.config[package] if block_given?
        end
      end
    end
def brice(package)
      package, libs = case package
        when Hash
          names = package.keys

          err = names.size > 1 ? "Too many package names: #{names.join(' ')}" :
                names.size < 1 ? 'No package name given' : nil

          raise ArgumentError, err if err

          [names.first, Array(package.values.first)]
        else
          [package, [package]]
      end

      if Brice.include?(package)
        if libs.all? { |lib| !lib || brice_require(lib) { true } }
          yield Brice.config[package] if block_given?
        end
      end
    end
call-seq:
   brice(package)  # package == lib
   brice(package => lib)
   brice(package => [lib, ...])

 Declare package +package+. Optionally load given libraries (see below)
 and configure the package if it has been enabled/included.

 +package+ can be a String which already names the library to be loaded
 or a Hash of the form <tt>package => lib</tt> or <tt>package => [lib, ...]</tt>.