captain_oveur 0.8.14 → 0.8.15

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/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: []