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.
Files changed (86) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/bin/padrino-gen +4 -4
  4. data/lib/padrino-gen/command.rb +2 -2
  5. data/lib/padrino-gen/generators/actions.rb +68 -64
  6. data/lib/padrino-gen/generators/app/app.rb.tt +6 -6
  7. data/lib/padrino-gen/generators/app.rb +19 -19
  8. data/lib/padrino-gen/generators/cli.rb +16 -19
  9. data/lib/padrino-gen/generators/component.rb +18 -19
  10. data/lib/padrino-gen/generators/components/actions.rb +42 -42
  11. data/lib/padrino-gen/generators/components/mocks/mocha.rb +7 -7
  12. data/lib/padrino-gen/generators/components/mocks/rr.rb +7 -7
  13. data/lib/padrino-gen/generators/components/orms/activerecord.rb +158 -156
  14. data/lib/padrino-gen/generators/components/orms/couchrest.rb +33 -33
  15. data/lib/padrino-gen/generators/components/orms/datamapper.rb +108 -103
  16. data/lib/padrino-gen/generators/components/orms/dynamoid.rb +40 -40
  17. data/lib/padrino-gen/generators/components/orms/minirecord.rb +114 -114
  18. data/lib/padrino-gen/generators/components/orms/mongoid.rb +65 -65
  19. data/lib/padrino-gen/generators/components/orms/mongomapper.rb +20 -20
  20. data/lib/padrino-gen/generators/components/orms/mongomatic.rb +63 -59
  21. data/lib/padrino-gen/generators/components/orms/ohm.rb +49 -47
  22. data/lib/padrino-gen/generators/components/orms/ripple.rb +45 -45
  23. data/lib/padrino-gen/generators/components/orms/sequel.rb +51 -46
  24. data/lib/padrino-gen/generators/components/renderers/erb.rb +1 -1
  25. data/lib/padrino-gen/generators/components/renderers/liquid.rb +1 -1
  26. data/lib/padrino-gen/generators/components/scripts/dojo.rb +6 -6
  27. data/lib/padrino-gen/generators/components/scripts/extcore.rb +6 -6
  28. data/lib/padrino-gen/generators/components/scripts/jquery.rb +6 -6
  29. data/lib/padrino-gen/generators/components/scripts/mootools.rb +6 -6
  30. data/lib/padrino-gen/generators/components/scripts/prototype.rb +8 -8
  31. data/lib/padrino-gen/generators/components/stylesheets/compass.rb +1 -1
  32. data/lib/padrino-gen/generators/components/stylesheets/less.rb +4 -4
  33. data/lib/padrino-gen/generators/components/tests/bacon.rb +66 -66
  34. data/lib/padrino-gen/generators/components/tests/cucumber.rb +61 -61
  35. data/lib/padrino-gen/generators/components/tests/minitest.rb +70 -70
  36. data/lib/padrino-gen/generators/components/tests/rspec.rb +74 -74
  37. data/lib/padrino-gen/generators/components/tests/shoulda.rb +72 -72
  38. data/lib/padrino-gen/generators/components/tests/testunit.rb +69 -69
  39. data/lib/padrino-gen/generators/controller.rb +16 -17
  40. data/lib/padrino-gen/generators/helper.rb +8 -9
  41. data/lib/padrino-gen/generators/mailer.rb +8 -9
  42. data/lib/padrino-gen/generators/migration.rb +6 -6
  43. data/lib/padrino-gen/generators/model.rb +20 -21
  44. data/lib/padrino-gen/generators/plugin.rb +9 -9
  45. data/lib/padrino-gen/generators/project/config/apps.rb.tt +4 -4
  46. data/lib/padrino-gen/generators/project/config/boot.rb +2 -2
  47. data/lib/padrino-gen/generators/project/config.ru +1 -1
  48. data/lib/padrino-gen/generators/project.rb +49 -51
  49. data/lib/padrino-gen/generators/runner.rb +25 -24
  50. data/lib/padrino-gen/generators/task.rb +7 -8
  51. data/lib/padrino-gen/generators/templates/Gemfile.tt +5 -5
  52. data/lib/padrino-gen/generators/templates/controller.rb.tt +3 -3
  53. data/lib/padrino-gen/generators/templates/mailer.rb.tt +15 -15
  54. data/lib/padrino-gen/generators/templates/project_bin.tt +1 -1
  55. data/lib/padrino-gen/generators/templates/task.rb.tt +1 -1
  56. data/lib/padrino-gen/padrino-tasks/activerecord.rb +152 -160
  57. data/lib/padrino-gen/padrino-tasks/database.rb +2 -2
  58. data/lib/padrino-gen/padrino-tasks/datamapper.rb +31 -31
  59. data/lib/padrino-gen/padrino-tasks/minirecord.rb +3 -3
  60. data/lib/padrino-gen/padrino-tasks/mongoid.rb +39 -41
  61. data/lib/padrino-gen/padrino-tasks/mongomapper.rb +18 -14
  62. data/lib/padrino-gen/padrino-tasks/sequel.rb +28 -28
  63. data/lib/padrino-gen/padrino-tasks/sql-helpers.rb +45 -45
  64. data/lib/padrino-gen.rb +4 -4
  65. data/padrino-gen.gemspec +19 -19
  66. data/test/fixtures/admin_template.rb +5 -5
  67. data/test/fixtures/database_template.rb +19 -22
  68. data/test/fixtures/example_template.rb +8 -8
  69. data/test/fixtures/git_template.rb +2 -2
  70. data/test/fixtures/plugin_template.rb +3 -3
  71. data/test/fixtures/rake_template.rb +5 -5
  72. data/test/helper.rb +23 -21
  73. data/test/test_app_generator.rb +13 -13
  74. data/test/test_cli.rb +4 -5
  75. data/test/test_component_generator.rb +17 -17
  76. data/test/test_controller_generator.rb +62 -63
  77. data/test/test_generator.rb +6 -6
  78. data/test/test_helper_generator.rb +23 -24
  79. data/test/test_mailer_generator.rb +7 -7
  80. data/test/test_migration_generator.rb +31 -31
  81. data/test/test_model_generator.rb +80 -80
  82. data/test/test_plugin_generator.rb +35 -36
  83. data/test/test_project_generator.rb +171 -169
  84. data/test/test_sql_helpers.rb +49 -50
  85. data/test/test_task_generator.rb +13 -13
  86. metadata +10 -10
