iam 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/README.md CHANGED
@@ -31,15 +31,21 @@ 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.4'
34
+ gem 'iam', '~> 0.1.5'
35
35
  ```
36
+ ##Configuration
36
37
 
37
- Add helper to your application layout (after `jQuery`):
38
+ Generate configuration file:
38
39
 
39
- ```ruby
40
- <%= include_iam %>
40
+ ```bash
41
+ rails g iam:initializer
41
42
  ```
42
43
 
44
+ All major configuration params available are described there.
45
+
46
+ Also each developer can configure control keys (alt ctrl shift) to make up iam-menu show/hide combination.
47
+ These configurations are saved into cookies and you may forget these settings after first customization.
48
+
43
49
  ##License
44
50
 
45
51
  MIT
data/Rakefile CHANGED
@@ -11,3 +11,23 @@ Rake::TestTask.new(:test) do |t|
11
11
  t.pattern = 'spec/**/*_test.rb'
12
12
  t.verbose = true
13
13
  end
14
+
15
+ desc 'Precompile vendor assets'
16
+ task :precompile do |t|
17
+ precompile_sass
18
+ precompile_coffee
19
+ end
20
+
21
+ def precompile_sass
22
+ Dir[File.join('**', '*.sass')].each do |file|
23
+ system "sass #{file} > #{file.gsub('.sass', '')}"
24
+ p "File #{file} precompiled"
25
+ end
26
+ end
27
+
28
+ def precompile_coffee
29
+ Dir[File.join('**', '*.coffee')].each do |file|
30
+ system "coffee -c #{file}"
31
+ p "File #{file} precompiled"
32
+ end
33
+ end
@@ -1,9 +1,28 @@
1
1
  class IamController < ApplicationController
2
+ layout false
3
+
4
+ def menu
5
+ @account_samples = account_samples
6
+ end
7
+
2
8
  def log_in_as
9
+ return if Rails.env == 'production'
10
+
3
11
  account = Iam::Configuration.account_class.constantize.find(params[:id])
4
12
  sign_in Iam::Configuration.account_class.downcase, account
5
13
 
6
14
  name = Iam::Configuration.account_attributes.map{ |key| account.public_send(key)}.join(' ')
7
15
  render json: { notice: I18n.t('iam.success', name: name) }
8
16
  end
17
+
18
+ private
19
+ def account_samples
20
+ role_class = Iam::Configuration.role_class.constantize
21
+ account_class = Iam::Configuration.account_class.constantize
22
+
23
+ role_class.all.inject({}) do |account_groups, role|
24
+ account_group = account_class.where(role_class.to_s.foreign_key => role.id).order(:id).limit(Iam::Configuration.accounts_for_each_role)
25
+ account_groups.merge role => account_group
26
+ end
27
+ end
9
28
  end
@@ -1,4 +1,4 @@
1
- <table id='iam-menu' href='<%= log_in_as_path(id: 'ID') %>'>
1
+ <table id='iam-menu'>
2
2
  <%= render partial: 'iam/account_group', collection: @account_samples.to_a %>
3
3
  <%= render partial: 'iam/settings' %>
4
4
  </table>
data/config/routes.rb CHANGED
@@ -1,3 +1,4 @@
1
1
  Rails.application.routes.draw do
2
- post '/iam_you/:id', controller: :iam, action: :log_in_as, as: :log_in_as
2
+ post 'iam/log_in_as/:id' => 'iam#log_in_as', as: :log_in_as
3
+ get 'iam/menu' => 'iam#menu', as: :iam_menu
3
4
  end
data/iam.gemspec CHANGED
@@ -16,11 +16,12 @@ Gem::Specification.new do |s|
16
16
  s.require_path = 'lib'
17
17
 
18
18
  s.add_dependency 'activesupport', '~> 3.1'
19
- s.add_dependency 'sass'
20
- s.add_dependency 'coffee-rails'
19
+ s.add_dependency 'rack'
21
20
 
22
- s.add_development_dependency 'jquery-rails'
21
+ s.add_development_dependency 'pry'
23
22
  s.add_development_dependency 'sass'
23
+ s.add_development_dependency 'coffee-rails'
24
+ s.add_development_dependency 'jquery-rails'
24
25
  s.add_development_dependency 'sqlite3'
25
26
  s.add_development_dependency 'devise'
26
27
  s.add_development_dependency 'rails', '~> 3.1'
data/lib/iam.rb CHANGED
@@ -1,6 +1,6 @@
1
+ require 'rack'
2
+
1
3
  require 'iam/configuration'
2
4
  require 'iam/engine'
3
5
  require 'iam/version'
