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