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 CHANGED
@@ -3,3 +3,4 @@
3
3
  *.gem
4
4
  Gemfile.lock
5
5
  .bundle
6
+ .sass-cache/
data/README.md CHANGED
@@ -31,7 +31,7 @@ Also you may log in using user_id (e.g. 42):
31
31
  Add gem to your gemfile:
32
32
 
33
33
  ```ruby
34
- gem 'iam', '~> 0.1.7'
34
+ gem 'iam', '~> 0.1.8'
35
35
  ```
36
36
  ##Configuration
37
37
 
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
- system "coffee -c #{file}"
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.0'
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.0'
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
@@ -1,3 +1,3 @@
1
1
  module Iam
2
- VERSION = '0.1.7'
2
+ VERSION = '0.1.8'
3
3
  end
@@ -6,22 +6,20 @@ module Rack
6
6
 
7
7
  private
8
8
  def css_code
9
- '<style type="text/css">' << typed_asset('stylesheets', 'iam.css') << '</style>'
9
+ "<style type='text/css'>#{typed_asset('stylesheets', 'iam.css')}</style>"
10
10
  end
11
11
 
12
12
  def js_code
13
- '<script type="text/javascript">' << typed_asset('javascripts', 'iam.js', 'jquery.cookie.js') << '</script>'
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.open(::File.join(::File.dirname(__FILE__), '..', '..', 'vendor', 'assets', type, file), 'r:UTF-8') do |f|
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.7
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-04 00:00:00.000000000 Z
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.0'
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.0'
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.0'
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.0'
173
+ version: '3.1'
158
174
  - !ruby/object:Gem::Dependency
159
175
  name: rspec-rails
160
176
  requirement: !ruby/object:Gem::Requirement