Skip to content

Instantly share code, notes, and snippets.

@drewlesueur
Created March 29, 2010 08:08
Show Gist options
  • Save drewlesueur/347583 to your computer and use it in GitHub Desktop.
Save drewlesueur/347583 to your computer and use it in GitHub Desktop.
<!doctype html>
<html>
<head>
<script src="jquery.js"></script>
<script src="json2.js"></script>
<script>
var start = 1269823940545
function rand(x) {
return Math.floor(Math.random()*(x+1))
}
function save(item) {
var key
var time = (new Date()).getTime()
time = time - start
do {
key = time + "" + rand(100)
} while (localStorage.getItem(key));
localStorage.setItem(key, JSON.stringify(item))
}
function find(fn) {
var len = localStorage.length;
var ret = []
console.log("length " + len)
for (var i = 0; i < len; i++) {
key = localStorage.key(i)
console.log(localStorage.getItem(key))
try {
val = localStorage.getItem(key)
val = JSON.parse(val)
if (fn(val)) {
val._key = key
ret.push(val)
}
} catch (e) {
console.log("error")
continue;
}
}
return ret
}
res = find(function(val) {
return val.test == 'yea'
})
function show() {
for (var i = 0; i < localStorage.length; i++) {
try {
key = localStorage.key(i);
item = localStorage.getItem(key)
item = JSON.parse(item);
console.log(item);
} catch (e) {
continue;
}
}
}
function load_page(page_name) {
$.ajax({
'type' : 'GET',
'url' : 'login.html',
'success' : function(html) {
$('#container').empty();
$('#container').html(html)
}
})
}
function s(str) {
"user :username drew :password fixitnow"
type = str.match(/^[\w]+/)[0]
str = str.substr(type.length + 1);
arr = str.split(":")
arr = arr.slice(1);
ret = {}
ret.type = type
for (var i = 0; i < arr.length; i++) {
word = arr[i];
field = word.match(/^[\w]+/)[0]
value = word.substr(field.length + 1);
ret[field] = value;
}
save(ret)
}
function q(str) {
"user :username drew :password fixitnow"
type = str.match(/^[\w]+/)[0]
str = str.substr(type.length + 1);
arr = str.split(":")
arr = arr.slice(1);
ret = {}
function func(obj) {
if (obj.type != type) {
return false;
}
for (var i = 0; i < arr.length; i++) {
word = arr[i];
field = word.match(/^[\w]+/)[0]
value = word.substr(field.length + 1);
if (obj[field] != value) {
return false
}
}
return true;
}
return find(func)
}
function sq(str) {
"user :username=='drew' && :password=='fixitnow'"
type = str.match(/^[\w]+/)[0]
str = str.substr(type.length + 1);
console.log(str)
// "user :username.match(/yo/) && have(:yo_dude) == 'what'"
function replacer(str) {
return "obj." + str.substr(1)
}
str = str.replace(/\:[\w]+/g, replacer)
console.log(str)
var func = "function(obj) {" +
"if (obj.type != '"+type+"') return false;" +
"return "+ str +
"}"
func = eval( "(" + func + ")" )
ret = find(func)
return ret
}
$(document).ready(function(){
load_page('login.html')
$('#login_from').live('submit', function(e){
e.preventDefault()
var username = $('#username').val();
var password = $('#password').val();
users = find(function(v){
return v.type == "user" && v.name == username && v.password == password
})
if (users.count == 1) {
alert('yea')
}
})
})
</script>
</head>
<body>
<div id="container">
</div>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment