Sha256: fbcf3726ae427d169b78622fe43598cf1f204248edf9d55ed77d35fb6bb135dc

Contents?: true

Size: 1.3 KB

Versions: 7

Compression:

Stored size: 1.3 KB

Contents

/*
---

script: URI.Relative.js

name: URI.Relative

description: Extends the URI class to add methods for computing relative and absolute urls.

license: MIT-style license

authors:
  - Sebastian Markbåge


requires:
  - /Class.refactor
  - /URI

provides: [URI.Relative]

...
*/

URI = Class.refactor(URI, {

	combine: function(bits, base){
		if (!base || bits.scheme != base.scheme || bits.host != base.host || bits.port != base.port)
			return this.previous.apply(this, arguments);
		var end = bits.file + (bits.query ? '?' + bits.query : '') + (bits.fragment ? '#' + bits.fragment : '');

		if (!base.directory) return (bits.directory || (bits.file ? '' : './')) + end;

		var baseDir = base.directory.split('/'),
			relDir = bits.directory.split('/'),
			path = '',
			offset;

		var i = 0;
		for (offset = 0; offset < baseDir.length && offset < relDir.length && baseDir[offset] == relDir[offset]; offset++);
		for (i = 0; i < baseDir.length - offset - 1; i++) path += '../';
		for (i = offset; i < relDir.length - 1; i++) path += relDir[i] + '/';

		return (path || (bits.file ? '' : './')) + end;
	},

	toAbsolute: function(base){
		base = new URI(base);
		if (base) base.set('directory', '').set('file', '');
		return this.toRelative(base);
	},

	toRelative: function(base){
		return this.get('value', new URI(base));
	}

});

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
lsd_rails-0.1.6 Packages/mootools-more/Source/Types/URI.Relative.js
lsd_rails-0.1.5 Packages/mootools-more/Source/Types/URI.Relative.js
lsd_rails-0.1.4 Packages/mootools-more/Source/Types/URI.Relative.js
lsd_rails-0.1.3 Packages/mootools-more/Source/Types/URI.Relative.js
lsd_rails-0.1.2 Packages/mootools-more/Source/Types/URI.Relative.js
lsd_rails-0.1.1 Packages/mootools-more/Source/Types/URI.Relative.js
lsd_rails-0.1 Packages/mootools-more/Source/Types/URI.Relative.js