padrino-gen 0.12.0 → 0.12.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +1 -1
- data/lib/padrino-gen.rb +0 -1
- data/lib/padrino-gen/generators/app.rb +22 -14
- data/lib/padrino-gen/generators/app/app.rb.tt +0 -1
- data/lib/padrino-gen/generators/cli.rb +1 -2
- data/lib/padrino-gen/generators/components/actions.rb +1 -1
- data/lib/padrino-gen/generators/components/mocks/rr.rb +2 -2
- data/lib/padrino-gen/generators/components/orms/activerecord.rb +3 -0
- data/lib/padrino-gen/generators/components/orms/datamapper.rb +21 -0
- data/lib/padrino-gen/generators/components/orms/dynamoid.rb +67 -0
- data/lib/padrino-gen/generators/components/orms/minirecord.rb +3 -0
- data/lib/padrino-gen/generators/components/tests/cucumber.rb +1 -1
- data/lib/padrino-gen/generators/components/tests/minitest.rb +1 -1
- data/lib/padrino-gen/generators/components/tests/rspec.rb +4 -4
- data/lib/padrino-gen/generators/model.rb +73 -29
- data/lib/padrino-gen/generators/project.rb +7 -3
- data/lib/padrino-gen/generators/project/config/apps.rb.tt +0 -1
- data/lib/padrino-gen/generators/templates/Gemfile.tt +1 -1
- data/lib/padrino-gen/padrino-tasks/activerecord.rb +43 -39
- data/lib/padrino-gen/padrino-tasks/database.rb +2 -1
- data/lib/padrino-gen/padrino-tasks/sql-helpers.rb +24 -16
- data/test/helper.rb +4 -3
- data/test/test_app_generator.rb +13 -13
- data/test/test_cli.rb +4 -4
- data/test/test_component_generator.rb +18 -18
- data/test/test_controller_generator.rb +26 -26
- data/test/test_generator.rb +2 -3
- data/test/test_mailer_generator.rb +10 -10
- data/test/test_migration_generator.rb +42 -27
- data/test/test_model_generator.rb +95 -74
- data/test/test_plugin_generator.rb +23 -23
- data/test/test_project_generator.rb +100 -83
- data/test/test_task_generator.rb +7 -7
- metadata +9 -8
@@ -1,27 +1,31 @@
|
|
1
1
|
module Padrino
|
2
|
-
module Generators
|
2
|
+
module Generators
|
3
3
|
module SqlHelpers
|
4
4
|
def self.create_db(adapter, user, password, host, database, charset, collation)
|
5
5
|
case adapter
|
6
6
|
when 'postgres'
|
7
|
+
environment = {}
|
8
|
+
environment['PGPASSWORD'] = password unless password.blank?
|
9
|
+
|
7
10
|
arguments = []
|
8
11
|
arguments << "--encoding=#{charset}" if charset
|
9
12
|
arguments << "--host=#{host}" if host
|
10
13
|
arguments << "--username=#{user}" if user
|
11
14
|
arguments << database
|
12
|
-
|
15
|
+
|
16
|
+
Process.wait Process.spawn(environment, 'createdb', *arguments)
|
13
17
|
when 'mysql'
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
environment = {}
|
19
|
+
environment['MYSQL_PWD'] = password unless password.blank?
|
20
|
+
|
21
|
+
arguments = []
|
22
|
+
arguments << "--user=#{user}" if user
|
23
|
+
arguments << "--host=#{host}" unless %w[127.0.0.1 localhost].include?(host)
|
20
24
|
|
21
25
|
arguments << '-e'
|
22
26
|
arguments << "CREATE DATABASE #{database} DEFAULT CHARACTER SET #{charset} DEFAULT COLLATE #{collation}"
|
23
27
|
|
24
|
-
|
28
|
+
Process.wait Process.spawn(environment, 'mysql', *arguments)
|
25
29
|
else
|
26
30
|
raise "Adapter #{adapter} not supported for creating databases yet."
|
27
31
|
end
|
@@ -30,23 +34,27 @@ module Padrino
|
|
30
34
|
def self.drop_db(adapter, user, password, host, database)
|
31
35
|
case adapter
|
32
36
|
when 'postgres'
|
37
|
+
environment = {}
|
38
|
+
environment['PGPASSWORD'] = password unless password.blank?
|
39
|
+
|
33
40
|
arguments = []
|
34
41
|
arguments << "--host=#{host}" if host
|
35
42
|
arguments << "--username=#{user}" if user
|
36
43
|
arguments << database
|
37
|
-
|
44
|
+
|
45
|
+
Process.wait Process.spawn(environment, 'dropdb', *arguments)
|
38
46
|
when 'mysql'
|
39
|
-
|
40
|
-
|
47
|
+
environment = {}
|
48
|
+
environment['MYSQL_PWD'] = password unless password.blank?
|
41
49
|
|
42
|
-
|
43
|
-
|
44
|
-
|
50
|
+
arguments = []
|
51
|
+
arguments << "--user=#{user}" if user
|
52
|
+
arguments << "--host=#{host}" unless %w[127.0.0.1 localhost].include?(host)
|
45
53
|
|
46
54
|
arguments << '-e'
|
47
55
|
arguments << "DROP DATABASE IF EXISTS #{database}"
|
48
56
|
|
49
|
-
|
57
|
+
Process.wait Process.spawn(environment, 'mysql', *arguments)
|
50
58
|
else
|
51
59
|
raise "Adapter #{adapter} not supported for dropping databases yet."
|
52
60
|
end
|
data/test/helper.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
require File.expand_path('../../../load_paths', __FILE__)
|
2
|
-
require
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'minitest/pride'
|
4
|
+
require 'mocha/setup'
|
3
5
|
require 'rack/test'
|
4
6
|
require 'rack'
|
5
|
-
require 'uuid'
|
6
7
|
require 'webrat'
|
7
8
|
require 'fakeweb'
|
8
9
|
require 'thor/group'
|
@@ -90,7 +91,7 @@ class MiniTest::Spec
|
|
90
91
|
end
|
91
92
|
|
92
93
|
def assert_no_match_in_file(pattern, file)
|
93
|
-
File.exist?(file) ?
|
94
|
+
File.exist?(file) ? refute_match(pattern, File.read(file)) : assert_file_exists(file)
|
94
95
|
end
|
95
96
|
|
96
97
|
# expects_generated :model, "post title:string body:text"
|
data/test/test_app_generator.rb
CHANGED
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
2
|
|
3
3
|
describe "AppGenerator" do
|
4
4
|
def setup
|
5
|
-
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{
|
5
|
+
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
|
6
6
|
`mkdir -p #{@apptmp}`
|
7
7
|
end
|
8
8
|
|
@@ -10,14 +10,14 @@ describe "AppGenerator" do
|
|
10
10
|
`rm -rf #{@apptmp}`
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
should
|
13
|
+
describe 'the app generator' do
|
14
|
+
it 'should fail outside app root' do
|
15
15
|
out, err = capture_io { generate(:app, 'demo_root', "-r=#{@apptmp}") }
|
16
16
|
assert_match(/not at the root/, out)
|
17
17
|
assert_no_file_exists("#{@apptmp}/demo_root")
|
18
18
|
end
|
19
19
|
|
20
|
-
should
|
20
|
+
it 'should create correctly a new padrino application' do
|
21
21
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
22
22
|
capture_io { generate(:app, 'demo', "--root=#{@apptmp}/sample_project") }
|
23
23
|
assert_file_exists("#{@apptmp}/sample_project")
|
@@ -35,7 +35,7 @@ describe "AppGenerator" do
|
|
35
35
|
assert_match_in_file(/set :session_secret, '[0-9A-z]*'/, "#{@apptmp}/sample_project/config/apps.rb")
|
36
36
|
end
|
37
37
|
|
38
|
-
should
|
38
|
+
it 'should create correctly a new padrino application with an underscore name' do
|
39
39
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
40
40
|
capture_io { generate(:app, 'demo_app', "--root=#{@apptmp}/sample_project") }
|
41
41
|
assert_file_exists("#{@apptmp}/sample_project")
|
@@ -53,7 +53,7 @@ describe "AppGenerator" do
|
|
53
53
|
assert_match_in_file(/set :session_secret, '[0-9A-z]*'/, "#{@apptmp}/sample_project/config/apps.rb")
|
54
54
|
end
|
55
55
|
|
56
|
-
should
|
56
|
+
it 'should generate tiny app skeleton' do
|
57
57
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
58
58
|
capture_io { generate(:app, 'demo','--tiny',"--root=#{@apptmp}/sample_project") }
|
59
59
|
assert_file_exists("#{@apptmp}/sample_project")
|
@@ -67,7 +67,7 @@ describe "AppGenerator" do
|
|
67
67
|
assert_no_file_exists("#{@apptmp}/sample_project/demo/controllers")
|
68
68
|
end
|
69
69
|
|
70
|
-
should
|
70
|
+
it 'should correctly create a new controller inside a padrino application' do
|
71
71
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
72
72
|
capture_io { generate(:app, 'demo', "--root=#{@apptmp}/sample_project") }
|
73
73
|
capture_io { generate(:controller, 'demo_items', "-r=#{@apptmp}/sample_project", '-a=demo') }
|
@@ -76,7 +76,7 @@ describe "AppGenerator" do
|
|
76
76
|
assert_file_exists("#{@apptmp}/sample_project/demo/views/demo_items")
|
77
77
|
end
|
78
78
|
|
79
|
-
should
|
79
|
+
it 'should correctly create a new mailer inside a padrino application' do
|
80
80
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
81
81
|
capture_io { generate(:app, 'demo_app', "--root=#{@apptmp}/sample_project") }
|
82
82
|
capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}/sample_project", '-a=demo_app') }
|
@@ -84,11 +84,11 @@ describe "AppGenerator" do
|
|
84
84
|
|
85
85
|
# only destroys what it generated.
|
86
86
|
# hence, the folder will still exists if other changes were made to it.
|
87
|
-
should
|
87
|
+
it 'should destroys itself' do
|
88
88
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
89
89
|
capture_io { generate(:app, 'demo', "--root=#{@apptmp}/sample_project") }
|
90
|
-
out, err = capture_io {
|
91
|
-
|
90
|
+
out, err = capture_io { generate_with_parts(:app, 'demo', "--root=#{@apptmp}/sample_project", '-d', :apps => "demo") }
|
91
|
+
refute_match(/has been mounted/, out)
|
92
92
|
assert_no_dir_exists("#{@apptmp}/sample_project/public/demo")
|
93
93
|
assert_no_file_exists("#{@apptmp}/sample_project/demo/app.rb")
|
94
94
|
assert_no_dir_exists("#{@apptmp}/sample_project/demo/controllers")
|
@@ -97,7 +97,7 @@ describe "AppGenerator" do
|
|
97
97
|
assert_no_match_in_file(/Padrino\.mount\("Demo"\).to\("\/demo"\)/,"#{@apptmp}/sample_project/config/apps.rb")
|
98
98
|
end
|
99
99
|
|
100
|
-
should
|
100
|
+
it 'should abort if app name already exists' do
|
101
101
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
102
102
|
out, err = capture_io { generate(:app, 'kernel', "--root=#{@apptmp}/sample_project") }
|
103
103
|
assert_match(/Kernel already exists/, out)
|
@@ -107,7 +107,7 @@ describe "AppGenerator" do
|
|
107
107
|
assert_no_file_exists("#{@apptmp}/sample_project/kernel/app.rb")
|
108
108
|
end
|
109
109
|
|
110
|
-
should
|
110
|
+
it 'should abort if app name already exists in root' do
|
111
111
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
112
112
|
capture_io { generate(:app, 'subapp', "--root=#{@apptmp}/sample_project") }
|
113
113
|
out, err = capture_io { generate_with_parts(:app, 'subapp', "--root=#{@apptmp}/sample_project", :apps => "subapp") }
|
data/test/test_cli.rb
CHANGED
@@ -3,7 +3,7 @@ require 'padrino-gen/generators/cli'
|
|
3
3
|
|
4
4
|
describe "Cli" do
|
5
5
|
def setup
|
6
|
-
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{
|
6
|
+
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
|
7
7
|
`mkdir -p #{@apptmp}`
|
8
8
|
end
|
9
9
|
|
@@ -11,14 +11,14 @@ describe "Cli" do
|
|
11
11
|
`rm -rf #{@apptmp}`
|
12
12
|
end
|
13
13
|
|
14
|
-
|
14
|
+
describe 'the cli' do
|
15
15
|
|
16
|
-
should
|
16
|
+
it 'should fail without arguments' do
|
17
17
|
out, err = capture_io { generate(:cli) }
|
18
18
|
assert_match(/Please specify generator to use/, out)
|
19
19
|
end
|
20
20
|
|
21
|
-
should
|
21
|
+
it 'should work correctly if we have a project' do
|
22
22
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
23
23
|
capture_io { generate(:cli, "--root=#{@apptmp}/sample_project") }
|
24
24
|
skip "Make a great asserition"
|
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
2
|
|
3
3
|
describe "ComponentGenerator" do
|
4
4
|
def setup
|
5
|
-
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{
|
5
|
+
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
|
6
6
|
`mkdir -p #{@apptmp}`
|
7
7
|
end
|
8
8
|
|
@@ -10,49 +10,49 @@ describe "ComponentGenerator" do
|
|
10
10
|
`rm -rf #{@apptmp}`
|
11
11
|
end
|
12
12
|
|
13
|
-
|
14
|
-
should
|
13
|
+
describe 'the controller generator' do
|
14
|
+
it 'should fail outside app root' do
|
15
15
|
out, err = capture_io { generate(:component, 'demo', "-r=#{@apptmp}") }
|
16
16
|
assert_match(/not at the root/, out)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
|
21
|
-
|
22
|
-
should
|
21
|
+
describe "add components" do
|
22
|
+
it 'should properly generate default' do
|
23
23
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
24
24
|
out, err = capture_io { generate(:component, '--orm=activerecord', "-r=#{@apptmp}/sample_project") }
|
25
25
|
assert_match(/applying.*?activerecord.*?orm/, out)
|
26
26
|
assert_match_in_file(/gem 'activerecord', '>= 3.1', :require => 'active_record'/, "#{@apptmp}/sample_project/Gemfile")
|
27
27
|
assert_match_in_file(/gem 'sqlite3'/, "#{@apptmp}/sample_project/Gemfile")
|
28
|
-
|
28
|
+
refute_match(/Switch renderer to/, out)
|
29
29
|
components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
|
30
30
|
assert_equal 'activerecord', components_chosen[:orm]
|
31
31
|
end
|
32
32
|
|
33
|
-
should
|
33
|
+
it 'should properly generate with adapter' do
|
34
34
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
35
35
|
out, err = capture_io { generate(:component, '--orm=sequel', '--adapter=postgres', "-r=#{@apptmp}/sample_project") }
|
36
36
|
assert_match_in_file(/gem 'pg'/, "#{@apptmp}/sample_project/Gemfile")
|
37
|
-
|
37
|
+
refute_match(/Switch renderer to/, out)
|
38
38
|
components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
|
39
39
|
assert_equal 'sequel', components_chosen[:orm]
|
40
40
|
end
|
41
41
|
|
42
|
-
should
|
42
|
+
it 'should enable @app_name value' do
|
43
43
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
44
44
|
out, err = capture_io { generate_with_parts(:component, '--test=cucumber', "-r=#{@apptmp}/sample_project", :apps => "app") }
|
45
45
|
assert_match_in_file(/SampleProject::App\.tap \{ \|app\| \}/, "#{@apptmp}/sample_project/features/support/env.rb")
|
46
46
|
end
|
47
47
|
|
48
|
-
should
|
48
|
+
it 'should generate component in specified app' do
|
49
49
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
50
50
|
capture_io { generate(:app, 'compo', "-r=#{@apptmp}/sample_project") }
|
51
51
|
out, err = capture_io { generate_with_parts(:component, '--test=cucumber', "--app=compo", "-r=#{@apptmp}/sample_project", :apps => "compo") }
|
52
52
|
assert_match_in_file(/SampleProject::Compo\.tap \{ \|app\| \}/, "#{@apptmp}/sample_project/features/support/env.rb")
|
53
53
|
end
|
54
54
|
|
55
|
-
should
|
55
|
+
it 'should not generate component in specified app if the app does not exist' do
|
56
56
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}") }
|
57
57
|
out, err = capture_io { generate_with_parts(:component, '--test=cucumber', "--app=compo", "-r=#{@apptmp}/sample_project", :apps => "compo") }
|
58
58
|
assert_match(/SampleProject::Compo does not exist./, out)
|
@@ -60,22 +60,22 @@ describe "ComponentGenerator" do
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
|
64
|
-
should
|
63
|
+
describe "specified of same the component" do
|
64
|
+
it 'should does not change' do
|
65
65
|
capture_io { generate(:project, 'sample_project', '--script=jquery', "--root=#{@apptmp}") }
|
66
66
|
components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
|
67
67
|
assert_equal 'jquery', components_chosen[:script]
|
68
68
|
out, err = capture_io { generate(:component, '--script=jquery', "-r=#{@apptmp}/sample_project") }
|
69
69
|
assert_match(/applying.*?jquery.*?script/, out)
|
70
|
-
|
70
|
+
refute_match(/Switch renderer to/, out)
|
71
71
|
components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
|
72
72
|
assert_equal 'jquery', components_chosen[:script]
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
76
76
|
|
77
|
-
|
78
|
-
should
|
77
|
+
describe "component changes" do
|
78
|
+
it 'should when allow changes, will be applied' do
|
79
79
|
capture_io { generate(:project, 'sample_project', '-renderer=slim', "--root=#{@apptmp}") }
|
80
80
|
components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
|
81
81
|
assert_equal 'slim', components_chosen[:renderer]
|
@@ -87,13 +87,13 @@ describe "ComponentGenerator" do
|
|
87
87
|
assert_equal 'haml', components_chosen[:renderer]
|
88
88
|
end
|
89
89
|
end
|
90
|
-
should
|
90
|
+
it 'should when deny changes, will not be applied' do
|
91
91
|
capture_io { generate(:project, 'sample_project', '-renderer=slim', "--root=#{@apptmp}") }
|
92
92
|
components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
|
93
93
|
assert_equal 'slim', components_chosen[:renderer]
|
94
94
|
$stdin.stub(:gets, 'no') do
|
95
95
|
out, err = capture_io { generate(:component, '--renderer=haml', "-r=#{@apptmp}/sample_project") }
|
96
|
-
|
96
|
+
refute_match(/applying.*?haml.*?renderer/, out)
|
97
97
|
assert_match(/Switch renderer to/, out)
|
98
98
|
components_chosen = YAML.load_file("#{@apptmp}/sample_project/.components")
|
99
99
|
assert_equal 'slim', components_chosen[:renderer]
|
@@ -2,7 +2,7 @@ require File.expand_path(File.dirname(__FILE__) + '/helper')
|
|
2
2
|
|
3
3
|
describe "ControllerGenerator" do
|
4
4
|
def setup
|
5
|
-
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{
|
5
|
+
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
|
6
6
|
`mkdir -p #{@apptmp}`
|
7
7
|
@controller_path = "#{@apptmp}/sample_project/app/controllers/demo_items.rb"
|
8
8
|
@controller_test_path = "#{@apptmp}/sample_project/test/app/controllers/demo_items_controller_test.rb"
|
@@ -12,14 +12,14 @@ describe "ControllerGenerator" do
|
|
12
12
|
`rm -rf #{@apptmp}`
|
13
13
|
end
|
14
14
|
|
15
|
-
|
16
|
-
should
|
15
|
+
describe 'the controller generator' do
|
16
|
+
it 'should fail outside app root' do
|
17
17
|
out, err = capture_io { generate(:controller, 'demo', "-r=#{@apptmp}") }
|
18
18
|
assert_match(/not at the root/, out)
|
19
19
|
assert_no_file_exists("#{@apptmp}/app/controllers/demo.rb")
|
20
20
|
end
|
21
21
|
|
22
|
-
should
|
22
|
+
it 'should generate controller within existing project' do
|
23
23
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
24
24
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
|
25
25
|
assert_match_in_file(/SampleProject::App.controllers :demo_items do/m, @controller_path)
|
@@ -28,7 +28,7 @@ describe "ControllerGenerator" do
|
|
28
28
|
assert_file_exists(@controller_test_path)
|
29
29
|
end
|
30
30
|
|
31
|
-
should
|
31
|
+
it 'should generate controller within existing project with weird name' do
|
32
32
|
capture_io { generate(:project, 'warepedia', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
33
33
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/warepedia") }
|
34
34
|
assert_match_in_file(/Warepedia::App.controllers :demo_items do/m, "#{@apptmp}/warepedia/app/controllers/demo_items.rb")
|
@@ -36,7 +36,7 @@ describe "ControllerGenerator" do
|
|
36
36
|
assert_file_exists("#{@apptmp}/warepedia/app/views/demo_items")
|
37
37
|
end
|
38
38
|
|
39
|
-
should
|
39
|
+
it 'should generate controller in specified app' do
|
40
40
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
41
41
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
42
42
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
@@ -46,43 +46,43 @@ describe "ControllerGenerator" do
|
|
46
46
|
assert_match_in_file(/describe "DemoItemsController" do/m, @controller_test_path.gsub('app','subby'))
|
47
47
|
end
|
48
48
|
|
49
|
-
should
|
49
|
+
it 'should generate controller with specified layout' do
|
50
50
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
51
51
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-l=xyzlayout') }
|
52
52
|
assert_match_in_file(/layout :xyzlayout/m, @controller_path)
|
53
53
|
end
|
54
54
|
|
55
|
-
should
|
55
|
+
it 'should generate controller without specified layout if empty' do
|
56
56
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
57
57
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-l=') }
|
58
58
|
assert_no_match_in_file(/layout/m, @controller_path)
|
59
59
|
end
|
60
60
|
|
61
|
-
should
|
61
|
+
it 'should generate controller with specified parent' do
|
62
62
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
63
63
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-p=user') }
|
64
64
|
assert_match_in_file(/SampleProject::App.controllers :demo_items, :parent => :user do/m, @controller_path)
|
65
65
|
end
|
66
66
|
|
67
|
-
should
|
67
|
+
it 'should generate controller without specified parent' do
|
68
68
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
69
69
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-p=') }
|
70
70
|
assert_match_in_file(/SampleProject::App.controllers :demo_items do/m, @controller_path)
|
71
71
|
end
|
72
72
|
|
73
|
-
should
|
73
|
+
it 'should generate controller with specified providers' do
|
74
74
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
75
75
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-f=:html, :js') }
|
76
76
|
assert_match_in_file(/SampleProject::App.controllers :demo_items, :provides => \[:html, :js\] do/m, @controller_path)
|
77
77
|
end
|
78
78
|
|
79
|
-
should
|
79
|
+
it 'should generate controller without specified providers' do
|
80
80
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
81
81
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-f=') }
|
82
82
|
assert_match_in_file(/SampleProject::App.controllers :demo_items do/m, @controller_path)
|
83
83
|
end
|
84
84
|
|
85
|
-
should
|
85
|
+
it 'should not fail if we do not have test component' do
|
86
86
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=none') }
|
87
87
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
|
88
88
|
assert_match_in_file(/SampleProject::App.controllers :demo_items do/m, @controller_path)
|
@@ -91,7 +91,7 @@ describe "ControllerGenerator" do
|
|
91
91
|
assert_no_file_exists("#{@apptmp}/sample_project/test")
|
92
92
|
end
|
93
93
|
|
94
|
-
should
|
94
|
+
it 'should generate controller test for bacon' do
|
95
95
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
96
96
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
97
97
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
@@ -99,7 +99,7 @@ describe "ControllerGenerator" do
|
|
99
99
|
assert_match_in_file(/describe "DemoItemsController" do/m, @controller_test_path.gsub('app','subby'))
|
100
100
|
end
|
101
101
|
|
102
|
-
should
|
102
|
+
it 'should generate controller test for riot' do
|
103
103
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=riot') }
|
104
104
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
105
105
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
@@ -107,7 +107,7 @@ describe "ControllerGenerator" do
|
|
107
107
|
assert_match_in_file(/context "DemoItemsController" do/m, @controller_test_path.gsub('app','subby'))
|
108
108
|
end
|
109
109
|
|
110
|
-
should
|
110
|
+
it 'should generate controller test for minitest' do
|
111
111
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=minitest') }
|
112
112
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
113
113
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
@@ -115,14 +115,14 @@ describe "ControllerGenerator" do
|
|
115
115
|
assert_match_in_file(/describe "DemoItemsController" do/m, @controller_test_path.gsub('app', 'subby'))
|
116
116
|
end
|
117
117
|
|
118
|
-
should
|
118
|
+
it 'should generate controller test for rspec' do
|
119
119
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
120
120
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
121
121
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
122
122
|
assert_match_in_file(/describe "DemoItemsController" do/m, "#{@apptmp}/sample_project/spec/subby/controllers/demo_items_controller_spec.rb")
|
123
123
|
end
|
124
124
|
|
125
|
-
should
|
125
|
+
it 'should generate controller test for shoulda' do
|
126
126
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda') }
|
127
127
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
128
128
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
@@ -132,7 +132,7 @@ describe "ControllerGenerator" do
|
|
132
132
|
assert_file_exists("#{@apptmp}/sample_project/test/subby/controllers/demo_items_controller_test.rb")
|
133
133
|
end
|
134
134
|
|
135
|
-
should
|
135
|
+
it 'should generate controller test for steak' do
|
136
136
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=steak') }
|
137
137
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
138
138
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
@@ -140,7 +140,7 @@ describe "ControllerGenerator" do
|
|
140
140
|
assert_match_in_file(/feature "DemoItemsController" do/m, "#{@apptmp}/sample_project/spec/subby/acceptance/controllers/demo_items_controller_spec.rb")
|
141
141
|
end
|
142
142
|
|
143
|
-
should
|
143
|
+
it 'should generate controller test for cucumber' do
|
144
144
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=cucumber') }
|
145
145
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
146
146
|
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
@@ -148,7 +148,7 @@ describe "ControllerGenerator" do
|
|
148
148
|
assert_match_in_file(/Capybara.app = /, "#{@apptmp}/sample_project/features/support/env.rb")
|
149
149
|
end
|
150
150
|
|
151
|
-
should
|
151
|
+
it 'should correctly generate file names' do
|
152
152
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
153
153
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
|
154
154
|
assert_file_exists("#{@apptmp}/sample_project/app/views/demo_items")
|
@@ -158,7 +158,7 @@ describe "ControllerGenerator" do
|
|
158
158
|
end
|
159
159
|
|
160
160
|
# Controller action generation
|
161
|
-
should
|
161
|
+
it 'should generate actions for get:test post:yada' do
|
162
162
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda') }
|
163
163
|
capture_io { generate(:controller, 'demo_items', "get:test", "post:yada","-r=#{@apptmp}/sample_project") }
|
164
164
|
assert_match_in_file(/get :test do\n\n end\n/m, @controller_path)
|
@@ -166,8 +166,8 @@ describe "ControllerGenerator" do
|
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
169
|
-
|
170
|
-
should
|
169
|
+
describe "the controller destroy option" do
|
170
|
+
it 'should destroy controller files' do
|
171
171
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
172
172
|
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project") }
|
173
173
|
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
|
@@ -176,7 +176,7 @@ describe "ControllerGenerator" do
|
|
176
176
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
177
177
|
end
|
178
178
|
|
179
|
-
should
|
179
|
+
it 'should destroy controller files with rspec' do
|
180
180
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
181
181
|
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project") }
|
182
182
|
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
|
@@ -185,7 +185,7 @@ describe "ControllerGenerator" do
|
|
185
185
|
assert_no_file_exists("#{@apptmp}/sample_project/spec/app/controllers/demo_items_controller_spec.rb")
|
186
186
|
end
|
187
187
|
|
188
|
-
should
|
188
|
+
it 'should destroy controller files in sub apps' do
|
189
189
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
190
190
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
191
191
|
capture_io { generate(:controller, 'demo_items',"-a=/subby","-r=#{@apptmp}/sample_project") }
|