cream 0.7.0 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -3
- data/VERSION +1 -1
- data/cream.gemspec +15 -37
- data/lib/cream.rb +3 -1
- data/lib/cream/configure/after_init/role_config.rb +19 -15
- data/lib/cream/configure/rails.rb +4 -12
- data/lib/cream/role.rb +9 -1
- data/lib/cream/{configure.rb → roles_config.rb} +0 -4
- data/lib/generators/cancan/config/config_generator.rb +13 -3
- data/lib/generators/cream/app/app_generator.rb +39 -18
- data/lib/generators/cream/full_config/full_config_generator.rb +154 -0
- data/lib/generators/cream/views/haml_util.rb +1 -1
- data/lib/generators/cream/views/views_generator.rb +1 -1
- data/lib/generators/devise/config/config_generator.rb +16 -7
- data/lib/generators/devise/users/users_generator.rb +13 -8
- data/lib/generators/permits/config/config_generator.rb +14 -11
- data/lib/generators/roles/config/config_generator.rb +12 -6
- data/spec/generator_spec_helper.rb +1 -1
- data/spec/generators/cancan/config/cancan_config_generator_spec.rb +1 -1
- data/spec/generators/cream/app/app_generator_spec.rb +42 -22
- data/spec/generators/cream/full_config/full_config_generator_spec.rb +37 -0
- data/spec/generators/permits/config/permits_config_generator_spec.rb +1 -1
- metadata +12 -35
- data/lib/generators/cream/config/DESIGN NOTES.markdown +0 -79
- data/lib/generators/cream/config/config_generator.rb +0 -86
- data/lib/generators/cream/config/modules/app_config.rb +0 -48
- data/lib/generators/cream/config/modules/cancan_config.rb +0 -27
- data/lib/generators/cream/config/modules/cream_config.rb +0 -36
- data/lib/generators/cream/config/modules/devise_config.rb +0 -58
- data/lib/generators/cream/config/modules/devise_users_config.rb +0 -109
- data/lib/generators/cream/config/modules/helper.rb +0 -79
- data/lib/generators/cream/config/modules/permits_config.rb +0 -15
- data/lib/generators/cream/config/modules/roles_config.rb +0 -39
- data/spec/generators/cream/config/CONFIG_GENERATOR_SPEC.markdown +0 -15
- data/spec/generators/cream/config/devise/existing_devise_users.rb +0 -61
- data/spec/generators/cream/config/empty_app/default_args_spec.rb +0 -51
- data/spec/generators/cream/config/permits/existing_permits_spec.rb +0 -0
- data/spec/generators/cream/config/permits/no_permits_spec.rb +0 -0
- data/spec/generators/cream/config/roles/default_roles.rb +0 -51
- data/spec/generators/cream/config/roles/roles_spec.rb +0 -60
- data/spec/generators/cream/shared_examples.rb +0 -18
@@ -10,12 +10,13 @@ module Devise
|
|
10
10
|
desc "Configure Devise"
|
11
11
|
|
12
12
|
# ORM to use
|
13
|
-
class_option :orm,
|
14
|
-
class_option :logfile,
|
13
|
+
class_option :orm, :type => :string, :default => 'active_record', :desc => "ORM to use"
|
14
|
+
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
|
15
|
+
class_option :gems, :type => :boolean, :default => false, :desc => "Add gems to gemfile?"
|
15
16
|
|
16
17
|
def configure_devise
|
17
18
|
logger.add_logfile :logfile => logfile if logfile
|
18
|
-
devise_gems
|
19
|
+
devise_gems if gems?
|
19
20
|
devise_install
|
20
21
|
[:orm, :mailer, :protection].each{|m| send(:"#{m}_configure!", orm) }
|
21
22
|
end
|
@@ -27,6 +28,10 @@ module Devise
|
|
27
28
|
|
28
29
|
use_helpers :controller, :app, :special, :file
|
29
30
|
|
31
|
+
def gems?
|
32
|
+
options[:gems]
|
33
|
+
end
|
34
|
+
|
30
35
|
def logfile
|
31
36
|
options[:logfile]
|
32
37
|
end
|
@@ -51,30 +56,34 @@ module Devise
|
|
51
56
|
rgen 'devise:install'
|
52
57
|
end
|
53
58
|
|
54
|
-
def bundle_install
|
55
|
-
run "bundle install"
|
59
|
+
def bundle_install *gems
|
60
|
+
run "bundle install #{gems.join(' ')}"
|
56
61
|
end
|
57
62
|
|
58
63
|
def devise_gems
|
59
64
|
logger.debug 'devise_gems'
|
60
65
|
gem 'devise'
|
61
66
|
|
62
|
-
|
67
|
+
orm_gem = nil
|
68
|
+
# Devise ORM integration
|
63
69
|
case orm.to_sym
|
64
70
|
when :mongoid
|
65
71
|
say "Please configure Devise for Mongoid as similar to Rails 3 example app: http://github.com/fortuity/rails3-mongoid-devise"
|
66
72
|
when :mongo_mapper
|
73
|
+
orm_gem = 'mm-devise'
|
67
74
|
gem 'mm-devise'
|
68
75
|
when :data_mapper
|
76
|
+
orm_gem = 'dm-devise'
|
69
77
|
gem 'dm-devise'
|
70
78
|
when :couch_db
|
79
|
+
orm_gem = 'devise_couch'
|
71
80
|
gem 'devise_couch'
|
72
81
|
say "Please note that Couch DB does not currently have a Roles implementation. Feel free to provide one."
|
73
82
|
say "Look at Roles DataMapper (roles_data_mapper) for an example ;)"
|
74
83
|
else
|
75
84
|
say "Orm #{orm} is not currently supported by Cream. You are most welcome to provide a Cream adapter for that ORM ;)"
|
76
85
|
end
|
77
|
-
|
86
|
+
bundle_install 'devise', orm_gem
|
78
87
|
end
|
79
88
|
|
80
89
|
def protection_configure! orm
|
@@ -10,16 +10,17 @@ module Devise
|
|
10
10
|
desc "Configure Devise with Users"
|
11
11
|
|
12
12
|
# Create Admin user
|
13
|
-
class_option :admin_user,
|
13
|
+
class_option :admin_user, :type => :boolean, :default => false, :desc => "Create admin user"
|
14
14
|
# ORM to use
|
15
|
-
class_option :orm,
|
16
|
-
class_option :logfile,
|
17
|
-
|
15
|
+
class_option :orm, :type => :string, :default => 'active_record', :desc => "ORM to use"
|
16
|
+
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
|
17
|
+
class_option :gems, :type => :boolean, :default => false, :desc => "Add gems to gemfile?"
|
18
|
+
|
18
19
|
def configure_devise_users
|
19
20
|
logger.add_logfile :logfile => logfile if logfile
|
20
21
|
logger.debug "Configure Devise Users"
|
21
22
|
|
22
|
-
devise_gems
|
23
|
+
devise_gems if gems?
|
23
24
|
devise_default_user if !has_model? :user
|
24
25
|
|
25
26
|
# # if User model is NOT configured with devise strategy
|
@@ -35,17 +36,21 @@ module Devise
|
|
35
36
|
|
36
37
|
use_helpers :model
|
37
38
|
|
39
|
+
def gems?
|
40
|
+
options[:gems]
|
41
|
+
end
|
42
|
+
|
38
43
|
def logfile
|
39
44
|
options[:logfile]
|
40
45
|
end
|
41
46
|
|
42
47
|
def devise_gems
|
43
48
|
gem 'devise'
|
44
|
-
|
49
|
+
bundle_install 'devise'
|
45
50
|
end
|
46
51
|
|
47
|
-
def bundle_install
|
48
|
-
run "bundle install"
|
52
|
+
def bundle_install *gems
|
53
|
+
run "bundle install #{gems.jon(' ')}"
|
49
54
|
end
|
50
55
|
|
51
56
|
def devise_default_user
|
@@ -11,18 +11,18 @@ module Permits
|
|
11
11
|
|
12
12
|
# ORM to use
|
13
13
|
class_option :orm, :type => :string, :default => 'active_record', :desc => "ORM to use"
|
14
|
-
class_option :roles, :type => :array,
|
14
|
+
class_option :roles, :type => :array, :default => ['guest', 'admin'], :desc => "Roles for permits"
|
15
15
|
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
|
16
|
+
class_option :gems, :type => :boolean, :default => false, :desc => "Add gems to gemfile?"
|
16
17
|
|
17
18
|
def configure_permits
|
18
19
|
logger.add_logfile :logfile => logfile if logfile
|
19
20
|
logger.debug "Configure Permits"
|
20
21
|
|
21
|
-
permits_gems
|
22
|
-
permits_initializer
|
22
|
+
permits_gems if gems?
|
23
23
|
|
24
24
|
# Run permits generator to generate permit for each role
|
25
|
-
rgen "permits --roles #{roles}"
|
25
|
+
rgen "permits --roles #{roles} --orm #{orm}"
|
26
26
|
end
|
27
27
|
|
28
28
|
protected
|
@@ -32,6 +32,10 @@ module Permits
|
|
32
32
|
|
33
33
|
use_helpers :app, :file, :special
|
34
34
|
|
35
|
+
def gems?
|
36
|
+
options[:gems]
|
37
|
+
end
|
38
|
+
|
35
39
|
# rails generate ...
|
36
40
|
def rgen command
|
37
41
|
execute "rails g #{command}"
|
@@ -55,14 +59,13 @@ module Permits
|
|
55
59
|
end
|
56
60
|
|
57
61
|
def permits_gems
|
58
|
-
gem 'cancan-permits'
|
59
|
-
|
62
|
+
gem 'cancan-permits'
|
63
|
+
bundle_install 'cancan-permits'
|
64
|
+
end
|
60
65
|
|
61
|
-
def
|
62
|
-
|
63
|
-
|
64
|
-
end
|
65
|
-
end
|
66
|
+
def bundle_install *gems
|
67
|
+
run "bundle install #{gems.jon(' ')}"
|
68
|
+
end
|
66
69
|
end
|
67
70
|
end
|
68
71
|
end
|
@@ -15,10 +15,11 @@ module Roles
|
|
15
15
|
class_option :roles, :type => :array, :default => ['guest', 'admin'], :desc => "Valid roles to use"
|
16
16
|
class_option :logfile, :type => :string, :default => nil, :desc => "Logfile location"
|
17
17
|
class_option :default_roles, :type => :boolean, :default => true, :desc => "Create default roles :admin and :guest"
|
18
|
-
|
18
|
+
class_option :gems, :type => :boolean, :default => false, :desc => "Add gems to gemfile?"
|
19
|
+
|
19
20
|
def configure_roles
|
20
21
|
logger.add_logfile :logfile => logfile if logfile
|
21
|
-
roles_gems
|
22
|
+
roles_gems if gems?
|
22
23
|
create_roles
|
23
24
|
set_valid_roles_cream
|
24
25
|
use_roles_strategy
|
@@ -31,6 +32,10 @@ module Roles
|
|
31
32
|
|
32
33
|
use_helpers :model, :file
|
33
34
|
|
35
|
+
def gems?
|
36
|
+
options[:gems]
|
37
|
+
end
|
38
|
+
|
34
39
|
def logfile
|
35
40
|
options[:logfile]
|
36
41
|
end
|
@@ -62,12 +67,13 @@ module Roles
|
|
62
67
|
end
|
63
68
|
|
64
69
|
def roles_gems
|
65
|
-
|
66
|
-
|
70
|
+
gem_name = "roles_#{orm}"
|
71
|
+
gem gem_name
|
72
|
+
bundle_install gem_name
|
67
73
|
end
|
68
74
|
|
69
|
-
def bundle_install
|
70
|
-
run "bundle install"
|
75
|
+
def bundle_install *gems
|
76
|
+
run "bundle install #{gems.join(' ')}"
|
71
77
|
end
|
72
78
|
|
73
79
|
def roles_generator
|
@@ -1,30 +1,50 @@
|
|
1
|
-
require '
|
1
|
+
require 'generator_spec_helper'
|
2
|
+
require_generator :cream => :app
|
3
|
+
|
4
|
+
LOGFILE = 'cream-app-config.log'
|
2
5
|
|
3
6
|
describe 'Generator' do
|
4
|
-
|
5
|
-
g.tests Cream::Generators::AppGenerator
|
6
|
-
c.setup
|
7
|
-
end
|
7
|
+
use_helpers :controller, :special, :file, :view
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
g.run_generator folder
|
13
|
-
else
|
14
|
-
g.run_generator
|
15
|
-
folder = 'menu'
|
16
|
-
end
|
17
|
-
check.view folder, '_admin_login_items.html.erb', %w{admin_block not_admin_block}
|
18
|
-
check.view folder, '_login_items.html.erb', %w{user_block not_user_block}
|
19
|
-
check.view folder, 'registration_items.html.erb', %w{user_block not_user_block}
|
9
|
+
before :each do
|
10
|
+
setup_generator :cream_app_generator do
|
11
|
+
tests Cream::Generators::AppGenerator
|
20
12
|
end
|
21
13
|
end
|
22
14
|
|
23
|
-
|
24
|
-
|
15
|
+
describe "Configure Rails 3 app as a Cream app" do
|
16
|
+
before do
|
17
|
+
Dir.chdir Rails.root do
|
18
|
+
@generator = with_generator do |g|
|
19
|
+
arguments = "--orm mongoid --logfile #{LOGFILE}".args
|
20
|
+
g.run_generator arguments
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'result of app generator' do
|
26
|
+
it "should replace requirement statements in application file" do
|
27
|
+
["action_controller/railtie", "action_mailer/railtie", "active_resource/railtie", "rails/test_unit/railtie"].each do |req|
|
28
|
+
req = Regexp.escape(req)
|
29
|
+
read_application_file.should match /#{req}/
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should add notice and alert flash displayers to application layout" do
|
34
|
+
[:alert, :notice].each do |name|
|
35
|
+
read_view(:layouts, :application).should match /<%= #{name} %>/
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should generate Welcome controller" do
|
40
|
+
controller_file?(:welcome).should be_true
|
41
|
+
end
|
42
|
+
|
43
|
+
it "should add root to routes file" do
|
44
|
+
read_routes_file.should match /root\s+:to\s*=>/
|
45
|
+
end
|
46
|
+
end
|
25
47
|
end
|
26
|
-
|
27
|
-
it "should create views in explicit scope 'login' " do
|
28
|
-
check_generated_views 'login'
|
29
|
-
end
|
30
48
|
end
|
49
|
+
|
50
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'generator_spec_helper'
|
2
|
+
require_generator :cream => :full_config
|
3
|
+
|
4
|
+
LOGFILE = 'cream-full_config.log'
|
5
|
+
|
6
|
+
describe 'Generator' do
|
7
|
+
use_helpers :controller, :special, :file, :view
|
8
|
+
|
9
|
+
before :each do
|
10
|
+
setup_generator :cream_full_config_generator do
|
11
|
+
tests Cream::Generators::FullConfigGenerator
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
before do
|
16
|
+
Dir.chdir Rails.root do
|
17
|
+
@generator = with_generator do |g|
|
18
|
+
arguments = "--orm mongo_mapper --logfile #{LOGFILE}".args
|
19
|
+
g.run_generator arguments
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "Configure Rails 3 app as a Cream configured app" do
|
25
|
+
describe 'result of Cream config generator' do
|
26
|
+
it "should add cream gem" do
|
27
|
+
Rails.root.should have_gem 'cream'
|
28
|
+
end
|
29
|
+
|
30
|
+
# it "should add mongoid devise gem" do
|
31
|
+
# Rails.root.should have_gem 'mm-devise'
|
32
|
+
# end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
|
@@ -31,7 +31,7 @@ describe 'Generator' do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it "should generate a permits initializer file with orm set to mongoid" do
|
34
|
-
File.read(initializer_file(:permits)).should match /Permits::Application.orm = mongoid/
|
34
|
+
File.read(initializer_file(:permits)).should match /Permits::Application.orm = :mongoid/
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 7
|
8
|
-
-
|
9
|
-
version: 0.7.
|
8
|
+
- 2
|
9
|
+
version: 0.7.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-10-
|
17
|
+
date: 2010-10-17 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -29,8 +29,7 @@ dependencies:
|
|
29
29
|
- 2
|
30
30
|
- 0
|
31
31
|
- 0
|
32
|
-
|
33
|
-
version: 2.0.0.rc
|
32
|
+
version: 2.0.0
|
34
33
|
type: :development
|
35
34
|
version_requirements: *id001
|
36
35
|
- !ruby/object:Gem::Dependency
|
@@ -194,8 +193,8 @@ dependencies:
|
|
194
193
|
segments:
|
195
194
|
- 0
|
196
195
|
- 2
|
197
|
-
-
|
198
|
-
version: 0.2.
|
196
|
+
- 8
|
197
|
+
version: 0.2.8
|
199
198
|
type: :runtime
|
200
199
|
version_requirements: *id012
|
201
200
|
- !ruby/object:Gem::Dependency
|
@@ -239,8 +238,8 @@ dependencies:
|
|
239
238
|
segments:
|
240
239
|
- 0
|
241
240
|
- 2
|
242
|
-
-
|
243
|
-
version: 0.2.
|
241
|
+
- 11
|
242
|
+
version: 0.2.11
|
244
243
|
type: :runtime
|
245
244
|
version_requirements: *id015
|
246
245
|
description: Provides assistance for setting up Session, Role and Permission systems for a Rails 3 app. Support for multiple ORMs
|
@@ -274,7 +273,6 @@ files:
|
|
274
273
|
- features/role_strategy/clears_role_strategy.feature
|
275
274
|
- init.rb
|
276
275
|
- lib/cream.rb
|
277
|
-
- lib/cream/configure.rb
|
278
276
|
- lib/cream/configure/after_init/role_config.rb
|
279
277
|
- lib/cream/configure/rails.rb
|
280
278
|
- lib/cream/controller/ability.rb
|
@@ -284,21 +282,13 @@ files:
|
|
284
282
|
- lib/cream/namespaces.rb
|
285
283
|
- lib/cream/rails/config.rb
|
286
284
|
- lib/cream/role.rb
|
285
|
+
- lib/cream/roles_config.rb
|
287
286
|
- lib/cream/view/host_area.rb
|
288
287
|
- lib/cream/view/role_area.rb
|
289
288
|
- lib/cream/view/user_action_menu.rb
|
290
289
|
- lib/generators/cancan/config/config_generator.rb
|
291
290
|
- lib/generators/cream/app/app_generator.rb
|
292
|
-
- lib/generators/cream/
|
293
|
-
- lib/generators/cream/config/config_generator.rb
|
294
|
-
- lib/generators/cream/config/modules/app_config.rb
|
295
|
-
- lib/generators/cream/config/modules/cancan_config.rb
|
296
|
-
- lib/generators/cream/config/modules/cream_config.rb
|
297
|
-
- lib/generators/cream/config/modules/devise_config.rb
|
298
|
-
- lib/generators/cream/config/modules/devise_users_config.rb
|
299
|
-
- lib/generators/cream/config/modules/helper.rb
|
300
|
-
- lib/generators/cream/config/modules/permits_config.rb
|
301
|
-
- lib/generators/cream/config/modules/roles_config.rb
|
291
|
+
- lib/generators/cream/full_config/full_config_generator.rb
|
302
292
|
- lib/generators/cream/views/haml_util.rb
|
303
293
|
- lib/generators/cream/views/views_generator.rb
|
304
294
|
- lib/generators/cream_refactor.rb
|
@@ -320,14 +310,7 @@ files:
|
|
320
310
|
- spec/generator_spec_helper.rb
|
321
311
|
- spec/generators/cancan/config/cancan_config_generator_spec.rb
|
322
312
|
- spec/generators/cream/app/app_generator_spec.rb
|
323
|
-
- spec/generators/cream/
|
324
|
-
- spec/generators/cream/config/devise/existing_devise_users.rb
|
325
|
-
- spec/generators/cream/config/empty_app/default_args_spec.rb
|
326
|
-
- spec/generators/cream/config/permits/existing_permits_spec.rb
|
327
|
-
- spec/generators/cream/config/permits/no_permits_spec.rb
|
328
|
-
- spec/generators/cream/config/roles/default_roles.rb
|
329
|
-
- spec/generators/cream/config/roles/roles_spec.rb
|
330
|
-
- spec/generators/cream/shared_examples.rb
|
313
|
+
- spec/generators/cream/full_config/full_config_generator_spec.rb
|
331
314
|
- spec/generators/cream/views_generator_spec.rb
|
332
315
|
- spec/generators/devise/config/devise_config_generator_spec.rb
|
333
316
|
- spec/generators/devise/users/devise_users_generator_spec.rb
|
@@ -387,13 +370,7 @@ test_files:
|
|
387
370
|
- spec/generator_spec_helper.rb
|
388
371
|
- spec/generators/cancan/config/cancan_config_generator_spec.rb
|
389
372
|
- spec/generators/cream/app/app_generator_spec.rb
|
390
|
-
- spec/generators/cream/
|
391
|
-
- spec/generators/cream/config/empty_app/default_args_spec.rb
|
392
|
-
- spec/generators/cream/config/permits/existing_permits_spec.rb
|
393
|
-
- spec/generators/cream/config/permits/no_permits_spec.rb
|
394
|
-
- spec/generators/cream/config/roles/default_roles.rb
|
395
|
-
- spec/generators/cream/config/roles/roles_spec.rb
|
396
|
-
- spec/generators/cream/shared_examples.rb
|
373
|
+
- spec/generators/cream/full_config/full_config_generator_spec.rb
|
397
374
|
- spec/generators/cream/views_generator_spec.rb
|
398
375
|
- spec/generators/devise/config/devise_config_generator_spec.rb
|
399
376
|
- spec/generators/devise/users/devise_users_generator_spec.rb
|