4
- require 'helpers/iam_helper'
5
-
6
- ActionView::Base.send :include, IamHelper
6
+ require 'rack/assets_middleware'
data/lib/iam/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Iam
2
- VERSION = '0.1.4'
2
+ VERSION = '0.1.5'
3
3
  end
@@ -0,0 +1,28 @@
1
+ module Rack
2
+ module AssetHelpers
3
+ def html_code
4
+ css_code << js_code
5
+ end
6
+
7
+ private
8
+ def css_code
9
+ '<style type="text/css">' << typed_asset('stylesheets', 'iam.css') << '</style>'
10
+ end
11
+
12
+ def js_code
13
+ '<script type="text/javascript">' << typed_asset('javascripts', 'iam.js', 'jquery.cookie.js') << '</script>'
14
+ end
15
+
16
+ def typed_asset(type, *files)
17
+ files.map { |f| asset type, f }.reduce :<<
18
+ end
19
+
20
+ def asset(type, file)
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
25
+ @assets[file] ||= output
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,35 @@
1
+ module Rack
2
+ class Assets
3
+ include AssetHelpers
4
+
5
+ def initialize(app)
6
+ @app = app
7
+ end
8
+
9
+ def call(env)
10
+ status, headers, response = @app.call(env)
11
+ return [status, headers, response] unless check_html?(headers, response) && status == 200
12
+
13
+ if response.respond_to?(:body)
14
+ response_body = response.body
15
+ else
16
+ response_body = response.first
17
+ end
18
+
19
+ # Inject the html, css and js code to the view
20
+ response_body.gsub!('</body>', "#{html_code}</body>")
21
+
22
+ headers['Content-Length'] = response_body.bytesize.to_s
23
+
24
+ [status, headers, [response_body]]
25
+ end
26
+
27
+ private
28
+ def check_html?(headers, response)
29
+ body = response.respond_to?(:body) ? response.body : response.first
30
+ headers['Content-Type'] and
31
+ headers['Content-Type'].include? 'text/html' and
32
+ body =~ %r{<html.*</html>}m
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,5 @@
1
+ # encoding: utf-8
2
+ require 'rack/asset_helpers'
3
+ require 'rack/assets'
4
+
5
+ require 'rack/railtie' if defined?(Rails::Railtie)
@@ -0,0 +1,7 @@
1
+ module Rack
2
+ class Railtie < ::Rails::Railtie
3
+ initializer 'iam-assets.add_middleware' do |app|
4
+ app.middleware.use Rack::Assets unless Rails.env.production?
5
+ end
6
+ end
7
+ end
@@ -5,7 +5,6 @@
5
5
  <%= stylesheet_link_tag "application", :media => "all" %>
6
6
  <%= javascript_include_tag "application" %>
7
7
  <%= csrf_meta_tags %>
8
- <%= include_iam %>
9
8
  </head>
10
9
  <body>
11
10
 
@@ -1,10 +1,28 @@
1
1
  $ ->
2
2
  $menu = $('#iam-menu')
3
- linkTemplate = $menu.attr 'href'
3
+ templateLink = '/iam/log_in_as/:id'
4
+ menuLink = '/iam/menu'
4
5
  inputMode = false # account id is anticipated to be typed
5
6
  input = '' # typed string
6
7
  controlKeys = ['alt', 'ctrl', 'shift']
7
8
 
9
+ initialize = ->
10
+ $('.iam-settings-header').on 'click', ->
11
+ $('.iam-settings').toggle()
12
+
13
+ $('#iam-menu').on 'click', 'td', ->
14
+ $tr = $(@).parents 'tr'
15
+ link = $tr.attr 'href'
16
+ logInByLink link if link
17
+
18
+ $.each controlKeys, ->
19
+ $checkbox = $(".iam-#{@}-settings input")
20
+ cookieName = "iam-#{@}-checked"
21
+
22
+ $checkbox[0].checked = $.cookie(cookieName) == 'true'
23
+
24
+ $checkbox.on 'click', -> $.cookie cookieName, @.checked
25
+
8
26
  iamNotice = (notice) ->
9
27
  $notice = $("<div class='iam-notice'>#{notice}</div>")
10
28
  $('body').append $notice
@@ -21,8 +39,8 @@ $ ->
21
39
 
22
40
  controlKeysMatch = (e) ->
23
41
  for key in controlKeys
24
- checkBox = $(".iam-#{key}-settings input")[0]
25
- return false if checkBox.checked != e["#{key}Key"]
42
+ keyOn = $.cookie("iam-#{key}-checked") == 'true'
43
+ return false if keyOn != e["#{key}Key"]
26
44
  true