@@ -1,6 +1,6 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/helper')
1
+ require_relative 'helper'
2
2
 
3
- describe "ModelGenerator" do
3
+ describe 'ModelGenerator' do
4
4
  def setup
5
5
  @apptmp = "#{Dir.tmpdir}/padrino-tests/#{SecureRandom.hex}"
6
6
  `mkdir -p #{@apptmp}`
@@ -12,20 +12,20 @@ describe "ModelGenerator" do
12
12
 
13
13
  describe 'the model generator' do
14
14
  it 'should fail outside app root' do
15
- out, err = capture_io { generate(:model, 'user', "-r=#{@apptmp}") }
15
+ out, = capture_io { generate(:model, 'user', "-r=#{@apptmp}") }
16
16
  assert_match(/not at the root/, out)
17
17
  assert_no_file_exists('/tmp/models/user.rb')
18
18
  end
19
19
 
20
20
  it 'should generate filename properly' do
21
21
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
22
- capture_io { generate(:model, 'DemoItem', "name:string", "age", "email:string", "-r=#{@apptmp}/sample_project") }
22
+ capture_io { generate(:model, 'DemoItem', 'name:string', 'age', 'email:string', "-r=#{@apptmp}/sample_project") }
23
23
  assert_file_exists("#{@apptmp}/sample_project/models/demo_item.rb")
24
24
  end
25
25
 
26
26
  it 'should fail if field name is not acceptable' do
27
27
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
28
- out, err = capture_io { generate(:model, 'DemoItem', "re@l$ly:string","display-name:string", "age&year:datetime", "email_two:string", "-r=#{@apptmp}/sample_project") }
28
+ out, = capture_io { generate(:model, 'DemoItem', 're@l$ly:string', 'display-name:string', 'age&year:datetime', 'email_two:string', "-r=#{@apptmp}/sample_project") }
29
29
  assert_match(/Invalid field name:/, out)
30
30
  assert_match(/display-name:string/, out)
31
31
  assert_match(/age&year:datetime/, out)
@@ -42,7 +42,7 @@ describe "ModelGenerator" do
42
42
 
43
43
  it 'should not fail if we do not have test component' do
44
44
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--test=none', '-d=activerecord') }
45
- response_success = capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
45
+ capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
46
46
  assert_match_in_file(/class User < ActiveRecord::Base/m, "#{@apptmp}/sample_project/models/user.rb")
47
47
  assert_no_file_exists("#{@apptmp}/sample_project/test")
48
48
  end
@@ -50,15 +50,15 @@ describe "ModelGenerator" do
50
50
  it 'should generate model in specified app' do
51
51
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '-d=datamapper', '--script=none', '-t=bacon') }
52
52
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
53
- capture_io { generate(:model, 'Post', "body:string", '-a=/subby', "-r=#{@apptmp}/sample_project") }
53
+ capture_io { generate(:model, 'Post', 'body:string', '-a=/subby', "-r=#{@apptmp}/sample_project") }
54
54
  assert_match_in_file(/class Post\n\s+include DataMapper::Resource/m, "#{@apptmp}/sample_project/subby/models/post.rb")
55
55
  assert_match_in_file(/property :body, String/m, "#{@apptmp}/sample_project/subby/models/post.rb")
56
56
  assert_match_in_file(/migration 1, :create_posts do/m, "#{@apptmp}/sample_project/db/migrate/001_create_posts.rb")
