cops 0.2.0.6 → 0.2.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,6 +21,8 @@ Clearance, a default Blue Light Special installation includes:
21
21
 
22
22
  == Setup
23
23
 
24
+ Note: Before Blue Light Special can run, the database must be created, the database.yml configured, and permissions granted to the user. The 'create-rails-dev-db' gem does all this. Run it with 'create-rails-dev-db' within the Rails app first.
25
+
24
26
  After installing the Blue Light Special gem, require it in your Rails app and run
25
27
  the blue_light_special generator.
26
28
 
@@ -95,6 +97,8 @@ gem build cops.gemspec
95
97
 
96
98
  sudo gem install cops.gem
97
99
 
100
+ gem push cops-0.2.0.1.gem
101
+
98
102
  gem yank cops -v 0.2.0.1
99
103
 
100
104
  == Differences from Blue Light Special ==
@@ -5,19 +5,27 @@ class BlueLightSpecialGenerator < Rails::Generator::Base
5
5
 
6
6
  def manifest
7
7
  record do |m|
8
+ app_name = File.expand_path(File.dirname(__FILE__)).split("/").last
8
9
  m.directory File.join("config", "initializers")
9
10
  m.file "blue_light_special.rb", "config/initializers/blue_light_special.rb"
10
11
  m.file "blue_light_special.yml", "config/blue_light_special.yml"
11
12
 
12
13
  m.directory File.join("app", "views", "layouts")
14
+ m.directory File.join("app", "views", "sessions")
13
15
  m.file "application.html.erb", "app/views/layouts/application.html.erb"
16
+ m.file "app/views/sessions/index.html.erb", "app/views/sessions/index.html.erb"
14
17
 
15
18
  m.directory File.join("public", "stylesheets")
16
19
  m.file "style.css", "public/stylesheets/style.css"
20
+ m.file "reports.css", "public/stylesheets/report.css"
21
+ m.file "reset.css", "public/stylesheets/reset.css"
22
+ m.file "text.css", "public/stylesheets/text.css"
23
+ m.file "layout.css", "public/stylesheets/layout.css"
17
24
 
18
25
  m.file "xd_receiver.html", "public/xd_receiver.html"
19
26
  m.file "xd_receiver_ssl.html", "public/xd_receiver_ssl.html"
20
27
 
28
+ m.file "app/controllers/sessions_controller.rb", "app/controllers/sessions_controller.rb"
21
29
  m.insert_into "app/controllers/application_controller.rb",
22
30
  "include BlueLightSpecial::Authentication"
23
31
 
@@ -0,0 +1,6 @@
1
+ class SessionsController < BlueLightSpecial::SessionsController
2
+
3
+ def index
4
+
5
+ end
6
+ end
@@ -7,44 +7,69 @@
7
7
  <meta name="keywords" content="<%= yield(:keywords) %>" />
8
8
  <meta name="robots" content="INDEX,FOLLOW" />
9
9
 
10
- <%= stylesheet_link_tag "style" %>
11
- <!--[if IE 6]>
12
- <%= stylesheet_link_tag "ie6-style" %>
13
- <![endif]-->
10
+ <%= stylesheet_link_tag "reset", "layout", "text", "style", "report" %>
14
11
 
15
12
  <%- if request.ssl? -%>
16
- <%= javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js' %>
13
+ <%= javascript_include_tag 'https://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' %>
17
14
  <%- else -%>
18
- <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js' %>
15
+ <%= javascript_include_tag 'http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' %>
19
16
  <%- end -%>
20
17
  <%= javascript_include_tag 'application' %>
21
18
  </head>
22
19
  <body>
