generic_app 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5ca7ea6c3349e9a632cdab668af506b8708c4698
4
- data.tar.gz: c4a3f742010b74f8a27bf40217f6b1c3357fa9fb
3
+ metadata.gz: d7fd06aa9d58922cf9688ac51c18a3ff980f1537
4
+ data.tar.gz: 0b0edbb493e11eb6a79626b29364820dc5ccd65e
5
5
  SHA512:
6
- metadata.gz: 5f37dad81ea4fd0c9a0d945e8c72d61ff63ac556a3331ee2378d5b070ec90c1eec09301830fb1d488fc281899671b0057e07414acff09719119f05d39cda5116
7
- data.tar.gz: b255a4dc2cf177b3114e5cba334fd61e98b0908fe0c2193d74df354acecb0189c3b6a38f8b0d866fc075cde334d388a0ea544373d28a86031f7d919af002424e
6
+ metadata.gz: a2ac976717b13c130e9f71e44b8c935b22faf809c45d0ebc38b2270759b4141db1621c87dc21a8a7defc7396775ffe700b5972e70b5a119167d2eb89f8ad99d1
7
+ data.tar.gz: beb6a7580d359f3bdb7e599af04b18975905b30ac04390965699956d8cd68a694032583454c3542c4343aae823dccd97880bbf5ac44f516b793fb362104f5c0d
data/.codeclimate.yml ADDED
@@ -0,0 +1,8 @@
1
+ # Save as .codeclimate.yml (note leading .) in project root directory
2
+ languages:
3
+ Ruby: true
4
+ JavaScript: true
5
+ PHP: true
6
+ Python: true
7
+ # exclude_paths:
8
+ # - "foo/bar.rb"
data/gem_test.sh CHANGED
@@ -14,30 +14,40 @@ echo "BEGIN TESTING generic_app"
14
14
  rake 2>&1 | tee $DIR_GENERIC_APP/log/generic_app.txt
15
15
  echo "FINISHED TESTING generic_app"
16
16
  echo "****************************"
17
-
18
- echo '************'
19
- echo 'BEGIN TEST 1'
17
+ echo ''
18
+ echo '*************'
19
+ echo 'BEGIN TEST 1A'
20
20
  echo 'Creating new Rails app'
21
-
22
- cd $DIR_PARENT/tmp1 && sh test_app.sh 2>&1 | tee $DIR_GENERIC_APP/log/tmp1.txt
23
- echo 'FINISHED TEST 1'
21
+ cd $DIR_PARENT/tmp1 && sh test_app.sh 2>&1 | tee $DIR_GENERIC_APP/log/tmp1A.txt
22
+ echo 'FINISHED TEST1A'
24
23
  echo '***************'
25
-
26
- echo '************'
27
- echo 'BEGIN TEST 2'
24
+ echo ''
25
+ echo '*************'
26
+ echo 'BEGIN TEST 1B'
27
+ echo 'Creating new Rails app'
28
+ cd $DIR_PARENT/tmp1 && sh test_code.sh 2>&1 | tee $DIR_GENERIC_APP/log/tmp1B.txt
29
+ echo 'FINISHED TEST 1B'
30
+ echo '****************'
31
+ echo ''
32
+ echo '*************'
33
+ echo 'BEGIN TEST 2A'
28
34
  echo 'Adding Generic App features to legacy Rails app'
29
-
30
- cd $DIR_PARENT/tmp2 && sh test_app.sh 2>&1 | tee $DIR_GENERIC_APP/log/tmp2.txt
31
- echo 'FINISHED TEST 2'
32
- echo '***************'
33
-
34
-
35
+ cd $DIR_PARENT/tmp2 && sh test_app.sh 2>&1 | tee $DIR_GENERIC_APP/log/tmp2A.txt
36
+ echo 'FINISHED TEST 2A'
37
+ echo '****************'
38
+ echo ''
39
+ echo '*************'
40
+ echo 'BEGIN TEST 2B'
41
+ cd $DIR_PARENT/tmp2 && sh test_code.sh 2>&1 | tee $DIR_GENERIC_APP/log/tmp2B.txt
42
+ echo 'FINISHED TEST 2B'
43
+ echo '****************'
35
44
 
