role-rails 0.4.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  module Role
2
2
  module Rails
3
- VERSION = '0.4.1'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
@@ -1,141 +1,29 @@
1
- /*
2
- jquery.role.js
3
-
4
- Version: 0.4.1
5
-
6
- Copyright (c) 2011 Sasha Koss
7
- */
8
-
9
- (function ($) {
10
- var initSizzleNewLayer = function() {
11
- var div = document.createElement("div"),
12
- id = "__sizzle__";
13
- div.innerHTML = "<p class='TEST'></p>";
14
- if ( div.querySelectorAll && div.querySelectorAll(".TEST").length !== 0 ) {
15
- var makeArray = function( array, results ) {
16
- array = Array.prototype.slice.call( array, 0 );
17
- if ( results ) {
18
- results.push.apply( results, array );
19
- return results;
20
- }
21
- return array;
22
- };
23
- try {
24
- Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
25
- } catch( e ) {
26
- makeArray = function( array, results ) {
27
- var i = 0,
28
- ret = results || [];
29
- if ( toString.call(array) === "[object Array]" ) {
30
- Array.prototype.push.apply( ret, array );
31
- } else {
32
- if ( typeof array.length === "number" ) {
33
- for ( var l = array.length; i < l; i++ ) {
34
- ret.push( array[i] );
35
- }
36
- } else {
37
- for ( ; array[i]; i++ ) {
38
- ret.push( array[i] );
39
- }
40
- }
41
- }
42
- return ret;
43
- };
44
- }
45
-
46
- var oldFind = $.find;
47
- $.find = function( query, context, extra, seed ) {
48
- context = context || document;
49
- if ( !seed && !$.find.isXML(context) ) {
50
- var match = /^@([\w\-]+$)/.exec( query );
51
- if ( match ) {
52
- if ( context.nodeType === 9 ) {
53
- return makeArray( context.querySelectorAll('[role~='+match[1]+']'), extra );
54
- } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
55
- var oldContext = context,
56
- old = context.getAttribute( "id" ),
57
- nid = old || id,
58
- hasParent = context.parentNode,
59
- relativeHierarchySelector = /^\s*[+~]/.test( query );
60
- if ( !old ) {
61
- context.setAttribute( "id", nid );
62
- } else {
63
- nid = nid.replace( /'/g, "\\$&" );
64
- }
65
- if ( relativeHierarchySelector && hasParent ) {
66
- context = context.parentNode;
67
- }
68
- try {
69
- if ( !relativeHierarchySelector || hasParent ) {
70
- return makeArray( context.querySelectorAll( "[id='" + nid + "'] [role~='" + match[1] + "']" ), extra );
71
- }
72
- } catch(pseudoError) {
73
- } finally {
74
- if ( !old ) {
75
- oldContext.removeAttribute( "id" );
76
- }
77
- }
78
- }
79
- }
80
- return oldFind(query, context, extra, seed);
81
- }
82
- }
83
-
84
- // Add jQuery.find.* properties to new find
85
- for ( var prop in oldFind ) {
86
- $.find[ prop ] = oldFind[ prop ];
87
- }
88
-
89
- // Save original of matchesSelector
90
- var _oldMatchesSelector = $.find.matchesSelector;
91
- $.find.matchesSelector = function (node, expr) {
92
- return _oldMatchesSelector(
93
- node,
94
- expr.replace(/(@[\w\-]+)/g, function ($0) {
95
- return $0.replace(/^@([\w\-]+)$/, function ($0, $1) {
96
- return '[role="' + $1 + '"]';
97
- });
98
- })
99
- )
100
- }
101
- }
102
- }
103
-
104
- $.expr.match['ROLE'] = /@((?:[\w\u00c0-\uFFFF\-]|\\.)+)/;
105
-
106
- $.expr.preFilter['ROLE'] = function( match, curLoop, inplace, result, not, isXML ) {
107
- match = " " + match[1] + " ";
108
-
109
- return match;
110
- }
111
-
112
- $.expr.filter['ROLE'] = function( elem, match ) {
113
- return (" " + elem.getAttribute('role') + " ").indexOf( match ) > -1;
114
- }
115
-
116
- for ( var type in $.expr.match ) {
117
- $.expr.match[ type ] = new RegExp( $.expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
118
- $.expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + $.expr.match[ type ].source.replace(/\\(\d+)/g, function(all, num) {
119
- return "\\" + (num - 0 + 1);
120
- }));
121
- }
122
-
123
- initSizzleNewLayer();
124
-
125
- $.role = function (roleName, context) {
126
-
127
- var selector;
128
-
129
- if ( roleName.charAt(0) === '#' ) {
130
- selector = '#role-' + roleName.substring(1);
131
- } else {
132
- selector = '[role="' + roleName + '"]';
133
- }
134
-
135
- return $(selector, context);
1
+ // Role.js, jQuery adapter v1.0.0 ~ https://github.com/kossnocorp/role
2
+
3
+ (function($) {
4
+ var matchesSelectorOrigin, type;
5
+ if ($ == null) $ = jQuery;
6
+ $.expr.match['ROLE'] = /@((?:[\w\u00c0-\uFFFF\-]|\\.)+)/;
7
+ $.expr.preFilter['ROLE'] = function(match) {
8
+ return ' ' + match[1] + ' ';
9
+ };
10
+ $.expr.filter['ROLE'] = function(el, match) {
11
+ return (" " + (el.getAttribute('role')) + " ").indexOf(match) !== -1;
12
+ };
13
+ for (type in $.expr.match) {
14
+ $.expr.match[type] = new RegExp($.expr.match[type].source + /(?![^\[]*\])(?![^\(]*\))/.source);
15
+ $.expr.leftMatch[type] = new RegExp(/(^(?:.|\r|\n)*?)/.source + $.expr.match[type].source.replace(/\\(\d+)/g, function(all, num) {
16
+ return "\\" + (num - 0 + 1);
17
+ }));
18
+ }
19
+ if (!(document.documentElement.matchesSelector != null) && (document.documentElement.mozMatchesSelector != null)) {
20
+ matchesSelectorOrigin = $.find.matchesSelector;
21
+ return $.find.matchesSelector = function(node, expr) {
22
+ return matchesSelectorOrigin(node, expr.replace(/(@[\w\-]+)/g, function($0) {
23
+ return $0.replace(/^@([\w\-]+)$/, function(__, $1) {
24
+ return "[role=\"" + $1 + "\"]";
25
+ });
26
+ }));
136
27
  };
137
-
138
- if (typeof $.r === 'undefined') {
139
- $.r = $.role;
140
- }
141
- })(jQuery);
28
+ }
29
+ })($);
@@ -0,0 +1,19 @@
1
+ // Role.js, extension for querySelectorAll function v1.0.0 ~ https://github.com/kossnocorp/role
2
+
3
+ (function() {
4
+ var elm, _fn, _i, _len, _ref;
5
+
6
+ _ref = [Document, Element];
7
+ _fn = function(elm) {
8
+ var nativeQuery;
9
+ nativeQuery = elm.prototype.querySelectorAll;
10
+ return elm.prototype.querySelectorAll = function(selector) {
11
+ return nativeQuery.call(this, selector.replace(/@(\w+)/g, "[role~=\"$1\"]"));
12
+ };
13
+ };
14
+ for (_i = 0, _len = _ref.length; _i < _len; _i++) {
15
+ elm = _ref[_i];
16
+ _fn(elm);
17
+ }
18
+
19
+ }).call(this);
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: 0.4.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-08 00:00:00.000000000 Z
12
+ date: 2011-12-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70282949902560 !ruby/object:Gem::Requirement
16
+ requirement: &70361255124280 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 3.1.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70282949902560
24
+ version_requirements: *70361255124280
25
25
  description: jQuery plugin to provide easy way to handle DOM elements by role attribute
26
26
  email:
27
27
  - koss@nocorp.me
@@ -49,6 +49,7 @@ files:
49
49
  - role-rails-0.3.2/metadata.gz
50
50
  - role-rails.gemspec
51
51
  - vendor/assets/javascripts/jquery.role.js
52
+ - vendor/assets/javascripts/role.js
52
53
  homepage: ''
53
54
  licenses: []
54
55
  post_install_message: