Reusable Accessible Mapping Platform

API Docs for: 5.3.2
Show:

File: src/js/RAMP/Utils/url.js

/* global define */

/**
* Utility module containing useful static classes.
*
* @module Utils
* @uses dojo/_base/declare
* @uses dojo/io-query
*/

define(["dojo/_base/declare", "dojo/io-query"],
    function (declare, dojoQuery) {
        "use strict";
        return declare(null, {
            /**
            * A simple class that replaces the `dojo._Url` functionality that became deprecated
            * Construct a Url object from a url string, then the uri and query
            * part of the url string can be accessed from the Url's uri and query
            * field respectively.
            *
            * #####Example
            *
            *      require(["scripts/Url"], function(Url) {
            *              var urlObj = new Url("http://somewebsite.com");
            *
            *              // Access the uri and query using the urlObj's fields
            *              var uri = urlObj.uri;
            *              var query = urlObj.query;
            *        });
            *
            * @class Url
            * @constructor
            * @param {String} fullUrl a string denoting the full url of a webpage
            * @uses dojo/_base/declare
            * @uses dojo/io-query
            */
            constructor: function (fullUrl) {
                var index = fullUrl.indexOf('?');

                if (index === -1) {
                    this.uri = fullUrl;
                    this.query = "";
                } else {
                    this.uri = fullUrl.substring(0, index);
                    this.query = fullUrl.substring(index + 1);
                }
                this.queryObject = dojoQuery.queryToObject(this.query);
            }
        });
    });