src/cm/media/js/lib/yui/yui_3.10.3/build/querystring-parse-simple/querystring-parse-simple.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('querystring-parse-simple', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
// @TODO this looks like we are requiring the user to extract the querystring
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
// portion of the url, which isn't good.  The majority use case will be to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
// extract querystring from the document configured for this YUI instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
// This should be the default if qs is not supplied.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
/*global Y */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
 * <p>Provides Y.QueryString.parse method for converting Query Strings to an object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
 * This is a simpler implementation than the full querystring-parse.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 * <p>Because some things may require basic query string escaping functionality,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
 * this module provides the bare minimum functionality (decoding a hash of simple values),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
 * without the additional support for arrays, objects, and so on.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
 * <p>This provides a friendly way to deserialize basic query strings, without necessitating
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 * a lot of code for simple use-cases.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 * @module querystring
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 * @submodule querystring-parse-simple
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
var QueryString = Y.namespace("QueryString");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
QueryString.parse = function (qs, sep, eq) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
    sep = sep || "&";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    eq = eq || "=";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
    for (
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
        var obj = {},
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
            i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
            pieces = qs.split(sep),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
            l = pieces.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
            tuple;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        i < l;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        i ++
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
        tuple = pieces[i].split(eq);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
        if (tuple.length > 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
            obj[QueryString.unescape(tuple.shift())] = QueryString.unescape(tuple.join(eq));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    return obj;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
QueryString.unescape = function (s) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
    return decodeURIComponent(s.replace(/\+/g, ' '));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
}, '3.10.3', {"requires": ["yui-base"]});