20
+
21
+ <div id="header" class="container_12">
22
+
23
+ <div id="title" class="grid_6 ">
24
+ Default Web App
25
+ </div>
26
+
27
+ <div id="nav" class="grid_6 ">
28
+ <% if signed_in? %>
29
+ <% if impersonating? %>
30
+ Impersonating <%= current_user.name %>
31
+ | <%= link_to 'Stop impersonating', impersonation_path, :method => :delete %>
32
+ <% else %>
33
+ Welcome, <%= current_user.name %>
34
+ | <%= link_to 'Sign out', sign_out_path %>
35
+ <% end %>
36
+
37
+ <% if current_user.admin? %>
38
+ | <%= link_to 'Admin', "/admin" %>
39
+ <% end %>
40
+
41
+ | <%= link_to 'My Profile', user_path(current_user) %>
42
+ <% else %>
43
+ <%= link_to 'Sign in', sign_in_path %> |
44
+ <%= link_to 'Sign up', sign_up_path %>
45
+ <% end %>
46
+ </div>
47
+
48
+ </div>
49
+
50
+ <div id="content" class="container_12">
51
+ <div id="flash">
52
+ <%- flash.each do |key, value| -%>
53
+ <div class="<%= key %>_flash"><%=h value %></div>
54
+ <%- end -%>
55
+ </div>
56
+ <%= yield %>
57
+ </div>
58
+
59
+
60
+ <div id="footer" class="container_12">
61
+
62
+ <div id="built-by" class="grid_6 ">
63
+ Built by Brian Burridge, Agile Nomads LLC
64
+ </div>
65
+
66
+ <div id="meta" class="grid_6 ">
67
+ <% if ENV["RAILS_ENV"] != "production" %><%= ENV["RAILS_ENV"]%><% end %>
68
+ </div>
69
+
70
+ </div>
71
+
23
72
 
24
- <% if signed_in? %>
25
- <% if impersonating? %>
26
- Impersonating <%= current_user.name %>
27
- | <%= link_to 'Stop impersonating', impersonation_path, :method => :delete %>
28
- <% else %>
29
- Welcome, <%= current_user.name %>
30
- | <%= link_to 'Sign out', sign_out_path %>
31
- <% end %>
32
-
33
- <% if current_user.admin? %>
34
- | <%= link_to 'Admin', impersonations_path %>
35
- <% end %>
36
-
37
- | <%= link_to 'My Profile', user_path(current_user) %>
38
- <% else %>
39
- <%= link_to 'Sign in', sign_in_path %> |
40
- <%= link_to 'Sign up', sign_up_path %>
41
- <% end %>
42
-
43
- <div id="flash">
44
- <%- flash.each do |key, value| -%>
45
- <div class="<%= key %>_flash"><%=h value %></div>
46
- <%- end -%>
47
- </div>
48
- <%= yield %>
73
+
49
74
  </body>
50
75
  </html>
