Skip to content

Commit

Permalink
Added role.js as a submodule. Version bump
Browse files Browse the repository at this point in the history
  • Loading branch information
Pavel Pravosud committed Apr 19, 2012
1 parent 8aff99c commit a32e811
Show file tree
Hide file tree
Showing 8 changed files with 50 additions and 64 deletions.
3 changes: 3 additions & 0 deletions .gitmodules
@@ -0,0 +1,3 @@
[submodule "role"]
path = role
url = git://github.com/kossnocorp/role.git
22 changes: 9 additions & 13 deletions Rakefile
@@ -1,16 +1,16 @@
#!/usr/bin/env rake
require "bundler/gem_tasks"

require 'bundler/gem_tasks'
require 'rake/testtask'
require 'rdoc/task'
require 'fileutils'

Rake::TestTask.new(:test) do |test|
test.libs << 'lib' << 'test'
test.pattern = 'test/**/*_test.rb'
test.verbose = true
end

task :default => :test

require 'rdoc/task'
Rake::RDocTask.new do |rdoc|
version = RoleRails::VERSION

Expand All @@ -22,17 +22,13 @@ end

namespace :role do

desc "Pull role/master subtree."
desc 'Pull role/master subtree.'
task :pull do
if !system "git pull -s subtree role master"
abort("Have to add role remote `git remote add -f role git@github.com:kossnocorp/role.git`")
end
system "cd role ; git checkout v#{RoleRails::VERSION}"
end

desc "Update role assets."
task :update => "role:pull" do
Dir["vendor/role/lib/*role.js"].each do |f|
cp f, "vendor/assets/javascripts/"
end
desc 'Update role assets.'
task :update => 'role:pull' do
FileUtils.cp_r('role/lib/.', 'vendor/assets/javascripts')
end
end
2 changes: 1 addition & 1 deletion lib/role-rails/version.rb
@@ -1,3 +1,3 @@
module RoleRails
VERSION = '1.1.0'
VERSION = '1.2.0'
end
1 change: 1 addition & 0 deletions role
Submodule role added at 1f2ecf
44 changes: 17 additions & 27 deletions vendor/assets/javascripts/jquery.role.js
@@ -1,29 +1,19 @@
// Role.js, jQuery adapter v1.0.2 ~ https://github.com/kossnocorp/role

(function($) {
var matchesSelectorOrigin, type;
if ($ == null) $ = jQuery;
$.expr.match['ROLE'] = /@((?:[\w\u00c0-\uFFFF\-]|\\.)+)/;
$.expr.preFilter['ROLE'] = function(match) {
return ' ' + match[1] + ' ';
};
$.expr.filter['ROLE'] = function(el, match) {
return (el.getAttribute != null) && (" " + (el.getAttribute('role')) + " ").indexOf(match) !== -1;
};
for (type in $.expr.match) {
$.expr.match[type] = new RegExp($.expr.match[type].source + /(?![^\[]*\])(?![^\(]*\))/.source);
$.expr.leftMatch[type] = new RegExp(/(^(?:.|\r|\n)*?)/.source + $.expr.match[type].source.replace(/\\(\d+)/g, function(all, num) {
return "\\" + (num - 0 + 1);
}));
}
if (!(document.documentElement.matchesSelector != null) && (document.documentElement.mozMatchesSelector != null)) {
matchesSelectorOrigin = $.find.matchesSelector;
return $.find.matchesSelector = function(node, expr) {
return matchesSelectorOrigin(node, expr.replace(/(@[\w\-]+)/g, function($0) {
return $0.replace(/^@([\w\-]+)$/, function(__, $1) {
return "[role~=\"" + $1 + "\"]";
});
}));
!function($){
function rewriteSelector(context, name, argPos){
var original = context[name];

if (!original) return;

context[name] = function(){
arguments[argPos] = arguments[argPos].replace(/@([\w\u00c0-\uFFFF\-]+)/g, '[role~="$1"]')
return original.apply(context, arguments);
};

$.extend(context[name], original);
}
})($);

rewriteSelector($, 'find', 0);
rewriteSelector($, 'multiFilter', 0);
rewriteSelector($.find, 'matchesSelector', 1);
rewriteSelector($.find, 'matches', 0);
}(jQuery)
1 change: 1 addition & 0 deletions vendor/assets/javascripts/jquery.role.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

40 changes: 17 additions & 23 deletions vendor/assets/javascripts/role.js
@@ -1,24 +1,18 @@
// Role.js, extension for querySelectorAll function v1.0.2 ~ https://github.com/kossnocorp/role

(function() {
var elements, elm, _fn, _i, _len;

elements = [];

if (typeof Document !== "undefined" && Document !== null) elements << Document;

if (typeof Element !== "undefined" && Element !== null) elements << Element;

_fn = function(elm) {
var nativeQuery;
nativeQuery = elm.prototype.querySelectorAll;
return elm.prototype.querySelectorAll = function(selector) {
return nativeQuery.call(this, selector.replace(/@(\w+)/g, "[role~=\"$1\"]"));
};
};
for (_i = 0, _len = elements.length; _i < _len; _i++) {
elm = elements[_i];
_fn(elm);
!function(window, methods){
function overrideMethod(klass, methodName){
var original;
if (klass && (original = klass.prototype[methodName])) {
klass.prototype[methodName] = function(){
arguments[0] = arguments[0].replace(/@([\w\u00c0-\uFFFF\-]+)/g, '[role~="$1"]');
return original.apply(this, arguments);
};
}
}

}).call(this);

function overridePrototype(klass){
for(var i=0; i<methods.length; i++)
overrideMethod(klass, methods[i]);
}

overridePrototype(window.Element); overridePrototype(window.Document);
}(this, ['querySelector', 'querySelectorAll']);
1 change: 1 addition & 0 deletions vendor/assets/javascripts/role.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit a32e811

Please sign in to comment.