57
- assert_match_in_file(/DataMapper.finalize/m,"#{@apptmp}/sample_project/config/boot.rb")
57
+ assert_match_in_file(/DataMapper.finalize/m, "#{@apptmp}/sample_project/config/boot.rb")
58
58
  end
59
59
 
60
60
  it 'should generate migration file versions properly' do
61
- capture_io { generate(:project, 'sample_project', "--migration_format=number", "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
61
+ capture_io { generate(:project, 'sample_project', '--migration_format=number', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
62
62
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
63
63
  capture_io { generate(:model, 'account', "-r=#{@apptmp}/sample_project") }
64
64
  capture_io { generate(:model, 'bank', "-r=#{@apptmp}/sample_project") }
@@ -68,55 +68,55 @@ describe "ModelGenerator" do
68
68
  end
69
69
 
70
70
  it 'should generate migration file versions properly when timestamped' do
71
- capture_io { generate(:project, 'sample_project', "--migration_format=timestamp", "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
71
+ capture_io { generate(:project, 'sample_project', '--migration_format=timestamp', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
72
72
 
73
- time = stop_time_for_test.utc.strftime("%Y%m%d%H%M%S")
73
+ time = stop_time_for_test.utc.strftime('%Y%m%d%H%M%S')
74
74
 
75
75
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
76
76
  assert_file_exists("#{@apptmp}/sample_project/db/migrate/#{time}_create_users.rb")
77
77
  end
78
78
 
79
79
  it 'should generate a default type value for fields' do
80
- current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
80
+ stop_time_for_test
81
81
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
82
- capture_io { generate(:model, 'friend', "name", "age:integer", "email", "-r=#{@apptmp}/sample_project") }
82
+ capture_io { generate(:model, 'friend', 'name', 'age:integer', 'email', "-r=#{@apptmp}/sample_project") }
83
83
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_create_friends.rb"
84
84
  assert_match_in_file(/class CreateFriends < ActiveRecord::Migration/m, migration_file_path)
85
- assert_match_in_file(/ create_table :friends/m, migration_file_path)
86
- assert_match_in_file(/ t.string :name/m, migration_file_path)
87
- assert_match_in_file(/ t.integer :age/m, migration_file_path)
88
- assert_match_in_file(/ t.string :email/m, migration_file_path)
89
- assert_match_in_file(/ drop_table :friends/m, migration_file_path)
85
+ assert_match_in_file(/ create_table :friends/m, migration_file_path)
86
+ assert_match_in_file(/ t.string :name/m, migration_file_path)
87
+ assert_match_in_file(/ t.integer :age/m, migration_file_path)
88
+ assert_match_in_file(/ t.string :email/m, migration_file_path)
89
+ assert_match_in_file(/ drop_table :friends/m, migration_file_path)
90
90
  end
91
91
 
92
92
  it 'should abort if model name already exists' do
93
- capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", "-d=activerecord") }
94
- out, err = capture_io { generate(:model, 'kernel', "--root=#{@apptmp}/sample_project") }
93
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '-d=activerecord') }
94
+ out, = capture_io { generate(:model, 'kernel', "--root=#{@apptmp}/sample_project") }
95
95
  assert_match(/Kernel already exists/, out)
96
96
  assert_no_file_exists("#{@apptmp}/sample_project/db/migrate/001_create_kernel.rb")
97
97
  assert_no_file_exists("#{@apptmp}/sample_project/models/kernel.rb")
98
98
  end
99
99
 
100
100
  it 'should abort if model name already exists in root' do
101
- capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", "-d=activerecord") }
101
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '-d=activerecord') }
102
102
  capture_io { generate(:app, 'user', "--root=#{@apptmp}/sample_project") }
103
- out, err = capture_io { generate_with_parts(:model, 'user', "--root=#{@apptmp}/sample_project", :apps => "user") }
103
+ out, = capture_io { generate_with_parts(:model, 'user', "--root=#{@apptmp}/sample_project", apps: 'user') }
104
104
  assert_file_exists("#{@apptmp}/sample_project/user/app.rb")
105
105
  assert_no_file_exists("#{@apptmp}/sample_project/models/user.rb")
106
106
  assert_match(/User already exists/, out)
107
107
  end
108
108
 
109
109
  it 'should generate model files if :force option is specified' do
110
- capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", "-d=activerecord") }
110
+ capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '-d=activerecord') }
111
111
  capture_io { generate(:app, 'user', "--root=#{@apptmp}/sample_project") }
112
- out, err = capture_io { generate_with_parts(:model, 'user', "--root=#{@apptmp}/sample_project", "--force", :apps => "user") }
112
+ capture_io { generate_with_parts(:model, 'user', "--root=#{@apptmp}/sample_project", '--force', apps: 'user') }
113
113
  assert_file_exists("#{@apptmp}/sample_project/user/app.rb")
114
114
  assert_file_exists("#{@apptmp}/sample_project/models/user.rb")
115
115
  end
116
116
  end
117
117
 
118
118
  # ACTIVERECORD
119
- describe "model generator using activerecord" do
119
+ describe 'model generator using activerecord' do
120
120
  it 'should add activerecord middleware' do
121
121
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=activerecord') }
122
122
  assert_match_in_file(/ use ConnectionPoolManagement/m, "#{@apptmp}/sample_project/app/app.rb")
@@ -137,7 +137,7 @@ describe "ModelGenerator" do
137
137
  end
138
138
 
139
139
  it 'should generate migration file with no fields' do
140
- current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
140
+ stop_time_for_test
141
141
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
142
142
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
143
143
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_create_users.rb"
@@ -147,9 +147,9 @@ describe "ModelGenerator" do
147
147
  end
148
148
 
149
149
  it 'should generate migration file with given fields' do
150
- current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
150
+ stop_time_for_test
151
151
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
152
- capture_io { generate(:model, 'friend', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
152
+ capture_io { generate(:model, 'friend', 'name:string', 'age:integer', 'email:string', "-r=#{@apptmp}/sample_project") }
153
153
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_create_friends.rb"
154
154
  assert_match_in_file(/class CreateFriends < ActiveRecord::Migration/m, migration_file_path)
155
155
  assert_match_in_file(/ create_table :friends/m, migration_file_path)
@@ -161,7 +161,7 @@ describe "ModelGenerator" do
161
161
  end
162
162
 
163
163
  # MINIRECORD
164
- describe "model generator using minirecord" do
164
+ describe 'model generator using minirecord' do
165
165
  it 'should generate hooks for auto upgrade' do
166
166
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=minirecord') }
167
167
  assert_match_in_file(
@@ -180,9 +180,9 @@ describe "ModelGenerator" do
180
180
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=minirecord') }
181
181
  capture_io { generate(:model, 'user', 'name:string', 'surname:string', 'age:integer', "-r=#{@apptmp}/sample_project") }
182
182
  assert_match_in_file(/class User < ActiveRecord::Base/m, "#{@apptmp}/sample_project/models/user.rb")
183
- assert_match_in_file(/field :name, :as => :string/m, "#{@apptmp}/sample_project/models/user.rb")
184
- assert_match_in_file(/field :surname, :as => :string/m, "#{@apptmp}/sample_project/models/user.rb")
185
- assert_match_in_file(/field :age, :as => :integer/m, "#{@apptmp}/sample_project/models/user.rb")
183
+ assert_match_in_file(/field :name, as: :string/m, "#{@apptmp}/sample_project/models/user.rb")
184
+ assert_match_in_file(/field :surname, as: :string/m, "#{@apptmp}/sample_project/models/user.rb")
185
+ assert_match_in_file(/field :age, as: :integer/m, "#{@apptmp}/sample_project/models/user.rb")
186
186
  end
187
187
 
188
188
  it 'should generate model file with camelized name' do
@@ -194,7 +194,7 @@ describe "ModelGenerator" do
194
194
  end
195
195
 
196
196
  # COUCHREST
197
- describe "model generator using couchrest" do
197
+ describe 'model generator using couchrest' do
198
198
  it 'should generate model file with no properties' do
199
199
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
200
200
  capture_io { generate(:model, 'user', "-r=#{@apptmp}/sample_project") }
@@ -204,7 +204,7 @@ describe "ModelGenerator" do
204
204
 
205
205
  it 'should generate model file with given fields' do
206
206
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=couchrest') }
207
- capture_io { generate(:model, 'person', "name:string", "age", "email:string", "-r=#{@apptmp}/sample_project") }
207
+ capture_io { generate(:model, 'person', 'name:string', 'age', 'email:string', "-r=#{@apptmp}/sample_project") }
208
208
  assert_match_in_file(/class Person < CouchRest::Model::Base/m, "#{@apptmp}/sample_project/models/person.rb")
209
209
  assert_match_in_file(/property :name/m, "#{@apptmp}/sample_project/models/person.rb")
210
210
  assert_match_in_file(/property :age/m, "#{@apptmp}/sample_project/models/person.rb")
@@ -213,7 +213,7 @@ describe "ModelGenerator" do
213
213
  end
214
214
 
215
215
  # DATAMAPPER
216
- describe "model generator using datamapper" do
216
+ describe 'model generator using datamapper' do
217
217
  it 'should add activerecord middleware' do
218
218
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
219
219
  assert_match_in_file(/ use IdentityMap/m, "#{@apptmp}/sample_project/app/app.rb")
@@ -229,7 +229,7 @@ describe "ModelGenerator" do
229
229
 
230
230
  it 'should generate model file with fields' do
231
231
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
232
- capture_io { generate(:model, 'user', "name:string", "age:integer", "created_at:datetime", "-r=#{@apptmp}/sample_project") }
232
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'created_at:datetime', "-r=#{@apptmp}/sample_project") }
233
233
  assert_match_in_file(/class User\n\s+include DataMapper::Resource/m, "#{@apptmp}/sample_project/models/user.rb")
234
234
  assert_match_in_file(/property :name, String/m, "#{@apptmp}/sample_project/models/user.rb")
235
235
  assert_match_in_file(/property :age, Integer/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -238,9 +238,9 @@ describe "ModelGenerator" do
238
238
 
239
239
  it 'should properly generate version numbers' do
240
240
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
241
- capture_io { generate(:model, 'user', "name:string", "age:integer", "created_at:datetime", "-r=#{@apptmp}/sample_project") }
242
- capture_io { generate(:model, 'friend', "name:string", "age:integer", "created_at:datetime", "-r=#{@apptmp}/sample_project") }
243
- capture_io { generate(:model, 'account', "name:string", "age:integer", "created_at:datetime", "-r=#{@apptmp}/sample_project") }
241
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'created_at:datetime', "-r=#{@apptmp}/sample_project") }
242
+ capture_io { generate(:model, 'friend', 'name:string', 'age:integer', 'created_at:datetime', "-r=#{@apptmp}/sample_project") }
243
+ capture_io { generate(:model, 'account', 'name:string', 'age:integer', 'created_at:datetime', "-r=#{@apptmp}/sample_project") }
244
244
  assert_match_in_file(/class User\n\s+include DataMapper::Resource/m, "#{@apptmp}/sample_project/models/user.rb")
245
245
  assert_match_in_file(/migration 1, :create_users do/m, "#{@apptmp}/sample_project/db/migrate/001_create_users.rb")
246
246
  assert_match_in_file(/class Friend\n\s+include DataMapper::Resource/m, "#{@apptmp}/sample_project/models/friend.rb")
@@ -250,9 +250,9 @@ describe "ModelGenerator" do
250
250
  end
251
251
 
252
252
  it 'should generate migration with given fields' do
253
- current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
253
+ stop_time_for_test
254
254
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=datamapper') }
255
- capture_io { generate(:model, 'friend', "name:string", "created_at:date_time", "email:string", "-r=#{@apptmp}/sample_project") }
255
+ capture_io { generate(:model, 'friend', 'name:string', 'created_at:date_time', 'email:string', "-r=#{@apptmp}/sample_project") }
256
256
  assert_match_in_file(/class Friend\n\s+include DataMapper::Resource/m, "#{@apptmp}/sample_project/models/friend.rb")
257
257
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_create_friends.rb"
258
258
  assert_match_in_file(/migration 1, :create_friends do/m, migration_file_path)
@@ -265,10 +265,10 @@ describe "ModelGenerator" do
265
265
  end
266
266
 
267
267
  # SEQUEL
268
- describe "model generator using sequel" do
268
+ describe 'model generator using sequel' do
269
269
  it 'should generate model file with given properties' do
270
270
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=sequel') }
271
- capture_io { generate(:model, 'user', "name:string", "age:integer", "created:datetime", "-r=#{@apptmp}/sample_project") }
271
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'created:datetime', "-r=#{@apptmp}/sample_project") }
272
272
  assert_match_in_file(/class User < Sequel::Model/m, "#{@apptmp}/sample_project/models/user.rb")
