ramaze 0.3.0 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -2
- data/bin/ramaze +9 -3
- data/doc/AUTHORS +6 -2
- data/doc/CHANGELOG +272 -66
- data/doc/GPL +12 -13
- data/doc/README.html +729 -0
- data/doc/changes.txt +5757 -0
- data/doc/changes.xml +5759 -0
- data/doc/meta/announcement.txt +48 -39
- data/doc/tutorial/todolist.mkd +10 -12
- data/examples/blog/start.rb +1 -0
- data/examples/caching.rb +1 -0
- data/examples/element.rb +3 -0
- data/examples/hello.rb +1 -3
- data/examples/identity.rb +5 -8
- data/examples/layout.rb +1 -0
- data/examples/linking.rb +1 -0
- data/examples/memleak_detector.rb +1 -0
- data/examples/nitro_form.rb +1 -0
- data/examples/rammit/start.rb +1 -0
- data/examples/rapaste/Rakefile +7 -0
- data/examples/rapaste/{src/controller.rb → controller/paste.rb} +28 -3
- data/examples/rapaste/{src/model.rb → model/paste.rb} +0 -4
- data/examples/rapaste/public/css/display.css +17 -0
- data/examples/rapaste/spec/rapaste.rb +2 -2
- data/examples/rapaste/start.rb +9 -4
- data/examples/rapaste/{template → view}/copy.xhtml +0 -0
- data/examples/rapaste/{template → view}/index.xhtml +0 -0
- data/examples/rapaste/{template → view}/layout.xhtml +3 -0
- data/examples/rapaste/{template → view}/list.xhtml +4 -3
- data/examples/rapaste/view/search.xhtml +41 -0
- data/examples/rapaste/{template → view}/view.xhtml +0 -0
- data/examples/simple.rb +3 -3
- data/examples/templates/template/external.amrita +9 -9
- data/examples/templates/template/external.redcloth +19 -0
- data/examples/templates/template_amrita2.rb +40 -7
- data/examples/templates/template_erubis.rb +3 -3
- data/examples/templates/template_ezamar.rb +1 -3
- data/examples/templates/template_haml.rb +1 -3
- data/examples/templates/template_liquid.rb +3 -3
- data/examples/templates/template_markaby.rb +1 -3
- data/examples/templates/template_nagoro.rb +1 -3
- data/examples/templates/template_redcloth.rb +59 -0
- data/examples/templates/template_remarkably.rb +1 -3
- data/examples/templates/template_xslt.rb +1 -4
- data/examples/todolist/src/controller/main.rb +1 -1
- data/examples/todolist/start.rb +1 -2
- data/examples/upload/start.rb +19 -0
- data/examples/upload/view/index.xhtml +25 -0
- data/examples/whywiki/start.rb +1 -3
- data/examples/wikore/start.rb +3 -0
- data/examples/wiktacular/mkd/newpagename/current.mkd +1 -0
- data/examples/wiktacular/mkd/newpagename/current.mkd.bak +1 -0
- data/examples/wiktacular/start.rb +1 -0
- data/lib/proto/controller/main.rb +0 -3
- data/lib/proto/public/js/jquery.js +106 -93
- data/lib/proto/spec/main.rb +2 -5
- data/lib/proto/start.rb +0 -3
- data/lib/ramaze.rb +3 -2
- data/lib/ramaze/action.rb +6 -10
- data/lib/ramaze/adapter/lsws.rb +19 -0
- data/lib/ramaze/contrib/email.rb +84 -0
- data/lib/ramaze/contrib/email.rb-darcs-backup0 +81 -0
- data/lib/ramaze/contrib/gettext.rb +1 -0
- data/lib/ramaze/contrib/gettext/parser.rb +46 -0
- data/lib/ramaze/contrib/route.rb +3 -36
- data/lib/ramaze/controller.rb +4 -6
- data/lib/ramaze/controller/resolve.rb +28 -1
- data/lib/ramaze/dispatcher.rb +1 -1
- data/lib/ramaze/dispatcher/file.rb +17 -0
- data/lib/ramaze/global/globalstruct.rb +7 -4
- data/lib/ramaze/helper/auth.rb +1 -1
- data/lib/ramaze/helper/identity.rb +25 -15
- data/lib/ramaze/helper/link.rb +29 -8
- data/lib/ramaze/helper/maruku.rb +7 -0
- data/lib/ramaze/helper/partial.rb +25 -10
- data/lib/ramaze/route.rb +56 -0
- data/lib/ramaze/snippets/metaid.rb +17 -0
- data/lib/ramaze/spec/helper.rb +0 -2
- data/lib/ramaze/spec/helper/mock_http.rb +6 -0
- data/lib/ramaze/spec/helper/pretty_output.rb +5 -1
- data/lib/ramaze/store/default.rb +3 -1
- data/lib/ramaze/template.rb +1 -1
- data/lib/ramaze/template/amrita2.rb +21 -15
- data/lib/ramaze/template/bijou.rb +39 -0
- data/lib/ramaze/template/builder.rb +28 -0
- data/lib/ramaze/template/redcloth.rb +24 -0
- data/lib/ramaze/template/sass.rb +3 -1
- data/lib/ramaze/tool/create.rb +2 -1
- data/lib/ramaze/tool/localize.rb +6 -1
- data/lib/ramaze/trinity/request.rb +8 -0
- data/lib/ramaze/trinity/session.rb +8 -5
- data/lib/ramaze/version.rb +1 -1
- data/rake_tasks/gem.rake +0 -1
- data/rake_tasks/maintenance.rake +4 -1
- data/spec/contrib/route.rb +14 -63
- data/spec/examples/linking.rb +2 -2
- data/spec/examples/templates/template_redcloth.rb +28 -0
- data/spec/ramaze/controller/subclass.rb +21 -0
- data/spec/ramaze/dispatcher/file.rb +31 -0
- data/spec/ramaze/helper/link.rb +46 -0
- data/spec/ramaze/helper/partial.rb +22 -1
- data/spec/ramaze/helper/template/locals.xhtml +1 -0
- data/spec/ramaze/helper/template/recursive_locals.xhtml +7 -0
- data/spec/ramaze/params.rb +8 -0
- data/spec/ramaze/request.rb +14 -0
- data/spec/ramaze/route.rb +107 -0
- data/spec/ramaze/session.rb +4 -2
- data/spec/ramaze/template/amrita2.rb +21 -7
- data/spec/ramaze/template/amrita2/external.amrita +6 -0
- data/spec/ramaze/template/amrita2/sum.amrita +1 -1
- data/spec/ramaze/template/bijou.rb +25 -0
- data/spec/ramaze/template/builder.rb +55 -0
- data/spec/ramaze/template/builder/external.rxml +3 -0
- data/spec/ramaze/template/haml.rb +15 -0
- data/spec/ramaze/template/haml/locals.haml +1 -0
- data/spec/ramaze/template/redcloth.rb +38 -0
- data/spec/ramaze/template/redcloth/external.redcloth +1 -0
- metadata +472 -442
- data/examples/rapaste/rapaste.sqlite +0 -0
- data/spec/ramaze/template/amrita2/data.amrita +0 -6
- data/spec/ramaze/template/amrita2/index.amrita +0 -1
@@ -1,6 +1,3 @@
|
|
1
|
-
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
2
|
-
# All files in this distribution are subject to the terms of the Ruby license.
|
3
|
-
|
4
1
|
# Default url mappings are:
|
5
2
|
# a controller called Main is mapped on the root of the site: /
|
6
3
|
# a controller called Something is mapped on: /something
|
@@ -1,13 +1,13 @@
|
|
1
1
|
(function(){
|
2
2
|
/*
|
3
|
-
* jQuery 1.2.
|
3
|
+
* jQuery 1.2.3b - New Wave Javascript
|
4
4
|
*
|
5
5
|
* Copyright (c) 2007 John Resig (jquery.com)
|
6
6
|
* Dual licensed under the MIT (MIT-LICENSE.txt)
|
7
7
|
* and GPL (GPL-LICENSE.txt) licenses.
|
8
8
|
*
|
9
|
-
* $Date:
|
10
|
-
* $Rev:
|
9
|
+
* $Date: 2008-01-25 19:26:28 -0500 (Fri, 25 Jan 2008) $
|
10
|
+
* $Rev: 4537 $
|
11
11
|
*/
|
12
12
|
|
13
13
|
// Map over jQuery in case of overwrite
|
@@ -101,7 +101,7 @@ jQuery.fn = jQuery.prototype = {
|
|
101
101
|
},
|
102
102
|
|
103
103
|
// The current version of jQuery being used
|
104
|
-
jquery: "1.2.
|
104
|
+
jquery: "1.2.3b",
|
105
105
|
|
106
106
|
// The number of elements contained in the matched element set
|
107
107
|
size: function() {
|
@@ -304,11 +304,9 @@ jQuery.fn = jQuery.prototype = {
|
|
304
304
|
// as properties will not be copied (such as the
|
305
305
|
// the name attribute on an input).
|
306
306
|
var clone = this.cloneNode(true),
|
307
|
-
container = document.createElement("div")
|
308
|
-
container2 = document.createElement("div");
|
307
|
+
container = document.createElement("div");
|
309
308
|
container.appendChild(clone);
|
310
|
-
|
311
|
-
return container2.firstChild;
|
309
|
+
return jQuery.clean([container.innerHTML])[0];
|
312
310
|
} else
|
313
311
|
return this.cloneNode(true);
|
314
312
|
});
|
@@ -324,6 +322,8 @@ jQuery.fn = jQuery.prototype = {
|
|
324
322
|
// Copy the events from the original to the clone
|
325
323
|
if ( events === true )
|
326
324
|
this.find("*").andSelf().each(function(i){
|
325
|
+
if (this.nodeType == 3)
|
326
|
+
return;
|
327
327
|
var events = jQuery.data( this, "events" );
|
328
328
|
|
329
329
|
for ( var type in events )
|
@@ -598,8 +598,7 @@ jQuery.extend({
|
|
598
598
|
return jQuery;
|
599
599
|
},
|
600
600
|
|
601
|
-
//
|
602
|
-
// is the only cross-browser way to do this. --John
|
601
|
+
// See test/unit/core.js for details concerning this function.
|
603
602
|
isFunction: function( fn ) {
|
604
603
|
return !!fn && typeof fn != "string" && !fn.nodeName &&
|
605
604
|
fn.constructor != Array && /function/i.test( fn + "" );
|
@@ -707,20 +706,22 @@ jQuery.extend({
|
|
707
706
|
// args is for internal usage only
|
708
707
|
each: function( object, callback, args ) {
|
709
708
|
if ( args ) {
|
710
|
-
if ( object.length == undefined )
|
709
|
+
if ( object.length == undefined ) {
|
711
710
|
for ( var name in object )
|
712
|
-
callback.apply( object[ name ], args )
|
713
|
-
|
711
|
+
if ( callback.apply( object[ name ], args ) === false )
|
712
|
+
break;
|
713
|
+
} else
|
714
714
|
for ( var i = 0, length = object.length; i < length; i++ )
|
715
715
|
if ( callback.apply( object[ i ], args ) === false )
|
716
716
|
break;
|
717
717
|
|
718
718
|
// A special, fast, case for the most common use of each
|
719
719
|
} else {
|
720
|
-
if ( object.length == undefined )
|
720
|
+
if ( object.length == undefined ) {
|
721
721
|
for ( var name in object )
|
722
|
-
callback.call( object[ name ], name, object[ name ] )
|
723
|
-
|
722
|
+
if ( callback.call( object[ name ], name, object[ name ] ) === false )
|
723
|
+
break;
|
724
|
+
} else
|
724
725
|
for ( var i = 0, length = object.length, value = object[0];
|
725
726
|
i < length && callback.call( value, i, value ) !== false; value = object[++i] ){}
|
726
727
|
}
|
@@ -836,7 +837,7 @@ jQuery.extend({
|
|
836
837
|
if ( name.match( /float/i ) )
|
837
838
|
name = styleFloat;
|
838
839
|
|
839
|
-
if ( !force && elem.style[ name ] )
|
840
|
+
if ( !force && elem.style && elem.style[ name ] )
|
840
841
|
ret = elem.style[ name ];
|
841
842
|
|
842
843
|
else if ( document.defaultView && document.defaultView.getComputedStyle ) {
|
@@ -933,7 +934,7 @@ jQuery.extend({
|
|
933
934
|
if ( typeof elem == "string" ) {
|
934
935
|
// Fix "XHTML"-style tags in all browsers
|
935
936
|
elem = elem.replace(/(<(\w+)[^>]*?)\/>/g, function(all, front, tag){
|
936
|
-
return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area)$/i) ?
|
937
|
+
return tag.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i) ?
|
937
938
|
all :
|
938
939
|
front + "></" + tag + ">";
|
939
940
|
});
|
@@ -1153,11 +1154,6 @@ jQuery.extend({
|
|
1153
1154
|
},
|
1154
1155
|
|
1155
1156
|
grep: function( elems, callback, inv ) {
|
1156
|
-
// If a string is passed in for the function, make a function
|
1157
|
-
// for it (a handy shortcut)
|
1158
|
-
if ( typeof callback == "string" )
|
1159
|
-
callback = eval("false||function(a,i){return " + callback + "}");
|
1160
|
-
|
1161
1157
|
var ret = [];
|
1162
1158
|
|
1163
1159
|
// Go through the array, only saving the items
|
@@ -1230,18 +1226,16 @@ jQuery.extend({
|
|
1230
1226
|
});
|
1231
1227
|
|
1232
1228
|
jQuery.each({
|
1233
|
-
parent:
|
1234
|
-
parents:
|
1235
|
-
next:
|
1236
|
-
prev:
|
1237
|
-
nextAll:
|
1238
|
-
prevAll:
|
1239
|
-
siblings:
|
1240
|
-
children:
|
1241
|
-
contents:
|
1229
|
+
parent: function(elem){return elem.parentNode;},
|
1230
|
+
parents: function(elem){return jQuery.dir(elem,"parentNode");},
|
1231
|
+
next: function(elem){return jQuery.nth(elem,2,"nextSibling");},
|
1232
|
+
prev: function(elem){return jQuery.nth(elem,2,"previousSibling");},
|
1233
|
+
nextAll: function(elem){return jQuery.dir(elem,"nextSibling");},
|
1234
|
+
prevAll: function(elem){return jQuery.dir(elem,"previousSibling");},
|
1235
|
+
siblings: function(elem){return jQuery.sibling(elem.parentNode.firstChild,elem);},
|
1236
|
+
children: function(elem){return jQuery.sibling(elem.firstChild);},
|
1237
|
+
contents: function(elem){return jQuery.nodeName(elem,"iframe")?elem.contentDocument||elem.contentWindow.document:jQuery.makeArray(elem.childNodes);}
|
1242
1238
|
}, function(name, fn){
|
1243
|
-
fn = eval("false||function(elem){return " + fn + "}");
|
1244
|
-
|
1245
1239
|
jQuery.fn[ name ] = function( selector ) {
|
1246
1240
|
var ret = jQuery.map( this, fn );
|
1247
1241
|
|
@@ -1356,61 +1350,61 @@ var chars = jQuery.browser.safari && parseInt(jQuery.browser.version) < 417 ?
|
|
1356
1350
|
|
1357
1351
|
jQuery.extend({
|
1358
1352
|
expr: {
|
1359
|
-
"":
|
1360
|
-
"#":
|
1353
|
+
"": function(a,i,m){return m[2]=="*"||jQuery.nodeName(a,m[2]);},
|
1354
|
+
"#": function(a,i,m){return a.getAttribute("id")==m[2];},
|
1361
1355
|
":": {
|
1362
1356
|
// Position Checks
|
1363
|
-
lt:
|
1364
|
-
gt:
|
1365
|
-
nth:
|
1366
|
-
eq:
|
1367
|
-
first:
|
1368
|
-
last:
|
1369
|
-
even:
|
1370
|
-
odd:
|
1357
|
+
lt: function(a,i,m){return i<m[3]-0;},
|
1358
|
+
gt: function(a,i,m){return i>m[3]-0;},
|
1359
|
+
nth: function(a,i,m){return m[3]-0==i;},
|
1360
|
+
eq: function(a,i,m){return m[3]-0==i;},
|
1361
|
+
first: function(a,i){return i==0;},
|
1362
|
+
last: function(a,i,m,r){return i==r.length-1;},
|
1363
|
+
even: function(a,i){return i%2==0;},
|
1364
|
+
odd: function(a,i){return i%2;},
|
1371
1365
|
|
1372
1366
|
// Child Checks
|
1373
|
-
"first-child":
|
1374
|
-
"last-child":
|
1375
|
-
"only-child":
|
1367
|
+
"first-child": function(a){return a.parentNode.getElementsByTagName("*")[0]==a;},
|
1368
|
+
"last-child": function(a){return jQuery.nth(a.parentNode.lastChild,1,"previousSibling")==a;},
|
1369
|
+
"only-child": function(a){return !jQuery.nth(a.parentNode.lastChild,2,"previousSibling");},
|
1376
1370
|
|
1377
1371
|
// Parent Checks
|
1378
|
-
parent:
|
1379
|
-
empty:
|
1372
|
+
parent: function(a){return a.firstChild;},
|
1373
|
+
empty: function(a){return !a.firstChild;},
|
1380
1374
|
|
1381
1375
|
// Text Check
|
1382
|
-
contains:
|
1376
|
+
contains: function(a,i,m){return (a.textContent||a.innerText||jQuery(a).text()||"").indexOf(m[3])>=0;},
|
1383
1377
|
|
1384
1378
|
// Visibility
|
1385
|
-
visible:
|
1386
|
-
hidden:
|
1379
|
+
visible: function(a){return "hidden"!=a.type&&jQuery.css(a,"display")!="none"&&jQuery.css(a,"visibility")!="hidden";},
|
1380
|
+
hidden: function(a){return "hidden"==a.type||jQuery.css(a,"display")=="none"||jQuery.css(a,"visibility")=="hidden";},
|
1387
1381
|
|
1388
1382
|
// Form attributes
|
1389
|
-
enabled:
|
1390
|
-
disabled:
|
1391
|
-
checked:
|
1392
|
-
selected:
|
1383
|
+
enabled: function(a){return !a.disabled;},
|
1384
|
+
disabled: function(a){return a.disabled;},
|
1385
|
+
checked: function(a){return a.checked;},
|
1386
|
+
selected: function(a){return a.selected||jQuery.attr(a,"selected");},
|
1393
1387
|
|
1394
1388
|
// Form elements
|
1395
|
-
text: "
|
1396
|
-
radio: "
|
1397
|
-
checkbox: "
|
1398
|
-
file: "
|
1399
|
-
password: "
|
1400
|
-
submit: "
|
1401
|
-
image: "
|
1402
|
-
reset: "
|
1403
|
-
button:
|
1404
|
-
input:
|
1389
|
+
text: function(a){return "text"==a.type;},
|
1390
|
+
radio: function(a){return "radio"==a.type;},
|
1391
|
+
checkbox: function(a){return "checkbox"==a.type;},
|
1392
|
+
file: function(a){return "file"==a.type;},
|
1393
|
+
password: function(a){return "password"==a.type;},
|
1394
|
+
submit: function(a){return "submit"==a.type;},
|
1395
|
+
image: function(a){return "image"==a.type;},
|
1396
|
+
reset: function(a){return "reset"==a.type;},
|
1397
|
+
button: function(a){return "button"==a.type||jQuery.nodeName(a,"button");},
|
1398
|
+
input: function(a){return /input|select|textarea|button/i.test(a.nodeName);},
|
1405
1399
|
|
1406
1400
|
// :has()
|
1407
|
-
has:
|
1401
|
+
has: function(a,i,m){return jQuery.find(m[3],a).length;},
|
1408
1402
|
|
1409
1403
|
// :header
|
1410
|
-
header:
|
1404
|
+
header: function(a){return /h\d/i.test(a.nodeName);},
|
1411
1405
|
|
1412
1406
|
// :animated
|
1413
|
-
animated:
|
1407
|
+
animated: function(a){return jQuery.grep(jQuery.timers,function(fn){return a==fn.elem;}).length;}
|
1414
1408
|
}
|
1415
1409
|
},
|
1416
1410
|
|
@@ -1738,15 +1732,17 @@ jQuery.extend({
|
|
1738
1732
|
|
1739
1733
|
// Otherwise, find the expression to execute
|
1740
1734
|
} else {
|
1741
|
-
var
|
1742
|
-
if ( typeof
|
1743
|
-
|
1735
|
+
var fn = jQuery.expr[ m[1] ];
|
1736
|
+
if ( typeof fn == "object" )
|
1737
|
+
fn = fn[ m[2] ];
|
1744
1738
|
|
1745
|
-
|
1746
|
-
|
1739
|
+
if ( typeof fn == "string" )
|
1740
|
+
fn = eval("false||function(a,i){return " + fn + ";}");
|
1747
1741
|
|
1748
1742
|
// Execute it against the current filter
|
1749
|
-
r = jQuery.grep( r,
|
1743
|
+
r = jQuery.grep( r, function(elem, i){
|
1744
|
+
return fn(elem, i, m, r);
|
1745
|
+
}, not );
|
1750
1746
|
}
|
1751
1747
|
}
|
1752
1748
|
|
@@ -1840,10 +1836,14 @@ jQuery.event = {
|
|
1840
1836
|
if ( typeof jQuery == "undefined" || jQuery.event.triggered )
|
1841
1837
|
return val;
|
1842
1838
|
|
1843
|
-
val = jQuery.event.handle.apply(elem, arguments);
|
1839
|
+
val = jQuery.event.handle.apply(arguments.callee.elem, arguments);
|
1844
1840
|
|
1845
1841
|
return val;
|
1846
1842
|
});
|
1843
|
+
// Add elem as a property of the handle function
|
1844
|
+
// This is to prevent a memory leak with non-native
|
1845
|
+
// event in IE.
|
1846
|
+
handle.elem = elem;
|
1847
1847
|
|
1848
1848
|
// Handle multiple events seperated by a space
|
1849
1849
|
// jQuery(...).bind("mouseover mouseout", fn);
|
@@ -1878,6 +1878,9 @@ jQuery.event = {
|
|
1878
1878
|
// Keep track of which events have been used, for global triggering
|
1879
1879
|
jQuery.event.global[type] = true;
|
1880
1880
|
});
|
1881
|
+
|
1882
|
+
// Nullify elem to prevent memory leaks in IE
|
1883
|
+
elem = null;
|
1881
1884
|
},
|
1882
1885
|
|
1883
1886
|
guid: 1,
|
@@ -1941,6 +1944,8 @@ jQuery.event = {
|
|
1941
1944
|
// Remove the expando if it's no longer used
|
1942
1945
|
for ( ret in events ) break;
|
1943
1946
|
if ( !ret ) {
|
1947
|
+
var handle = jQuery.data( elem, "handle" );
|
1948
|
+
if ( handle ) handle.elem = null;
|
1944
1949
|
jQuery.removeData( elem, "events" );
|
1945
1950
|
jQuery.removeData( elem, "handle" );
|
1946
1951
|
}
|
@@ -1989,7 +1994,7 @@ jQuery.event = {
|
|
1989
1994
|
// Handle triggering of extra function
|
1990
1995
|
if ( extra && jQuery.isFunction( extra ) ) {
|
1991
1996
|
// call the extra function and tack the current return value on the end for possible inspection
|
1992
|
-
|
1997
|
+
ret = extra.apply( elem, val == null ? data : data.concat( val ) );
|
1993
1998
|
// if anything is returned, give it precedence and have it overwrite the previous value
|
1994
1999
|
if (ret !== undefined)
|
1995
2000
|
val = ret;
|
@@ -2054,18 +2059,11 @@ jQuery.event = {
|
|
2054
2059
|
},
|
2055
2060
|
|
2056
2061
|
fix: function(event) {
|
2057
|
-
// Short-circuit if the event has already been fixed by jQuery.event.fix
|
2058
|
-
if ( event[ expando ] )
|
2059
|
-
return event;
|
2060
|
-
|
2061
2062
|
// store a copy of the original event object
|
2062
2063
|
// and clone to set read-only properties
|
2063
2064
|
var originalEvent = event;
|
2064
2065
|
event = jQuery.extend({}, originalEvent);
|
2065
2066
|
|
2066
|
-
// Mark the event as fixed by jQuery.event.fix
|
2067
|
-
event[ expando ] = true;
|
2068
|
-
|
2069
2067
|
// add preventDefault and stopPropagation since
|
2070
2068
|
// they will not work on the clone
|
2071
2069
|
event.preventDefault = function() {
|
@@ -2103,7 +2101,7 @@ jQuery.event = {
|
|
2103
2101
|
}
|
2104
2102
|
|
2105
2103
|
// Add which for key events
|
2106
|
-
if ( !event.which && (event.charCode || event.keyCode) )
|
2104
|
+
if ( !event.which && ((event.charCode || event.charCode === 0) ? event.charCode : event.keyCode) )
|
2107
2105
|
event.which = event.charCode || event.keyCode;
|
2108
2106
|
|
2109
2107
|
// Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
|
@@ -2269,7 +2267,7 @@ jQuery.extend({
|
|
2269
2267
|
}
|
2270
2268
|
|
2271
2269
|
// Trigger any bound ready events
|
2272
|
-
|
2270
|
+
jQuery(document).triggerHandler("ready");
|
2273
2271
|
}
|
2274
2272
|
}
|
2275
2273
|
});
|
@@ -2352,7 +2350,7 @@ var withinElement = function(event, elem) {
|
|
2352
2350
|
// Check if mouse(over|out) are still within the same parent element
|
2353
2351
|
var parent = event.relatedTarget;
|
2354
2352
|
// Traverse up the tree
|
2355
|
-
while ( parent && parent != elem ) try { parent = parent.parentNode } catch(error) { parent = elem; }
|
2353
|
+
while ( parent && parent != elem ) try { parent = parent.parentNode; } catch(error) { parent = elem; }
|
2356
2354
|
// Return true if we actually just moused on to a sub-element
|
2357
2355
|
return parent == elem;
|
2358
2356
|
};
|
@@ -2509,7 +2507,17 @@ jQuery.extend({
|
|
2509
2507
|
contentType: "application/x-www-form-urlencoded",
|
2510
2508
|
processData: true,
|
2511
2509
|
async: true,
|
2512
|
-
data: null
|
2510
|
+
data: null,
|
2511
|
+
username: null,
|
2512
|
+
password: null,
|
2513
|
+
accepts: {
|
2514
|
+
xml: "application/xml, text/xml",
|
2515
|
+
html: "text/html",
|
2516
|
+
script: "text/javascript, application/javascript",
|
2517
|
+
json: "application/json, text/javascript",
|
2518
|
+
text: "text/plain",
|
2519
|
+
_default: "*/*"
|
2520
|
+
}
|
2513
2521
|
},
|
2514
2522
|
|
2515
2523
|
// Last-Modified header cache for next request
|
@@ -2587,7 +2595,7 @@ jQuery.extend({
|
|
2587
2595
|
|
2588
2596
|
// If we're requesting a remote document
|
2589
2597
|
// and trying to load JSON or Script with a GET
|
2590
|
-
if ( (!s.url.indexOf("http") || !s.url.indexOf("//")) &&
|
2598
|
+
if ( (!s.url.indexOf("http") || !s.url.indexOf("//")) && s.dataType == "script" && s.type.toLowerCase() == "get" ) {
|
2591
2599
|
var head = document.getElementsByTagName("head")[0];
|
2592
2600
|
var script = document.createElement("script");
|
2593
2601
|
script.src = s.url;
|
@@ -2623,7 +2631,7 @@ jQuery.extend({
|
|
2623
2631
|
var xml = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
|
2624
2632
|
|
2625
2633
|
// Open the socket
|
2626
|
-
xml.open(s.type, s.url, s.async);
|
2634
|
+
xml.open(s.type, s.url, s.async, s.username, s.password);
|
2627
2635
|
|
2628
2636
|
// Need an extra try/catch for cross domain requests in Firefox 3
|
2629
2637
|
try {
|
@@ -2638,6 +2646,11 @@ jQuery.extend({
|
|
2638
2646
|
|
2639
2647
|
// Set header so the called script knows that it's an XMLHttpRequest
|
2640
2648
|
xml.setRequestHeader("X-Requested-With", "XMLHttpRequest");
|
2649
|
+
|
2650
|
+
// Set the Accepts header for the server, depending on the dataType
|
2651
|
+
xml.setRequestHeader("Accept", s.dataType && s.accepts[ s.dataType ] ?
|
2652
|
+
s.accepts[ s.dataType ] + ", */*" :
|
2653
|
+
s.accepts._default );
|
2641
2654
|
} catch(e){}
|
2642
2655
|
|
2643
2656
|
// Allow custom headers/mimetypes
|
@@ -2853,6 +2866,9 @@ jQuery.fn.extend({
|
|
2853
2866
|
if ( jQuery.css(this,"display") == "none" ) {
|
2854
2867
|
var elem = jQuery("<" + this.tagName + " />").appendTo("body");
|
2855
2868
|
this.style.display = elem.css("display");
|
2869
|
+
// handle an edge condition where css is - div { display:none; } or similar
|
2870
|
+
if (this.style.display == "none")
|
2871
|
+
this.style.display = "block";
|
2856
2872
|
elem.remove();
|
2857
2873
|
}
|
2858
2874
|
}).end();
|
@@ -2982,9 +2998,6 @@ jQuery.fn.extend({
|
|
2982
2998
|
return queue( this[0], type );
|
2983
2999
|
|
2984
3000
|
return this.each(function(){
|
2985
|
-
if ( this.nodeType != 1)
|
2986
|
-
return;
|
2987
|
-
|
2988
3001
|
if ( fn.constructor == Array )
|
2989
3002
|
queue(this, type, fn);
|
2990
3003
|
else {
|
data/lib/proto/spec/main.rb
CHANGED
@@ -1,6 +1,3 @@
|
|
1
|
-
# Copyright (c) 2008 Michael Fellinger m.fellinger@gmail.com
|
2
|
-
# All files in this distribution are subject to the terms of the Ruby license.
|
3
|
-
|
4
1
|
require 'ramaze'
|
5
2
|
require 'ramaze/spec/helper'
|
6
3
|
|
@@ -14,14 +11,14 @@ describe MainController do
|
|
14
11
|
it 'should show start page' do
|
15
12
|
got = get('/')
|
16
13
|
got.status.should == 200
|
17
|
-
got.
|
14
|
+
got.at('//title').text.strip.should ==
|
18
15
|
MainController.new.index
|
19
16
|
end
|
20
17
|
|
21
18
|
it 'should show /notemplate' do
|
22
19
|
got = get('/notemplate')
|
23
20
|
got.status.should == 200
|
24
|
-
got.
|
21
|
+
got.at('//body').text.strip.should ==
|
25
22
|
MainController.new.notemplate
|
26
23
|
end
|
27
24
|
end
|