36
45
  echo
37
46
  echo '***********************************'
38
47
  echo 'The locations of the test logs are:'
39
- echo "TEST 1 (new app): $DIR_GENERIC_APP/tmp1.txt"
40
- echo "TEST 2 (legacy app): $DIR_GENERIC_APP/tmp2.txt"
48
+ echo "GEM TEST: $DIR_GENERIC_APP/log/generic_app.txt"
49
+ echo "TEST 1 (new app): $DIR_GENERIC_APP/log/tmp1.txt"
50
+ echo "TEST 2 (legacy app): $DIR_GENERIC_APP/log/tmp2.txt"
41
51
  echo
42
52
  echo "If all went well, the results at the end of each test show 0 or 31m0 failures and 0 errors."
43
53
  echo
@@ -1,3 +1,3 @@
1
1
  module GenericApp
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
data/lib/generic_app.rb CHANGED
@@ -45,23 +45,56 @@ module GenericApp
45
45
  end
46
46
 
47
47
  def self.add (subdir_name)
48
- self.update_gitignore(subdir_name, 'tmp*')
49
- self.update_gitignore(subdir_name, '.DS_Store')
48
+ self.add_to_file_if("#{subdir_name}/.gitignore", 'tmp*')
49
+ self.add_to_file_if("#{subdir_name}/.gitignore", '.DS_Store')
50
+ self.add_to_file_if("#{subdir_name}/.gitignore", 'notes/*.dot')
51
+ self.add_to_file_if("#{subdir_name}/.gitignore", 'notes/*.svg')
52
+ self.add_to_file_if("#{subdir_name}/.gitignore", 'gemsurance_report.html')
53
+ path_gemfile = "#{subdir_name}/Gemfile"
54
+ self.add_to_file_always(path_gemfile, '# Gems added by generic_app')
55
+ self.add_to_file_always(path_gemfile, 'group :development, :test do')
56
+
57
+ self.add_to_file_if(path_gemfile, "gem 'sandi_meter'")
58
+ StringInFile.replace("gem 'sandi_meter'", " gem 'sandi_meter'", path_gemfile)
59
+ self.add_to_file_if(path_gemfile, "gem 'brakeman'")
60
+ StringInFile.replace("gem 'brakeman'", " gem 'brakeman'", path_gemfile)
61
+ self.add_to_file_if(path_gemfile, "gem 'bundler-audit'")
62
+ StringInFile.replace("gem 'bundler-audit'", " gem 'bundler-audit'", path_gemfile)
63
+ self.add_to_file_if(path_gemfile, "gem 'rails-erd'")
64
+ StringInFile.replace("gem 'rails-erd'", " gem 'rails-erd'", path_gemfile)
65
+ self.add_to_file_if(path_gemfile, "gem 'railroady'")
66
+ StringInFile.replace("gem 'railroady'", " gem 'railroady'", path_gemfile)
67
+ self.add_to_file_if(path_gemfile, "gem 'annotate'")
68
+ StringInFile.replace("gem 'annotate'", " gem 'annotate'", path_gemfile)
69
+ self.add_to_file_if(path_gemfile, "gem 'gemsurance'")
70
+ StringInFile.replace("gem 'gemsurance'", " gem 'gemsurance'", path_gemfile)
71
+
72
+ self.add_to_file_always(path_gemfile, 'end')
73
+
50
74
  self.copy_scripts (subdir_name)