273
273
  end
274
274
 
@@ -280,22 +280,22 @@ describe "ModelGenerator" do
280
280
  end
281
281
 
282
282
  it 'should generate migration file with given properties' do
283
- current_time = stop_time_for_test.strftime("%Y%m%d%H%M%S")
283
+ stop_time_for_test
284
284
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=sequel') }
285
- capture_io { generate(:model, 'friend', "name:string", "age:integer", "created:datetime", "-r=#{@apptmp}/sample_project") }
285
+ capture_io { generate(:model, 'friend', 'name:string', 'age:integer', 'created:datetime', "-r=#{@apptmp}/sample_project") }
286
286
  migration_file_path = "#{@apptmp}/sample_project/db/migrate/001_create_friends.rb"
287
287
  assert_match_in_file(/class Friend < Sequel::Model/m, "#{@apptmp}/sample_project/models/friend.rb")
288
- assert_match_in_file(/Sequel\.migration do/m, migration_file_path)
288
+ assert_match_in_file(/Sequel\.migration do/m, migration_file_path)
289
289
  assert_match_in_file(/create_table :friends/m, migration_file_path)
290
- assert_match_in_file(/String :name/m, migration_file_path)
291
- assert_match_in_file(/Integer :age/m, migration_file_path)
292
- assert_match_in_file(/DateTime :created/m, migration_file_path)
293
- assert_match_in_file(/drop_table :friends/m, migration_file_path)
290
+ assert_match_in_file(/String :name/m, migration_file_path)
291
+ assert_match_in_file(/Integer :age/m, migration_file_path)
292
+ assert_match_in_file(/DateTime :created/m, migration_file_path)
293
+ assert_match_in_file(/drop_table :friends/m, migration_file_path)
294
294
  end