@@ -0,0 +1,353 @@
1
+
2
+ /* Containers
3
+ ----------------------------------------------------------------------------------------------------*/
4
+ .container_12 {
5
+ margin-left: auto;
6
+ margin-right: auto;
7
+ width: 960px;
8
+
9
+
10
+ }
11
+
12
+ /* Grid >> Children (Alpha ~ First, Omega ~ Last)
13
+ ----------------------------------------------------------------------------------------------------*/
14
+
15
+ .alpha {
16
+ margin-left: 0 !important;
17
+ }
18
+
19
+ .omega {
20
+ margin-right: 0 !important;
21
+ }
22
+
23
+
24
+
25
+ /* Grid >> Global
26
+ ----------------------------------------------------------------------------------------------------*/
27
+
28
+ .grid_1,
29
+ .grid_2,
30
+ .grid_3,
31
+ .grid_4,
32
+ .grid_5,
33
+ .grid_6,
34
+ .grid_7,
35
+ .grid_8,
36
+ .grid_9,
37
+ .grid_10,
38
+ .grid_11,
39
+ .grid_12,.grid_12{
40
+ display:inline;
41
+ float: left;
42
+ position: relative;
43
+ margin-left: 10.0px;
44
+ margin-right: 10.0px;
45
+ }
46
+
47
+
48
+ /* Grid >> 2 Columns
49
+ ----------------------------------------------------------------------------------------------------*/
50
+
51
+ .container_12 .grid_1{
52
+ width:60px;
53
+ }
54
+
55
+ .container_12 .grid_2{
56
+ width:140px;
57
+ }
58
+
59
+ .container_12 .grid_3{
60
+ width:220px;
61
+ }
62
+
63
+ .container_12 .grid_4{
64
+ width:300px;
65
+ }
66
+
67
+ .container_12 .grid_5{
68
+ width:380px;
69
+ }
70
+
71
+ .container_12 .grid_6{
72
+ width:460px;
73
+ }
74
+
75
+ .container_12 .grid_7{
76
+ width:540px;
77
+ }
78
+
79
+ .container_12 .grid_8{
80
+ width:620px;
81
+ }
82
+
83
+ .container_12 .grid_9{
84
+ width:700px;
85
+ }
86
+
87
+ .container_12 .grid_10{
88
+ width:780px;
89
+ }
90
+
91
+ .container_12 .grid_11{
92
+ width:860px;
93
+ }
94
+
95
+ .container_12 .grid_12{
96
+ width:940px;
97
+ }
98
+
99
+
100
+
101
+
102
+
103
+ /* Prefix Extra Space >> 2 Columns
104
+ ----------------------------------------------------------------------------------------------------*/
105
+
106
+ .container_12 .prefix_1 {
107
+ padding-left:80px;
108
+ }
109
+
110
+ .container_12 .prefix_2 {
111
+ padding-left:160px;
112
+ }
113
+
114
+ .container_12 .prefix_3 {
115
+ padding-left:240px;
116
+ }
117
+
118
+ .container_12 .prefix_4 {
119
+ padding-left:320px;
120
+ }
121
+
122
+ .container_12 .prefix_5 {
123
+ padding-left:400px;
124
+ }
125
+
126
+ .container_12 .prefix_6 {
127
+ padding-left:480px;
128
+ }
129
+
130
+ .container_12 .prefix_7 {
131
+ padding-left:560px;
132
+ }
133
+
134
+ .container_12 .prefix_8 {
135
+ padding-left:640px;
136
+ }
137
+
138
+ .container_12 .prefix_9 {
139
+ padding-left:720px;
140
+ }
141
+
142
+ .container_12 .prefix_10 {
143
+ padding-left:800px;
144
+ }
145
+
146
+ .container_12 .prefix_11 {
147
+ padding-left:880px;
148
+ }
149
+
150
+ .container_12 .prefix_12 {
151
+ padding-left:960px;
152
+ }
153
+
154
+
155
+
156
+ /* Suffix Extra Space >> 2 Columns
157
+ ----------------------------------------------------------------------------------------------------*/
158
+
159
+ .container_12 .suffix_1 {
160
+ padding-right:80px;
161
+ }
162
+
163
+ .container_12 .suffix_2 {
164
+ padding-right:160px;
165
+ }
166
+
167
+ .container_12 .suffix_3 {
168
+ padding-right:240px;
169
+ }
170
+
171
+ .container_12 .suffix_4 {
172
+ padding-right:320px;
173
+ }
174
+
175
+ .container_12 .suffix_5 {
176
+ padding-right:400px;
177
+ }
178
+
179
+ .container_12 .suffix_6 {
180
+ padding-right:480px;
181
+ }
182
+
183
+ .container_12 .suffix_7 {
184
+ padding-right:560px;
185
+ }
186
+
187
+ .container_12 .suffix_8 {
188
+ padding-right:640px;
189
+ }
190
+
191
+ .container_12 .suffix_9 {
192
+ padding-right:720px;
193
+ }
194
+
195
+ .container_12 .suffix_10 {
196
+ padding-right:800px;
197
+ }
198
+
199
+ .container_12 .suffix_11 {
200
+ padding-right:880px;
201
+ }
202
+
203
+ .container_12 .suffix_12 {
204
+ padding-right:960px;
205
+ }
206
+
207
+
208
+
209
+ /* Push Space >> 2 Columns
210
+ ----------------------------------------------------------------------------------------------------*/
211
+
212
+ .container_12 .push_1 {
213
+ left:80px;
214
+ }
215
+
216
+ .container_12 .push_2 {
217
+ left:160px;
218
+ }
219
+
220
+ .container_12 .push_3 {
221
+ left:240px;
222
+ }
223
+
224
+ .container_12 .push_4 {
225
+ left:320px;
226
+ }
227
+
228
+ .container_12 .push_5 {
229
+ left:400px;
230
+ }
231
+
232
+ .container_12 .push_6 {
233
+ left:480px;
234
+ }
235
+
236
+ .container_12 .push_7 {
237
+ left:560px;
238
+ }
239
+
240
+ .container_12 .push_8 {
241
+ left:640px;
242
+ }
243
+
244
+ .container_12 .push_9 {
245
+ left:720px;
246
+ }
247
+
248
+ .container_12 .push_10 {
249
+ left:800px;
250
+ }
251
+
252
+ .container_12 .push_11 {
253
+ left:880px;
254
+ }
255
+
256
+ .container_12 .push_12 {
257
+ left:960px;
258
+ }
259
+
260
+
261
+
262
+
263
+
264
+ /* Pull Space >> 2 Columns
265
+ ----------------------------------------------------------------------------------------------------*/
266
+
267
+ .container_12 .pull_1 {
268
+ right:80px;
269
+ }
270
+
271
+ .container_12 .pull_2 {
272
+ right:160px;
273
+ }
274
+
275
+ .container_12 .pull_3 {
276
+ right:240px;
277
+ }
278
+
279
+ .container_12 .pull_4 {
280
+ right:320px;
281
+ }
282
+
283
+ .container_12 .pull_5 {
284
+ right:400px;
285
+ }
286
+
287
+ .container_12 .pull_6 {
288
+ right:480px;
289
+ }
290
+
291
+ .container_12 .pull_7 {
292
+ right:560px;
293
+ }
294
+
295
+ .container_12 .pull_8 {
296
+ right:640px;
297
+ }
298
+
299
+ .container_12 .pull_9 {
300
+ right:720px;
301
+ }
302
+
303
+ .container_12 .pull_10 {
304
+ right:800px;
305
+ }
306
+
307
+ .container_12 .pull_11 {
308
+ right:880px;
309
+ }
310
+
311
+ .container_12 .pull_12 {
312
+ right:960px;
313
+ }
314
+
315
+
316
+
317
+
318
+ /* Clear Floated Elements
319
+ ----------------------------------------------------------------------------------------------------*/
320
+
321
+
322
+ .clear {
323
+ clear: both;
324
+ display: block;
325
+ overflow: hidden;
326
+ visibility: hidden;
327
+ width: 0;
328
+ height: 0;
329
+ }
330
+
331
+
332
+ .clearfix:after {
333
+ clear: both;
334
+ content: ' ';
335
+ display: block;
336
+ font-size: 0;
337
+ line-height: 0;
338
+ visibility: hidden;
339
+ width: 0;
340
+ height: 0;
341
+ }
342
+
343
+ .clearfix {
344
+ display: inline-block;
345
+ }
346
+
347
+ * html .clearfix {
348
+ height: 1%;
349
+ }
350
+
351
+ .clearfix {
352
+ display: block;
353
+ }
@@ -10,6 +10,8 @@ class BlueLightSpecialCreateUsers < ActiveRecord::Migration
10
10
  t.string :remember_token, :limit => 128