75
+ LineContaining.delete('***', "#{subdir_name}/test_code.sh")
76
+ LineContaining.delete('rubocop', "#{subdir_name}/test_code.sh")
77
+ LineContaining.delete('rails_best_practices', "#{subdir_name}/test_code.sh")
78
+ LineContaining.delete('metric_fu', "#{subdir_name}/test_code.sh")
79
+ end
80
+
81
+ def self.add_to_file_always (filename, str)
82
+ puts '------------------------------------'
83
+ puts "Updating #{filename} (adding #{str})"
84
+ text_from_file = File.read(filename)
85
+ last_char = text_from_file[-1]
86
+ open(filename, 'a') { |f|
87
+ if last_char != "\n"
88
+ f.puts "\n"
89
+ end
90
+ f.puts "\n#{str}"
91
+ }
51
92
  end
52
93
 
53
- def self.update_gitignore (subdir_name, str)
54
- puts '-----------------------------------'
55
- puts "Updating .gitignore (adding #{str})"
56
- if StringInFile.present(str, "#{subdir_name}/.gitignore") == false
57
- text_from_file = File.read("#{subdir_name}/.gitignore")
58
- last_char = text_from_file[-1]
59
- open("#{subdir_name}/.gitignore", 'a') { |f|
60
- if last_char != "\n"
61
- f.puts "\n"
62
- end
63
- f.puts "\n#{str}"
64
- }
94
+ # Add to file if not already present
95
+ def self.add_to_file_if (filename, str)
96
+ if StringInFile.present(str, filename) == false
97
+ self.add_to_file_always(filename, str)
65
98
  end
66
99
  end
67
100
 
@@ -42,19 +42,32 @@ describe GenericApp do
42
42
  expect(StringInFile.present("tmp", "#{dir_app_1}/.gitignore")).to eq(true)
43
43
  expect(StringInFile.present("tmp*", "#{dir_app_1}/.gitignore")).to eq(true)
44
44
  expect(StringInFile.present(".DS_Store", "#{dir_app_1}/.gitignore")).to eq(true)
45
+ expect(StringInFile.present("notes/*.dot", "#{dir_app_1}/.gitignore")).to eq(true)
46
+ expect(StringInFile.present("notes/*.svg", "#{dir_app_1}/.gitignore")).to eq(true)
47
+ expect(StringInFile.present("gemsurance_report.html", "#{dir_app_1}/.gitignore")).to eq(true)
45
48
  end
