cream 0.7.0 → 0.7.2
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/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
|