eyeballs 0.5.10 → 0.5.10.1
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/eyeballs.gemspec +1 -1
- data/src/drivers/jquery/modules/o_O.routes.js +53 -37
- data/test/unit/test_routing.html +20 -23
- metadata +3 -2
data/Rakefile
CHANGED
data/eyeballs.gemspec
CHANGED
@@ -59,19 +59,13 @@ o_O.routes = {
|
|
59
59
|
draw: function(callback){
|
60
60
|
$(function(){
|
61
61
|
callback(o_O.routes.router());
|
62
|
-
if(location.hash.o_O_trim() == '')
|
63
|
-
{
|
64
|
-
if(typeof o_O.routes.rules['root'] === 'object')
|
65
|
-
{
|
66
|
-
o_O.routes.rules['root'].action();
|
67
|
-
}
|
68
|
-
|
69
|
-
}
|
70
62
|
|
71
|
-
var
|
72
|
-
|
73
|
-
|
74
|
-
|
63
|
+
var parts, hash, query_string_parts;
|
64
|
+
|
65
|
+
var update_hash_parts = function(){
|
66
|
+
parts = location.hash.split('?')
|
67
|
+
hash = parts[0].replace(/^(#)/, '').o_O_trim('/');
|
68
|
+
query_string_parts;
|
75
69
|
if(typeof parts[1] === 'string')
|
76
70
|
{
|
77
71
|
query_string_parts = parts[1].replace('&', '&').split('&');
|
@@ -80,9 +74,54 @@ o_O.routes = {
|
|
80
74
|
{
|
81
75
|
query_string_parts = '';
|
82
76
|
}
|
77
|
+
}
|
78
|
+
|
79
|
+
var compute_params = function(rule){
|
80
|
+
return function(attr){
|
81
|
+
var params = {}
|
82
|
+
if(rule)
|
83
|
+
{
|
84
|
+
for(j = 0; j < rule.matchers.length; j++)
|
85
|
+
{
|
86
|
+
params[rule.matchers[j].replace(/^:/, '')] = match[j+1];
|
87
|
+
}
|
88
|
+
}
|
89
|
+
|
90
|
+
if(query_string_parts.length > 0)
|
91
|
+
{
|
92
|
+
for(k = 0; k < query_string_parts.length; k++)
|
93
|
+
{
|
94
|
+
var param_parts = query_string_parts[k].split('=')
|
95
|
+
params[param_parts[0]] = param_parts[1];
|
96
|
+
}
|
97
|
+
}
|
98
|
+
if(attr)
|
99
|
+
{
|
100
|
+
return params[attr];
|
101
|
+
}
|
102
|
+
else
|
103
|
+
{
|
104
|
+
return params;
|
105
|
+
}
|
106
|
+
}
|
107
|
+
}
|
108
|
+
|
109
|
+
if(location.hash.o_O_trim() == '')
|
110
|
+
{
|
111
|
+
update_hash_parts()
|
112
|
+
if(typeof o_O.routes.rules['root'] === 'object')
|
113
|
+
{
|
114
|
+
o_O.routes.rules['root'].action(compute_params());
|
115
|
+
}
|
116
|
+
|
117
|
+
}
|
118
|
+
|
119
|
+
var route_on_hash = function(){
|
120
|
+
update_hash_parts();
|
83
121
|
if(o_O.routes.urls.indexOf(hash) >= 0)
|
84
122
|
{
|
85
|
-
|
123
|
+
console.log(compute_params()())
|
124
|
+
o_O.routes.rules[hash].action(compute_params());
|
86
125
|
}
|
87
126
|
else
|
88
127
|
{
|
@@ -91,30 +130,7 @@ o_O.routes = {
|
|
91
130
|
if(match = hash.match(o_O.routes.regex_urls[i].regex))
|
92
131
|
{
|
93
132
|
var rule = o_O.routes.rules[o_O.routes.regex_urls[i].matcher];
|
94
|
-
rule.action(
|
95
|
-
var params = {}
|
96
|
-
for(j = 0; j < rule.matchers.length; j++)
|
97
|
-
{
|
98
|
-
params[rule.matchers[j].replace(/^:/, '')] = match[j+1];
|
99
|
-
}
|
100
|
-
|
101
|
-
if(query_string_parts.length > 0)
|
102
|
-
{
|
103
|
-
for(k = 0; k < query_string_parts.length; k++)
|
104
|
-
{
|
105
|
-
var param_parts = query_string_parts[k].split('=')
|
106
|
-
params[param_parts[0]] = param_parts[1];
|
107
|
-
}
|
108
|
-
}
|
109
|
-
if(attr)
|
110
|
-
{
|
111
|
-
return params[attr];
|
112
|
-
}
|
113
|
-
else
|
114
|
-
{
|
115
|
-
return params;
|
116
|
-
}
|
117
|
-
});
|
133
|
+
rule.action(compute_params(rule));
|
118
134
|
return;
|
119
135
|
}
|
120
136
|
}
|
data/test/unit/test_routing.html
CHANGED
@@ -21,33 +21,18 @@
|
|
21
21
|
$('div#root').html('rooting for you')
|
22
22
|
},
|
23
23
|
index: function(bit){
|
24
|
-
|
25
|
-
if(bit == 'test')
|
26
|
-
{
|
27
|
-
out = 'clicked!'
|
28
|
-
}
|
29
|
-
else
|
30
|
-
{
|
31
|
-
out = 'indexed!'
|
32
|
-
}
|
33
|
-
$('div#index').html(out);
|
24
|
+
$('div#index').html('clicked!');
|
34
25
|
return 'whoop!'
|
35
26
|
},
|
36
27
|
namespaced_index: function(bit){
|
37
|
-
|
38
|
-
if(bit == 'test')
|
39
|
-
{
|
40
|
-
out = 'namespaced and clicked!'
|
41
|
-
}
|
42
|
-
else
|
43
|
-
{
|
44
|
-
out = 'namespaced and indexed!'
|
45
|
-
}
|
46
|
-
$('div#namespaced-index').html(out);
|
28
|
+
$('div#namespaced-index').html('namespaced and clicked!');
|
47
29
|
return 'awesome!'
|
48
30
|
},
|
49
31
|
sending_params: function(params){
|
50
32
|
$('div#with_params').html(params('test') + params('other_test'));
|
33
|
+
},
|
34
|
+
sending_params_normal: function(params){
|
35
|
+
$('div#with_params_normal').html(params('other_test'));
|
51
36
|
}
|
52
37
|
});
|
53
38
|
|
@@ -69,11 +54,12 @@
|
|
69
54
|
|
70
55
|
o_O.routes.draw(function(map){
|
71
56
|
map.root({to: "reviews#root"})
|
72
|
-
map.match('/reviews/index/', {to: "reviews#index"
|
57
|
+
map.match('/reviews/index/', {to: "reviews#index"});
|
73
58
|
map.namespace('my', function(my){
|
74
|
-
my.match('action', {to: "reviews#namespaced_index"
|
59
|
+
my.match('action', {to: "reviews#namespaced_index"})
|
75
60
|
})
|
76
61
|
map.match('/reviews/:test', {to: 'reviews#sending_params'})
|
62
|
+
map.match('gobble', {to: 'reviews#sending_params_normal'})
|
77
63
|
|
78
64
|
map.resources('songs')
|
79
65
|
})
|
@@ -121,6 +107,14 @@
|
|
121
107
|
start();
|
122
108
|
},100)
|
123
109
|
})
|
110
|
+
|
111
|
+
asyncTest('withparams normal route',function(){
|
112
|
+
$('a#with-params-normal').trigger('click');
|
113
|
+
setTimeout(function(){
|
114
|
+
equals($('div#with_params_normal').html(), 'else', "should pass the params");
|
115
|
+
start();
|
116
|
+
},100)
|
117
|
+
})
|
124
118
|
|
125
119
|
asyncTest('resources new', function(){
|
126
120
|
$('a#add-song').click()
|
@@ -168,7 +162,9 @@
|
|
168
162
|
<a id="index-link" data-ajax-history="true" href="/reviews/index">Hello!</a>
|
169
163
|
<a id="namespaced-index-link" data-ajax-history="true" href="/my/action">Hello!</a>
|
170
164
|
|
171
|
-
<a id="with-params" data-ajax-history="true" href="/reviews/something?other_test=else">
|
165
|
+
<a id="with-params" data-ajax-history="true" href="/reviews/something?other_test=else">With Params</a>
|
166
|
+
|
167
|
+
<a id="with-params-normal" data-ajax-history="true" href="/gobble?other_test=else">With Params Normal</a>
|
172
168
|
|
173
169
|
<div id="index">
|
174
170
|
</div>
|
@@ -176,6 +172,7 @@
|
|
176
172
|
</div>
|
177
173
|
<div id="root"></div>
|
178
174
|
<div id="with_params"></div>
|
175
|
+
<div id="with_params_normal"></div>
|
179
176
|
|
180
177
|
<a id="add-song" href="/songs/new" data-ajax-history="true">New Song</a>
|
181
178
|
<div id="songs-add"></div>
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eyeballs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 77
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
9
|
- 10
|
10
|
-
|
10
|
+
- 1
|
11
|
+
version: 0.5.10.1
|
11
12
|
platform: ruby
|
12
13
|
authors:
|
13
14
|
- Paul Campbell
|