sparkly-auth 1.1.0 → 1.2.1

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.
@@ -1,3 +1,12 @@
1
+ * 1.2.0 - 02-15-2011
2
+ * Made the login key, password and password confirmation attr_accessible for mass assignment.
3
+ This has the side effect of making all other attributes attr_protected, which is more secure, but may
4
+ require you to explicitly declare some attributes as attr_accessible if you want to mass assign them.
5
+
6
+ * 1.1.1 - 09-24-2010
7
+ * Some minor refactoring
8
+ * Upgraded test environment from Rails 3.0.0.rc to Rails 3.0.0 and resolved some complications from that
9
+
1
10
  * 1.1.0 - 08-13-2010
2
11
  * Official support for Rails 3 (tested against rails-3.0.0.rc)
3
12
  * Better internal design
@@ -0,0 +1,19 @@
1
+ RAILS 2
2
+ 1. Create a new RVM gemset for Rails2.
3
+ 2. gem install rails -v=2.3.9 && gem install sc-core-ext sqlite3
4
+ 3. gem install jeweler
5
+ 4. cd spec_env/rails2 && rake db:migrate && rake db:tes:prepare && cd ../..
6
+ 5. gem install rspec -v=1.3.2
7
+ gem install rspec-rails --version "= 1.3.2"
8
+ gem install webrat --version "= 0.7.1"
9
+ gem install genspec --version "= 0.1.1"
10
+ gem install email_spec --version "= 0.6.2"
11
+ 6. rake && cucumber
12
+
13
+ RAILS 3
14
+
15
+ 1. Create a new RVM gemset for Rails3.
16
+ 2. cd spec_env/rails3 && bundle install && cd ../..
17
+ 3. gem install jeweler
18
+ 4. ./rake3 db:migrate && ./rake3 db:test:prepare
19
+ 5. rake && cucumber
@@ -79,6 +79,15 @@ you should be ready to go!
79
79
 
80
80
  You should take a quick gander at config/initializers/sparkly_authentication.rb just to see what's in there.
81
81
 
82
+ == mass assignments
83
+
84
+ For added security, part of Sparkly's core behavior is to declare the login key (usually :email or :login),
85
+ the :password and the :password_confirmation attributes on the authenticated model as +attr_accessible+. This
86
+ allows you to mass assign those attributes, but disables mass assignment on any others. That means you'll have
87
+ to explicitly call +attr_accessible+ on any additional attributes you wish to mass assign. For more information
88
+ (and the reason Sparkly is doing this), see the excellent Railscast on the subject by Ryan Bates at
89
+ http://media.railscasts.com/videos/026_hackers_love_mass_assignment.mov .
90
+
82
91
  == routes
83
92
 
84
93
  Unless you disable them, Sparkly Auth will automatically generate a set of routes for its controllers. Run
data/Rakefile CHANGED
@@ -16,7 +16,8 @@ begin
16
16
  gem.add_development_dependency 'genspec', '>= 0.1.1'
17
17
  gem.add_development_dependency 'email_spec', '>= 0.6.2'
18
18
  # WHY does jeweler insist on using test/* files? THEY DON'T EXIST!
19
- gem.test_files = FileList['spec/**/*'] + FileList['spec_env/**/*'] + FileList['features/**/*']
19
+ # gem.test_files = FileList['spec/**/*'] + FileList['spec_env/**/*'] + FileList['features/**/*']
20
+ gem.files = `git ls-files`.split(/\n/)
20
21
  end
21
22
  Jeweler::GemcutterTasks.new
22
23
  rescue LoadError
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.2.1
@@ -10,6 +10,28 @@ module Auth
10
10
  :password_history_length, :base_controller_name, :account_lock_duration,
11
11
  :password_format, :password_format_message, :minimum_password_length, :behaviors, :behavior_classes,
12
12
  :to => :configuration
13
+
14
+ def routing_proc
15
+ proc do
16
+ Auth.configuration.authenticated_models.each do |model|
17
+ catch :missing do
18
+ begin
19
+ model.name # if an error is going to occur due to missing model, it'll happen here.
20
+ rescue NameError
21
+ # we rescue silently because the user's already been warned (during startup).
22
+ throw :missing
23
+ end
24
+
25
+ resource model.name.underscore, :model => model.name,
26
+ :controller => model.accounts_controller do
27
+ resource :session, :controller => model.sessions_controller, :model => model.name
28
+ match '/login', :to => "#{model.sessions_controller}#new", :as => "login"
29
+ match '/logout', :to => "#{model.sessions_controller}#destroy", :as => "logout"
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
13
35
 
14
36
  def configuration
15
37
  @configuration ||= Auth::Configuration.new
@@ -38,7 +38,6 @@ module Auth
38
38
  validates_presence_of :secret_confirmation, :if => :secret_changed?
39
39
  validates_presence_of :persistence_token
40
40
  validates_uniqueness_of :persistence_token, :if => :persistence_token_changed?
41
- attr_protected :secret, :secret_confirmation
42
41
  include Auth::Behavior::Core::PasswordMethods
43
42
 
44
43
  validate do |password|
@@ -57,10 +56,10 @@ module Auth
57
56
  model_config.target.instance_eval do
58
57
  has_many :passwords, :dependent => :destroy, :as => :authenticatable, :autosave => true
59
58
 
60
- attr_protected :password, :password_confirmation
61
59
  validates_presence_of sparkly_config.key
62
60
  validates_uniqueness_of sparkly_config.key
63
61
  validates_presence_of :password
62
+ attr_accessible sparkly_config.key, :password, :password_confirmation
64
63
 
65
64
  include Auth::Behavior::Core::AuthenticatedModelMethods
66
65
 
@@ -6,6 +6,10 @@ module Auth::Behavior::Core::ControllerExtensions
6
6
  helper_method :new_session_path, :current_user
7
7
  hide_action :current_user, :find_current_session, :require_login, :require_logout, :login!, :logout!,
8
8
  :redirect_back_or_default, :new_session_path, :store_location
9
+
10
+ # we'll still check, but only if single_access_token is omitted
11
+ # TODO see if this is safe, and if there's a smarter approach
12
+ skip_before_filter :verify_authenticity_token
9
13
  end
10
14
  end
11
15
 
@@ -15,6 +19,8 @@ module Auth::Behavior::Core::ControllerExtensions
15
19
  flash[:notice] = @session_timeout_message || Auth.login_required_message
16
20
  login_path = Auth.default_login_path ? send(Auth.default_login_path) : Auth.default_destination
17
21
  redirect_to login_path
22
+ else
23
+ verify_authenticity_token unless current_user && params[:single_access_token]
18
24
  end
19
25
  end
20
26
 
@@ -23,6 +29,7 @@ module Auth::Behavior::Core::ControllerExtensions
23
29
  end
24
30
 
25
31
  def require_logout
32
+ verify_authenticity_token
26
33
  redirect_back_or_default Auth.default_destination, Auth.logout_required_message if current_user
27
34
  end
28
35
 
@@ -18,6 +18,21 @@ module Auth::Behavior::Core::PasswordMethods
18
18
  alias_method_chain :secret_confirmation=, :encryption
19
19
  end
20
20
  end
21
+
22
+ def single_access_token
23
+ current = super
24
+ return current if current
25
+ if authenticatable
26
+ # authenticatable.passwords.last == self
27
+ if (previous = authenticatable.passwords[-1]) != self
28
+ if previous && previous.single_access_token
29
+ return self.single_access_token = previous.single_access_token
30
+ end
31
+ end
32
+ end
33
+
34
+ nil
35
+ end
21
36
 
22
37
  def expired?
23
38
  authenticatable.password_expired?
@@ -3,12 +3,15 @@
3
3
 
4
4
  base_path = File.expand_path(File.join(File.dirname(__FILE__), '..'))
5
5
  def add_to_load_path(path, load_once = false)
6
+ load_paths = ActiveSupport::Dependencies.respond_to?(:autoload_paths) ? ActiveSupport::Dependencies.autoload_paths : ActiveSupport::Dependencies.load_paths
7
+ load_once_paths = ActiveSupport::Dependencies.respond_to?(:autoload_once_paths) ? ActiveSupport::Dependencies.autoload_once_paths : ActiveSupport::Dependencies.load_once_paths
8
+
6
9
  $LOAD_PATH << path
7
- ActiveSupport::Dependencies.load_paths << path
10
+ load_paths << path
8
11
  if load_once
9
- ActiveSupport::Dependencies.load_once_paths << path
12
+ load_once_paths << path
10
13
  else
11
- ActiveSupport::Dependencies.load_once_paths.delete path
14
+ load_once_paths.delete path
12
15
  end
13
16
  end
14
17
 
@@ -1,37 +1,3 @@
1
1
  if Auth.generate_routes?
2
- Rails.application.routes.draw do
3
- Auth.configuration.authenticated_models.each do |model|
4
- catch :missing do
5
- begin
6
- model.name # if an error is going to occur due to missing model, it'll happen here.
7
- rescue NameError
8
- # we rescue silently because the user's already been warned (during startup).
9
- throw :missing
10
- end
11
-
12
- resource model.name.underscore, :model => model.name,
13
- :controller => model.accounts_controller do
14
- resource :session, :controller => model.sessions_controller, :model => model.name
15
- match '/login', :to => "#{model.sessions_controller}#new", :as => "login"
16
- match '/logout', :to => "#{model.sessions_controller}#destroy", :as => "logout"
17
- end
18
- # map.resource model.name.underscore,
19
- # :controller => model.accounts_controller,
20
- # :requirements => { :model => model.name } do |model_res|
21
- # model_res.resource :session, :controller => model.sessions_controller, :requirements => { :model => model.name }
22
-
23
- # map some shorthand routes
24
- # model_res.login "login",
25
- # :controller => model.sessions_controller,
26
- # :action => 'new',
27
- # :requirements => { :model => model.name }
28
-
29
- # model_res.logout "logout",
30
- # :controller => model.sessions_controller,
31
- # :action => 'destroy',
32
- # :requirements => { :model => model.name }
33
- # end
34
- end
35
- end
36
- end
2
+ Rails.application.routes.draw &Auth.routing_proc
37
3
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sparkly-auth}
8
- s.version = "1.1.0"
8
+ s.version = "1.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Colin MacKenzie IV"]
12
- s.date = %q{2010-08-13}
12
+ s.date = %q{2011-06-05}
13
13
  s.description = %q{As fate would have it, I found other authentication solutions unable to suit my needs. So I rolled my own, totally supporting Rails 2 AND 3.}