295
295
  end
296
296
 
297
297
  # MONGODB
298
- describe "model generator using mongomapper" do
298
+ describe 'model generator using mongomapper' do
299
299
  it 'should generate model file with no properties' do
300
300
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomapper') }
301
301
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
@@ -306,7 +306,7 @@ describe "ModelGenerator" do
306
306
 
307
307
  it 'should generate model file with given fields' do
308
308
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomapper') }
309
- capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
309
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'email:string', "-r=#{@apptmp}/sample_project") }
310
310
  assert_match_in_file(/class User\n\s+include MongoMapper::Document/m, "#{@apptmp}/sample_project/models/user.rb")
311
311
  assert_match_in_file(/key :name, String/m, "#{@apptmp}/sample_project/models/user.rb")
312
312
  assert_match_in_file(/key :age, Integer/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -315,26 +315,26 @@ describe "ModelGenerator" do
315
315
  end
316
316
  end
317
317
 
318
- describe "model generator using mongoid" do
318
+ describe 'model generator using mongoid' do
319
319
  it 'should generate model file with no properties' do
320
320
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongoid') }
321
321
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
322
322
  assert_match_in_file(/class Person\n\s+include Mongoid::Document/m, "#{@apptmp}/sample_project/models/person.rb")
323
- assert_match_in_file(/# field <name>, :type => <type>, :default => <value>/m, "#{@apptmp}/sample_project/models/person.rb")
323
+ assert_match_in_file(/# field <name>, type: <type>, default: <value>/m, "#{@apptmp}/sample_project/models/person.rb")
324
324
  end
325
325
 
326
326
  it 'should generate model file with given fields' do
327
327
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongoid') }
328
- capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
328
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'email:string', "-r=#{@apptmp}/sample_project") }
329
329
  assert_match_in_file(/class User\n\s+include Mongoid::Document/m, "#{@apptmp}/sample_project/models/user.rb")
330
- assert_match_in_file(/field :name, :type => String/m, "#{@apptmp}/sample_project/models/user.rb")
331
- assert_match_in_file(/field :age, :type => Integer/m, "#{@apptmp}/sample_project/models/user.rb")
332
- assert_match_in_file(/field :email, :type => String/m, "#{@apptmp}/sample_project/models/user.rb")
330
+ assert_match_in_file(/field :name, type: String/m, "#{@apptmp}/sample_project/models/user.rb")
331
+ assert_match_in_file(/field :age, type: Integer/m, "#{@apptmp}/sample_project/models/user.rb")
332
+ assert_match_in_file(/field :email, type: String/m, "#{@apptmp}/sample_project/models/user.rb")
333
333
  end
334
334
  end
335
335
 
336
336
  # REDIS
337
- describe "model generator using ohm" do
337
+ describe 'model generator using ohm' do
338
338
  it 'should generate model file with no properties' do
339
339
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ohm') }
340
340
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
@@ -345,7 +345,7 @@ describe "ModelGenerator" do
345
345
 
346
346
  it 'should generate model file with given fields' do
347
347
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ohm') }
348
- capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
348
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'email:string', "-r=#{@apptmp}/sample_project") }
349
349
  assert_match_in_file(/class User < Ohm::Model/, "#{@apptmp}/sample_project/models/user.rb")
