/** * Copyright 2011 Rackspace * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ /** * @param {Object} hash. * @param {Array} ignored. */ function items(hash, ignored) { ignored = ignored || null; var k, rv = []; function is_ignored(key) { if (!ignored || ignored.length === 0) { return false; } return ignored.indexOf(key); } for (k in hash) { if (hash.hasOwnProperty(k) && !(is_ignored(ignored))) { rv.push([k, hash[k]]); } } return rv; } function findall(re, str) { var match, matches = []; while ((match = re.exec(str))) { matches.push(match); } return matches; } function merge(a, b) { var c = {}, attrname; for (attrname in a) { if (a.hasOwnProperty(attrname)) { c[attrname] = a[attrname]; } } for (attrname in b) { if (b.hasOwnProperty(attrname)) { c[attrname] = b[attrname]; } } return c; } exports.items = items; exports.findall = findall; exports.merge = merge;