padrino-gen 0.16.0.pre4 → 0.16.0
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.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/bin/padrino-gen +4 -4
- data/lib/padrino-gen/command.rb +2 -2
- data/lib/padrino-gen/generators/actions.rb +68 -64
- data/lib/padrino-gen/generators/app/app.rb.tt +6 -6
- data/lib/padrino-gen/generators/app.rb +19 -19
- data/lib/padrino-gen/generators/cli.rb +16 -19
- data/lib/padrino-gen/generators/component.rb +18 -19
- data/lib/padrino-gen/generators/components/actions.rb +42 -42
- data/lib/padrino-gen/generators/components/mocks/mocha.rb +7 -7
- data/lib/padrino-gen/generators/components/mocks/rr.rb +7 -7
- data/lib/padrino-gen/generators/components/orms/activerecord.rb +158 -156
- data/lib/padrino-gen/generators/components/orms/couchrest.rb +33 -33
- data/lib/padrino-gen/generators/components/orms/datamapper.rb +108 -103
- data/lib/padrino-gen/generators/components/orms/dynamoid.rb +40 -40
- data/lib/padrino-gen/generators/components/orms/minirecord.rb +114 -114
- data/lib/padrino-gen/generators/components/orms/mongoid.rb +65 -65
- data/lib/padrino-gen/generators/components/orms/mongomapper.rb +20 -20
- data/lib/padrino-gen/generators/components/orms/mongomatic.rb +63 -59
- data/lib/padrino-gen/generators/components/orms/ohm.rb +49 -47
- data/lib/padrino-gen/generators/components/orms/ripple.rb +45 -45
- data/lib/padrino-gen/generators/components/orms/sequel.rb +51 -46
- data/lib/padrino-gen/generators/components/renderers/erb.rb +1 -1
- data/lib/padrino-gen/generators/components/renderers/liquid.rb +1 -1
- data/lib/padrino-gen/generators/components/scripts/dojo.rb +6 -6
- data/lib/padrino-gen/generators/components/scripts/extcore.rb +6 -6
- data/lib/padrino-gen/generators/components/scripts/jquery.rb +6 -6
- data/lib/padrino-gen/generators/components/scripts/mootools.rb +6 -6
- data/lib/padrino-gen/generators/components/scripts/prototype.rb +8 -8
- data/lib/padrino-gen/generators/components/stylesheets/compass.rb +1 -1
- data/lib/padrino-gen/generators/components/stylesheets/less.rb +4 -4
- data/lib/padrino-gen/generators/components/tests/bacon.rb +66 -66
- data/lib/padrino-gen/generators/components/tests/cucumber.rb +61 -61
- data/lib/padrino-gen/generators/components/tests/minitest.rb +70 -70
- data/lib/padrino-gen/generators/components/tests/rspec.rb +74 -74
- data/lib/padrino-gen/generators/components/tests/shoulda.rb +72 -72
- data/lib/padrino-gen/generators/components/tests/testunit.rb +69 -69
- data/lib/padrino-gen/generators/controller.rb +16 -17
- data/lib/padrino-gen/generators/helper.rb +8 -9
- data/lib/padrino-gen/generators/mailer.rb +8 -9
- data/lib/padrino-gen/generators/migration.rb +6 -6
- data/lib/padrino-gen/generators/model.rb +20 -21
- data/lib/padrino-gen/generators/plugin.rb +9 -9
- data/lib/padrino-gen/generators/project/config/apps.rb.tt +4 -4
- data/lib/padrino-gen/generators/project/config/boot.rb +2 -2
- data/lib/padrino-gen/generators/project/config.ru +1 -1
- data/lib/padrino-gen/generators/project.rb +49 -51
- data/lib/padrino-gen/generators/runner.rb +25 -24
- data/lib/padrino-gen/generators/task.rb +7 -8
- data/lib/padrino-gen/generators/templates/Gemfile.tt +5 -5
- data/lib/padrino-gen/generators/templates/controller.rb.tt +3 -3
- data/lib/padrino-gen/generators/templates/mailer.rb.tt +15 -15
- data/lib/padrino-gen/generators/templates/project_bin.tt +1 -1
- data/lib/padrino-gen/generators/templates/task.rb.tt +1 -1
- data/lib/padrino-gen/padrino-tasks/activerecord.rb +152 -160
- data/lib/padrino-gen/padrino-tasks/database.rb +2 -2
- data/lib/padrino-gen/padrino-tasks/datamapper.rb +31 -31
- data/lib/padrino-gen/padrino-tasks/minirecord.rb +3 -3
- data/lib/padrino-gen/padrino-tasks/mongoid.rb +39 -41
- data/lib/padrino-gen/padrino-tasks/mongomapper.rb +18 -14
- data/lib/padrino-gen/padrino-tasks/sequel.rb +28 -28
- data/lib/padrino-gen/padrino-tasks/sql-helpers.rb +45 -45
- data/lib/padrino-gen.rb +4 -4
- data/padrino-gen.gemspec +19 -19
- data/test/fixtures/admin_template.rb +5 -5
- data/test/fixtures/database_template.rb +19 -22
- data/test/fixtures/example_template.rb +8 -8
- data/test/fixtures/git_template.rb +2 -2
- data/test/fixtures/plugin_template.rb +3 -3
- data/test/fixtures/rake_template.rb +5 -5
- data/test/helper.rb +23 -21
- data/test/test_app_generator.rb +13 -13
- data/test/test_cli.rb +4 -5
- data/test/test_component_generator.rb +17 -17
- data/test/test_controller_generator.rb +62 -63
- data/test/test_generator.rb +6 -6
- data/test/test_helper_generator.rb +23 -24
- data/test/test_mailer_generator.rb +7 -7
- data/test/test_migration_generator.rb +31 -31
- data/test/test_model_generator.rb +80 -80
- data/test/test_plugin_generator.rb +35 -36
- data/test/test_project_generator.rb +171 -169
- data/test/test_sql_helpers.rb +49 -50
- data/test/test_task_generator.rb +13 -13
- metadata +10 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative 'helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe 'ControllerGenerator' do
|
|
4
4
|
def setup
|
|
5
5
|
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
|
|
6
6
|
`mkdir -p #{@apptmp}`
|
|
@@ -17,14 +17,14 @@ describe "ControllerGenerator" do
|
|
|
17
17
|
|
|
18
18
|
describe 'the controller generator' do
|
|
19
19
|
it 'should fail outside app root' do
|
|
20
|
-
out,
|
|
20
|
+
out, = capture_io { generate(:controller, 'demo', "-r=#{@apptmp}") }
|
|
21
21
|
assert_match(/not at the root/, out)
|
|
22
22
|
assert_no_file_exists("#{@apptmp}/app/controllers/demo.rb")
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
it 'should fail with NameError if given invalid namespace names' do
|
|
26
|
-
capture_io { generate(:project,
|
|
27
|
-
assert_raises(::NameError) { capture_io { generate(:controller,
|
|
26
|
+
capture_io { generate(:project, 'sample', "--root=#{@apptmp}") }
|
|
27
|
+
assert_raises(::NameError) { capture_io { generate(:controller, 'wrong/name', "--root=#{@apptmp}/sample") } }
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it 'should generate controller within existing project' do
|
|
@@ -58,12 +58,12 @@ describe "ControllerGenerator" do
|
|
|
58
58
|
it 'should generate controller in specified app' do
|
|
59
59
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
60
60
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
61
|
-
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
62
|
-
assert_match_in_file(/SampleProject::Subby.controllers :demo_items do/m, @controller_path.gsub('app','subby'))
|
|
61
|
+
capture_io { generate(:controller, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
62
|
+
assert_match_in_file(/SampleProject::Subby.controllers :demo_items do/m, @controller_path.gsub('app', 'subby'))
|
|
63
63
|
assert_match_in_file(/helpers DemoItemsHelper/m, "#{@apptmp}/sample_project/subby/helpers/demo_items_helper.rb")
|
|
64
64
|
assert_dir_exists("#{@apptmp}/sample_project/subby/views/demo_items")
|
|
65
|
-
assert_match_in_file(
|
|
66
|
-
assert_match_in_file(
|
|
65
|
+
assert_match_in_file(%r{describe "/demo_items" do}m, @controller_test_path.gsub('app', 'subby'))
|
|
66
|
+
assert_match_in_file(%r{get "/demo_items"}m, @controller_test_path.gsub('app', 'subby'))
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
it 'should generate controller with specified layout' do
|
|
@@ -81,9 +81,9 @@ describe "ControllerGenerator" do
|
|
|
81
81
|
it 'should generate controller with specified parent' do
|
|
82
82
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
83
83
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-p=user') }
|
|
84
|
-
assert_match_in_file(/SampleProject::App.controllers :demo_items, :
|
|
85
|
-
assert_match_in_file(
|
|
86
|
-
assert_match_in_file(
|
|
84
|
+
assert_match_in_file(/SampleProject::App.controllers :demo_items, parent: :user do/m, @controller_path)
|
|
85
|
+
assert_match_in_file(%r{describe "/user/:user_id/demo_items" do}, @controller_test_path)
|
|
86
|
+
assert_match_in_file(%r{get "/user/1/demo_items"}, @controller_test_path)
|
|
87
87
|
end
|
|
88
88
|
|
|
89
89
|
it 'should generate controller without specified parent' do
|
|
@@ -95,7 +95,7 @@ describe "ControllerGenerator" do
|
|
|
95
95
|
it 'should generate controller with specified providers' do
|
|
96
96
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
97
97
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project", '-f=:html, :js') }
|
|
98
|
-
assert_match_in_file(/SampleProject::App.controllers :demo_items, :
|
|
98
|
+
assert_match_in_file(/SampleProject::App.controllers :demo_items, provides: \[:html, :js\] do/m, @controller_path)
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
it 'should generate controller without specified providers' do
|
|
@@ -116,76 +116,75 @@ describe "ControllerGenerator" do
|
|
|
116
116
|
it 'should generate controller test for bacon' do
|
|
117
117
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
118
118
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
119
|
-
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
120
|
-
capture_io { generate(:controller, 'UserItems','-a=/subby', "-r=#{@apptmp}/sample_project",
|
|
121
|
-
assert_match_in_file(
|
|
122
|
-
assert_match_in_file(
|
|
123
|
-
assert_match_in_file(
|
|
124
|
-
assert_match_in_file(
|
|
125
|
-
assert_match_in_file(
|
|
126
|
-
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
|
|
119
|
+
capture_io { generate(:controller, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
120
|
+
capture_io { generate(:controller, 'UserItems', '-a=/subby', "-r=#{@apptmp}/sample_project", '-p=user') }
|
|
121
|
+
assert_match_in_file(%r{(/\.\.){2}}m, @controller_test_path.gsub('app', 'subby'))
|
|
122
|
+
assert_match_in_file(%r{describe "/demo_items" do}m, @controller_test_path.gsub('app', 'subby'))
|
|
123
|
+
assert_match_in_file(%r{describe "/user/:user_id/user_items"}, @controller_with_parent_test_path.gsub('app', 'subby'))
|
|
124
|
+
assert_match_in_file(%r{get "/demo_items"}m, @controller_test_path.gsub('app', 'subby'))
|
|
125
|
+
assert_match_in_file(%r{get "/user/1/user_items"}m, @controller_with_parent_test_path.gsub('app', 'subby'))
|
|
126
|
+
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app', 'subby'))
|
|
127
127
|
end
|
|
128
128
|
|
|
129
129
|
it 'should generate controller test for minitest' do
|
|
130
130
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=minitest') }
|
|
131
131
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
132
|
-
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
133
|
-
capture_io { generate(:controller, 'UserItems','-a=/subby', "-r=#{@apptmp}/sample_project",
|
|
134
|
-
assert_match_in_file(
|
|
135
|
-
assert_match_in_file(
|
|
136
|
-
assert_match_in_file(
|
|
137
|
-
assert_match_in_file(
|
|
138
|
-
assert_match_in_file(
|
|
139
|
-
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
|
|
132
|
+
capture_io { generate(:controller, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
133
|
+
capture_io { generate(:controller, 'UserItems', '-a=/subby', "-r=#{@apptmp}/sample_project", '-p=user') }
|
|
134
|
+
assert_match_in_file(%r{(/\.\.){2}}m, @controller_test_path.gsub('app', 'subby'))
|
|
135
|
+
assert_match_in_file(%r{describe "/demo_items" do}m, @controller_test_path.gsub('app', 'subby'))
|
|
136
|
+
assert_match_in_file(%r{describe "/user/:user_id/user_items"}, @controller_with_parent_test_path.gsub('app', 'subby'))
|
|
137
|
+
assert_match_in_file(%r{get "/demo_items"}m, @controller_test_path.gsub('app', 'subby'))
|
|
138
|
+
assert_match_in_file(%r{get "/user/1/user_items"}m, @controller_with_parent_test_path.gsub('app', 'subby'))
|
|
139
|
+
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app', 'subby'))
|
|
140
140
|
end
|
|
141
141
|
|
|
142
142
|
it 'should generate controller test for rspec' do
|
|
143
143
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
|
144
144
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
145
|
-
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
146
|
-
capture_io { generate(:controller, 'UserItems','-a=/subby', "-r=#{@apptmp}/sample_project",
|
|
147
|
-
assert_match_in_file(
|
|
148
|
-
assert_match_in_file(
|
|
149
|
-
assert_match_in_file(
|
|
150
|
-
assert_match_in_file(
|
|
145
|
+
capture_io { generate(:controller, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
146
|
+
capture_io { generate(:controller, 'UserItems', '-a=/subby', "-r=#{@apptmp}/sample_project", '-p=user') }
|
|
147
|
+
assert_match_in_file(%r{describe "/demo_items" do}m, "#{@apptmp}/sample_project/spec/subby/controllers/demo_items_controller_spec.rb")
|
|
148
|
+
assert_match_in_file(%r{describe "/user/:user_id/user_items"}, "#{@apptmp}/sample_project/spec/subby/controllers/user_items_controller_spec.rb")
|
|
149
|
+
assert_match_in_file(%r{get "/demo_items"}m, "#{@apptmp}/sample_project/spec/subby/controllers/demo_items_controller_spec.rb")
|
|
150
|
+
assert_match_in_file(%r{get "/user/1/user_items"}m, "#{@apptmp}/sample_project/spec/subby/controllers/user_items_controller_spec.rb")
|
|
151
151
|
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, "#{@apptmp}/sample_project/spec/subby/helpers/demo_items_helper_spec.rb")
|
|
152
152
|
end
|
|
153
153
|
|
|
154
154
|
it 'should generate controller test for shoulda' do
|
|
155
155
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda') }
|
|
156
156
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
157
|
-
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
158
|
-
capture_io { generate(:controller, 'UserItems','-a=/subby', "-r=#{@apptmp}/sample_project",
|
|
157
|
+
capture_io { generate(:controller, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
158
|
+
capture_io { generate(:controller, 'UserItems', '-a=/subby', "-r=#{@apptmp}/sample_project", '-p=user') }
|
|
159
159
|
expected_pattern = /class DemoItemsControllerTest < Test::Unit::TestCase/m
|
|
160
160
|
expected_pattern2 = /class UserItemsControllerTest < Test::Unit::TestCase/m
|
|
161
|
-
assert_match_in_file(expected_pattern, @controller_test_path.gsub('app','subby'))
|
|
162
|
-
assert_match_in_file(
|
|
163
|
-
assert_match_in_file(expected_pattern2, @controller_with_parent_test_path.gsub('app','subby'))
|
|
164
|
-
assert_match_in_file(/context "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
|
|
165
|
-
assert_file_exists(@helper_test_path.gsub('app','subby'))
|
|
161
|
+
assert_match_in_file(expected_pattern, @controller_test_path.gsub('app', 'subby'))
|
|
162
|
+
assert_match_in_file(%r{(/\.\.){2}}m, @controller_test_path.gsub('app', 'subby'))
|
|
163
|
+
assert_match_in_file(expected_pattern2, @controller_with_parent_test_path.gsub('app', 'subby'))
|
|
164
|
+
assert_match_in_file(/context "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app', 'subby'))
|
|
165
|
+
assert_file_exists(@helper_test_path.gsub('app', 'subby'))
|
|
166
166
|
assert_file_exists("#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
|
|
167
167
|
end
|
|
168
168
|
|
|
169
169
|
it 'should generate controller test for cucumber' do
|
|
170
170
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=cucumber') }
|
|
171
171
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
172
|
-
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
173
|
-
capture_io { generate(:controller, 'UserItems','-a=/subby', "-r=#{@apptmp}/sample_project",
|
|
174
|
-
assert_match_in_file(
|
|
175
|
-
assert_match_in_file(
|
|
176
|
-
assert_match_in_file(
|
|
177
|
-
assert_match_in_file(
|
|
172
|
+
capture_io { generate(:controller, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
173
|
+
capture_io { generate(:controller, 'UserItems', '-a=/subby', "-r=#{@apptmp}/sample_project", '-p=user') }
|
|
174
|
+
assert_match_in_file(%r{describe "/demo_items" do}m, "#{@apptmp}/sample_project/spec/subby/controllers/demo_items_controller_spec.rb")
|
|
175
|
+
assert_match_in_file(%r{describe "/user/:user_id/user_items"}, "#{@apptmp}/sample_project/spec/subby/controllers/user_items_controller_spec.rb")
|
|
176
|
+
assert_match_in_file(%r{get "/demo_items"}m, "#{@apptmp}/sample_project/spec/subby/controllers/demo_items_controller_spec.rb")
|
|
177
|
+
assert_match_in_file(%r{get "/user/1/user_items"}m, "#{@apptmp}/sample_project/spec/subby/controllers/user_items_controller_spec.rb")
|
|
178
178
|
assert_match_in_file(/Capybara.app = /, "#{@apptmp}/sample_project/features/support/env.rb")
|
|
179
179
|
end
|
|
180
180
|
|
|
181
|
-
it
|
|
181
|
+
it 'should generate controller test for testunit' do
|
|
182
182
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=testunit') }
|
|
183
183
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
184
|
-
capture_io { generate(:controller, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
184
|
+
capture_io { generate(:controller, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
185
185
|
assert_match_in_file(/class DemoItemsControllerTest < Test::Unit::TestCase/m, "#{@apptmp}/sample_project/test/subby/controllers/demo_items_controller_test.rb")
|
|
186
186
|
end
|
|
187
187
|
|
|
188
|
-
|
|
189
188
|
it 'should correctly generate file names' do
|
|
190
189
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
|
191
190
|
capture_io { generate(:controller, 'DemoItems', "-r=#{@apptmp}/sample_project") }
|
|
@@ -199,7 +198,7 @@ describe "ControllerGenerator" do
|
|
|
199
198
|
# Controller action generation
|
|
200
199
|
it 'should generate actions for get:test post:yada' do
|
|
201
200
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda') }
|
|
202
|
-
capture_io { generate(:controller, 'demo_items',
|
|
201
|
+
capture_io { generate(:controller, 'demo_items', 'get:test', 'post:yada', "-r=#{@apptmp}/sample_project") }
|
|
203
202
|
assert_match_in_file(/get :test do\n\n end\n/m, @controller_path)
|
|
204
203
|
assert_match_in_file(/post :yada do\n\n end\n/m, @controller_path)
|
|
205
204
|
end
|
|
@@ -217,11 +216,11 @@ describe "ControllerGenerator" do
|
|
|
217
216
|
end
|
|
218
217
|
end
|
|
219
218
|
|
|
220
|
-
describe
|
|
219
|
+
describe 'the controller destroy option' do
|
|
221
220
|
it 'should destroy controller files' do
|
|
222
221
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
223
|
-
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project") }
|
|
224
|
-
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
|
|
222
|
+
capture_io { generate(:controller, 'demo_items', "-r=#{@apptmp}/sample_project") }
|
|
223
|
+
capture_io { generate(:controller, 'demo_items', "-r=#{@apptmp}/sample_project", '-d') }
|
|
225
224
|
assert_no_file_exists(@controller_path)
|
|
226
225
|
assert_no_file_exists(@controller_test_path)
|
|
227
226
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
|
@@ -229,8 +228,8 @@ describe "ControllerGenerator" do
|
|
|
229
228
|
|
|
230
229
|
it 'should destroy controller files with rspec' do
|
|
231
230
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
|
232
|
-
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project") }
|
|
233
|
-
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
|
|
231
|
+
capture_io { generate(:controller, 'demo_items', "-r=#{@apptmp}/sample_project") }
|
|
232
|
+
capture_io { generate(:controller, 'demo_items', "-r=#{@apptmp}/sample_project", '-d') }
|
|
234
233
|
assert_no_file_exists(@controller_path)
|
|
235
234
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
|
236
235
|
assert_no_file_exists("#{@apptmp}/sample_project/spec/app/controllers/demo_items_controller_spec.rb")
|
|
@@ -238,8 +237,8 @@ describe "ControllerGenerator" do
|
|
|
238
237
|
|
|
239
238
|
it 'should destroy helper files with rspec' do
|
|
240
239
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
|
241
|
-
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project") }
|
|
242
|
-
capture_io { generate(:controller, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
|
|
240
|
+
capture_io { generate(:controller, 'demo_items', "-r=#{@apptmp}/sample_project") }
|
|
241
|
+
capture_io { generate(:controller, 'demo_items', "-r=#{@apptmp}/sample_project", '-d') }
|
|
243
242
|
assert_no_file_exists(@controller_path)
|
|
244
243
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
|
245
244
|
assert_no_file_exists("#{@apptmp}/sample_project/spec/app/helpers/demo_items_helper_spec.rb")
|
|
@@ -248,10 +247,10 @@ describe "ControllerGenerator" do
|
|
|
248
247
|
it 'should destroy controller files in sub apps' do
|
|
249
248
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
250
249
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
251
|
-
capture_io { generate(:controller, 'demo_items',
|
|
252
|
-
capture_io { generate(:controller, 'demo_items',
|
|
253
|
-
assert_no_file_exists(@controller_path.gsub('app','subby'))
|
|
254
|
-
assert_no_file_exists(@controller_test_path.gsub('app','subby'))
|
|
250
|
+
capture_io { generate(:controller, 'demo_items', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
251
|
+
capture_io { generate(:controller, 'demo_items', '-a=/subby', "-r=#{@apptmp}/sample_project", '-d') }
|
|
252
|
+
assert_no_file_exists(@controller_path.gsub('app', 'subby'))
|
|
253
|
+
assert_no_file_exists(@controller_test_path.gsub('app', 'subby'))
|
|
255
254
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
|
256
255
|
end
|
|
257
256
|
end
|
data/test/test_generator.rb
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative 'helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
4
|
-
describe
|
|
3
|
+
describe 'Generator' do
|
|
4
|
+
describe 'the generator' do
|
|
5
5
|
it 'should have default generators' do
|
|
6
|
-
%w
|
|
7
|
-
assert Padrino::Generators.mappings.
|
|
6
|
+
%w[controller mailer migration model app plugin component task helper].each do |gen|
|
|
7
|
+
assert Padrino::Generators.mappings.key?(gen.to_sym)
|
|
8
8
|
assert_equal "Padrino::Generators::#{gen.camelize}", Padrino::Generators.mappings[gen.to_sym].name
|
|
9
|
-
|
|
9
|
+
assert_respond_to Padrino::Generators.mappings[gen.to_sym], :start
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative 'helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe 'HelperGenerator' do
|
|
4
4
|
def setup
|
|
5
5
|
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
|
|
6
6
|
`mkdir -p #{@apptmp}`
|
|
@@ -14,14 +14,14 @@ describe "HelperGenerator" do
|
|
|
14
14
|
|
|
15
15
|
describe 'the helper generator' do
|
|
16
16
|
it 'should fail outside app root' do
|
|
17
|
-
out,
|
|
17
|
+
out, = capture_io { generate(:helper, 'demo', "-r=#{@apptmp}") }
|
|
18
18
|
assert_match(/not at the root/, out)
|
|
19
19
|
assert_no_file_exists("#{@apptmp}/app/helpers/demo_helper.rb")
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
it 'should fail with NameError if given invalid namespace names' do
|
|
23
|
-
capture_io { generate(:project,
|
|
24
|
-
assert_raises(::NameError) { capture_io { generate(:helper,
|
|
23
|
+
capture_io { generate(:project, 'sample', "--root=#{@apptmp}") }
|
|
24
|
+
assert_raises(::NameError) { capture_io { generate(:helper, 'wrong/name', "--root=#{@apptmp}/sample") } }
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
it 'should generate helper within existing project' do
|
|
@@ -44,7 +44,7 @@ describe "HelperGenerator" do
|
|
|
44
44
|
it 'should generate helper in specified app' do
|
|
45
45
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
46
46
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
47
|
-
capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
47
|
+
capture_io { generate(:helper, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
48
48
|
assert_match_in_file(/helpers DemoItemsHelper/m, "#{@apptmp}/sample_project/subby/helpers/demo_items_helper.rb")
|
|
49
49
|
end
|
|
50
50
|
|
|
@@ -58,38 +58,37 @@ describe "HelperGenerator" do
|
|
|
58
58
|
it 'should generate helper test for bacon' do
|
|
59
59
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
60
60
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
61
|
-
capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
62
|
-
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
|
|
61
|
+
capture_io { generate(:helper, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
62
|
+
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app', 'subby'))
|
|
63
63
|
end
|
|
64
64
|
|
|
65
65
|
it 'should generate helper test for minitest' do
|
|
66
66
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=minitest') }
|
|
67
67
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
68
|
-
capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
69
|
-
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app','subby'))
|
|
68
|
+
capture_io { generate(:helper, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
69
|
+
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app', 'subby'))
|
|
70
70
|
end
|
|
71
71
|
|
|
72
72
|
it 'should generate helper test for rspec' do
|
|
73
73
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
|
74
74
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
75
|
-
capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
75
|
+
capture_io { generate(:helper, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
76
76
|
assert_match_in_file(/describe "SampleProject::Subby::DemoItemsHelper" do/m, "#{@apptmp}/sample_project/spec/subby/helpers/demo_items_helper_spec.rb")
|
|
77
77
|
end
|
|
78
78
|
|
|
79
79
|
it 'should generate helper test for shoulda' do
|
|
80
80
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda') }
|
|
81
81
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
82
|
-
capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
assert_file_exists(@helper_test_path.gsub('app','subby'))
|
|
82
|
+
capture_io { generate(:helper, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
83
|
+
assert_match_in_file(/context "SampleProject::Subby::DemoItemsHelper" do/m, @helper_test_path.gsub('app', 'subby'))
|
|
84
|
+
assert_file_exists(@helper_test_path.gsub('app', 'subby'))
|
|
86
85
|
assert_file_exists("#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
|
|
87
86
|
end
|
|
88
87
|
|
|
89
|
-
it
|
|
88
|
+
it 'should generate helper test for testunit' do
|
|
90
89
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=testunit', '--script=none') }
|
|
91
90
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
92
|
-
capture_io { generate(:helper, 'DemoItems','-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
91
|
+
capture_io { generate(:helper, 'DemoItems', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
93
92
|
assert_match_in_file(/class DemoItemsHelperTest < Test::Unit::TestCase/m, "#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
|
|
94
93
|
assert_match_in_file(/@helpers\.extend SampleProject::Subby::DemoItemsHelper/m, "#{@apptmp}/sample_project/test/subby/helpers/demo_items_helper_test.rb")
|
|
95
94
|
end
|
|
@@ -102,11 +101,11 @@ describe "HelperGenerator" do
|
|
|
102
101
|
end
|
|
103
102
|
end
|
|
104
103
|
|
|
105
|
-
describe
|
|
104
|
+
describe 'the helper destroy option' do
|
|
106
105
|
it 'should destroy helper files' do
|
|
107
106
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
108
|
-
capture_io { generate(:helper, 'demo_items',"-r=#{@apptmp}/sample_project") }
|
|
109
|
-
capture_io { generate(:helper, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
|
|
107
|
+
capture_io { generate(:helper, 'demo_items', "-r=#{@apptmp}/sample_project") }
|
|
108
|
+
capture_io { generate(:helper, 'demo_items', "-r=#{@apptmp}/sample_project", '-d') }
|
|
110
109
|
assert_no_file_exists(@helper_path)
|
|
111
110
|
assert_no_file_exists(@helper_test_path)
|
|
112
111
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
|
@@ -114,8 +113,8 @@ describe "HelperGenerator" do
|
|
|
114
113
|
|
|
115
114
|
it 'should destroy helper files with rspec' do
|
|
116
115
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec') }
|
|
117
|
-
capture_io { generate(:helper, 'demo_items',"-r=#{@apptmp}/sample_project") }
|
|
118
|
-
capture_io { generate(:helper, 'demo_items',"-r=#{@apptmp}/sample_project",'-d') }
|
|
116
|
+
capture_io { generate(:helper, 'demo_items', "-r=#{@apptmp}/sample_project") }
|
|
117
|
+
capture_io { generate(:helper, 'demo_items', "-r=#{@apptmp}/sample_project", '-d') }
|
|
119
118
|
assert_no_file_exists(@helper_path)
|
|
120
119
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
|
121
120
|
assert_no_file_exists("#{@apptmp}/sample_project/spec/app/helpers/demo_items_helper_spec.rb")
|
|
@@ -124,8 +123,8 @@ describe "HelperGenerator" do
|
|
|
124
123
|
it 'should destroy helper files in sub apps' do
|
|
125
124
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
126
125
|
capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
|
|
127
|
-
capture_io { generate(:helper, 'demo_items',
|
|
128
|
-
capture_io { generate(:helper, 'demo_items',
|
|
126
|
+
capture_io { generate(:helper, 'demo_items', '-a=/subby', "-r=#{@apptmp}/sample_project") }
|
|
127
|
+
capture_io { generate(:helper, 'demo_items', '-a=/subby', "-r=#{@apptmp}/sample_project", '-d') }
|
|
129
128
|
assert_no_file_exists("#{@apptmp}/sample_project/app/helpers/demo_items_helper.rb")
|
|
130
129
|
end
|
|
131
130
|
end
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative 'helper'
|
|
2
2
|
|
|
3
|
-
describe
|
|
3
|
+
describe 'MailerGenerator' do
|
|
4
4
|
def setup
|
|
5
5
|
@apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
|
|
6
6
|
`mkdir -p #{@apptmp}`
|
|
@@ -12,14 +12,14 @@ describe "MailerGenerator" do
|
|
|
12
12
|
|
|
13
13
|
describe 'the mailer generator' do
|
|
14
14
|
it 'should fail outside app root' do
|
|
15
|
-
out,
|
|
15
|
+
out, = capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}") }
|
|
16
16
|
assert_match(/not at the root/, out)
|
|
17
17
|
assert_no_file_exists('/tmp/app/mailers/demo_mailer.rb')
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
it 'should fail with NameError if given invalid namespace names' do
|
|
21
|
-
capture_io { generate(:project,
|
|
22
|
-
assert_raises(::NameError) { capture_io { generate(:mailer,
|
|
21
|
+
capture_io { generate(:project, 'sample', "--root=#{@apptmp}") }
|
|
22
|
+
assert_raises(::NameError) { capture_io { generate(:mailer, 'wrong/name', "--root=#{@apptmp}/sample") } }
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
it 'should generate mailer in specified app' do
|
|
@@ -62,11 +62,11 @@ describe "MailerGenerator" do
|
|
|
62
62
|
end
|
|
63
63
|
end
|
|
64
64
|
|
|
65
|
-
describe
|
|
65
|
+
describe 'the mailer destroy option' do
|
|
66
66
|
it 'should destroy mailer file' do
|
|
67
67
|
capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon') }
|
|
68
68
|
capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}/sample_project") }
|
|
69
|
-
capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}/sample_project",'-d') }
|
|
69
|
+
capture_io { generate(:mailer, 'demo', "-r=#{@apptmp}/sample_project", '-d') }
|
|
70
70
|
assert_no_dir_exists("#{@apptmp}/sample_project/app/views/demo")
|
|
71
71
|
assert_no_file_exists("#{@apptmp}/sample_project/app/mailers/demo.rb")
|
|
72
72
|
end
|