Sha256: 7f79ae859e50c4107946c9f1796fa1d87e86fdfd78a8c39c5ac0699441305fb8
Contents?: true
Size: 1.81 KB
Versions: 3
Compression:
Stored size: 1.81 KB
Contents
(function () { var Routes = function () { var self = this, routes = <%= @routes.to_json %>; self.defaultParams = {} var serialize = function(obj, prefix) { var str = []; for(var p in obj) { if (obj.hasOwnProperty(p)) { var k = prefix ? prefix + "[" + p + "]" : p, v = obj[p]; str.push(typeof v == "object" ? serialize(v, k) : encodeURIComponent(k) + "=" + encodeURIComponent(v)); } } return str.join("&"); } var omit = function (hash, key) { var hash = angular.copy(hash); delete hash[key] return hash } angular.forEach(routes, function (val, key) { var result = ''; var gsub = function(params) { if (params.format) { result += '.' + params.format } var params = omit(params, 'format'); angular.forEach(params, function (v, k) { var subst = ':' + k; if (result.search(subst) != -1) { result = result.replace(subst, v); params = omit(params, k); } }) if (result.search(/\*\w+/)!=-1) { result = result.replace(/\*(\w+)/, function (a, b) { return params[b]; }) } if (Object.keys(params).length) result += '?'+serialize(params) return result; } self[key+'_path'] = function (params) { var params = angular.extend(angular.copy(val.defaults), params || {}); result = val.path; var defaultParams = angular.copy(self.defaultParams); return gsub(angular.extend(defaultParams, params)); } self[key+'_url'] = function (params) { return window.location.origin + self[key+'_path'](params) } }) } window.Routes = new Routes(); }).call(this)
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
oxymoron-1.1.5 | app/assets/javascripts/oxymoron/routes.js.erb |
oxymoron-1.1.4 | app/assets/javascripts/oxymoron/routes.js.erb |
oxymoron-1.1.3 | app/assets/javascripts/oxymoron/routes.js.erb |