captain_oveur 0.8.14 → 0.8.15

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.textile CHANGED
@@ -1,3 +1,7 @@
1
+ 0.8.15 (7/23/2010)
2
+
3
+ * test with a generated rails app, configured for clearance
4
+
1
5
  0.8.14 (7/17/2010)
2
6
 
3
7
  * admin activation and deactivation
@@ -14,4 +18,4 @@
14
18
 
15
19
  0.8.10 (7/5/2010)
16
20
 
17
- * cucumber features added
21
+ * cucumber features added
data/Manifest CHANGED
@@ -1,17 +1,18 @@
1
1
  CHANGELOG.textile
2
2
  LICENSE
3
- Manifest
4
3
  README
5
4
  README.textile
6
5
  Rakefile
7
6
  VERSION
8
7
  app/controllers/admin/captain_oveur/users_controller.rb
8
+ app/controllers/captain_oveur/users_controller.rb
9
9
  app/views/admin/users/_form.erb
10
10
  app/views/admin/users/edit.html.erb
11
11
  app/views/admin/users/index.html.erb
12
12
  app/views/admin/users/new.html.erb
13
13
  app/views/admin/users/show.html.erb
14
14
  captain_oveur.gemspec
15
+ cucumber.yml
15
16
  generators/captain_oveur/README
16
17
  generators/captain_oveur/USAGE
17
18
  generators/captain_oveur/captain_oveur_generator.rb
@@ -30,5 +31,9 @@ lib/captain_oveur/authentication.rb
30
31
  lib/captain_oveur/routes.rb
31
32
  lib/captain_oveur/user.rb
32
33
  test/captain_oveur_test.rb
34
+ test/clearance_config.rb
35
+ test/configuration.patch
33
36
  test/factories/admins.rb
37
+ test/template.rb
34
38
  test/test_helper.rb
39
+ Manifest
data/Rakefile CHANGED
@@ -1,13 +1,46 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
+ require 'rake/testtask'
5
+ require 'cucumber/rake/task'
4
6
 
5
- Echoe.new('captain_oveur', '0.8.14') do |p|
7
+ namespace :test do
8
+ desc "Run Unit and Functional Tests"
9
+ Rake::TestTask.new(:basic => ["generator:cleanup", "generator:test_app"]) do |task|
10
+ task.libs << "lib"
11
+ task.libs << "test"
12
+ task.pattern = "test/**/*_test.rb"
13
+ task.verbose = false
14
+ end
15
+
16
+ desc "Run Cucumber Features"
17
+ Cucumber::Rake::Task.new(:features => ["generator:cleanup", "generator:test_app"]) do |t|
18
+ t.cucumber_opts = "--format progress"
19
+ t.profile = 'features'
20
+ end
21
+ end
22
+
23
+ namespace :generator do
24
+ desc "Cleans up the test app before running the generator"
25
+ task :cleanup do
26
+ FileUtils.rm_rf("test/test_app")
27
+ end
28
+
29
+ desc "Create the Rails App"
30
+ task :test_app do
31
+ system "cd test && rails test_app -f -m template.rb"
32
+ system "cd test/test_app && rake rails:unfreeze"
33
+ system "cd test/test_app && patch -f -p01 < ../configuration.patch"
34
+ end
35
+ end
36
+
37
+
38
+ Echoe.new('captain_oveur', '0.8.15') do |p|
6
39
  p.description = "Admins for Clearance"
7
40
  p.url = "http://disruptive.github.com/captain_oveur"
8
41
  p.author = "Jerry Richardson, Zachery Maloney"
9
42
  p.email = "jerry@disruptiveventures.com"
10
- p.ignore_pattern = ['_site/*']
43
+ p.ignore_pattern = ['_site/*', 'Manifest', 'test/rails_root/*']
11
44
  p.runtime_dependencies = ["clearance >=0.8.8","formtastic >=0.9.10"]
12
45
  p.development_dependencies = []
13
46
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.14
1
+ 0.8.15
@@ -0,0 +1,108 @@
1
+ class CaptainOveur::UsersController < ApplicationController
2
+ unloadable
3
+
4
+ before_filter :admin_only
5
+ self.append_view_path("../../views/")
6
+
7
+ def index
8
+ @users = User.all
9
+ end
10
+
11
+ def new
12
+ @user = User.new
13
+ end
14
+
15
+ def create
16
+ @user = User.new(params[:user])
17
+ respond_to do |format|
18
+ if @user.save
19
+ flash[:msg] = "User created."
20
+ format.html do
21
+ redirect_to admin_user_path(@user)
22
+ end
23
+ else
24
+ format.html do
25
+ render :action => :new
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ def edit
32
+ @user = User.find(params[:id])
33
+ end
34
+
35
+ def update
36
+ @user = User.find(params[:id])
37
+ if params[:user_admin] and params[:user_admin] == 1
38
+ @user.activate_admin!
39
+ else
40
+ @user.deactivate_admin!
41
+ end
42
+ respond_to do |format|
43
+ if @user.update_attributes(params[:user])
44
+ flash[:msg] = "User #{@user.email} was successfully updated."
45
+ format.html do
46
+ redirect_to admin_users_path
47
+ end
48
+ else
49
+ format.html do
50
+ render :action => :edit
51
+ end
52
+ end
53
+ end
54
+ end
55
+
56
+ def activate_admin
57
+ @user = User.find(params[:id])
58
+ respond_to do |format|
59
+ if @user.activate_admin!
60
+ flash[:msg] = "User #{@user.email} was promoted to Admin."
61
+ format.html do
62
+ redirect_to edit_admin_user_path(@user)
63
+ end
64
+ else
65
+ format.html do
66
+ flash[:msg] = "User #{@user.email} could not be promoted to Admin."
67
+ render :action => :edit
68
+ end
69
+ end
70
+ end
71
+ end
72
+
73
+ def deactivate_admin
74
+ @user = User.find(params[:id])
75
+ respond_to do |format|
76
+ if @user.deactivate_admin!
77
+ flash[:msg] = "User #{@user.email} was demoted from Admin."
78
+ format.html do
79
+ redirect_to edit_admin_user_path(@user)
80
+ end
81
+ else
82
+ format.html do
83
+ flash[:msg] = "User #{@user.email} could not be demoted from Admin."
84
+ render :action => :edit
85
+ end
86
+ end
87
+ end
88
+ end
89
+
90
+ def show
91
+ @user = User.find(params[:id])
92
+ end
93
+
94
+ def destroy
95
+ @user = User.find(params[:id])
96
+ respond_to do |format|
97
+ if current_user.id != @user.id && @user.destroy
98
+ flash[:msg] = "User deleted."
99
+ else
100
+ flash[:msg] = "User could not be deleted."
101
+ end
102
+ format.html do
103
+ redirect_to admin_users_path
104
+ end
105
+ end
106
+ end
107
+
108
+ end
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{captain_oveur}
5
- s.version = "0.8.14"
5
+ s.version = "0.8.15"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jerry Richardson, Zachery Maloney"]
9
- s.date = %q{2010-07-17}
9
+ s.date = %q{2010-07-24}
10
10
  s.description = %q{Admins for Clearance}
11
11
  s.email = %q{jerry@disruptiveventures.com}
12
12
  s.extra_rdoc_files = ["CHANGELOG.textile", "LICENSE", "README", "README.textile", "lib/captain_oveur.rb", "lib/captain_oveur/authentication.rb", "lib/captain_oveur/routes.rb", "lib/captain_oveur/user.rb"]
13
- s.files = ["CHANGELOG.textile", "LICENSE", "Manifest", "README", "README.textile", "Rakefile", "VERSION", "app/controllers/admin/captain_oveur/users_controller.rb", "app/views/admin/users/_form.erb", "app/views/admin/users/edit.html.erb", "app/views/admin/users/index.html.erb", "app/views/admin/users/new.html.erb", "app/views/admin/users/show.html.erb", "captain_oveur.gemspec", "generators/captain_oveur/README", "generators/captain_oveur/USAGE", "generators/captain_oveur/captain_oveur_generator.rb", "generators/captain_oveur/lib/insert_commands.rb", "generators/captain_oveur/lib/rake_commands.rb", "generators/captain_oveur/templates/admins.rb", "generators/captain_oveur/templates/migrations/update_admins.rb", "generators/captain_oveur_features/README", "generators/captain_oveur_features/USAGE", "generators/captain_oveur_features/captain_oveur_features_generator.rb", "generators/captain_oveur_features/templates/features/administration.feature", "generators/captain_oveur_features/templates/features/step_definitions/administration_steps.rb", "generators/captain_oveur_features/templates/features/support/paths.rb", "lib/captain_oveur.rb", "lib/captain_oveur/authentication.rb", "lib/captain_oveur/routes.rb", "lib/captain_oveur/user.rb", "test/captain_oveur_test.rb", "test/factories/admins.rb", "test/test_helper.rb"]
13
+ s.files = ["CHANGELOG.textile", "LICENSE", "README", "README.textile", "Rakefile", "VERSION", "app/controllers/admin/captain_oveur/users_controller.rb", "app/controllers/captain_oveur/users_controller.rb", "app/views/admin/users/_form.erb", "app/views/admin/users/edit.html.erb", "app/views/admin/users/index.html.erb", "app/views/admin/users/new.html.erb", "app/views/admin/users/show.html.erb", "captain_oveur.gemspec", "cucumber.yml", "generators/captain_oveur/README", "generators/captain_oveur/USAGE", "generators/captain_oveur/captain_oveur_generator.rb", "generators/captain_oveur/lib/insert_commands.rb", "generators/captain_oveur/lib/rake_commands.rb", "generators/captain_oveur/templates/admins.rb", "generators/captain_oveur/templates/migrations/update_admins.rb", "generators/captain_oveur_features/README", "generators/captain_oveur_features/USAGE", "generators/captain_oveur_features/captain_oveur_features_generator.rb", "generators/captain_oveur_features/templates/features/administration.feature", "generators/captain_oveur_features/templates/features/step_definitions/administration_steps.rb", "generators/captain_oveur_features/templates/features/support/paths.rb", "lib/captain_oveur.rb", "lib/captain_oveur/authentication.rb", "lib/captain_oveur/routes.rb", "lib/captain_oveur/user.rb", "test/captain_oveur_test.rb", "test/clearance_config.rb", "test/configuration.patch", "test/factories/admins.rb", "test/template.rb", "test/test_helper.rb", "Manifest"]
14
14
  s.homepage = %q{http://disruptive.github.com/captain_oveur}
15
15
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Captain_oveur", "--main", "README"]
16
16
  s.require_paths = ["lib"]
data/cucumber.yml ADDED
@@ -0,0 +1 @@
1
+ features: test/test_app/features
@@ -1 +1 @@
1
- script/generate captain_oveur
1
+ script/generate captain_oveur
@@ -5,26 +5,15 @@ class CaptainOveurGenerator < Rails::Generator::Base
5
5
 
6
6
  def manifest
7
7
  record do |m|
8
- # m.directory File.join("config", "initializers")
9
- # m.file "captain_oveur.rb", "config/initializers/captain_oveur.rb"
10
-
11
- m.insert_into "app/controllers/application_controller.rb",
12
- "include CaptainOveur::Authentication"
13
-
14
-
15
- m.insert_into "app/models/user.rb", "include CaptainOveur::User"
16
-
17
-
18
- m.insert_into "config/routes.rb",
19
- "CaptainOveur::Routes.draw(map)"
8
+ m.insert_into_file "app/controllers/application_controller.rb", "include CaptainOveur::Authentication"
9
+ m.insert_into_file "app/models/user.rb", "include CaptainOveur::User"
10
+
11
+ routes_file = "config/routes.rb"
20
12
 
13
+ m.insert_into_file routes_file, "CaptainOveur::Routes.draw(map)"
21
14
  m.directory File.join("test", "factories")
22
- m.file "admins.rb", "test/factories/clearance_admins.rb"
23
-
24
- m.migration_template "migrations/update_admins.rb",
25
- 'db/migrate',
26
- :migration_file_name => "captain_oveur_#{migration_target_name}"
27
-
15
+ m.file "admins.rb", "test/factories/clearance_admins.rb"
16
+ m.migration_template "migrations/update_admins.rb", 'db/migrate', :migration_file_name => "captain_oveur_#{migration_target_name}"
28
17
  m.readme "../README"
29
18
  end
30
19
  end
@@ -54,5 +43,6 @@ class CaptainOveurGenerator < Rails::Generator::Base
54
43
  # def upgrading_clearance_again?
55
44
  # ActiveRecord::Base.connection.table_exists?(:users)
56
45
  # end
46
+
47
+ end
57
48
 
58
- end
@@ -7,10 +7,10 @@ Rails::Generator::Commands::Base.class_eval do
7
7
  end
8
8
 
9
9
  Rails::Generator::Commands::Create.class_eval do
10
- def insert_into(file, line)
10
+ def insert_into_file(file, line)
11
11
  logger.insert "#{line} into #{file}"
12
12
  unless options[:pretend] || file_contains?(file, line)
13
- gsub_file file, /^(class|module|.*Routes).*$/ do |match|
13
+ gsub_file file, /^(.*Clearance).*$/ do |match|
14
14
  "#{match}\n #{line}"
15
15
  end
16
16
  end
@@ -30,4 +30,4 @@ Rails::Generator::Commands::List.class_eval do
30
30
  def insert_into(file, line)
31
31
  logger.insert "#{line} into #{file}"
32
32
  end
33
- end
33
+ end
@@ -0,0 +1,22 @@
1
+ HOST = "pillbox.dev"
2
+ DO_NOT_REPLY = "info@disruptiveventures.com"
3
+ ActionMailer::Base.default_url_options = { :host => 'pillbox.dev' }
4
+
5
+ class RackRailsCookieHeaderHack
6
+ def initialize(app)
7
+ @app = app
8
+ end
9
+
10
+ def call(env)
11
+ status, headers, body = @app.call(env)
12
+ if headers['Set-Cookie'] && headers['Set-Cookie'].respond_to?(:collect!)
13
+ headers['Set-Cookie'].collect! { |h| h.strip }
14
+ end
15
+ [status, headers, body]
16
+ end
17
+ end
18
+
19
+ config.after_initialize do
20
+ ActionController::Dispatcher.middleware.insert_before(ActionController::Base.session_store, RackRailsCookieHeaderHack)
21
+ end
22
+
@@ -0,0 +1,68 @@
1
+ diff -c -r /home/swetha/repos/captain_oveur/test/test_app/app/controllers/application_controller.rb ./app/controllers/application_controller.rb
2
+ *** /home/swetha/repos/captain_oveur/test/test_app/app/controllers/application_controller.rb 2010-07-23 12:33:16.993512218 -0400
3
+ --- ./app/controllers/application_controller.rb 2010-07-23 12:00:46.566202061 -0400
4
+ ***************
5
+ *** 6,12 ****
6
+ include CaptainOveur::Authentication
7
+ helper :all # include all helpers, all the time
8
+ protect_from_forgery # See ActionController::RequestForgeryProtection for details
9
+ !
10
+ # Scrub sensitive parameters from your log
11
+ # filter_parameter_logging :password
12
+ end
13
+ --- 6,12 ----
14
+ include CaptainOveur::Authentication
15
+ helper :all # include all helpers, all the time
16
+ protect_from_forgery # See ActionController::RequestForgeryProtection for details
17
+ ! layout 'home'
18
+ # Scrub sensitive parameters from your log
19
+ # filter_parameter_logging :password
20
+ end
21
+ diff -c -r /home/swetha/repos/captain_oveur/test/test_app/config/environments/cucumber.rb ./config/environments/cucumber.rb
22
+ *** /home/swetha/repos/captain_oveur/test/test_app/config/environments/cucumber.rb 2010-07-23 12:32:53.909511667 -0400
23
+ --- ./config/environments/cucumber.rb 2010-07-23 09:28:38.517514587 -0400
24
+ ***************
25
+ *** 25,27 ****
26
+ --- 25,49 ----
27
+ config.gem 'database_cleaner', :lib => false, :version => '>=0.5.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/database_cleaner'))
28
+ config.gem 'webrat', :lib => false, :version => '>=0.7.0' unless File.directory?(File.join(Rails.root, 'vendor/plugins/webrat'))
29
+
30
+ + config.gem 'factory_girl'
31
+ +
32
+ + config.action_mailer.default_url_options = { :host => 'example.com' }
33
+ +
34
+ + class RackRailsCookieHeaderHack
35
+ + def initialize(app)
36
+ + @app = app
37
+ + end
38
+ +
39
+ + def call(env)
40
+ + status, headers, body = @app.call(env)
41
+ + if headers['Set-Cookie'] && headers['Set-Cookie'].respond_to?(:collect!)
42
+ + headers['Set-Cookie'].collect! { |h| h.strip }
43
+ + end
44
+ + [status, headers, body]
45
+ + end
46
+ + end
47
+ +
48
+ + config.after_initialize do
49
+ + ActionController::Dispatcher.middleware.insert_before(ActionController::Base.session_store, RackRailsCookieHeaderHack)
50
+ + end
51
+ +
52
+ diff -c -r /home/swetha/repos/captain_oveur/test/test_app/config/environments/test.rb ./config/environments/test.rb
53
+ *** /home/swetha/repos/captain_oveur/test/test_app/config/environments/test.rb 2010-07-23 12:32:32.129513208 -0400
54
+ --- ./config/environments/test.rb 2010-07-23 09:19:21.357512056 -0400
55
+ ***************
56
+ *** 25,28 ****
57
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
58
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
59
+ # like if you have constraints or database-specific column types
60
+ ! # config.active_record.schema_format = :sql
61
+
62
+ --- 25,30 ----
63
+ # Use SQL instead of Active Record's schema dumper when creating the test database.
64
+ # This is necessary if your schema can't be completely dumped by the schema dumper,
65
+ # like if you have constraints or database-specific column types
66
+ ! # config.active_record.schema_format = :sql
67
+ !
68
+ ! config.action_mailer.default_url_options = { :host => 'localhost:3000' }
data/test/template.rb ADDED
@@ -0,0 +1,48 @@
1
+ run 'rm README'
2
+ run 'rm public/index.html'
3
+ run 'rm public/favicon.ico'
4
+ run 'rm public/images/rails.png'
5
+
6
+ gem 'cucumber', :env => [:cucumber]
7
+ gem 'cucumber-rails', :env => [:cucumber]
8
+ gem 'database_cleaner', :env => [:cucumber]
9
+ gem 'webrat', :env => [:cucumber]
10
+ gem 'rspec', :env => [:cucumber]
11
+ gem 'rspec-rails', :env => [:cucumber]
12
+ gem "factory_girl", :env => [:cucumber]
13
+ gem "launchy", :env => [:cucumber]
14
+
15
+ gem 'captain_oveur'
16
+ gem 'clearance', :version => "=0.8.8"
17
+
18
+
19
+ # Install gems on local system
20
+ rake('gems:install')
21
+ #rake('db:create:all')
22
+ #generate("rspec")
23
+ generate(:controller, "home", "index")
24
+
25
+ route "map.root :controller => 'home'"
26
+
27
+
28
+ generate(:cucumber, "--force --webrat")
29
+
30
+ file 'app/views/layouts/home.html.erb', <<-CODE
31
+ <div id="flash">
32
+ <% flash.each do |key, value| -%>
33
+ <div id="flash_<%= key %>"><%=h value %></div>
34
+ <% end -%>
35
+ </div>
36
+ <%= yield %>
37
+ CODE
38
+
39
+
40
+
41
+ generate(:clearance, "-f")
42
+ rake('db:migrate')
43
+ generate(:captain_oveur)
44
+ rake('db:migrate')
45
+ generate(:clearance_features, "-f")
46
+ generate(:captain_oveur_features, "-f")
47
+ rake('db:test:prepare')
48
+ rake('log:clear')
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: captain_oveur
3
3
  version: !ruby/object:Gem::Version
4
- hash: 35
4
+ hash: 33
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 8
9
- - 14
10
- version: 0.8.14
9
+ - 15
10
+ version: 0.8.15
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jerry Richardson, Zachery Maloney
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-07-17 00:00:00 -04:00
18
+ date: 2010-07-24 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -68,18 +68,19 @@ extra_rdoc_files:
68
68
  files:
69
69
  - CHANGELOG.textile
70
70
  - LICENSE
71
- - Manifest
72
71
  - README
73
72
  - README.textile
74
73
  - Rakefile
75
74
  - VERSION
76
75
  - app/controllers/admin/captain_oveur/users_controller.rb
76
+ - app/controllers/captain_oveur/users_controller.rb
77
77
  - app/views/admin/users/_form.erb
78
78
  - app/views/admin/users/edit.html.erb
79
79
  - app/views/admin/users/index.html.erb
80
80
  - app/views/admin/users/new.html.erb
81
81
  - app/views/admin/users/show.html.erb
82
82
  - captain_oveur.gemspec
83
+ - cucumber.yml
83
84
  - generators/captain_oveur/README
84
85
  - generators/captain_oveur/USAGE
85
86
  - generators/captain_oveur/captain_oveur_generator.rb
@@ -98,8 +99,12 @@ files:
98
99
  - lib/captain_oveur/routes.rb
99
100
  - lib/captain_oveur/user.rb
100
101
  - test/captain_oveur_test.rb
102
+ - test/clearance_config.rb
103
+ - test/configuration.patch
101
104
  - test/factories/admins.rb
105
+ - test/template.rb
102
106
  - test/test_helper.rb
107
+ - Manifest
103
108
  has_rdoc: true
104
109
  homepage: http://disruptive.github.com/captain_oveur
105
110
  licenses: []