iam 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/README.md +1 -1
- data/Rakefile +5 -1
- data/iam.gemspec +3 -2
- data/lib/iam/version.rb +1 -1
- data/lib/rack/asset_helpers.rb +4 -6
- data/vendor/assets/javascripts/iam.js +1 -100
- metadata +22 -6
data/.gitignore
CHANGED
data/README.md
CHANGED
data/Rakefile
CHANGED
@@ -26,8 +26,12 @@ def precompile_sass
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def precompile_coffee
|
29
|
+
require 'uglifier'
|
30
|
+
|
29
31
|
Dir[File.join('**', '*.coffee')].each do |file|
|
30
|
-
|
32
|
+
js_code = %x(coffee -p -c #{file})
|
33
|
+
js_file = file.gsub /coffee\Z/, 'js'
|
34
|
+
File.open(js_file, 'w') { |f| f << Uglifier.compile(js_code) }
|
31
35
|
p "File #{file} precompiled"
|
32
36
|
end
|
33
37
|
end
|
data/iam.gemspec
CHANGED
@@ -15,16 +15,17 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.files = `git ls-files`.split("\n")
|
16
16
|
s.require_path = 'lib'
|
17
17
|
|
18
|
-
s.add_dependency 'activesupport', '~> 3.
|
18
|
+
s.add_dependency 'activesupport', '~> 3.1'
|
19
19
|
s.add_dependency 'rack'
|
20
20
|
|
21
21
|
s.add_development_dependency 'pry'
|
22
|
+
s.add_development_dependency 'uglifier'
|
22
23
|
s.add_development_dependency 'sass'
|
23
24
|
s.add_development_dependency 'coffee-rails'
|
24
25
|
s.add_development_dependency 'jquery-rails'
|
25
26
|
s.add_development_dependency 'sqlite3'
|
26
27
|
s.add_development_dependency 'devise'
|
27
|
-
s.add_development_dependency 'rails', '~> 3.
|
28
|
+
s.add_development_dependency 'rails', '~> 3.1'
|
28
29
|
s.add_development_dependency 'rspec-rails', '~> 2.10'
|
29
30
|
|
30
31
|
s.rubyforge_project = s.name
|
data/lib/iam/version.rb
CHANGED
data/lib/rack/asset_helpers.rb
CHANGED
@@ -6,22 +6,20 @@ module Rack
|
|
6
6
|
|
7
7
|
private
|
8
8
|
def css_code
|
9
|
-
|
9
|
+
"<style type='text/css'>#{typed_asset('stylesheets', 'iam.css')}</style>"
|
10
10
|
end
|
11
11
|
|
12
12
|
def js_code
|
13
|
-
|
13
|
+
"<script type='text/javascript'>#{typed_asset('javascripts', 'iam.js', 'jquery.cookie.js')}</script>"
|
14
14
|
end
|
15
15
|
|
16
16
|
def typed_asset(type, *files)
|
17
|
-
files.map { |f| asset type, f }.reduce
|
17
|
+
files.map { |f| asset type, f }.reduce :+
|
18
18
|
end
|
19
19
|
|
20
20
|
def asset(type, file)
|
21
21
|
@assets ||= {}
|
22
|
-
output = ::File.
|
23
|
-
f.read
|
24
|
-
end
|
22
|
+
output = ::File.read ::File.join(::File.dirname(__FILE__), '..', '..', 'vendor', 'assets', type, file)
|
25
23
|
@assets[file] ||= output
|
26
24
|
end
|
27
25
|
end
|
@@ -1,101 +1,2 @@
|
|
1
1
|
// Generated by CoffeeScript 1.3.3
|
2
|
-
(function() {
|
3
|
-
|
4
|
-
$(function() {
|
5
|
-
var $menu, controlKeys, controlKeysMatch, iamNotice, initialize, input, inputMode, inputSelected, isTilde, logInByInput, logInByLink, menuLink, processInput, templateLink;
|
6
|
-
$menu = $('#iam-menu');
|
7
|
-
templateLink = '/iam/log_in_as/:id';
|
8
|
-
menuLink = '/iam/menu';
|
9
|
-
inputMode = false;
|
10
|
-
input = '';
|
11
|
-
controlKeys = ['alt', 'ctrl', 'shift'];
|
12
|
-
initialize = function() {
|
13
|
-
$('.iam-settings-header').on('click', function() {
|
14
|
-
return $('.iam-settings').toggle();
|
15
|
-
});
|
16
|
-
$('#iam-menu').on('click', 'td', function() {
|
17
|
-
var $tr, link;
|
18
|
-
$tr = $(this).parents('tr');
|
19
|
-
link = $tr.attr('href');
|
20
|
-
if (link) {
|
21
|
-
return logInByLink(link);
|
22
|
-
}
|
23
|
-
});
|
24
|
-
return $.each(controlKeys, function() {
|
25
|
-
var $checkbox, cookieName;
|
26
|
-
$checkbox = $(".iam-" + this + "-settings input");
|
27
|
-
cookieName = "iam-" + this + "-checked";
|
28
|
-
$checkbox[0].checked = $.cookie(cookieName) === 'true';
|
29
|
-
return $checkbox.on('click', function() {
|
30
|
-
return $.cookie(cookieName, this.checked);
|
31
|
-
});
|
32
|
-
});
|
33
|
-
};
|
34
|
-
iamNotice = function(notice) {
|
35
|
-
var $notice;
|
36
|
-
$notice = $("<div class='iam-notice'>" + notice + "</div>");
|
37
|
-
$('body').append($notice);
|
38
|
-
return $notice.fadeIn(200).delay(1000).fadeOut(600);
|
39
|
-
};
|
40
|
-
logInByLink = function(link) {
|
41
|
-
return $.post(link, function(data) {
|
42
|
-
$menu.hide();
|
43
|
-
window.location.reload();
|
44
|
-
return iamNotice(data.notice);
|
45
|
-
});
|
46
|
-
};
|
47
|
-
isTilde = function(code) {
|
48
|
-
return String.fromCharCode(code) === 'À';
|
49
|
-
};
|
50
|
-
controlKeysMatch = function(e) {
|
51
|
-
var key, keyOn, _i, _len;
|
52
|
-
for (_i = 0, _len = controlKeys.length; _i < _len; _i++) {
|
53
|
-
key = controlKeys[_i];
|
54
|
-
keyOn = $.cookie("iam-" + key + "-checked") === 'true';
|
55
|
-
if (keyOn !== e["" + key + "Key"]) {
|
56
|
-
return false;
|
57
|
-
}
|
58
|
-
}
|
59
|
-
return true;
|
60
|
-
};
|
61
|
-
inputSelected = function() {
|
62
|
-
return $(document.getSelection().focusNode).find('input, textarea').length > 0;
|
63
|
-
};
|
64
|
-
processInput = function(input) {
|
65
|
-
var link;
|
66
|
-
if (input.match(/^\d+$/)) {
|
67
|
-
link = templateLink.replace(/:id/, input);
|
68
|
-
return logInByLink(link);
|
69
|
-
} else {
|
70
|
-
if (input) {
|
71
|
-
return iamNotice("" + input + " is invalid id.");
|
72
|
-
}
|
73
|
-
}
|
74
|
-
};
|
75
|
-
logInByInput = function() {
|
76
|
-
if (inputMode) {
|
77
|
-
processInput(input);
|
78
|
-
$('#iam-menu').remove();
|
79
|
-
} else {
|
80
|
-
$.get(menuLink, function(menu) {
|
81
|
-
$('body').append(menu);
|
82
|
-
return initialize();
|
83
|
-
});
|
84
|
-
}
|
85
|
-
return input = '';
|
86
|
-
};
|
87
|
-
return $(document).on('keydown', function(e) {
|
88
|
-
var _ref;
|
89
|
-
if (!inputSelected() && isTilde(e.keyCode) && controlKeysMatch(e)) {
|
90
|
-
logInByInput();
|
91
|
-
inputMode = !inputMode;
|
92
|
-
return $menu.toggle();
|
93
|
-
} else {
|
94
|
-
if ((48 <= (_ref = e.keyCode) && _ref <= 57)) {
|
95
|
-
return input += String.fromCharCode(e.keyCode);
|
96
|
-
}
|
97
|
-
}
|
98
|
-
});
|
99
|
-
});
|
100
|
-
|
101
|
-
}).call(this);
|
2
|
+
(function(){$(function(){var e,t,n,r,i,s,o,u,a,f,l,c,h,p;return e=$("#iam-menu"),p="/iam/log_in_as/:id",c="/iam/menu",o=!1,s="",t=["alt","ctrl","shift"],i=function(){return $(".iam-settings-header").on("click",function(){return $(".iam-settings").toggle()}),$("#iam-menu").on("click","td",function(){var e,t;e=$(this).parents("tr"),t=e.attr("href");if(t)return l(t)}),$.each(t,function(){var e,t;return e=$(".iam-"+this+"-settings input"),t="iam-"+this+"-checked",e[0].checked=$.cookie(t)==="true",e.on("click",function(){return $.cookie(t,this.checked)})})},r=function(e){var t;return t=$("<div class='iam-notice'>"+e+"</div>"),$("body").append(t),t.fadeIn(200).delay(1e3).fadeOut(600)},l=function(t){return $.post(t,function(t){return e.hide(),window.location.reload(),r(t.notice)})},a=function(e){return String.fromCharCode(e)==="À"},n=function(e){var n,r,i,s;for(i=0,s=t.length;i<s;i++){n=t[i],r=$.cookie("iam-"+n+"-checked")==="true";if(r!==e[""+n+"Key"])return!1}return!0},u=function(){return $(document.getSelection().focusNode).find("input, textarea").length>0},h=function(e){var t;if(e.match(/^\d+$/))return t=p.replace(/:id/,e),l(t);if(e)return r(""+e+" is invalid id.")},f=function(){return o?(h(s),$("#iam-menu").remove()):$.get(c,function(e){return $("body").append(e),i()}),s=""},$(document).on("keydown",function(t){var r;if(!u()&&a(t.keyCode)&&n(t))return f(),o=!o,e.toggle();if(48<=(r=t.keyCode)&&r<=57)return s+=String.fromCharCode(t.keyCode)})})}).call(this);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iam
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '3.
|
21
|
+
version: '3.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: '3.
|
29
|
+
version: '3.1'
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: rack
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,6 +59,22 @@ dependencies:
|
|
59
59
|
- - ! '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: uglifier
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
62
78
|
- !ruby/object:Gem::Dependency
|
63
79
|
name: sass
|
64
80
|
requirement: !ruby/object:Gem::Requirement
|
@@ -146,7 +162,7 @@ dependencies:
|
|
146
162
|
requirements:
|
147
163
|
- - ~>
|
148
164
|
- !ruby/object:Gem::Version
|
149
|
-
version: '3.
|
165
|
+
version: '3.1'
|
150
166
|
type: :development
|
151
167
|
prerelease: false
|
152
168
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -154,7 +170,7 @@ dependencies:
|
|
154
170
|
requirements:
|
155
171
|
- - ~>
|
156
172
|
- !ruby/object:Gem::Version
|
157
|
-
version: '3.
|
173
|
+
version: '3.1'
|
158
174
|
- !ruby/object:Gem::Dependency
|
159
175
|
name: rspec-rails
|
160
176
|
requirement: !ruby/object:Gem::Requirement
|