jumpstart 0.2.3 → 0.3.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.
- data/README.rdoc +0 -4
- data/config/jumpstart_version.yml +2 -2
- data/lib/jumpstart/base.rb +64 -10
- data/test/jumpstart/test_base.rb +1 -1
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -57,10 +57,6 @@ The last line of the source file (ignoring whitespace) will be removed, and then
|
|
57
57
|
Line templates insert their contents into a file at a specified line, pushing existing contents down the page. This is very handy. Say for example that you want to insert some extra configuration information into your new rails projects config/environments/development.rb at line 18. In your jumpstart template you would create a file called config/environments/_18._development.rb
|
58
58
|
If the file you specify doesn't have as many lines as you said it would, whitespace will be added until the specified number is reached.
|
59
59
|
|
60
|
-
== The JumpStart Command
|
61
|
-
|
62
|
-
== The JumpStart Menu
|
63
|
-
|
64
60
|
== Task Execution Order
|
65
61
|
Jumpstart tasks are executed in the order that the YAML options below are displayed.
|
66
62
|
|
data/lib/jumpstart/base.rb
CHANGED
@@ -200,8 +200,8 @@ module JumpStart
|
|
200
200
|
puts "\n\n******************************************************************************************************************************************\n\n"
|
201
201
|
puts " CREATE A NEW JUMPSTART PROJECT FROM AN EXISTING TEMPLATE\n\n".purple
|
202
202
|
puts " Type a number for the template that you want.\n\n"
|
203
|
-
count = 0
|
204
203
|
unless JumpStart.existing_templates.empty?
|
204
|
+
count = 0
|
205
205
|
JumpStart.existing_templates.each do |t|
|
206
206
|
count += 1
|
207
207
|
puts " #{count.to_s.yellow} #{t.green}"
|
@@ -240,19 +240,22 @@ module JumpStart
|
|
240
240
|
puts " CREATE A NEW JUMPSTART TEMPLATE\n".purple
|
241
241
|
puts " Existing templates:\n"
|
242
242
|
unless JumpStart.existing_templates.nil?
|
243
|
+
count = 0
|
243
244
|
JumpStart.existing_templates.each do |x|
|
244
|
-
|
245
|
+
count += 1
|
246
|
+
puts " #{count.to_s.yellow} #{x.green}\n"
|
245
247
|
end
|
246
248
|
end
|
247
249
|
puts "\n b".yellow + " Back to main menu."
|
248
|
-
puts "\n x".yellow + " Exit jumpstart\n
|
250
|
+
puts "\n x".yellow + " Exit jumpstart\n"
|
249
251
|
new_template_options
|
250
252
|
end
|
251
253
|
|
254
|
+
# TODO Write additional tests for new_template_options to test duplication feature.
|
252
255
|
# Captures user input for "create a new jumpstart template" menu and calls the appropriate action.
|
253
256
|
# If the template name provided meets the methods requirements then a directory of that name containing a jumpstart_config dir and matching yaml file are created.
|
254
257
|
def new_template_options
|
255
|
-
puts "\n Enter a unique name
|
258
|
+
puts "\n Enter a unique name to create a new template, or enter an existing templates name (or number) to duplicate it.".yellow
|
256
259
|
input = gets.chomp.strip
|
257
260
|
case
|
258
261
|
when input == "b"
|
@@ -260,22 +263,73 @@ module JumpStart
|
|
260
263
|
when input == "x"
|
261
264
|
exit_normal
|
262
265
|
when JumpStart.existing_templates.include?(input)
|
263
|
-
puts "
|
264
|
-
|
266
|
+
puts "\n You have chosen to duplicate the " + input.green + " template." + "\n Please enter a name for the duplicate.".yellow
|
267
|
+
duplicate_template(input)
|
268
|
+
when input.to_i != 0 && input.to_i <= JumpStart.existing_templates.count
|
269
|
+
puts "\n You have chosen to duplicate the " + JumpStart.existing_templates[(input.to_i - 1)].green + " template." + "\n Please enter a name for the duplicate.".yellow
|
270
|
+
duplicate_template(JumpStart.existing_templates[(input.to_i - 1)])
|
265
271
|
when input.length < 3
|
266
|
-
puts " The template name ".red + input.red_bold + " is too short. Please enter a name that is at least 3 characters long.".red
|
272
|
+
puts "\n The template name ".red + input.red_bold + " is too short. Please enter a name that is at least 3 characters long.".red
|
267
273
|
new_template_options
|
268
|
-
when input.match(/^\W
|
269
|
-
puts " The template name ".red + input.red_bold + " begins with an invalid character. Please enter a name that begins with a letter or a number.".red
|
274
|
+
when input.match(/^\W|\W$/)
|
275
|
+
puts "\n The template name ".red + input.red_bold + " begins or ends with an invalid character. Please enter a name that begins with a letter or a number.".red
|
270
276
|
new_template_options
|
271
277
|
else
|
272
278
|
FileUtils.mkdir_p(FileUtils.join_paths(JumpStart.templates_path, input, "jumpstart_config"))
|
273
279
|
FileUtils.cp(FileUtils.join_paths(ROOT_PATH, "source_templates/template_config.yml"), FileUtils.join_paths(JumpStart.templates_path, input, "jumpstart_config", "#{input}.yml"))
|
274
|
-
puts " The template ".green + input.green_bold + " has been created in your default jumpstart template directory ".green + JumpStart.templates_path.green_bold + " ready for editing.".green
|
280
|
+
puts "\n The template ".green + input.green_bold + " has been created in your default jumpstart template directory ".green + JumpStart.templates_path.green_bold + " ready for editing.".green
|
275
281
|
jumpstart_menu
|
276
282
|
end
|
277
283
|
end
|
278
284
|
|
285
|
+
# TODO Write tests for duplicate_template
|
286
|
+
# TODO Look at refactoring this.
|
287
|
+
def duplicate_template(template)
|
288
|
+
input = gets.chomp.strip
|
289
|
+
case
|
290
|
+
when input == "b"
|
291
|
+
jumpstart_menu
|
292
|
+
when input == "x"
|
293
|
+
exit_normal
|
294
|
+
when JumpStart.existing_templates.include?(input)
|
295
|
+
puts " The template ".red + input.red_bold + " already exists. Please enter a unique name for the duplicate.".red
|
296
|
+
duplicate_template(template)
|
297
|
+
when input.length < 3
|
298
|
+
puts " The template name ".red + input.red_bold + " is too short. Please enter a name that is at least 3 characters long.".red
|
299
|
+
duplicate_template(template)
|
300
|
+
when input.match(/^\W|\W$/)
|
301
|
+
puts " The template name ".red + input.red_bold + " begins or ends with an invalid character. Please enter a name that begins with a letter or a number.".red
|
302
|
+
duplicate_template(template)
|
303
|
+
else
|
304
|
+
FileUtils.mkdir_p(FileUtils.join_paths(JumpStart.templates_path, input, "jumpstart_config"))
|
305
|
+
FileUtils.touch(FileUtils.join_paths(JumpStart.templates_path, input, "jumpstart_config", "#{input}.yml"))
|
306
|
+
dirs, files = [], []
|
307
|
+
Find.find(FileUtils.join_paths(JumpStart.templates_path, template)) do |x|
|
308
|
+
case
|
309
|
+
when File.file?(x) && !x.match(/\/jumpstart_config\/*/)
|
310
|
+
files << x.sub(FileUtils.join_paths(JumpStart.templates_path, template), '')
|
311
|
+
when File.file?(x) && x.match(/\/jumpstart_config\/*/)
|
312
|
+
FileUtils.copy_file(x, FileUtils.join_paths(JumpStart.templates_path, input, "jumpstart_config", "#{input}.yml") )
|
313
|
+
when File.directory?(x)
|
314
|
+
dirs << x.sub(FileUtils.join_paths(JumpStart.templates_path, template), '')
|
315
|
+
end
|
316
|
+
end
|
317
|
+
dirs.each do |x|
|
318
|
+
unless x.length < 1
|
319
|
+
FileUtils.mkdir_p(FileUtils.join_paths(JumpStart.templates_path, input, x))
|
320
|
+
end
|
321
|
+
end
|
322
|
+
files.each do |x|
|
323
|
+
unless x.length < 0
|
324
|
+
FileUtils.cp(FileUtils.join_paths(JumpStart.templates_path, template, x), FileUtils.join_paths(JumpStart.templates_path, input, x))
|
325
|
+
end
|
326
|
+
end
|
327
|
+
puts "\n Duplication complete!".green_bold
|
328
|
+
puts " Template " + template.green + " has been duplicated to " + input.green
|
329
|
+
jumpstart_menu
|
330
|
+
end
|
331
|
+
end
|
332
|
+
|
279
333
|
# Displays output for the "jumpstart default template options menu"
|
280
334
|
def set_default_template_menu
|
281
335
|
puts "\n\n******************************************************************************************************************************************\n\n"
|
data/test/jumpstart/test_base.rb
CHANGED
@@ -493,7 +493,7 @@ class TestJumpstartBase < Test::Unit::TestCase
|
|
493
493
|
JumpStart.expects(:existing_templates).once
|
494
494
|
@test_project.expects(:new_template_options).once
|
495
495
|
@test_project.instance_eval {new_template_menu}
|
496
|
-
assert_equal "\n\n******************************************************************************************************************************************\n\n\e[1m\e[35m CREATE A NEW JUMPSTART TEMPLATE\n\e[0m\n Existing templates:\n\e[1m\e[33m\n b\e[0m Back to main menu.\n\e[1m\e[33m\n x\e[0m Exit jumpstart\n
|
496
|
+
assert_equal "\n\n******************************************************************************************************************************************\n\n\e[1m\e[35m CREATE A NEW JUMPSTART TEMPLATE\n\e[0m\n Existing templates:\n\e[1m\e[33m\n b\e[0m Back to main menu.\n\e[1m\e[33m\n x\e[0m Exit jumpstart\n", @test_project.output.string
|
497
497
|
end
|
498
498
|
|
499
499
|
end
|