350
350
  assert_match_in_file(/attribute :name/m, "#{@apptmp}/sample_project/models/user.rb")
351
351
  assert_match_in_file(/attribute :age/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -354,7 +354,7 @@ describe "ModelGenerator" do
354
354
  end
355
355
 
356
356
  # MONGOMATIC
357
- describe "model generator using mongomatic" do
357
+ describe 'model generator using mongomatic' do
358
358
  it 'should generate model file with no properties' do
359
359
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomatic') }
360
360
  capture_io { generate(:model, 'person', "-r=#{@apptmp}/sample_project") }
@@ -364,7 +364,7 @@ describe "ModelGenerator" do
364
364
 
365
365
  it 'should generate model file with given fields' do
366
366
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=mongomatic') }
367
- capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
367
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'email:string', "-r=#{@apptmp}/sample_project") }
368
368
  assert_match_in_file(/class User < Mongomatic::Base/, "#{@apptmp}/sample_project/models/user.rb")
369
369
  assert_match_in_file(/include Mongomatic::Expectations::Helper/, "#{@apptmp}/sample_project/models/user.rb")
370
370
  assert_match_in_file(/be_present self\['name'\]/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -375,10 +375,10 @@ describe "ModelGenerator" do
375
375
  end
376
376
 
377
377
  # RIPPLE
378
- describe "model generator using ripple" do
378
+ describe 'model generator using ripple' do
379
379
  it 'should generate model file with no properties' do
380
380
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ripple') }
381
- capture_io { generate(:model, 'person', "name:string", "-r=#{@apptmp}/sample_project") }
381
+ capture_io { generate(:model, 'person', 'name:string', "-r=#{@apptmp}/sample_project") }
382
382
  assert_match_in_file(/class Person\n\s+include Ripple::Document/m, "#{@apptmp}/sample_project/models/person.rb")
383
383
  assert_match_in_file(/# property :name, String/m, "#{@apptmp}/sample_project/models/person.rb")
384
384
  assert_match_in_file(/# many :addresses/m, "#{@apptmp}/sample_project/models/person.rb")
@@ -387,7 +387,7 @@ describe "ModelGenerator" do
387
387
 
388
388
  it 'should generate model file with given fields' do
389
389
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=ripple') }
390
- capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
390
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'email:string', "-r=#{@apptmp}/sample_project") }
391
391
  assert_match_in_file(/class User\n\s+include Ripple::Document/m, "#{@apptmp}/sample_project/models/user.rb")
392
392
  assert_match_in_file(/property :name, String/m, "#{@apptmp}/sample_project/models/user.rb")
393
393
  assert_match_in_file(/property :age, Integer/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -396,16 +396,16 @@ describe "ModelGenerator" do
396
396
  end
397
397
 
398
398
  # DYNAMOID
399
- describe "model generator using dynamoid" do
399
+ describe 'model generator using dynamoid' do
400
400
  it 'should generate model file with no properties' do
401
401
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=dynamoid') }
402
- capture_io { generate(:model, 'person', "name:string", "-r=#{@apptmp}/sample_project") }
402
+ capture_io { generate(:model, 'person', 'name:string', "-r=#{@apptmp}/sample_project") }
403
403
  assert_match_in_file(/class Person\n\s+include Dynamoid::Document/m, "#{@apptmp}/sample_project/models/person.rb")
404
404
  end
405
405
 
406
406
  it 'should generate model file with given fields' do
407
407
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-d=dynamoid') }
408
- capture_io { generate(:model, 'user', "name:string", "age:integer", "email:string", "-r=#{@apptmp}/sample_project") }
408
+ capture_io { generate(:model, 'user', 'name:string', 'age:integer', 'email:string', "-r=#{@apptmp}/sample_project") }
409
409
  assert_match_in_file(/class User\n\s+include Dynamoid::Document/m, "#{@apptmp}/sample_project/models/user.rb")
410
410
  assert_match_in_file(/field :name, :string/m, "#{@apptmp}/sample_project/models/user.rb")
411
411
  assert_match_in_file(/field :age, :integer/m, "#{@apptmp}/sample_project/models/user.rb")
@@ -413,7 +413,7 @@ describe "ModelGenerator" do
413
413
  end
414
414
  end
415
415
 
416
- describe "model generator testing files" do
416
+ describe 'model generator testing files' do
417
417
  # BACON
418
418
  it 'should generate test file for bacon' do
419
419
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
@@ -422,17 +422,17 @@ describe "ModelGenerator" do
422
422
  assert_match_in_file(/describe "SomeUser Model"/m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
423
423
  assert_match_in_file(/@some_user = SomeUser.new/m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
424
424
  assert_match_in_file(/@some_user\.should\.not\.be\.nil/m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
425
- assert_match_in_file(/'(\/\.\.){1}\/test/m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
425
+ assert_match_in_file(%r{"\#\{__dir__\}(/\.\.){1}/test}m, "#{@apptmp}/sample_project/test/models/some_user_test.rb")
426
426
  end
427
427
 
428
428
  it 'should generate test file for bacon in specified app' do
429
429
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
430
430
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
431
- capture_io { generate(:model, 'SomeUser', "-a=/subby", "-r=#{@apptmp}/sample_project") }
431
+ capture_io { generate(:model, 'SomeUser', '-a=/subby', "-r=#{@apptmp}/sample_project") }
432
432
  assert_match_in_file(/describe "SomeUser Model"/m, "#{@apptmp}/sample_project/test/subby/models/some_user_test.rb")
433
433
  assert_match_in_file(/@some_user = SomeUser.new/m, "#{@apptmp}/sample_project/test/subby/models/some_user_test.rb")
434
434
  assert_match_in_file(/@some_user\.should\.not\.be\.nil/m, "#{@apptmp}/sample_project/test/subby/models/some_user_test.rb")
435
- assert_match_in_file(/'(\/\.\.){2}\/test/m, "#{@apptmp}/sample_project/test/subby/models/some_user_test.rb")
435
+ assert_match_in_file(%r{"\#\{__dir__\}(/\.\.){2}/test}m, "#{@apptmp}/sample_project/test/subby/models/some_user_test.rb")
436
436
  end
437
437
 
438
438
  # MINITEST
@@ -447,7 +447,7 @@ describe "ModelGenerator" do
447
447
  it 'should generate test file for minitest in specified app' do
448
448
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=minitest', '-d=activerecord') }
449
449
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
450
- capture_io { generate(:model, 'SomeUser', "-a=/subby", "-r=#{@apptmp}/sample_project") }
450
+ capture_io { generate(:model, 'SomeUser', '-a=/subby', "-r=#{@apptmp}/sample_project") }
451
451
  assert_match_in_file(/describe "SomeUser Model"/m, "#{@apptmp}/sample_project/test/subby/models/some_user_test.rb")
452
452
  assert_match_in_file(/refute_nil @some_user/m, "#{@apptmp}/sample_project/test/subby/models/some_user_test.rb")
453
453
  end
@@ -465,7 +465,7 @@ describe "ModelGenerator" do
465
465
  it 'should generate test file for rspec in specified app' do
466
466
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=rspec', '-d=activerecord') }
467
467
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
468
- capture_io { generate(:model, 'SomeUser', "-a=/subby", "-r=#{@apptmp}/sample_project") }
468
+ capture_io { generate(:model, 'SomeUser', '-a=/subby', "-r=#{@apptmp}/sample_project") }
469
469
  assert_match_in_file(/describe SomeUser do/m, "#{@apptmp}/sample_project/spec/subby/models/some_user_spec.rb")
470
470
  # assert_match_in_file(/let\(:some_user\) \{ SomeUser.new \}/m, "#{@apptmp}/sample_project/spec/subby/models/some_user_spec.rb")
471
471
  # assert_match_in_file(/some_user\.should_not be_nil/m, "#{@apptmp}/sample_project/spec/subby/models/some_user_spec.rb")
@@ -480,22 +480,22 @@ describe "ModelGenerator" do
480
480
  assert_match_in_file(/context "SomePerson Model"/m, "#{@apptmp}/sample_project/test/models/some_person_test.rb")
481
481
  assert_match_in_file(/@some_person = SomePerson.new/m, "#{@apptmp}/sample_project/test/models/some_person_test.rb")
482
482
  assert_match_in_file(/assert_not_nil @some_person/m, "#{@apptmp}/sample_project/test/models/some_person_test.rb")
483
- assert_match_in_file(/'(\/\.\.){1}\/test/m, "#{@apptmp}/sample_project/test/models/some_person_test.rb")
483
+ assert_match_in_file(%r{"\#\{__dir__\}(/\.\.){1}/test}m, "#{@apptmp}/sample_project/test/models/some_person_test.rb")
484
484
  end
485
485
 
486
486
  it 'should generate test file for shoulda in specified app' do
487
487
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=shoulda', '-d=activerecord') }
488
488
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
489
- capture_io { generate(:model, 'SomePerson', "-a=/subby", "-r=#{@apptmp}/sample_project") }
489
+ capture_io { generate(:model, 'SomePerson', '-a=/subby', "-r=#{@apptmp}/sample_project") }
490
490
  assert_match_in_file(/class SomePersonTest < Test::Unit::TestCase/m, "#{@apptmp}/sample_project/test/subby/models/some_person_test.rb")
491
491
  assert_match_in_file(/context "SomePerson Model"/m, "#{@apptmp}/sample_project/test/subby/models/some_person_test.rb")
492
492
  assert_match_in_file(/@some_person = SomePerson.new/m, "#{@apptmp}/sample_project/test/subby/models/some_person_test.rb")
493
493
  assert_match_in_file(/assert_not_nil @some_person/m, "#{@apptmp}/sample_project/test/subby/models/some_person_test.rb")
494
- assert_match_in_file(/'(\/\.\.){2}\/test/m, "#{@apptmp}/sample_project/test/subby/models/some_person_test.rb")
494
+ assert_match_in_file(%r{"\#\{__dir__\}(/\.\.){2}/test}m, "#{@apptmp}/sample_project/test/subby/models/some_person_test.rb")
495
495
  end
496
496
  end
497
497
 
498
- describe "the model destroy option" do
498
+ describe 'the model destroy option' do
499
499
  module ActiveRecord
500
500
  Base = Class.new
501
501
  end
@@ -519,8 +519,8 @@ describe "ModelGenerator" do
519
519
  it 'should destroy the model test file in a sub app' do
520
520
  capture_io { generate(:project, 'sample_project', "--root=#{@apptmp}", '--script=none', '-t=bacon', '-d=activerecord') }
521
521
  capture_io { generate(:app, 'subby', "-r=#{@apptmp}/sample_project") }
522
- capture_io { generate(:model, 'User', "-a=/subby","-r=#{@apptmp}/sample_project") }
523
- capture_io { generate_with_parts(:model, 'User', "-a=/subby","-r=#{@apptmp}/sample_project", '-d', :apps => "subby") }
522
+ capture_io { generate(:model, 'User', '-a=/subby', "-r=#{@apptmp}/sample_project") }
523
+ capture_io { generate_with_parts(:model, 'User', '-a=/subby', "-r=#{@apptmp}/sample_project", '-d', apps: 'subby') }
524
524
  assert_no_file_exists("#{@apptmp}/sample_project/subby/models/user.rb")
525
525
  assert_no_file_exists("#{@apptmp}/sample_project/test/subby/models/user_test.rb")
526
526
  assert_no_file_exists("#{@apptmp}/sample_project/db/migrate/001_create_users.rb")