# STATUS: Untested

ObjectUtils = module.exports =

	steal: (object, key) ->
		keys = key.split "."
		last = keys.pop()
		for key in keys
			break unless object?
			object = object[key]
		value = object[last]
		delete object[last]
		return value

	addProps: (object, props) ->
		for name, prop of props
			if checkType prop, Property
				prop.define object, name
			else
				object[name] = prop

	merge: (objects...) ->
		throw Error "unimplemented"

#
# Internal
#
		
{ checkType } = require "./TypeUtils"
Property = require "./../Property"

###

Example:

	obj =
		options:
			duration: 1000

	key = "options.duration"

	assert steal(obj, key) is 1000

	assert steal(obj, key) is undefined

###