27
45
 
28
46
  inputSelected = ->
@@ -30,19 +48,21 @@ $ ->
30
48
 
31
49
  processInput = (input) ->
32
50
  if input.match(/^\d+$/)
33
- link = linkTemplate.replace(/ID/, input)
51
+ link = templateLink.replace(/:id/, input)
34
52
  logInByLink link
35
53
  else
36
54
  iamNotice "#{input} is invalid id." if input
37
55
 
38
56
  logInByInput = ->
39
- processInput input if inputMode
40
- input = ''
57
+ if inputMode
58
+ processInput input
59
+ $('#iam-menu').remove()
60
+ else
61
+ $.get menuLink, (menu) ->
62
+ $('body').append menu
63
+ initialize()
41
64
 
42
- $menu.on 'click', 'td', ->
43
- $tr = $(@).parents 'tr'
44
- link = $tr.attr 'href'
45
- logInByLink link if link
65
+ input = ''
46
66
 
47
67
  $(document).on 'keydown', (e) ->
48
68
  if !inputSelected() && isTilde(e.keyCode) && controlKeysMatch(e)
@@ -52,11 +72,3 @@ $ ->
52
72
  $menu.toggle()
53
73
  else
54
74
  input += String.fromCharCode e.keyCode if 48 <= e.keyCode <= 57
55
-
56
- $.each controlKeys, ->
57
- $checkbox = $(".iam-#{@}-settings input")
58
- cookieName = "iam-#{@}-checked"
59
-
60
- $checkbox[0].checked = $.cookie(cookieName) == 'true'
61
-
62
- $checkbox.on 'click', -> $.cookie cookieName, @.checked
@@ -0,0 +1,101 @@
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);
@@ -0,0 +1,34 @@
1
+ #iam-menu {
2
+ text-align: center;
3
+ background: #d9ead3;
4
+ border-spacing: 0;
5
+ position: fixed;
6
+ top: 0;
7
+ left: 0;
8
+ cursor: pointer;
9
+ width: 250px;
10
+ z-index: 1000; }
11
+ #iam-menu td {
12
+ border: 1px solid #c9dac3;
13
+ margin: 0;
14
+ padding: 2px; }
15
+ #iam-menu .role-name, #iam-menu .iam-settings-header {
16
+ cursor: default;
17
+ padding: 5px;
18
+ font-size: 120%;
19
+ font-weight: bold; }
20
+ #iam-menu .iam-setting {
21
+ text-align: left;
22
+ padding-left: 10px; }
23
+ #iam-menu .iam-settings {
24
+ display: none; }
25
+
26
+ .iam-notice {
27
+ position: fixed;
28
+ left: 200px;
29
+ top: 0;
30
+ background: #d9ead3;
31
+ padding: 5px;
32
+ display: none;
33
+ width: 300px;
34
+ z-index: 1000; }
@@ -5,7 +5,6 @@
5
5
  position: fixed
6
6
  top: 0
7
7
  left: 0
8
- display: none
9
8
  cursor: pointer
10
9
  width: 250px
11
10
  z-index: 1000
@@ -25,6 +24,9 @@
25
24
  text-align: left
26
25
  padding-left: 10px
27
26
 
27
+ .iam-settings
28
+ display: none
29
+
28
30
  .iam-notice
29
31
  position: fixed
30
32
  left: 200px
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
4
+ version: 0.1.5
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: 2012-12-03 00:00:00.000000000 Z
12
+ date: 2012-12-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &15866760 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.1'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *15866760
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
25
30
  - !ruby/object:Gem::Dependency
26
- name: sass
27
- requirement: &15865720 !ruby/object:Gem::Requirement
31
+ name: rack
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,21 +37,31 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *15865720
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
- name: coffee-rails
38
- requirement: &15864540 !ruby/object:Gem::Requirement
47
+ name: pry
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
42
52
  - !ruby/object:Gem::Version
43
53
  version: '0'
44
- type: :runtime
54
+ type: :development
45
55
  prerelease: false
46
- version_requirements: *15864540
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
- name: jquery-rails
49
- requirement: &15863720 !ruby/object:Gem::Requirement
63
+ name: sass
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *15863720
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
- name: sass
60
- requirement: &15863080 !ruby/object:Gem::Requirement
79
+ name: coffee-rails
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,31 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *15863080
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: jquery-rails
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
69
110
  - !ruby/object:Gem::Dependency
70
111
  name: sqlite3
71
- requirement: &15862420 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
72
113
  none: false
73
114
  requirements:
74
115
  - - ! '>='
