Skip to content

Commit

Permalink
Refactoring based on feedback from Mike and Tom.
Browse files Browse the repository at this point in the history
Rename `parse` -> `parser`, `format` -> `formatter`.  Parser now calls
`map` setters instead of returning an array.
  • Loading branch information
jasondavies committed Dec 9, 2010
1 parent 5581913 commit 492999f
Show file tree
Hide file tree
Showing 4 changed files with 102 additions and 102 deletions.
44 changes: 22 additions & 22 deletions polymaps.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ if (!org) var org = {};
if (!org.polymaps) org.polymaps = {};
(function(po){

po.version = "2.3.0"; // semver.org
po.version = "2.4.0"; // semver.org

var zero = {x: 0, y: 0};
po.ns = {
Expand Down Expand Up @@ -1763,11 +1763,19 @@ po.hash = function() {
lat = 90 - 1e-8, // allowable latitude range
map;

var parse = function(s) {
return s.split("/").map(Number);
var parser = function(s) {
var args = s.split("/").map(Number);
if (args.length < 3 || args.some(isNaN))
move(); // replace bogus hash
else {
var size = map.size();
map.zoomBy(args[0] - map.zoom(),
{x: size.x / 2, y: size.y / 2},
{lat: Math.min(lat, Math.max(-lat, args[1])), lon: args[2]});
}
};

var format = function(map) {
var formatter = function(map) {
var center = map.center(),
zoom = map.zoom(),
precision = Math.max(0, Math.ceil(Math.log(zoom) / Math.LN2));
Expand All @@ -1777,21 +1785,13 @@ po.hash = function() {
};

function move() {
var s1 = format(map);
var s1 = formatter(map);
if (s0 !== s1) location.replace(s0 = s1); // don't recenter the map!
}

function hashchange() {
if (location.hash === s0) return; // ignore spurious hashchange events
var args = parse((s0 = location.hash).substring(1));
if (!args || args.length == undefined || args.length < 3 || args.some(isNaN))
move(); // replace bogus hash
else {
var size = map.size();
map.zoomBy(args[0] - map.zoom(),
{x: size.x / 2, y: size.y / 2},
{lat: Math.min(lat, Math.max(-lat, args[1])), lon: args[2]});
}
parser((s0 = location.hash).substring(1));
}

hash.map = function(x) {
Expand All @@ -1808,17 +1808,17 @@ po.hash = function() {
return hash;
};

hash.parse = function(x) {
if (!arguments.length) return parse;
parse = x;
hash.parser = function(x) {
if (!arguments.length) return parser;
parser = x;
return hash;
}
};

hash.format = function(x) {
if (!arguments.length) return format;
format = x;
hash.formatter = function(x) {
if (!arguments.length) return formatter;
formatter = x;
return hash;
}
};

return hash;
};
Expand Down
Loading

0 comments on commit 492999f

Please sign in to comment.