Class: Bake::Create
- Inherits:
-
Object
- Object
- Bake::Create
- Defined in:
- lib/bake/options/create.rb
Class Method Summary collapse
- .checkFile(name) ⇒ Object
- .customTemplate ⇒ Object
- .exeTemplate ⇒ Object
- .header ⇒ Object
- .includeOnly ⇒ Object
- .libTemplate ⇒ Object
- .mainTemplate ⇒ Object
- .proj(type) ⇒ Object
- .unitTestBase ⇒ Object
Class Method Details
.checkFile(name) ⇒ Object
77 78 79 80 81 82 |
# File 'lib/bake/options/create.rb', line 77 def self.checkFile(name) if File.exist?(name) puts "#{name} already exists" ExitHelper.exit(1) end end |
.customTemplate ⇒ Object
59 60 61 62 63 64 65 66 67 68 |
# File 'lib/bake/options/create.rb', line 59 def self.customTemplate "Project default: Lib {\n"+ self.header+ "\n"+ " CustomConfig Lib {\n"+ " Dependency config: IncludeOnly\n"+ " }\n"+ self.unitTestBase + "\n}\n" end |
.exeTemplate ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/bake/options/create.rb', line 33 def self.exeTemplate "Project default: Main {\n"+ self.header + self.includeOnly+ "\n"+ " ExecutableConfig Main {\n"+ " Files \"src/**/*.cpp\"\n"+ " Dependency config: IncludeOnly\n"+ " DefaultToolchain GCC\n"+ " }\n"+ "\n}\n" end |
.header ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/bake/options/create.rb', line 8 def self.header "\n"+ " RequiredBakeVersion minimum: \"#{Bake::Version.number}\"\n"+ "\n"+ " Responsible {\n"+ " Person \"#{ENV["USER"]}\"\n"+ " }\n" end |
.includeOnly ⇒ Object
17 18 19 20 21 22 |
# File 'lib/bake/options/create.rb', line 17 def self.includeOnly "\n"+ " CustomConfig IncludeOnly {\n"+ " IncludeDir include, inherit: true\n"+ " }\n" end |
.libTemplate ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/bake/options/create.rb', line 46 def self.libTemplate "Project default: Lib {\n"+ self.header + self.includeOnly+ "\n"+ " LibraryConfig Lib {\n"+ " Files \"src/**/*.cpp\"\n"+ " Dependency config: IncludeOnly\n"+ " }\n"+ self.unitTestBase + "\n}\n" end |
.mainTemplate ⇒ Object
70 71 72 73 74 75 |
# File 'lib/bake/options/create.rb', line 70 def self.mainTemplate "int main()\n"+ "{\n"+ " return 0;\n"+ "}\n" end |
.proj(type) ⇒ Object
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/bake/options/create.rb', line 84 def self.proj(type) checkFile("Project.meta") checkFile("src/main.cpp") if (type == "exe") FileUtils::mkdir_p "src" FileUtils::mkdir_p "include" if (type == "lib") File.write("Project.meta", libTemplate); elsif (type == "exe") File.write("Project.meta", exeTemplate); File.write("src/main.cpp", mainTemplate); elsif (type == "custom") File.write("Project.meta", customTemplate); else puts "'--create' must be followed by 'lib', 'exe' or 'custom'" ExitHelper.exit(1) end puts "Project created." ExitHelper.exit(0) end |
.unitTestBase ⇒ Object
24 25 26 27 28 29 30 31 |
# File 'lib/bake/options/create.rb', line 24 def self.unitTestBase "\n"+ " ExecutableConfig UnitTestBase {\n"+ " Files \"test/src/**/*.cpp\"\n"+ " Dependency config: Lib\n"+ " DefaultToolchain GCC\n"+ " }\n" end |