Class: Raykit::DotNet
- Inherits:
-
Object
- Object
- Raykit::DotNet
- Defined in:
- lib/raykit/dotnet.rb
Class Method Summary collapse
-
.create_solution(name) ⇒ Object
create a solution of the specified name and add all projects in the current directory.
- .get_package_names(filename) ⇒ Object
- .init_new(name, template) ⇒ Object
-
.initialize_csharp_blazorserver(name) ⇒ Object
initialize a C# blazor server application.
-
.initialize_csharp_blazorserver_example(name) ⇒ Object
initialize a C# blazor server example application.
-
.initialize_csharp_console(name) ⇒ Object
initialize a C# console application.
-
.initialize_csharp_lib(name) ⇒ Object
initialize a C# library.
- .initialize_csharp_project(template_name, dir, name, folders) ⇒ Object
-
.initialize_csharp_razorclasslib(name) ⇒ Object
initialize a C# razor class library.
-
.initialize_csharp_service(name) ⇒ Object
initialize a C# worker service.
-
.initialize_csharp_wpf_application(name) ⇒ Object
initialize a C# wpf application.
- .initialize_csharp_wpf_example(name) ⇒ Object
-
.initialize_fsharp_lib(name) ⇒ Object
initialize an F# library.
Class Method Details
.create_solution(name) ⇒ Object
create a solution of the specified name and add all projects in the current directory
155 156 157 158 159 160 |
# File 'lib/raykit/dotnet.rb', line 155 def self.create_solution(name) PROJECT.run("dotnet new sln --name #{name}") unless File.exist?("#{name}.sln") Dir.glob("**/*.csproj").each do |project| PROJECT.run("dotnet sln #{name}.sln add #{project}") end end |
.get_package_names(filename) ⇒ Object
162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/raykit/dotnet.rb', line 162 def self.get_package_names(filename) package_names = [] if File.exist?(filename) && filename.include?(".csproj") regex = /<PackageReference Include="([\w.-]+)"/ text = IO.read(filename) text.scan(regex).each do |m| package_names << m.first.to_s end end package_names end |
.init_new(name, template) ⇒ Object
5 6 7 8 9 10 11 12 |
# File 'lib/raykit/dotnet.rb', line 5 def self.init_new(name, template) if (!File.exist?("#{name}/#{name}.csproj")) puts " #{name}.csproj not found, creating..." run("dotnet new #{template} --name #{name} --output #{name} --language C# ") else puts " #{name}.csproj already exists" end end |
.initialize_csharp_blazorserver(name) ⇒ Object
initialize a C# blazor server application
123 124 125 126 127 128 129 130 131 |
# File 'lib/raykit/dotnet.rb', line 123 def self.initialize_csharp_blazorserver(name) # create the blazor server application puts " creating src/#{name}/#{name}.csproj" unless File.exist?("src/#{name}/#{name}.csproj") PROJECT.run("dotnet new blazorserver -lang C# --name #{name} --output src/#{name}") unless File.exist?("src/#{name}/#{name}.csproj") # generate project folders ["Interfaces", "Extensions", "Models", "Components", "Controllers"].each do |folder| FileUtils.mkdir_p("src/#{name}/#{folder}") unless Dir.exist?("src/#{name}/#{folder}") end end |
.initialize_csharp_blazorserver_example(name) ⇒ Object
initialize a C# blazor server example application
134 135 136 137 138 139 140 141 142 |
# File 'lib/raykit/dotnet.rb', line 134 def self.initialize_csharp_blazorserver_example(name) # create the blazor server application puts " creating examples/#{name}/#{name}.csproj" unless File.exist?("examples/#{name}/#{name}.csproj") PROJECT.run("dotnet new blazorserver -lang C# --name #{name} --output examples/#{name}") unless File.exist?("examples/#{name}/#{name}.csproj") # generate project folders ["Interfaces", "Extensions", "Models", "Components", "Controllers"].each do |folder| FileUtils.mkdir_p("examples/#{name}/#{folder}") unless Dir.exist?("examples/#{name}/#{folder}") end end |
.initialize_csharp_console(name) ⇒ Object
initialize a C# console application
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/raykit/dotnet.rb', line 36 def self.initialize_csharp_console(name) unless Dir.exist?(name) FileUtils.mkdir(name) Dir.chdir(name) do puts `dotnet new console -lang C#` end puts `dotnet new sln` puts `dotnet sln #{name}.sln add #{name}/#{name}.csproj` FileUtils.mkdir("#{name}.Test") unless Dir.exist?("#{name}.Test") Dir.chdir("#{name}.Test") do puts `dotnet new nunit -lang C#` puts `dotnet add reference ../#{name}/#{name}.csproj` end puts `dotnet sln #{name}.sln add #{name}.Test/#{name}.Test.csproj` end end |
.initialize_csharp_lib(name) ⇒ Object
initialize a C# library
91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/raykit/dotnet.rb', line 91 def self.initialize_csharp_lib(name) # create the library puts " creating src/#{name}/#{name}.csproj" unless File.exist?("src/#{name}/#{name}.csproj") PROJECT.run("dotnet new classlib -lang C# --name #{name} --output src/#{name}") unless File.exist?("src/#{name}/#{name}.csproj") # create the test puts " creating test/#{name}.Test/#{name}.Test.csproj" unless File.exist?("test/#{name}.Test/#{name}.Test.csproj") PROJECT.run("dotnet new nunit -lang C# --name #{name}.Test --output test/#{name}.Test") unless File.exist?("test/#{name}.Test/#{name}.Test.csproj") PROJECT.run("dotnet add test/#{name}.Test/#{name}.Test.csproj reference src/#{name}/#{name}.csproj") unless File.exist?("test/#{name}.Test/#{name}.Test.csproj") # generate project folders ["Interfaces", "Extensions", "Models"].each do |folder| FileUtils.mkdir_p("src/#{name}/#{folder}") unless Dir.exist?("src/#{name}/#{folder}") FileUtils.mkdir_p("test/#{name}.Test/#{folder}") unless Dir.exist?("test/#{name}.Test/#{folder}") end end |
.initialize_csharp_project(template_name, dir, name, folders) ⇒ Object
82 83 84 85 86 87 88 |
# File 'lib/raykit/dotnet.rb', line 82 def self.initialize_csharp_project(template_name, dir, name, folders) puts " creating #{dir}/#{name}/#{name}.csproj" unless File.exist?("#{dir}/#{name}/#{name}.csproj") PROJECT.run("dotnet new #{template_name} -lang C# --name #{name} --output #{dir}/#{name}") unless File.exist?("#{dir}/#{name}/#{name}.csproj") folders.each do |folder| FileUtils.mkdir_p("#{dir}/#{name}/#{folder}") unless Dir.exist?("#{dir}/#{name}/#{folder}") end end |
.initialize_csharp_razorclasslib(name) ⇒ Object
initialize a C# razor class library
107 108 109 110 111 112 113 114 115 116 117 118 119 120 |
# File 'lib/raykit/dotnet.rb', line 107 def self.initialize_csharp_razorclasslib(name) # create the library puts " creating src/#{name}/#{name}.csproj" unless File.exist?("src/#{name}/#{name}.csproj") PROJECT.run("dotnet new razorclasslib -lang C# --name #{name} --output src/#{name}") unless File.exist?("src/#{name}/#{name}.csproj") # create the test puts " creating test/#{name}.Test/#{name}.Test.csproj" unless File.exist?("test/#{name}.Test/#{name}.Test.csproj") PROJECT.run("dotnet new nunit -lang C# --name #{name}.Test --output test/#{name}.Test") unless File.exist?("test/#{name}.Test/#{name}.Test.csproj") PROJECT.run("dotnet add test/#{name}.Test/#{name}.Test.csproj reference src/#{name}/#{name}.csproj") unless File.exist?("test/#{name}.Test/#{name}.Test.csproj") # generate project folders ["Interfaces", "Extensions", "Models", "Components", "Controllers"].each do |folder| FileUtils.mkdir_p("src/#{name}/#{folder}") unless Dir.exist?("src/#{name}/#{folder}") FileUtils.mkdir_p("test/#{name}.Test/#{folder}") unless Dir.exist?("test/#{name}.Test/#{folder}") end end |
.initialize_csharp_service(name) ⇒ Object
initialize a C# worker service
71 72 73 74 75 76 77 78 79 80 |
# File 'lib/raykit/dotnet.rb', line 71 def self.initialize_csharp_service(name) unless Dir.exist?(name) FileUtils.mkdir(name) Dir.chdir(name) do puts `dotnet new worker -lang C#` end puts `dotnet new sln` puts `dotnet sln #{name}.sln add #{name}/#{name}.csproj` end end |
.initialize_csharp_wpf_application(name) ⇒ Object
initialize a C# wpf application
56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/raykit/dotnet.rb', line 56 def self.initialize_csharp_wpf_application(name) puts `dotnet new sln --name #{name}` unless Dir.exist?(name) FileUtils.mkdir(name) Dir.chdir(name) do puts `dotnet new wpf -lang C#` end end puts `dotnet sln #{name}.sln add #{name}/#{name}.csproj` initialize_csharp_lib("#{name}.Library") puts `dotnet sln #{name}.sln add #{name}.Library/#{name}.Library.csproj` puts `dotnet sln #{name}.sln add #{name}.Library.Test/#{name}.Library.Test.csproj` end |
.initialize_csharp_wpf_example(name) ⇒ Object
144 145 146 147 148 149 150 151 152 |
# File 'lib/raykit/dotnet.rb', line 144 def self.initialize_csharp_wpf_example(name) # create the wpf application puts " creating examples/#{name}/#{name}.csproj" unless File.exist?("examples/#{name}/#{name}.csproj") PROJECT.run("dotnet new wpf -lang C# --name #{name} --output examples/#{name}") unless File.exist?("examples/#{name}/#{name}.csproj") # generate project folders ["Interfaces", "Extensions", "Models", "Components", "Controllers"].each do |folder| FileUtils.mkdir_p("examples/#{name}/#{folder}") unless Dir.exist?("examples/#{name}/#{folder}") end end |
.initialize_fsharp_lib(name) ⇒ Object
initialize an F# library
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/raykit/dotnet.rb', line 15 def self.initialize_fsharp_lib(name) puts `dotnet new sln --name #{name}` unless File.exist?("#{name}.sln") unless Dir.exist?(name) FileUtils.mkdir(name) Dir.chdir(name) do puts `dotnet new classlib -lang F#` end # puts `dotnet new sln` puts `dotnet sln #{name}.sln add #{name}/#{name}.fsproj` FileUtils.mkdir("#{name}.Test") unless Dir.exist?("#{name}.Test") Dir.chdir("#{name}.Test") do puts `dotnet new nunit -lang F#` puts `dotnet add reference ../#{name}/#{name}.fsproj` end puts `dotnet sln #{name}.sln add #{name}.Test/#{name}.Test.fsproj` end end |