46
-
47
- it "The notes/1-file_list.txt file should be in place" do
48
- expect(StringInFile.present("app/models", "#{dir_app_1}/notes/1-file_list.txt")).to eq(true)
49
- expect(StringInFile.present("app/views", "#{dir_app_1}/notes/1-file_list.txt")).to eq(true)
50
- expect(StringInFile.present("app/controllers", "#{dir_app_1}/notes/1-file_list.txt")).to eq(true)
49
+
50
+ it "The notes/1-file_list-controllers.txt file should be in place" do
51
+ expect(StringInFile.present("users_controller_test.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
52
+ expect(StringInFile.present("users_controller.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
53
+ expect(StringInFile.present("confirmations_controller.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
54
+ expect(StringInFile.present("omniauth_callbacks_controller.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
55
+ expect(StringInFile.present("passwords_controller.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
56
+ expect(StringInFile.present("registrations_controller.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
57
+ expect(StringInFile.present("sessions_controller.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
58
+ expect(StringInFile.present("unlocks_controller.rb", "#{dir_app_1}/notes/1-file_list-controllers.txt")).to eq(true)
59
+ end
60
+
61
+ it "The notes/1-file_list-misc.txt file should be in place" do
62
+ expect(StringInFile.present("application_helper.rb", "#{dir_app_1}/notes/1-file_list-misc.txt")).to eq(true)
63
+ expect(StringInFile.present("users_helper.rb", "#{dir_app_1}/notes/1-file_list-misc.txt")).to eq(true)
51
64
  end
52
65
 
53
- it "The notes/mvc-users.txt file should be in place" do
54
- expect(StringInFile.present("users_controller.rb", "#{dir_app_1}/notes/mvc-users.txt")).to eq(true)
55
- expect(StringInFile.present("users_controller_test.rb", "#{dir_app_1}/notes/mvc-users.txt")).to eq(true)
56
- expect(StringInFile.present("users_helper.rb", "#{dir_app_1}/notes/mvc-users.txt")).to eq(true)
57
- expect(StringInFile.present("def index", "#{dir_app_1}/notes/mvc-users.txt")).to eq(true)
58
- expect(StringInFile.present("def show", "#{dir_app_1}/notes/mvc-users.txt")).to eq(true)
66
+ it "The notes/1-file_list-models.txt file should be in place" do
67
+ expect(StringInFile.present("admin_test.rb", "#{dir_app_1}/notes/1-file_list-models.txt")).to eq(true)
68
+ expect(StringInFile.present("user_test.rb", "#{dir_app_1}/notes/1-file_list-models.txt")).to eq(true)
69
+ expect(StringInFile.present("admin.rb", "#{dir_app_1}/notes/1-file_list-models.txt")).to eq(true)
70
+ expect(StringInFile.present("user.rb", "#{dir_app_1}/notes/1-file_list-models.txt")).to eq(true)
59
71
  end
72
+
60
73
  end
@@ -42,5 +42,25 @@ describe GenericApp do
42
42
  expect(StringInFile.present("tmp", "#{dir_app_2}/.gitignore")).to eq(true)
43
43
  expect(StringInFile.present("tmp*", "#{dir_app_2}/.gitignore")).to eq(true)
44
44
  expect(StringInFile.present(".DS_Store", "#{dir_app_2}/.gitignore")).to eq(true)
45
+ expect(StringInFile.present("notes/*.dot", "#{dir_app_2}/.gitignore")).to eq(true)
46
+ expect(StringInFile.present("notes/*.svg", "#{dir_app_2}/.gitignore")).to eq(true)
47
+ expect(StringInFile.present("gemsurance_report.html", "#{dir_app_2}/.gitignore")).to eq(true)
48
+ end
49
+
50
+ it "The Gemfile includes code checking gems" do
51
+ expect(StringInFile.present("gem 'sandi_meter'", "#{dir_app_2}/Gemfile")).to eq(true)
52
+ expect(StringInFile.present("gem 'brakeman'", "#{dir_app_2}/Gemfile")).to eq(true)
53
+ expect(StringInFile.present("gem 'bundler-audit'", "#{dir_app_2}/Gemfile")).to eq(true)
54
+ expect(StringInFile.present("gem 'rails-erd'", "#{dir_app_2}/Gemfile")).to eq(true)
55
+ expect(StringInFile.present("gem 'railroady'", "#{dir_app_2}/Gemfile")).to eq(true)
56
+ expect(StringInFile.present("gem 'annotate'", "#{dir_app_2}/Gemfile")).to eq(true)
57
+ expect(StringInFile.present("gem 'gemsurance'", "#{dir_app_2}/Gemfile")).to eq(true)
58
+ end
59
+
60
+ it 'The test_code.sh script excludes certain parts of the original' do
61
+ expect(StringInFile.present('***', "#{dir_app_2}/test_code.sh")).to eq(false)
62
+ expect(StringInFile.present('rubocop', "#{dir_app_2}/test_code.sh")).to eq(false)
63
+ expect(StringInFile.present('rails_best_practices', "#{dir_app_2}/test_code.sh")).to eq(false)
64
+ expect(StringInFile.present('metric_fu', "#{dir_app_2}/test_code.sh")).to eq(false)
45
65
  end
46
66
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: generic_app
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Hsu
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-05 00:00:00.000000000 Z
11
+ date: 2015-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -77,6 +77,7 @@ executables:
77
77
  extensions: []
78
78
  extra_rdoc_files: []
79
79
  files:
80
+ - ".codeclimate.yml"
80
81
  - ".gitignore"
81
82
  - ".travis.yml"
82
83
  - Gemfile