ez_gen 0.1.0 → 0.1.1
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/bin/ez_gen +1 -1
- data/lib/ez_gen.rb +5 -4
- data/lib/ez_gen/basic_env.rb +52 -0
- data/lib/ez_gen/file_writer.rb +70 -0
- data/lib/ez_gen/message_writer.rb +65 -0
- data/lib/ez_gen/templatable.rb +138 -0
- data/lib/ez_gen/version.rb +1 -1
- metadata +25 -7
- data/lib/ez_gen/generator.rb +0 -207
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44da2666456bc3dcf5c19f7d6acab572f84277b2513e1057ed3c5e094dbc5d90
|
4
|
+
data.tar.gz: 7b038b4838049cbdb87ddb235996f6bf999b06a16fd6e35e39d0a321721d88b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e224af021133ba8d5ac044b3550f96e19a6ed9ae8d277a45a3052720c9659bc2b9acb2319cb3076947295c39d487c5d0a68df05c8e062f7dbe0c9228aaf979d0
|
7
|
+
data.tar.gz: c1b012bb8718d79559d34def434578f20ea894ad0d0e03e24006966f1e06dcf5e7f740e971a9e6c5e4202ce94ad89d6ec4fd34ae03e912254a0e12ff3a724f28
|
data/bin/ez_gen
CHANGED
data/lib/ez_gen.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require 'ez_gen/version'
|
2
|
+
require 'ez_gen/basic_env.rb'
|
2
3
|
|
3
4
|
module EzGen
|
4
|
-
class
|
5
|
-
def self.
|
6
|
-
|
5
|
+
class Generator
|
6
|
+
def self.generate_basic_env
|
7
|
+
BasicEnv.new.generate
|
7
8
|
end
|
8
9
|
end
|
9
10
|
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
require_relative 'file_writer'
|
3
|
+
require_relative 'message_writer'
|
4
|
+
|
5
|
+
class BasicEnv
|
6
|
+
def initialize
|
7
|
+
@title = ARGV.first
|
8
|
+
@file_writer = FileWriter.new(ARGV)
|
9
|
+
end
|
10
|
+
|
11
|
+
def generate
|
12
|
+
create_directories
|
13
|
+
cd_new_directory
|
14
|
+
initialize_git
|
15
|
+
write_template_files
|
16
|
+
commit_and_checkout
|
17
|
+
run_test
|
18
|
+
confirmation_message
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def create_directories
|
24
|
+
%w(lib test .scripts).each {|dir| FileUtils.mkdir_p "#{@title}/#{dir}"}
|
25
|
+
end
|
26
|
+
|
27
|
+
def cd_new_directory
|
28
|
+
Dir.chdir "#{@title}"
|
29
|
+
end
|
30
|
+
|
31
|
+
def initialize_git
|
32
|
+
`git init`
|
33
|
+
end
|
34
|
+
|
35
|
+
def write_template_files
|
36
|
+
@file_writer.write
|
37
|
+
end
|
38
|
+
|
39
|
+
def commit_and_checkout
|
40
|
+
`git add .`
|
41
|
+
system("git commit -m 'Initial commit'")
|
42
|
+
system("git checkout -b dev")
|
43
|
+
end
|
44
|
+
|
45
|
+
def run_test
|
46
|
+
require "./test/#{ARGV.last}_test.rb"
|
47
|
+
end
|
48
|
+
|
49
|
+
def confirmation_message
|
50
|
+
MessageWriter.new(@title).write
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require_relative 'templatable'
|
2
|
+
|
3
|
+
class FileWriter
|
4
|
+
include Templatable
|
5
|
+
def initialize(args)
|
6
|
+
@lower_name = args.last
|
7
|
+
@upper_name = @lower_name.split('_').map(&:capitalize).join
|
8
|
+
end
|
9
|
+
|
10
|
+
def write
|
11
|
+
write_rake
|
12
|
+
write_test_helper
|
13
|
+
write_class_template
|
14
|
+
write_test_file
|
15
|
+
write_generator
|
16
|
+
write_readme
|
17
|
+
write_pr_template
|
18
|
+
write_gitignore
|
19
|
+
end
|
20
|
+
|
21
|
+
private
|
22
|
+
|
23
|
+
def write_rake
|
24
|
+
rake = File.open("Rakefile", "w")
|
25
|
+
rake.write(rake_template)
|
26
|
+
rake.close
|
27
|
+
end
|
28
|
+
|
29
|
+
def write_test_helper
|
30
|
+
test_helper = File.open("test/test_helper.rb", "w")
|
31
|
+
test_helper.write(test_helper_template)
|
32
|
+
test_helper.close
|
33
|
+
end
|
34
|
+
|
35
|
+
def write_class_template
|
36
|
+
class_file = File.open("lib/#{@lower_name}.rb", 'w')
|
37
|
+
class_file.write(class_template(@upper_name))
|
38
|
+
class_file.close
|
39
|
+
end
|
40
|
+
|
41
|
+
def write_test_file
|
42
|
+
test_file = File.open("test/#{@lower_name}_test.rb", 'w')
|
43
|
+
test_file.write(test_template(@lower_name, @upper_name))
|
44
|
+
test_file.close
|
45
|
+
end
|
46
|
+
|
47
|
+
def write_generator
|
48
|
+
generator = File.open("./.scripts/generate.rb", 'w')
|
49
|
+
generator.write(generator_template)
|
50
|
+
generator.close
|
51
|
+
end
|
52
|
+
|
53
|
+
def write_readme
|
54
|
+
readme = File.open("README.md", 'w')
|
55
|
+
readme.write(readme_template)
|
56
|
+
readme.close
|
57
|
+
end
|
58
|
+
|
59
|
+
def write_pr_template
|
60
|
+
pr = File.open("pull_request_template.md", "w")
|
61
|
+
pr.write(pr_template)
|
62
|
+
pr.close
|
63
|
+
end
|
64
|
+
|
65
|
+
def write_gitignore
|
66
|
+
ignore = File.open(".gitignore", "w")
|
67
|
+
ignore.write("coverage/")
|
68
|
+
ignore.close
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'pastel'
|
2
|
+
|
3
|
+
class MessageWriter
|
4
|
+
PASTEL = Pastel.new
|
5
|
+
def initialize(title)
|
6
|
+
@title = title
|
7
|
+
@message = {}
|
8
|
+
end
|
9
|
+
|
10
|
+
def write
|
11
|
+
stylize
|
12
|
+
confirmation
|
13
|
+
end
|
14
|
+
|
15
|
+
private
|
16
|
+
|
17
|
+
def confirmation
|
18
|
+
puts "\n" * 4
|
19
|
+
puts spacing[:spacing1] + @message[:repo] + @message[:title],""
|
20
|
+
puts spacing[:spacing1] + @message[:branch] + @message[:dev],""
|
21
|
+
puts spacing[:spacing2] + @message[:instructions],""
|
22
|
+
puts spacing[:spacing1] + @message[:run] + @message[:cd],""
|
23
|
+
puts spacing[:spacing1] + @message[:then],""
|
24
|
+
puts spacing[:spacing1] + @message[:run] + @message[:rake] + @message[:options],""
|
25
|
+
puts "\n" * 4
|
26
|
+
end
|
27
|
+
|
28
|
+
def spacing
|
29
|
+
{
|
30
|
+
spacing1: " " * 10,
|
31
|
+
spacing2: " " * 15,
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
def cyan_italic
|
36
|
+
{
|
37
|
+
repo: "Created new repository: ",
|
38
|
+
branch: "Switched to new branch: ",
|
39
|
+
run: "Run: ",
|
40
|
+
options: "to see available rake tasks",
|
41
|
+
then: "then..."
|
42
|
+
}
|
43
|
+
end
|
44
|
+
|
45
|
+
def magenta_bold
|
46
|
+
{
|
47
|
+
title: @title,
|
48
|
+
dev: "dev",
|
49
|
+
cd: "cd #{@title}",
|
50
|
+
rake: "rake --tasks "
|
51
|
+
}
|
52
|
+
end
|
53
|
+
|
54
|
+
def cyan_bold
|
55
|
+
{
|
56
|
+
instructions: "INSTRUCTIONS:"
|
57
|
+
}
|
58
|
+
end
|
59
|
+
|
60
|
+
def stylize
|
61
|
+
cyan_italic.each { |k,v| @message[k] = PASTEL.italic.cyan(v) }
|
62
|
+
magenta_bold.each { |k,v| @message[k] = PASTEL.bold.magenta(v) }
|
63
|
+
cyan_bold.each { |k,v| @message[k] = PASTEL.bold.cyan(v) }
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,138 @@
|
|
1
|
+
module Templatable
|
2
|
+
def rake_template
|
3
|
+
<<~HEREDOC
|
4
|
+
require "rake/testtask"
|
5
|
+
|
6
|
+
Rake::TestTask.new do |task|
|
7
|
+
task.pattern = "test/*_test.rb"
|
8
|
+
end
|
9
|
+
|
10
|
+
desc "Run single test file based on class name, ex: rake test_class person"
|
11
|
+
task :test_class do
|
12
|
+
ARGV.each { |arg| task arg.to_sym do ; end }
|
13
|
+
eval File.read("./test/\#{ARGV.last}_test.rb")
|
14
|
+
end
|
15
|
+
|
16
|
+
desc "Generate new class and test, ex: rake g person"
|
17
|
+
task :g do
|
18
|
+
ARGV.each { |arg| task arg.to_sym do ; end }
|
19
|
+
ruby "./.scripts/generate.rb \#{ARGV.last}"
|
20
|
+
end
|
21
|
+
HEREDOC
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_helper_template
|
25
|
+
<<~HEREDOC
|
26
|
+
require 'simplecov'
|
27
|
+
SimpleCov.start
|
28
|
+
require 'minitest/autorun'
|
29
|
+
require 'minitest/pride'
|
30
|
+
require 'mocha/minitest'
|
31
|
+
HEREDOC
|
32
|
+
end
|
33
|
+
|
34
|
+
def class_template(class_name)
|
35
|
+
<<~HEREDOC
|
36
|
+
class #{class_name}
|
37
|
+
|
38
|
+
end
|
39
|
+
HEREDOC
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_template(lower_name, upper_name)
|
43
|
+
<<~HEREDOC
|
44
|
+
require './test/test_helper.rb'
|
45
|
+
require './lib/#{lower_name}.rb'
|
46
|
+
|
47
|
+
class #{upper_name}Test < Minitest::Test
|
48
|
+
def setup
|
49
|
+
@#{lower_name} = #{upper_name}.new
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_it_exists
|
53
|
+
assert_instance_of #{upper_name}, @#{lower_name}
|
54
|
+
end
|
55
|
+
end
|
56
|
+
HEREDOC
|
57
|
+
end
|
58
|
+
|
59
|
+
def generator_template
|
60
|
+
<<~'HEREDOC'
|
61
|
+
lower_name = ARGV.first
|
62
|
+
upper_name = lower_name.split("_").map{|word| word.capitalize}.join
|
63
|
+
|
64
|
+
class_file = File.open("lib/#{lower_name}.rb", "w")
|
65
|
+
class_file.write("class #{upper_name}\n\nend")
|
66
|
+
class_file.close
|
67
|
+
|
68
|
+
test_file = File.open("test/#{lower_name}_test.rb", "w")
|
69
|
+
test_file.write(
|
70
|
+
"require \'./test/test_helper.rb\'
|
71
|
+
require \'./lib/#{lower_name}.rb\'
|
72
|
+
|
73
|
+
class #{upper_name}Test < Minitest::Test
|
74
|
+
def setup
|
75
|
+
@#{lower_name} = #{upper_name}.new
|
76
|
+
end
|
77
|
+
|
78
|
+
def test_it_exists
|
79
|
+
assert_instance_of #{upper_name}, @#{lower_name}
|
80
|
+
end
|
81
|
+
end"
|
82
|
+
)
|
83
|
+
test_file.close
|
84
|
+
eval File.read(test_file)
|
85
|
+
puts ""
|
86
|
+
puts "Created \'lib/#{lower_name}.rb\' and \'test/#{lower_name}_test.rb\'"
|
87
|
+
puts ""
|
88
|
+
HEREDOC
|
89
|
+
end
|
90
|
+
|
91
|
+
def readme_template
|
92
|
+
<<~HEREDOC
|
93
|
+
# Title
|
94
|
+
|
95
|
+
*Description*
|
96
|
+
|
97
|
+
## Table of Contents:
|
98
|
+
- [Running Locally](#running-locally)
|
99
|
+
- [Tech Stack](#tech-stack)
|
100
|
+
- [Contributors](#contributors)
|
101
|
+
|
102
|
+
***
|
103
|
+
## Running Locally
|
104
|
+
[top](#table-of-contents)
|
105
|
+
* Instructions to run locally
|
106
|
+
|
107
|
+
***
|
108
|
+
## Tech Stack
|
109
|
+
[top](#table-of-contents)
|
110
|
+
* Language version
|
111
|
+
* Framework, gems, etc.
|
112
|
+
|
113
|
+
***
|
114
|
+
## Contributors
|
115
|
+
[top](#table-of-contents)
|
116
|
+
* [<NAME HERE>](<LINK TO GITHUB>)
|
117
|
+
HEREDOC
|
118
|
+
end
|
119
|
+
|
120
|
+
def pr_template
|
121
|
+
<<~HEREDOC
|
122
|
+
## Description
|
123
|
+
|
124
|
+
## Type of change
|
125
|
+
- [ ] Bug fix (non-breaking change which fixes an issue)
|
126
|
+
- [ ] Refactor (non-breaking change which maintains existing functionality)
|
127
|
+
- [ ] New feature (non-breaking change which adds functionality)
|
128
|
+
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
129
|
+
## Notes
|
130
|
+
|
131
|
+
## Test Results
|
132
|
+
```
|
133
|
+
|
134
|
+
```
|
135
|
+
HEREDOC
|
136
|
+
|
137
|
+
end
|
138
|
+
end
|
data/lib/ez_gen/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ez_gen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tyler Porter
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pastel
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.19'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: mocha
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.11'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.11'
|
41
55
|
description: Enter a project name and the name of the class you'd like to create.
|
42
56
|
EzGen will generate a new git repo, class template, corresponding test template,
|
43
57
|
PR template, README template, and Rakefile.
|
@@ -50,7 +64,10 @@ extra_rdoc_files: []
|
|
50
64
|
files:
|
51
65
|
- bin/ez_gen
|
52
66
|
- lib/ez_gen.rb
|
53
|
-
- lib/ez_gen/
|
67
|
+
- lib/ez_gen/basic_env.rb
|
68
|
+
- lib/ez_gen/file_writer.rb
|
69
|
+
- lib/ez_gen/message_writer.rb
|
70
|
+
- lib/ez_gen/templatable.rb
|
54
71
|
- lib/ez_gen/version.rb
|
55
72
|
homepage: https://github.com/tylerpporter/ez_gen
|
56
73
|
licenses:
|
@@ -58,7 +75,7 @@ licenses:
|
|
58
75
|
metadata:
|
59
76
|
homepage_uri: https://github.com/tylerpporter/ez_gen
|
60
77
|
source_code_uri: https://github.com/tylerpporter/ez_gen
|
61
|
-
post_install_message:
|
78
|
+
post_install_message:
|
62
79
|
rdoc_options: []
|
63
80
|
require_paths:
|
64
81
|
- lib
|
@@ -73,8 +90,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
73
90
|
- !ruby/object:Gem::Version
|
74
91
|
version: '0'
|
75
92
|
requirements: []
|
76
|
-
|
77
|
-
|
93
|
+
rubyforge_project:
|
94
|
+
rubygems_version: 2.7.6
|
95
|
+
signing_key:
|
78
96
|
specification_version: 4
|
79
97
|
summary: Quickly create an environment to write and test Ruby code.
|
80
98
|
test_files: []
|
data/lib/ez_gen/generator.rb
DELETED
@@ -1,207 +0,0 @@
|
|
1
|
-
require 'fileutils'
|
2
|
-
require 'pastel'
|
3
|
-
|
4
|
-
# file/class name
|
5
|
-
title = ARGV.first
|
6
|
-
lower_name = ARGV.last
|
7
|
-
upper_name = lower_name.split('_').map{|word| word.capitalize}.join
|
8
|
-
|
9
|
-
# create the directories
|
10
|
-
%w(lib test .scripts).each {|dir| FileUtils.mkdir_p "#{title}/#{dir}"}
|
11
|
-
|
12
|
-
# cd into new directory
|
13
|
-
Dir.chdir "#{title}"
|
14
|
-
|
15
|
-
# initialize git
|
16
|
-
`git init`
|
17
|
-
|
18
|
-
#write Rakefile
|
19
|
-
rake = File.open("Rakefile", "w")
|
20
|
-
rake.write(
|
21
|
-
'require "rake/testtask"
|
22
|
-
|
23
|
-
Rake::TestTask.new do |task|
|
24
|
-
task.pattern = "test/*_test.rb"
|
25
|
-
end
|
26
|
-
|
27
|
-
desc "Run single test file based on class name, ex: rake test_class person"
|
28
|
-
task :test_class do
|
29
|
-
ARGV.each { |arg| task arg.to_sym do ; end }
|
30
|
-
eval File.read("./test/#{ARGV.last}_test.rb")
|
31
|
-
end
|
32
|
-
|
33
|
-
desc "Generate new class and test, ex: rake g person"
|
34
|
-
task :g do
|
35
|
-
ARGV.each { |arg| task arg.to_sym do ; end }
|
36
|
-
ruby "./.scripts/generate.rb #{ARGV.last}"
|
37
|
-
end
|
38
|
-
'
|
39
|
-
)
|
40
|
-
rake.close
|
41
|
-
|
42
|
-
# write test helper
|
43
|
-
test_helper = File.open("test/test_helper.rb", "w")
|
44
|
-
test_helper.write(
|
45
|
-
"require 'simplecov'
|
46
|
-
SimpleCov.start
|
47
|
-
require 'minitest/autorun'
|
48
|
-
require 'minitest/pride'
|
49
|
-
require 'mocha/minitest'
|
50
|
-
"
|
51
|
-
)
|
52
|
-
test_helper.close
|
53
|
-
|
54
|
-
# write class template
|
55
|
-
class_file = File.open("lib/#{lower_name}.rb", 'w')
|
56
|
-
class_file.write("class #{upper_name}\n\nend")
|
57
|
-
class_file.close
|
58
|
-
|
59
|
-
# write test template
|
60
|
-
test_file = File.open("test/#{lower_name}_test.rb", 'w')
|
61
|
-
test_file.write(
|
62
|
-
"require './test/test_helper.rb'
|
63
|
-
require './lib/#{lower_name}.rb'
|
64
|
-
|
65
|
-
class #{upper_name}Test < Minitest::Test
|
66
|
-
def setup
|
67
|
-
@#{lower_name} = #{upper_name}.new
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_it_exists
|
71
|
-
assert_instance_of #{upper_name}, @#{lower_name}
|
72
|
-
end
|
73
|
-
end"
|
74
|
-
)
|
75
|
-
test_file.close
|
76
|
-
|
77
|
-
# write generator
|
78
|
-
generator = File.open("./.scripts/generate.rb", 'w')
|
79
|
-
generator.write(
|
80
|
-
'lower_name = ARGV.first
|
81
|
-
upper_name = lower_name.split("_").map{|word| word.capitalize}.join
|
82
|
-
|
83
|
-
class_file = File.open("lib/#{lower_name}.rb", "w")
|
84
|
-
class_file.write("class #{upper_name}\n\nend")
|
85
|
-
class_file.close
|
86
|
-
|
87
|
-
test_file = File.open("test/#{lower_name}_test.rb", "w")
|
88
|
-
test_file.write(
|
89
|
-
"require \'./test/test_helper.rb\'
|
90
|
-
require \'./lib/#{lower_name}.rb\'
|
91
|
-
|
92
|
-
class #{upper_name}Test < Minitest::Test
|
93
|
-
def setup
|
94
|
-
@#{lower_name} = #{upper_name}.new
|
95
|
-
end
|
96
|
-
|
97
|
-
def test_it_exists
|
98
|
-
assert_instance_of #{upper_name}, @#{lower_name}
|
99
|
-
end
|
100
|
-
end"
|
101
|
-
)
|
102
|
-
test_file.close
|
103
|
-
eval File.read(test_file)
|
104
|
-
puts ""
|
105
|
-
puts "Created \'lib/#{lower_name}.rb\' and \'test/#{lower_name}_test.rb\'"
|
106
|
-
puts ""
|
107
|
-
'
|
108
|
-
)
|
109
|
-
generator.close
|
110
|
-
|
111
|
-
# write README
|
112
|
-
readme = File.open("README.md", 'w')
|
113
|
-
readme.write(
|
114
|
-
'# Title
|
115
|
-
|
116
|
-
*Description*
|
117
|
-
|
118
|
-
## Table of Contents:
|
119
|
-
- [Running Locally](#running-locally)
|
120
|
-
- [Tech Stack](#tech-stack)
|
121
|
-
- [Contributors](#contributors)
|
122
|
-
|
123
|
-
***
|
124
|
-
## Running Locally
|
125
|
-
[top](#table-of-contents)
|
126
|
-
* Instructions to run locally
|
127
|
-
|
128
|
-
***
|
129
|
-
## Tech Stack
|
130
|
-
[top](#table-of-contents)
|
131
|
-
* Language version
|
132
|
-
* Framework, gems, etc.
|
133
|
-
|
134
|
-
***
|
135
|
-
## Contributors
|
136
|
-
[top](#table-of-contents)
|
137
|
-
* [<NAME HERE>](<LINK TO GITHUB>)
|
138
|
-
'
|
139
|
-
)
|
140
|
-
readme.close
|
141
|
-
|
142
|
-
# write pr template
|
143
|
-
pr = File.open("pull_request_template.md", "w")
|
144
|
-
pr.write(
|
145
|
-
"## Description
|
146
|
-
|
147
|
-
## Type of change
|
148
|
-
- [ ] Bug fix (non-breaking change which fixes an issue)
|
149
|
-
- [ ] Refactor (non-breaking change which maintains existing functionality)
|
150
|
-
- [ ] New feature (non-breaking change which adds functionality)
|
151
|
-
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
|
152
|
-
## Notes
|
153
|
-
|
154
|
-
## Test Results
|
155
|
-
```
|
156
|
-
|
157
|
-
```
|
158
|
-
"
|
159
|
-
)
|
160
|
-
pr.close
|
161
|
-
|
162
|
-
# write gitignore
|
163
|
-
ignore = File.open(".gitignore", "w")
|
164
|
-
ignore.write("coverage/")
|
165
|
-
ignore.close
|
166
|
-
|
167
|
-
# git
|
168
|
-
`git add .`
|
169
|
-
system("git commit -m 'Initial commit'")
|
170
|
-
system("git checkout -b dev")
|
171
|
-
|
172
|
-
# run the test
|
173
|
-
eval File.read(test_file)
|
174
|
-
|
175
|
-
# confirmation message
|
176
|
-
pastel = Pastel.new
|
177
|
-
message = {
|
178
|
-
spacing1: " " * 10,
|
179
|
-
spacing2: " " * 15,
|
180
|
-
title: pastel.bold.magenta("#{title}"),
|
181
|
-
repo: pastel.italic.cyan("Created new repository: "),
|
182
|
-
branch: pastel.italic.cyan("Switched to new branch: "),
|
183
|
-
dev: pastel.bold.magenta("dev"),
|
184
|
-
run: pastel.italic.cyan("Run: "),
|
185
|
-
cd: pastel.magenta.bold("cd #{title}"),
|
186
|
-
rake: pastel.magenta.bold("rake --tasks "),
|
187
|
-
options: pastel.italic.cyan("to see available rake tasks"),
|
188
|
-
then: pastel.italic.cyan("then..."),
|
189
|
-
instructions: pastel.cyan.bold("INSTRUCTIONS:")
|
190
|
-
}
|
191
|
-
4.times do
|
192
|
-
puts ""
|
193
|
-
end
|
194
|
-
puts message[:spacing1] + message[:repo] + message[:title]
|
195
|
-
puts ""
|
196
|
-
puts message[:spacing1] + message[:branch] + message[:dev]
|
197
|
-
puts ""
|
198
|
-
puts message[:spacing2] + message[:instructions]
|
199
|
-
puts ""
|
200
|
-
puts message[:spacing1] + message[:run] + message[:cd]
|
201
|
-
puts ""
|
202
|
-
puts message[:spacing1] + message[:then]
|
203
|
-
puts ""
|
204
|
-
puts message[:spacing1] + message[:run] + message[:rake] + message[:options]
|
205
|
-
4.times do
|
206
|
-
puts ""
|
207
|
-
end
|