jumpstart 0.4.0 → 0.5.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.
@@ -139,7 +139,7 @@ Can be omitted or left blank.
139
139
  List files that you would like to perform string substitution on. This can be useful for populating files such as a capistrano deploy.rb file.
140
140
  Paths use the newly created project folder as root.
141
141
  Any key:value pair can be used for substitution, simply add the key name in CAPS to the template file then specify the symbol key and value as in the example.
142
-
142
+ As of version 0.5 it is now possible to append _CLASS to the capitalized key name in your templates. This will capitalise the replacement value, which is very handy for files where you need a lowercase and capitalized version of the same string, like class or module definitions.
143
143
  Note! The value of :project_name is hard coded to be the same as the projects name, no matter the value entered in this config file. This helps with capistrano.
144
144
  e.g.
145
145
  :replace_strings:
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :jumpstart_version_major: 0
3
- :jumpstart_version_minor: 4
3
+ :jumpstart_version_minor: 5
4
4
  :jumpstart_version_patch: 0
@@ -121,11 +121,13 @@ module JumpStart::FileTools
121
121
  # Hello there NAME from COUNTRY
122
122
  # Will also replace strings present in the target_file path. so if the method call looked like: FileUtils.replace_strings(target_file, :name => "Ian", :country => "England")
123
123
  # and target_file was: /Users/name/Sites/country the strings matching NAME and COUNTRY inside the file would be swapped out and then a new file at the path: /Users/Ian/Sites/England would be created and populated with the contents. The file at the previous path would be deleted.
124
+ # Finally if you specify a symbol and append _CLASS in the template, that instance will be replace with a capitalized version of the string.
124
125
  def replace_strings(target_file, args)
125
126
  if File.file?(target_file)
126
127
  txt = IO.read(target_file)
127
128
  new_file = target_file.dup
128
129
  args.each do |x, y|
130
+ txt.gsub!(/#{x.to_s.upcase}_CLASS/, y.capitalize)
129
131
  txt.gsub!(/#{x.to_s.upcase}/, y)
130
132
  new_file.gsub!(/#{x.to_s.downcase}/, y)
131
133
  end
@@ -49,6 +49,7 @@
49
49
  # List files that you would like to perform string substitution on. This can be useful for populating files such as a capistrano deploy.rb file.
50
50
  # Paths use the newly created project folder as root.
51
51
  # Any key:value pair can be used for substitution, simply add the key name in CAPS to the template file then specify the symbol key and value as in the example.
52
+ # As of version 0.5 it is now possible to append _CLASS to the capitalized key name in your templates. This will capitalise the replacement value, which is very handy for files where you need a lowercase and capitalized version of the same string, like class or module definitions.
52
53
  # Note! The value of :project_name is hard coded to be the same as the projects name, no matter the value entered in this config file. This helps with capistrano.
53
54
  # e.g.
54
55
  # :replace_strings:
@@ -233,7 +233,7 @@ class TestJumpstartFileTools < Test::Unit::TestCase
233
233
  end
234
234
 
235
235
  context "Testing JumpStart::FileUtils#replace_strings class method.\n" do
236
-
236
+
237
237
  setup do
238
238
  @target_file_1 = "#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/config_capistrano_test.rb"
239
239
  @target_file_2 = "#{JumpStart::ROOT_PATH}/test/test_jumpstart_templates/test_fileutils/replace_strings_test_app_name.rb"
@@ -249,7 +249,7 @@ class TestJumpstartFileTools < Test::Unit::TestCase
249
249
  end
250
250
  end
251
251
  end
252
-
252
+
253
253
  teardown do
254
254
  FileUtils.remove_files(@target_files)
255
255
  if File.exists?(@new_file_2)
@@ -266,7 +266,7 @@ class TestJumpstartFileTools < Test::Unit::TestCase
266
266
  assert_equal "set :application, 'test_app'\n", file[0]
267
267
  assert_equal "run \"\#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf test_app\"\n", file[44]
268
268
  end
269
-
269
+
270
270
  should "replace strings with replace_strings method if the path does not contain the replacement strings and more than one replacement string is provided" do
271
271
  FileUtils.replace_strings(@target_file_1, :app_name => 'test_app', :REMOTE_SERVER => 'remote_box')
272
272
  file = IO.readlines(@target_file_1)
@@ -274,7 +274,7 @@ class TestJumpstartFileTools < Test::Unit::TestCase
274
274
  assert_equal "set :domain, 'remote_box'\n", file[1]
275
275
  assert_equal "run \"\#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf test_app\"\n", file[44]
276
276
  end
277
-
277
+
278
278
  should "replace strings inside the target path if the target is a file and there is more than one argument." do
279
279
  FileUtils.replace_strings(@target_file_2, :app_name => 'bungle', :remote_server => 'boxy')
280
280
  file = IO.readlines(@new_file_2)
@@ -284,7 +284,7 @@ class TestJumpstartFileTools < Test::Unit::TestCase
284
284
  assert File.exists?(@new_file_2)
285
285
  assert !File.exists?(@target_file_2)
286
286
  end
287
-
287
+
288
288
  should "replace strings inside the target path if the target is a file and there is more than one argument and the replacement string is found in the directory structure." do
289
289
  FileUtils.replace_strings(@target_file_3, :app_name => 'bungle', :remote_server => 'boxy')
290
290
  file = IO.readlines(@new_file_3)
@@ -294,7 +294,19 @@ class TestJumpstartFileTools < Test::Unit::TestCase
294
294
  assert File.exists?(@new_file_3)
295
295
  assert !File.exists?(@target_file_3)
296
296
  end
297
-
297
+
298
+ should "replace strings that have _CLASS appended to them with a capitalised version of the replacement string." do
299
+ FileUtils.replace_strings(@target_file_3, :app_name => 'bungle', :remote_server => 'boxy')
300
+ file = IO.readlines(@new_file_3)
301
+ assert_equal "set :application, 'bungle'\n", file[0]
302
+ assert_equal "set :domain, 'boxy'\n", file[1]
303
+ assert_equal "run \"\#{sudo} nginx_auto_config /usr/local/bin/nginx.remote.conf /opt/nginx/conf/nginx.conf bungle\"\n", file[44]
304
+ assert_equal "# This is a test string Bungle\n", file[63]
305
+ assert_equal "# This is a test string Boxy\n", file[64]
306
+ assert File.exists?(@new_file_3)
307
+ assert !File.exists?(@target_file_3)
308
+ end
309
+
298
310
  end
299
311
 
300
312
  context "Testing JumpStart::FileUtils#check_source_type class method.\n" do
@@ -59,4 +59,7 @@ end
59
59
  # deploy:symlink
60
60
  # deploy:restart
61
61
 
62
- # eg: after 'deploy:symlink', 'deploy:restart'
62
+ # eg: after 'deploy:symlink', 'deploy:restart'
63
+
64
+ # This is a test string APP_NAME_CLASS
65
+ # This is a test string REMOTE_SERVER_CLASS
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 4
7
+ - 5
8
8
  - 0
9
- version: 0.4.0
9
+ version: 0.5.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ian Alexander Wood (i0n)