Rye.define('util', function(){

    function extend (destination, source) {
        for (var key in source) {
            if (Object.prototype.hasOwnProperty.call(source, key)){
                destination[key] = source[key]
            }
        }
        return destination
    }

    function inherits (child, parent) {
        extend(child, parent)
        function Ctor () {
            this.constructor = child
        }
        Ctor.prototype = parent.prototype
        child.prototype = new Ctor()
        child.__super__ = parent.prototype
        return child
    }

    function isElement (element) {
        return element && (element.nodeType === 1 || element.nodeType === 9)
    }
    
    function isNodeList (obj) {
        return obj && (obj instanceof window.NodeList) || (obj instanceof window.HTMLCollection)
    }

    function unique (array) {
        return array.filter(function(item, idx){
            return array.indexOf(item) == idx
        })
    }

    function pluck (array, property){
        return array.map(function(item){
            return item[property]
        })
    }

    function prefix (key, obj) {
        var result
          , upcased = key[0].toUpperCase() + key.substring(1)
          , prefixes = ['moz', 'webkit', 'ms', 'o']

        obj = obj || window

        if (result = obj[key]){
            return result
        }

        // No pretty array methods here :(
        // http://jsperf.com/everywhile
        while(prefix = prefixes.shift()){
            if (result = obj[prefix + upcased]){
                break;
            }
        }
        return result
    }

    function bindMethod (obj, method, args_length) {
        return function(){
            return obj[method].apply(obj, [].slice.call(arguments, 0, args_length))
        }
    }

    return {
        extend      : extend
      , inherits    : inherits
      , isElement   : isElement
      , isNodeList  : isNodeList
      , unique      : unique
      , pluck       : pluck
      , prefix      : prefix
      , bindMethod  : bindMethod
    }

})

@@ -1008,16 +1008,17 @@
 roperty)
+ 
 %7B%0A      
@@ -1096,32 +1096,177 @@
       %7D)%0A    %7D%0A%0A
+    function put (array, property, value) %7B%0A        return array.map(function(item)%7B%0A            return item%5Bproperty%5D = value%0A        %7D)%0A    %7D%0A%0A
     function pre
@@ -2140,16 +2140,42 @@
 : pluck%0A
+      , put         : put%0A
       , 

Add put() method, inverse of pluck