14
14
  s.email = %q{sinisterchipmunk@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
  ".document",
22
22
  ".gitignore",
23
23
  "HISTORY.txt",
24
+ "HOW_TO_TEST.txt",
24
25
  "LICENSE",
25
26
  "README.rdoc",
26
27
  "Rakefile",
@@ -182,7 +183,7 @@ Gem::Specification.new do |s|
182
183
  "spec_env/rails2/lib/tasks/cucumber.rake",
183
184
  "spec_env/rails2/lib/tasks/rspec.rake",
184
185
  "spec_env/rails2/lib/tasks/sparkly_migration.rb",
185
- "spec_env/rails2/log/development.log",
186
+ "spec_env/rails2/log/test.log",
186
187
  "spec_env/rails2/public/404.html",
187
188
  "spec_env/rails2/public/422.html",
188
189
  "spec_env/rails2/public/500.html",
@@ -286,295 +287,29 @@ Gem::Specification.new do |s|
286
287
  s.homepage = %q{http://www.thoughtsincomputation.com}
287
288
  s.rdoc_options = ["--charset=UTF-8"]
288
289
  s.require_paths = ["lib"]
289
- s.rubygems_version = %q{1.3.7}
290
+ s.rubygems_version = %q{1.5.0}
290
291
  s.summary = %q{User authentication with Sparkles!}
291
292
  s.test_files = [
292
- "spec/behaviors",
293
- "spec/behaviors/core",
294
- "spec/behaviors/core/controller_extensions_spec.rb",
293
+ "spec/behaviors/core/controller_extensions_spec.rb",
295
294
  "spec/behaviors/core_spec.rb",
296
- "spec/behaviors/remember_me",
297
295
  "spec/behaviors/remember_me/configuration_spec.rb",
298
296
  "spec/behaviors/remember_me_spec.rb",
299
- "spec/controllers",
300
297
  "spec/controllers/application_controller_spec.rb",
301
- "spec/generators",
302
298
  "spec/generators/sanity_checks_spec.rb",
303
299
  "spec/generators/sparkly_spec.rb",
304
- "spec/lib",
305
- "spec/lib/auth",
306
300
  "spec/lib/auth/configuration_spec.rb",
307
301
  "spec/lib/auth/model_spec.rb",
308
302
  "spec/lib/auth_spec.rb",
309
- "spec/lib/hacks",
310
303
  "spec/lib/hacks/rename_attributes_spec.rb",
311
- "spec/mocks",
312
- "spec/mocks/models",
313
304
  "spec/mocks/models/user.rb",
314
305
  "spec/routes_spec.rb",
315
306
  "spec/spec2_helper.rb",
316
307
  "spec/spec3_helper.rb",
317
308
  "spec/spec_helper.rb",
318
- "spec/views_spec.rb",
319
- "spec_env/rails2",
320
- "spec_env/rails2/app",
321
- "spec_env/rails2/app/controllers",
322
- "spec_env/rails2/app/controllers/application_controller.rb",
323
- "spec_env/rails2/app/helpers",
324
- "spec_env/rails2/app/helpers/application_helper.rb",
325
- "spec_env/rails2/app/models",
326
- "spec_env/rails2/app/models/user.rb",
327
- "spec_env/rails2/app/views",
328
- "spec_env/rails2/app/views/application",
329
- "spec_env/rails2/app/views/application/not_found.html.erb",
330
- "spec_env/rails2/app/views/layouts",
331
- "spec_env/rails2/app/views/layouts/application.html.erb",
332
- "spec_env/rails2/config",
333
- "spec_env/rails2/config/boot.rb",
334
- "spec_env/rails2/config/cucumber.yml",
335
- "spec_env/rails2/config/database.yml",
336
- "spec_env/rails2/config/environment.rb",
337
- "spec_env/rails2/config/environments",
338
- "spec_env/rails2/config/environments/cucumber.rb",
339
- "spec_env/rails2/config/environments/development.rb",
340
- "spec_env/rails2/config/environments/production.rb",
341
- "spec_env/rails2/config/environments/test.rb",
342
- "spec_env/rails2/config/initializers",
343
- "spec_env/rails2/config/initializers/backtrace_silencers.rb",
344
- "spec_env/rails2/config/initializers/inflections.rb",
345
- "spec_env/rails2/config/initializers/mime_types.rb",
346
- "spec_env/rails2/config/initializers/new_rails_defaults.rb",
347
- "spec_env/rails2/config/initializers/session_store.rb",
348
- "spec_env/rails2/config/initializers/sparkly_authentication.rb",
349
- "spec_env/rails2/config/locales",
350
- "spec_env/rails2/config/locales/en.yml",
351
- "spec_env/rails2/config/routes.rb",
352
- "spec_env/rails2/db",
353
- "spec_env/rails2/db/development.sqlite3",
354
- "spec_env/rails2/db/migrate",
355
- "spec_env/rails2/db/migrate/001_create_sparkly_passwords.rb",
356
- "spec_env/rails2/db/migrate/002_create_sparkly_remembered_tokens.rb",
357
- "spec_env/rails2/db/migrate/003_add_confirmed_to_sparkly_passwords.rb",
358
- "spec_env/rails2/db/migrate/20100607103543_create_users.rb",
359
- "spec_env/rails2/db/migrate/20100609152058_add_email_to_users.rb",
360
- "spec_env/rails2/db/schema.rb",
361
- "spec_env/rails2/db/seeds.rb",
362
- "spec_env/rails2/db/test.sqlite3",
363
- "spec_env/rails2/doc",
364
- "spec_env/rails2/doc/README_FOR_APP",
365
- "spec_env/rails2/doc/sparkly_authentication.txt",
366
- "spec_env/rails2/features",
367
- "spec_env/rails2/features/support",
368
- "spec_env/rails2/features/support/env.rb",
369
- "spec_env/rails2/lib",
370
- "spec_env/rails2/lib/tasks",
371
- "spec_env/rails2/lib/tasks/cucumber.rake",
372
- "spec_env/rails2/lib/tasks/rspec.rake",
373
- "spec_env/rails2/lib/tasks/sparkly_migration.rb",
374
- "spec_env/rails2/log",
375
- "spec_env/rails2/log/cucumber.log",
376
- "spec_env/rails2/log/development.log",
377
- "spec_env/rails2/log/test.log",
378
- "spec_env/rails2/public",
379
- "spec_env/rails2/public/404.html",
380
- "spec_env/rails2/public/422.html",
381
- "spec_env/rails2/public/500.html",
382
- "spec_env/rails2/public/favicon.ico",
383
- "spec_env/rails2/public/images",
384
- "spec_env/rails2/public/images/rails.png",
385
- "spec_env/rails2/public/javascripts",
386
- "spec_env/rails2/public/javascripts/application.js",
387
- "spec_env/rails2/public/javascripts/controls.js",
388
- "spec_env/rails2/public/javascripts/dragdrop.js",
389
- "spec_env/rails2/public/javascripts/effects.js",
390
- "spec_env/rails2/public/javascripts/prototype.js",
391
- "spec_env/rails2/public/robots.txt",
392
- "spec_env/rails2/Rakefile",
393
- "spec_env/rails2/README.1ST",
394
- "spec_env/rails2/rerun.txt",
395
- "spec_env/rails2/script",
396
- "spec_env/rails2/script/about",
397
- "spec_env/rails2/script/autospec",
398
- "spec_env/rails2/script/console",
399
- "spec_env/rails2/script/cucumber",
400
- "spec_env/rails2/script/dbconsole",
401
- "spec_env/rails2/script/destroy",
402
- "spec_env/rails2/script/generate",
403
- "spec_env/rails2/script/performance",
404
- "spec_env/rails2/script/performance/benchmarker",
405
- "spec_env/rails2/script/performance/profiler",
406
- "spec_env/rails2/script/plugin",
407
- "spec_env/rails2/script/runner",
408
- "spec_env/rails2/script/server",
409
- "spec_env/rails2/script/spec",
410
- "spec_env/rails2/spec",
411
- "spec_env/rails2/spec/controllers",
412
- "spec_env/rails2/spec/controllers/sparkly_user_sessions_controller_spec.rb",
413
- "spec_env/rails2/spec/rcov.opts",
414
- "spec_env/rails2/spec/spec.opts",
415
- "spec_env/rails2/spec/spec_helper.rb",
416
- "spec_env/rails2/test",
417
- "spec_env/rails2/test/fixtures",
418
- "spec_env/rails2/test/fixtures/users.yml",
419
- "spec_env/rails2/test/performance",
420
- "spec_env/rails2/test/performance/browsing_test.rb",
421
- "spec_env/rails2/test/test_helper.rb",
422
- "spec_env/rails2/test/unit",
423
- "spec_env/rails2/test/unit/user_test.rb",
424
- "spec_env/rails2/tmp",
425
- "spec_env/rails2/tmp/cache",
426
- "spec_env/rails2/tmp/pids",
427
- "spec_env/rails2/tmp/sessions",
428
- "spec_env/rails2/tmp/sockets",
429
- "spec_env/rails2/vendor",
430
- "spec_env/rails2/vendor/gems",
431
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0",
432
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/app",
433
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/generators",
434
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/generators/sparkly",
435
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/generators/sparkly/sparkly_generator.rb",
436
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/lib",
437
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/lib/sparkly-auth-bootstrap.rb",
438
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/rails",
439
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/rails/init.rb",
440
- "spec_env/rails2/vendor/gems/sparkly-auth-bootstrap-1.0.0/sparkly-auth-bootstrap.gemspec",
441
- "spec_env/rails3",
442
- "spec_env/rails3/app",
443
- "spec_env/rails3/app/controllers",
444
- "spec_env/rails3/app/controllers/application_controller.rb",
445
- "spec_env/rails3/app/helpers",
446
- "spec_env/rails3/app/helpers/application_helper.rb",
447
- "spec_env/rails3/app/mailers",
448
- "spec_env/rails3/app/models",
449
- "spec_env/rails3/app/models/user.rb",
450
- "spec_env/rails3/app/views",
451
- "spec_env/rails3/app/views/application",
452
- "spec_env/rails3/app/views/application/not_found.html.erb",
453
- "spec_env/rails3/app/views/layouts",
454
- "spec_env/rails3/app/views/layouts/application.html.erb",
455
- "spec_env/rails3/config",
456
- "spec_env/rails3/config/application.rb",
457
- "spec_env/rails3/config/boot.rb",
458
- "spec_env/rails3/config/cucumber.yml",
459
- "spec_env/rails3/config/database.yml",
460
- "spec_env/rails3/config/environment.rb",
461
- "spec_env/rails3/config/environments",
462
- "spec_env/rails3/config/environments/development.rb",
463
- "spec_env/rails3/config/environments/production.rb",
464
- "spec_env/rails3/config/environments/spec.rb",
465
- "spec_env/rails3/config/environments/test.rb",
466
- "spec_env/rails3/config/initializers",
467
- "spec_env/rails3/config/initializers/backtrace_silencers.rb",
468
- "spec_env/rails3/config/initializers/inflections.rb",
469
- "spec_env/rails3/config/initializers/mime_types.rb",
470
- "spec_env/rails3/config/initializers/secret_token.rb",
471
- "spec_env/rails3/config/initializers/session_store.rb",
472
- "spec_env/rails3/config/initializers/sparkly_authentication.rb",
473
- "spec_env/rails3/config/locales",
474
- "spec_env/rails3/config/locales/en.yml",
475
- "spec_env/rails3/config/routes.rb",
476
- "spec_env/rails3/config.ru",
477
- "spec_env/rails3/db",
478
- "spec_env/rails3/db/development.sqlite3",
479
- "spec_env/rails3/db/migrate",
480
- "spec_env/rails3/db/migrate/001_create_sparkly_passwords.rb",
481
- "spec_env/rails3/db/migrate/002_create_sparkly_remembered_tokens.rb",
482
- "spec_env/rails3/db/migrate/20100810132843_create_users.rb",
483
- "spec_env/rails3/db/schema.rb",
484
- "spec_env/rails3/db/seeds.rb",
485
- "spec_env/rails3/db/test.sqlite3",
486
- "spec_env/rails3/doc",
487
- "spec_env/rails3/doc/README_FOR_APP",
488
- "spec_env/rails3/doc/sparkly_authentication.txt",
489
- "spec_env/rails3/features",
490
- "spec_env/rails3/features/support",
491
- "spec_env/rails3/features/support/env.rb",
492
- "spec_env/rails3/Gemfile",
493
- "spec_env/rails3/Gemfile.lock",
494
- "spec_env/rails3/lib",
495
- "spec_env/rails3/lib/sparkly",
496
- "spec_env/rails3/lib/sparkly/bootstrap.rb",
497
- "spec_env/rails3/lib/tasks",
498
- "spec_env/rails3/lib/tasks/cucumber.rake",
499
- "spec_env/rails3/lib/tasks/sparkly_migration.rb",
500
- "spec_env/rails3/log",
501
- "spec_env/rails3/log/development.log",
502
- "spec_env/rails3/log/spec.log",
503
- "spec_env/rails3/log/test.log",
504
- "spec_env/rails3/public",
505
- "spec_env/rails3/public/404.html",
506
- "spec_env/rails3/public/422.html",
507
- "spec_env/rails3/public/500.html",
508
- "spec_env/rails3/public/favicon.ico",
509
- "spec_env/rails3/public/images",
510
- "spec_env/rails3/public/images/rails.png",
511
- "spec_env/rails3/public/javascripts",
512
- "spec_env/rails3/public/javascripts/application.js",
513
- "spec_env/rails3/public/javascripts/controls.js",
514
- "spec_env/rails3/public/javascripts/dragdrop.js",
515
- "spec_env/rails3/public/javascripts/effects.js",
516
- "spec_env/rails3/public/javascripts/prototype.js",
517
- "spec_env/rails3/public/javascripts/rails.js",
518
- "spec_env/rails3/public/robots.txt",
519
- "spec_env/rails3/public/stylesheets",
520
- "spec_env/rails3/Rakefile",
521
- "spec_env/rails3/README",
522
- "spec_env/rails3/script",
523
- "spec_env/rails3/script/cucumber",
524
- "spec_env/rails3/script/rails",
525
- "spec_env/rails3/spec",
526
- "spec_env/rails3/spec/controllers",
527
- "spec_env/rails3/spec/helpers",
528
- "spec_env/rails3/test",
529
- "spec_env/rails3/test/fixtures",
530
- "spec_env/rails3/test/fixtures/users.yml",
531
- "spec_env/rails3/test/functional",
532
- "spec_env/rails3/test/integration",
533
- "spec_env/rails3/test/performance",
534
- "spec_env/rails3/test/performance/browsing_test.rb",
535
- "spec_env/rails3/test/test_helper.rb",
536
- "spec_env/rails3/test/unit",
537
- "spec_env/rails3/test/unit/user_test.rb",
538
- "spec_env/rails3/tmp",
539
- "spec_env/rails3/tmp/cache",
540
- "spec_env/rails3/tmp/pids",
541
- "spec_env/rails3/tmp/sessions",
542
- "spec_env/rails3/tmp/sockets",
543
- "spec_env/rails3/vendor",
544
- "spec_env/rails3/vendor/plugins",
545
- "spec_env/rails3/webrat.log",
546
- "features/create_sparkly_account.feature",
547
- "features/delete_sparkly_account.feature",
548
- "features/edit_sparkly_account.feature",
549
- "features/lock_abused_sparkly_account.feature",
550
- "features/login_sparkly_session.feature",
551
- "features/logout_sparkly_session.feature",
552
- "features/setup",
553
- "features/setup/sparkly.rb",
554
- "features/show_sparkly_account.feature",
555
- "features/sparkly_session_timeout.feature",
556
- "features/step_definitions",
557
- "features/step_definitions/account",
558
- "features/step_definitions/account/account_steps.rb",
559
- "features/step_definitions/account/brief_steps.rb",
560
- "features/step_definitions/debug_steps.rb",
561
- "features/step_definitions/email_steps.rb",
562
- "features/step_definitions/session",
563
- "features/step_definitions/session/brief_steps.rb",
564
- "features/step_definitions/session/logged_in_steps.rb",
565
- "features/step_definitions/session/login_steps.rb",
566
- "features/step_definitions/session/logout_steps.rb",
567
- "features/step_definitions/session_steps.rb",
568
- "features/step_definitions/sparkly_auth_steps.rb",
569
- "features/step_definitions/web_steps.rb",
570
- "features/support",
571
- "features/support/env.rb",
572
- "features/support/paths.rb",
573
- "features/support/sparkly_helpers.rb"
309
+ "spec/views_spec.rb"
574
310
  ]
575
311
 
576
312
  if s.respond_to? :specification_version then
577
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
578
313
  s.specification_version = 3
579
314
 
580
315
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then