@@ -76,10 +117,15 @@ dependencies:
76
117
  version: '0'
77
118
  type: :development
78
119
  prerelease: false
79
- version_requirements: *15862420
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
80
126
  - !ruby/object:Gem::Dependency
81
127
  name: devise
82
- requirement: &15861720 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
83
129
  none: false
84
130
  requirements:
85
131
  - - ! '>='
@@ -87,10 +133,15 @@ dependencies:
87
133
  version: '0'
88
134
  type: :development
89
135
  prerelease: false
90
- version_requirements: *15861720
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
91
142
  - !ruby/object:Gem::Dependency
92
143
  name: rails
93
- requirement: &15861080 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
94
145
  none: false
95
146
  requirements:
96
147
  - - ~>
@@ -98,10 +149,15 @@ dependencies:
98
149
  version: '3.1'
99
150
  type: :development
100
151
  prerelease: false
101
- version_requirements: *15861080
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '3.1'
102
158
  - !ruby/object:Gem::Dependency
103
159
  name: rspec-rails
104
- requirement: &15860400 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
105
161
  none: false
106
162
  requirements:
107
163
  - - ~>
@@ -109,7 +165,12 @@ dependencies:
109
165
  version: '2.10'
110
166
  type: :development
111
167
  prerelease: false
112
- version_requirements: *15860400
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '2.10'
113
174
  description: Simple account switcher for Rails that automatically retrieves a few
114
175
  user accounts for each role and provides single-click login feature.
115
176
  email: fut.wrk@gmail.com
@@ -126,18 +187,21 @@ files:
126
187
  - app/views/iam/_account_attribute.html.erb
127
188
  - app/views/iam/_account_group.html.erb
128
189
  - app/views/iam/_key_setting.html.erb
129
- - app/views/iam/_menu.html.erb
130
190
  - app/views/iam/_settings.html.erb
191
+ - app/views/iam/menu.html.erb
131
192
  - config/locales/iam.en.yml
132
193
  - config/routes.rb
133
194
  - iam.gemspec
134
195
  - lib/generators/iam/initializer_generator.rb
135
196
  - lib/generators/templates/iam.rb
136
- - lib/helpers/iam_helper.rb
137
197
  - lib/iam.rb
138
198
  - lib/iam/configuration.rb
139
199
  - lib/iam/engine.rb
140
200
  - lib/iam/version.rb
201
+ - lib/rack/asset_helpers.rb
202
+ - lib/rack/assets.rb
203
+ - lib/rack/assets_middleware.rb
204
+ - lib/rack/railtie.rb
141
205
  - spec/rails_app/.gitignore
142
206
  - spec/rails_app/Rakefile
143
207
  - spec/rails_app/app/assets/images/rails.png
@@ -185,8 +249,11 @@ files:
185
249
  - spec/rails_app/script/rails
186
250
  - spec/spec_helper.rb
187
251
  - spec/support/database_cleaner.rb
188
- - vendor/assets/javascripts/iam.js.coffee
252
+ - vendor/assets/javascripts/iam.coffee
253
+ - vendor/assets/javascripts/iam.js
189
254
  - vendor/assets/javascripts/jquery.cookie.js
255
+ - vendor/assets/stylesheets/.sass-cache/99c7326b15538dc9b4651af91a5f076fe779d5ec/iam.css.sassc
256
+ - vendor/assets/stylesheets/iam.css
190
257
  - vendor/assets/stylesheets/iam.css.sass
191
258
  homepage: http://github.com/FUT/iam
192
259
  licenses:
@@ -209,7 +276,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
276
  version: '0'
210
277
  requirements: []
211
278
  rubyforge_project: iam
212
- rubygems_version: 1.8.11
279
+ rubygems_version: 1.8.24
213
280
  signing_key:
214
281
  specification_version: 3
215
282
  summary: Simple account switcher for Rails.
@@ -1,21 +0,0 @@
1
- module IamHelper
2
- def include_iam
3
- return if Rails.env == 'production'
4
-
5
- @account_samples = account_samples
6
- stylesheet_link_tag('iam') +
7
- javascript_include_tag('iam', 'jquery.cookie') +
8
- render('iam/menu')
9
- end
10
-
11
- private
12
- def account_samples
13
- role_class = Iam::Configuration.role_class.constantize
14
- account_class = Iam::Configuration.account_class.constantize
15
-
16
- role_class.all.inject({}) do |account_groups, role|
17
- account_group = account_class.where(role_class.to_s.foreign_key => role.id).order(:id).limit(Iam::Configuration.accounts_for_each_role)
18
- account_groups.merge role => account_group
19
- end
20
- end
21
- end