role-rails 1.2.1 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
data/lib/role-rails/version.rb
CHANGED
@@ -1,19 +1,68 @@
|
|
1
1
|
!function($){
|
2
2
|
function rewriteSelector(context, name, argPos){
|
3
3
|
var original = context[name];
|
4
|
-
|
4
|
+
|
5
5
|
if (!original) return;
|
6
|
-
|
6
|
+
|
7
7
|
context[name] = function(){
|
8
|
-
arguments[argPos] = arguments[argPos].replace(/@([\w\u00c0-\uFFFF\-]+)/g, '[role~="$1"]')
|
8
|
+
arguments[argPos] = arguments[argPos].replace(/@([\w\u00c0-\uFFFF\-]+)/g, '[role~="$1"]');
|
9
9
|
return original.apply(context, arguments);
|
10
10
|
};
|
11
|
-
|
11
|
+
|
12
12
|
$.extend(context[name], original);
|
13
13
|
}
|
14
|
-
|
14
|
+
|
15
15
|
rewriteSelector($, 'find', 0);
|
16
16
|
rewriteSelector($, 'multiFilter', 0);
|
17
17
|
rewriteSelector($.find, 'matchesSelector', 1);
|
18
18
|
rewriteSelector($.find, 'matches', 0);
|
19
|
+
|
20
|
+
function parse(roleString, without){
|
21
|
+
var role, result = [], roles = $.trim(roleString).split(/\s+/);
|
22
|
+
|
23
|
+
for(var i=0; i<roles.length; i++) {
|
24
|
+
role = roles[i];
|
25
|
+
if (!~$.inArray(role, result) && (!without || !~$.inArray(role, without)))
|
26
|
+
result.push(role);
|
27
|
+
}
|
28
|
+
|
29
|
+
return result;
|
30
|
+
};
|
31
|
+
|
32
|
+
$.extend($.fn, {
|
33
|
+
roles: function(){ return parse(this.attr('role')); },
|
34
|
+
|
35
|
+
hasRole: function(roleName){
|
36
|
+
var roles = parse(roleName);
|
37
|
+
for(var i=0;i<roles.length;i++)
|
38
|
+
if (!this.is('@'+roles[i])) return false;
|
39
|
+
|
40
|
+
return true;
|
41
|
+
},
|
42
|
+
|
43
|
+
addRole: function(roleName){
|
44
|
+
if (this.hasRole(roleName)) return this;
|
45
|
+
|
46
|
+
return this.each(function(_, element){
|
47
|
+
var $el = $(element);
|
48
|
+
$el.attr('role', parse($el.attr('role') + ' ' + roleName).join(' '));
|
49
|
+
});
|
50
|
+
},
|
51
|
+
|
52
|
+
removeRole: function(roleName){
|
53
|
+
if (!this.hasRole(roleName)) return this;
|
54
|
+
|
55
|
+
return this.each(function(_, element){
|
56
|
+
var $el = $(element);
|
57
|
+
$el.attr('role', parse($el.attr('role'), parse(roleName)).join(' '));
|
58
|
+
});
|
59
|
+
},
|
60
|
+
|
61
|
+
toggleRole: function(roleName){
|
62
|
+
var roles = parse(roleName);
|
63
|
+
for(var i=0;i<roles.length;i++)
|
64
|
+
this[this.hasRole(roles[i]) ? 'removeRole' : 'addRole'].call(this, roles[i]);
|
65
|
+
return this;
|
66
|
+
}
|
67
|
+
});
|
19
68
|
}(jQuery)
|
@@ -1 +1 @@
|
|
1
|
-
!function(a){function b(b,c,d){var e=b[c];if(!e)return;b[c]=function(){return arguments[d]=arguments[d].replace(/@([\w\u00c0-\uFFFF\-]+)/g,'[role~="$1"]'),e.apply(b,arguments)},a.extend(b[c],e)}b(a,"find",0),b(a,"multiFilter",0),b(a.find,"matchesSelector",1),b(a.find,"matches",0)}(jQuery);
|
1
|
+
!function(a){function b(b,c,d){var e=b[c];if(!e)return;b[c]=function(){return arguments[d]=arguments[d].replace(/@([\w\u00c0-\uFFFF\-]+)/g,'[role~="$1"]'),e.apply(b,arguments)},a.extend(b[c],e)}function c(b,c){var d,e=[],f=a.trim(b).split(/\s+/);for(var g=0;g<f.length;g++)d=f[g],!~a.inArray(d,e)&&(!c||!~a.inArray(d,c))&&e.push(d);return e}b(a,"find",0),b(a,"multiFilter",0),b(a.find,"matchesSelector",1),b(a.find,"matches",0),a.extend(a.fn,{roles:function(){return c(this.attr("role"))},hasRole:function(a){var b=c(a);for(var d=0;d<b.length;d++)if(!this.is("@"+b[d]))return!1;return!0},addRole:function(b){return this.hasRole(b)?this:this.each(function(d,e){var f=a(e);f.attr("role",c(f.attr("role")+" "+b).join(" "))})},removeRole:function(b){return this.hasRole(b)?this.each(function(d,e){var f=a(e);f.attr("role",c(f.attr("role"),c(b)).join(" "))}):this},toggleRole:function(a){var b=c(a);for(var d=0;d<b.length;d++)this[this.hasRole(b[d])?"removeRole":"addRole"].call(this,b[d]);return this}})}(jQuery);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: role-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -174,21 +174,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
174
174
|
- - ! '>='
|
175
175
|
- !ruby/object:Gem::Version
|
176
176
|
version: '0'
|
177
|
-
segments:
|
178
|
-
- 0
|
179
|
-
hash: -3661075772796767822
|
180
177
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
181
178
|
none: false
|
182
179
|
requirements:
|
183
180
|
- - ! '>='
|
184
181
|
- !ruby/object:Gem::Version
|
185
182
|
version: '0'
|
186
|
-
segments:
|
187
|
-
- 0
|
188
|
-
hash: -3661075772796767822
|
189
183
|
requirements: []
|
190
184
|
rubyforge_project: role-rails
|
191
|
-
rubygems_version: 1.8.
|
185
|
+
rubygems_version: 1.8.24
|
192
186
|
signing_key:
|
193
187
|
specification_version: 3
|
194
188
|
summary: jQuery plugin to provide easy way to handle DOM elements by role attribute
|