11
11
  t.string :facebook_uid, :limit => 50
12
12
  t.string :password_reset_token, :limit => 128
13
+ t.string :confirmation_token, :limit => 128
14
+ t.boolean :email_confirmed, :default => false, :null => false
13
15
  t.timestamps
14
16
  end
15
17
 
@@ -0,0 +1,69 @@
1
+ .report table {
2
+ font-family: "Junction";
3
+ width: 700px;
4
+ height: 160px;
5
+ border: 2px solid black;
6
+ }
7
+ .report table th {
8
+ text-align: center;
9
+ font-weight: bold;
10
+ }
11
+ .report table td,
12
+ .report table th {
13
+ padding: 2px;
14
+ }
15
+ .report table td.numeric,
16
+ .report table th.numeric {
17
+ text-align: right;
18
+ }
19
+ .report table th, .report table td {
20
+ border-right: 1px solid #233551;
21
+ border-bottom: 1px solid #233551;
22
+ border-left-width: 0px;
23
+ border-top-width: 0px;
24
+ }
25
+ .report table th:last-child, .report table th.last, .report table td:last-child, .report table td.last {
26
+ border-right-width: 0px;
27
+ }
28
+ .report table tbody tr:last-child th, .report table tbody tr:last-child td,
29
+ .report table tbody tr.last th,
30
+ .report table tbody tr.last td, .report table tfoot tr:last-child th, .report table tfoot tr:last-child td, .report table tfoot tr.last th, .report table tfoot tr.last td {
31
+ border-bottom-width: 0px;
32
+ }
33
+ .report table thead th {
34
+ border-bottom: 2px solid black;
35
+ }
36
+ .report table tfoot th, .report table tfoot td {
37
+ border-top: 2px solid black;
38
+ }
39
+ .report table th:first-child {
40
+ border-right: 2px solid black;
41
+ }
42
+ .report table th {
43
+ background-color: #eeeeee;
44
+ }
45
+ .report table th.even, .report table th:nth-child(2n) {
46
+ background-color: #eeeeee;
47
+ }
48
+ .report table tr.odd td {
49
+ background-color: #98c67a;
50
+ }
51
+ .report table tr.odd td.even, .report table tr.odd td:nth-child(2n) {
52
+ background-color: #98c67a;
53
+ }
54
+ .report table tr.even td {
55
+ background-color: #7a98c6;
56
+ }
57
+ .report table tr.even td.even, .report table tr.even td:nth-child(2n) {
58
+ background-color: #7a98c6;
59
+ }
60
+ .report table tfoot th, .report table tfoot td {
61
+ background-color: white;
62
+ }
63
+ .report table tfoot th.even, .report table tfoot th:nth-child(2n), .report table tfoot td.even, .report table tfoot td:nth-child(2n) {
64
+ background-color: white;
65
+ }
66
+ .report table th {
67
+ text-align: left;
68
+ margin-top: 0px;
69
+ }
@@ -0,0 +1 @@
1
+ html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}:focus{outline:0}ins{text-decoration:none}del{text-decoration:line-through}table{border-collapse:collapse;border-spacing:0}
@@ -0,0 +1 @@
1
+ body{font:13px/1.5 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif}a:focus{outline:1px dotted}hr{border:0 #ccc solid;border-top-width:1px;clear:both;height:0}h1{font-size:25px}h2{font-size:23px}h3{font-size:21px}h4{font-size:19px}h5{font-size:17px}h6{font-size:15px}ol{list-style:decimal}ul{list-style:disc}li{margin-left:30px}p,dl,hr,h1,h2,h3,h4,h5,h6,ol,ul,pre,table,address,fieldset{margin-bottom:20px}
@@ -9,10 +9,12 @@ class BlueLightSpecialAdminGenerator < Rails::Generator::Base
9
9
  m.file "app/controllers/admin/users_controller.rb", "app/controllers/admin/users_controller.rb"
10
10
 
11
11
  m.directory File.join("app", "views", "admin", "users")
12
+ m.directory File.join("app", "views", "admin", "admin")
12
13
  ["app/views/admin/users/_form.html.erb",
13
14
  "app/views/admin/users/edit.html.erb",
14
15
  "app/views/admin/users/index.html.erb",
15
16
  "app/views/admin/users/new.html.erb",
17
+ "app/views/admin/admin/index.html.erb",
16
18
  "app/views/admin/users/show.html.erb"].each do |file|
17
19
  m.file file, file
18
20
  end
@@ -3,6 +3,9 @@ class Admin::AdminController < ApplicationController
3
3
  before_filter :authenticate
4
4
  before_filter :check_role
5
5
 
6
+ def index
7
+
8
+ end
6
9
 
7
10
  private
8
11
 
@@ -0,0 +1,2 @@
1
+ <% content_for :title do %>Admin<% end %>
2
+ <%= link_to 'Users', '/admin/users' %>
@@ -56,6 +56,11 @@ module BlueLightSpecial
56
56
  :controller => 'blue_light_special/sessions',
57
57
  :action => 'destroy',
58
58
  :method => :delete
59
+ map.admin 'admin',
60
+ :controller => '/admin/admin',
61
+ :action => :index
62
+
63
+ map.root :controller => "sessions", :action => 'index'
59
64
  end
60
65
 
61
66
  end
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 2
8
8
  - 0
9
- - 6
10
- version: 0.2.0.6
9
+ - 7
10
+ version: 0.2.0.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Brian Burridge
@@ -61,9 +61,23 @@ dependencies:
61
61
  type: :runtime
62
62
  version_requirements: *id003
63
63
  - !ruby/object:Gem::Dependency
64
- name: shoulda
64
+ name: create-rails-dev-db
65
65
  prerelease: false
66
66
  requirement: &id004 !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - "="
69
+ - !ruby/object:Gem::Version
70
+ segments:
71
+ - 0
72
+ - 1
73
+ - 0
74
+ version: 0.1.0
75
+ type: :runtime
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: shoulda
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
67
81
  requirements:
68
82
  - - ">="
69
83
  - !ruby/object:Gem::Version
@@ -71,7 +85,7 @@ dependencies:
71
85
  - 0
72
86
  version: "0"
73
87
  type: :development
74
- version_requirements: *id004
88
+ version_requirements: *id005
75
89
  description: Rails authentication by email and password with integrated dependencies to MadMimi. Also provides administrative user impersonation. Based on BlueLightSpecial
76
90
  email: bburridg@gmail.com
77
91
  executables: []
@@ -113,13 +127,19 @@ files:
113
127
  - generators/blue_light_special/lib/insert_commands.rb
114
128
  - generators/blue_light_special/lib/rake_commands.rb
115
129
  - generators/blue_light_special/templates/README
130
+ - generators/blue_light_special/templates/app/controllers/sessions_controller.rb
131
+ - generators/blue_light_special/templates/app/views/sessions/index.html.erb
116
132
  - generators/blue_light_special/templates/application.html.erb
117
133
  - generators/blue_light_special/templates/blue_light_special.rb
118
134
  - generators/blue_light_special/templates/blue_light_special.yml
119
135
  - generators/blue_light_special/templates/factories.rb
120
136
  - generators/blue_light_special/templates/migrations/create_users.rb
121
137
  - generators/blue_light_special/templates/migrations/update_users.rb
138
+ - generators/blue_light_special/templates/report.css
139
+ - generators/blue_light_special/templates/reset.css
122
140
  - generators/blue_light_special/templates/style.css
141
+ - generators/blue_light_special/templates/text.css
142
+ - generators/blue_light_special/templates/layout.css
123
143
  - generators/blue_light_special/templates/user.rb
124
144
  - generators/blue_light_special/templates/xd_receiver.html
125
145
  - generators/blue_light_special/templates/xd_receiver_ssl.html
@@ -129,6 +149,7 @@ files:
129
149
  - generators/blue_light_special_admin/templates/README
130
150
  - generators/blue_light_special_admin/templates/app/controllers/admin/admin_controller.rb
131
151
  - generators/blue_light_special_admin/templates/app/controllers/admin/users_controller.rb
152
+ - generators/blue_light_special_admin/templates/app/views/admin/admin/index.html.erb
132
153
  - generators/blue_light_special_admin/templates/app/views/admin/users/_form.html.erb
133
154
  - generators/blue_light_special_admin/templates/app/views/admin/users/edit.html.erb
134
155
  - generators/blue_light_special_admin/templates/app/views/admin/users/index.html.erb