makit 0.0.111 → 0.0.112

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.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +41 -41
  3. data/exe/makit +5 -5
  4. data/lib/makit/apache.rb +28 -28
  5. data/lib/makit/cli/build_commands.rb +500 -500
  6. data/lib/makit/cli/generators/base_generator.rb +74 -74
  7. data/lib/makit/cli/generators/dotnet_generator.rb +50 -50
  8. data/lib/makit/cli/generators/generator_factory.rb +49 -49
  9. data/lib/makit/cli/generators/node_generator.rb +50 -50
  10. data/lib/makit/cli/generators/ruby_generator.rb +77 -77
  11. data/lib/makit/cli/generators/rust_generator.rb +50 -50
  12. data/lib/makit/cli/generators/templates/dotnet_templates.rb +167 -167
  13. data/lib/makit/cli/generators/templates/node_templates.rb +161 -161
  14. data/lib/makit/cli/generators/templates/ruby/gemfile.rb +26 -26
  15. data/lib/makit/cli/generators/templates/ruby/gemspec.rb +40 -40
  16. data/lib/makit/cli/generators/templates/ruby/main_lib.rb +33 -33
  17. data/lib/makit/cli/generators/templates/ruby/rakefile.rb +35 -35
  18. data/lib/makit/cli/generators/templates/ruby/readme.rb +63 -63
  19. data/lib/makit/cli/generators/templates/ruby/test.rb +39 -39
  20. data/lib/makit/cli/generators/templates/ruby/test_helper.rb +29 -29
  21. data/lib/makit/cli/generators/templates/ruby/version.rb +29 -29
  22. data/lib/makit/cli/generators/templates/rust_templates.rb +128 -128
  23. data/lib/makit/cli/main.rb +62 -62
  24. data/lib/makit/cli/project_commands.rb +868 -868
  25. data/lib/makit/cli/repository_commands.rb +661 -661
  26. data/lib/makit/cli/utility_commands.rb +521 -521
  27. data/lib/makit/commands/factory.rb +359 -359
  28. data/lib/makit/commands/middleware/base.rb +73 -73
  29. data/lib/makit/commands/middleware/cache.rb +248 -248
  30. data/lib/makit/commands/middleware/command_logger.rb +320 -323
  31. data/lib/makit/commands/middleware/unified_logger.rb +243 -243
  32. data/lib/makit/commands/middleware/validator.rb +269 -269
  33. data/lib/makit/commands/request.rb +254 -254
  34. data/lib/makit/commands/result.rb +323 -323
  35. data/lib/makit/commands/runner.rb +337 -317
  36. data/lib/makit/commands/strategies/base.rb +160 -160
  37. data/lib/makit/commands/strategies/synchronous.rb +134 -134
  38. data/lib/makit/commands.rb +51 -42
  39. data/lib/makit/configuration/gitlab_helper.rb +60 -60
  40. data/lib/makit/configuration/project.rb +127 -127
  41. data/lib/makit/configuration/rakefile_helper.rb +43 -43
  42. data/lib/makit/configuration/step.rb +34 -34
  43. data/lib/makit/configuration.rb +14 -14
  44. data/lib/makit/content/default_gitignore.rb +7 -7
  45. data/lib/makit/content/default_rakefile.rb +13 -13
  46. data/lib/makit/content/gem_rakefile.rb +16 -16
  47. data/lib/makit/context.rb +1 -1
  48. data/lib/makit/data.rb +49 -49
  49. data/lib/makit/directories.rb +141 -141
  50. data/lib/makit/directory.rb +262 -262
  51. data/lib/makit/docs/files.rb +89 -89
  52. data/lib/makit/docs/rake.rb +102 -102
  53. data/lib/makit/dotnet/project.rb +153 -153
  54. data/lib/makit/dotnet/solution.rb +38 -38
  55. data/lib/makit/dotnet/solution_classlib.rb +239 -239
  56. data/lib/makit/dotnet/solution_console.rb +264 -264
  57. data/lib/makit/dotnet/solution_maui.rb +354 -354
  58. data/lib/makit/dotnet/solution_wasm.rb +275 -275
  59. data/lib/makit/dotnet/solution_wpf.rb +304 -304
  60. data/lib/makit/dotnet.rb +102 -102
  61. data/lib/makit/email.rb +90 -90
  62. data/lib/makit/environment.rb +142 -142
  63. data/lib/makit/examples/runner.rb +370 -370
  64. data/lib/makit/exceptions.rb +45 -45
  65. data/lib/makit/fileinfo.rb +24 -24
  66. data/lib/makit/files.rb +43 -43
  67. data/lib/makit/gems.rb +40 -40
  68. data/lib/makit/git/cli.rb +54 -54
  69. data/lib/makit/git/repository.rb +90 -90
  70. data/lib/makit/git.rb +98 -98
  71. data/lib/makit/gitlab_runner.rb +59 -59
  72. data/lib/makit/humanize.rb +137 -137
  73. data/lib/makit/indexer.rb +47 -47
  74. data/lib/makit/logging/configuration.rb +305 -305
  75. data/lib/makit/logging/formatters/base.rb +39 -39
  76. data/lib/makit/logging/formatters/console_formatter.rb +140 -127
  77. data/lib/makit/logging/formatters/json_formatter.rb +65 -65
  78. data/lib/makit/logging/formatters/plain_text_formatter.rb +71 -71
  79. data/lib/makit/logging/formatters/text_formatter.rb +64 -64
  80. data/lib/makit/logging/log_request.rb +115 -115
  81. data/lib/makit/logging/logger.rb +163 -159
  82. data/lib/makit/logging/sinks/console.rb +72 -72
  83. data/lib/makit/logging/sinks/file_sink.rb +92 -92
  84. data/lib/makit/logging/sinks/unified_file_sink.rb +303 -303
  85. data/lib/makit/logging.rb +530 -521
  86. data/lib/makit/markdown.rb +75 -75
  87. data/lib/makit/mp/basic_object_mp.rb +17 -17
  88. data/lib/makit/mp/command_mp.rb +13 -13
  89. data/lib/makit/mp/command_request.mp.rb +17 -17
  90. data/lib/makit/mp/project_mp.rb +199 -199
  91. data/lib/makit/mp/string_mp.rb +193 -348
  92. data/lib/makit/nuget.rb +74 -74
  93. data/lib/makit/port.rb +32 -32
  94. data/lib/makit/process.rb +163 -163
  95. data/lib/makit/protoc.rb +107 -107
  96. data/lib/makit/rake/cli.rb +196 -196
  97. data/lib/makit/rake.rb +25 -25
  98. data/lib/makit/ruby/cli.rb +185 -185
  99. data/lib/makit/ruby.rb +25 -25
  100. data/lib/makit/secrets.rb +51 -51
  101. data/lib/makit/serializer.rb +130 -117
  102. data/lib/makit/services/builder.rb +186 -186
  103. data/lib/makit/services/error_handler.rb +226 -226
  104. data/lib/makit/services/repository_manager.rb +229 -229
  105. data/lib/makit/services/validator.rb +112 -112
  106. data/lib/makit/setup/classlib.rb +53 -53
  107. data/lib/makit/setup/gem.rb +30 -17
  108. data/lib/makit/setup/runner.rb +45 -40
  109. data/lib/makit/setup.rb +5 -0
  110. data/lib/makit/show.rb +110 -110
  111. data/lib/makit/storage.rb +126 -126
  112. data/lib/makit/symbols.rb +170 -161
  113. data/lib/makit/task_info.rb +128 -128
  114. data/lib/makit/tasks/at_exit.rb +13 -13
  115. data/lib/makit/tasks/build.rb +19 -18
  116. data/lib/makit/tasks/clean.rb +11 -11
  117. data/lib/makit/tasks/hook_manager.rb +393 -239
  118. data/lib/makit/tasks/init.rb +47 -47
  119. data/lib/makit/tasks/integrate.rb +17 -15
  120. data/lib/makit/tasks/pull_incoming.rb +11 -12
  121. data/lib/makit/tasks/setup.rb +6 -6
  122. data/lib/makit/tasks/sync.rb +12 -11
  123. data/lib/makit/tasks/tag.rb +15 -0
  124. data/lib/makit/tasks/task_monkey_patch.rb +79 -79
  125. data/lib/makit/tasks.rb +10 -0
  126. data/lib/makit/test_cache.rb +239 -239
  127. data/lib/makit/tree.rb +37 -37
  128. data/lib/makit/v1/makit.v1_pb.rb +34 -34
  129. data/lib/makit/v1/makit.v1_services_pb.rb +27 -27
  130. data/lib/makit/version.rb +5 -5
  131. data/lib/makit/version_util.rb +21 -0
  132. data/lib/makit/wix.rb +95 -95
  133. data/lib/makit/yaml.rb +29 -29
  134. data/lib/makit/zip.rb +17 -17
  135. data/lib/makit copy.rb +44 -0
  136. data/lib/makit.rb +40 -8
  137. metadata +50 -7
  138. data/lib/makit/command_runner.rb +0 -463
  139. data/lib/makit/commands/compatibility.rb +0 -365
  140. data/lib/makit/task_hooks.rb +0 -125
@@ -1,161 +1,161 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- module Cli
5
- module Generators
6
- module Templates
7
- # Node.js project template generators
8
- #
9
- # This module contains template classes for generating Node.js project files
10
- # including package.json, index.js, README.md, and .gitignore files.
11
- #
12
- # @example Generate a package.json file
13
- # package = Makit::Cli::Generators::Templates::Node::PackageJson.new("my-app")
14
- # content = package.render
15
- module Node
16
- # Template generator for Node.js package.json files
17
- #
18
- # Generates a standard package.json file with basic metadata,
19
- # MIT license, and placeholder test script. Sets up a Node.js
20
- # project ready for npm package management.
21
- #
22
- # @example
23
- # package = PackageJson.new("my-node-app")
24
- # json_content = package.render
25
- class PackageJson
26
- # Initialize a new package.json template generator
27
- #
28
- # @param project_name [String] the name of the Node.js project
29
- def initialize(project_name)
30
- @project_name = project_name
31
- end
32
-
33
- # Render the package.json content
34
- #
35
- # @return [String] the complete package.json content with project metadata
36
- def render
37
- <<~JSON
38
- {
39
- "name": "#{@project_name}",
40
- "version": "0.1.0",
41
- "description": "A Node.js project",
42
- "main": "index.js",
43
- "scripts": {
44
- "test": "echo \\"Error: no test specified\\" && exit 1"
45
- },
46
- "keywords": [],
47
- "author": "",
48
- "license": "MIT"
49
- }
50
- JSON
51
- end
52
- end
53
-
54
- # Template generator for Node.js index.js entry point files
55
- #
56
- # Generates a simple JavaScript file that outputs "Hello, World!"
57
- # to the console. Provides a basic starting point for Node.js
58
- # applications.
59
- #
60
- # @example
61
- # index = IndexJs.new("my-app")
62
- # js_content = index.render
63
- class IndexJs
64
- # Initialize a new index.js template generator
65
- #
66
- # @param project_name [String] the name of the Node.js project (unused but kept for consistency)
67
- def initialize(project_name)
68
- @project_name = project_name
69
- end
70
-
71
- # Render the index.js JavaScript content
72
- #
73
- # @return [String] the complete JavaScript code for the main entry point
74
- def render
75
- <<~JAVASCRIPT
76
- console.log("Hello, World!");
77
- JAVASCRIPT
78
- end
79
- end
80
-
81
- # Template generator for Node.js project README.md files
82
- #
83
- # Generates a standard README.md file with project name, description,
84
- # and common npm commands (install, run, test). Provides documentation
85
- # structure for Node.js projects.
86
- #
87
- # @example
88
- # readme = Readme.new("MyNodeApp")
89
- # markdown_content = readme.render
90
- class Readme
91
- # Initialize a new README.md template generator
92
- #
93
- # @param project_name [String] the name of the Node.js project
94
- def initialize(project_name)
95
- @project_name = project_name
96
- end
97
-
98
- # Render the README.md markdown content
99
- #
100
- # @return [String] the complete README.md content with npm instructions
101
- def render
102
- <<~README
103
- # #{@project_name}
104
-
105
- A Node.js project.
106
-
107
- ## Installation
108
-
109
- ```bash
110
- npm install
111
- ```
112
-
113
- ## Running
114
-
115
- ```bash
116
- node index.js
117
- ```
118
-
119
- ## Testing
120
-
121
- ```bash
122
- npm test
123
- ```
124
- README
125
- end
126
- end
127
-
128
- # Template generator for Node.js project .gitignore files
129
- #
130
- # Generates a .gitignore file with common Node.js artifacts and
131
- # log files that should not be committed to version control.
132
- # Includes node_modules/, npm debug logs, and yarn error logs.
133
- #
134
- # @example
135
- # gitignore = Gitignore.new("MyProject")
136
- # ignore_content = gitignore.render
137
- class Gitignore
138
- # Initialize a new .gitignore template generator
139
- #
140
- # @param project_name [String] the name of the Node.js project (unused but kept for consistency)
141
- def initialize(project_name)
142
- @project_name = project_name
143
- end
144
-
145
- # Render the .gitignore file content
146
- #
147
- # @return [String] the complete .gitignore content for Node.js projects
148
- def render
149
- <<~GITIGNORE
150
- node_modules/
151
- npm-debug.log*
152
- yarn-debug.log*
153
- yarn-error.log*
154
- GITIGNORE
155
- end
156
- end
157
- end
158
- end
159
- end
160
- end
161
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ module Cli
5
+ module Generators
6
+ module Templates
7
+ # Node.js project template generators
8
+ #
9
+ # This module contains template classes for generating Node.js project files
10
+ # including package.json, index.js, README.md, and .gitignore files.
11
+ #
12
+ # @example Generate a package.json file
13
+ # package = Makit::Cli::Generators::Templates::Node::PackageJson.new("my-app")
14
+ # content = package.render
15
+ module Node
16
+ # Template generator for Node.js package.json files
17
+ #
18
+ # Generates a standard package.json file with basic metadata,
19
+ # MIT license, and placeholder test script. Sets up a Node.js
20
+ # project ready for npm package management.
21
+ #
22
+ # @example
23
+ # package = PackageJson.new("my-node-app")
24
+ # json_content = package.render
25
+ class PackageJson
26
+ # Initialize a new package.json template generator
27
+ #
28
+ # @param project_name [String] the name of the Node.js project
29
+ def initialize(project_name)
30
+ @project_name = project_name
31
+ end
32
+
33
+ # Render the package.json content
34
+ #
35
+ # @return [String] the complete package.json content with project metadata
36
+ def render
37
+ <<~JSON
38
+ {
39
+ "name": "#{@project_name}",
40
+ "version": "0.1.0",
41
+ "description": "A Node.js project",
42
+ "main": "index.js",
43
+ "scripts": {
44
+ "test": "echo \\"Error: no test specified\\" && exit 1"
45
+ },
46
+ "keywords": [],
47
+ "author": "",
48
+ "license": "MIT"
49
+ }
50
+ JSON
51
+ end
52
+ end
53
+
54
+ # Template generator for Node.js index.js entry point files
55
+ #
56
+ # Generates a simple JavaScript file that outputs "Hello, World!"
57
+ # to the console. Provides a basic starting point for Node.js
58
+ # applications.
59
+ #
60
+ # @example
61
+ # index = IndexJs.new("my-app")
62
+ # js_content = index.render
63
+ class IndexJs
64
+ # Initialize a new index.js template generator
65
+ #
66
+ # @param project_name [String] the name of the Node.js project (unused but kept for consistency)
67
+ def initialize(project_name)
68
+ @project_name = project_name
69
+ end
70
+
71
+ # Render the index.js JavaScript content
72
+ #
73
+ # @return [String] the complete JavaScript code for the main entry point
74
+ def render
75
+ <<~JAVASCRIPT
76
+ console.log("Hello, World!");
77
+ JAVASCRIPT
78
+ end
79
+ end
80
+
81
+ # Template generator for Node.js project README.md files
82
+ #
83
+ # Generates a standard README.md file with project name, description,
84
+ # and common npm commands (install, run, test). Provides documentation
85
+ # structure for Node.js projects.
86
+ #
87
+ # @example
88
+ # readme = Readme.new("MyNodeApp")
89
+ # markdown_content = readme.render
90
+ class Readme
91
+ # Initialize a new README.md template generator
92
+ #
93
+ # @param project_name [String] the name of the Node.js project
94
+ def initialize(project_name)
95
+ @project_name = project_name
96
+ end
97
+
98
+ # Render the README.md markdown content
99
+ #
100
+ # @return [String] the complete README.md content with npm instructions
101
+ def render
102
+ <<~README
103
+ # #{@project_name}
104
+
105
+ A Node.js project.
106
+
107
+ ## Installation
108
+
109
+ ```bash
110
+ npm install
111
+ ```
112
+
113
+ ## Running
114
+
115
+ ```bash
116
+ node index.js
117
+ ```
118
+
119
+ ## Testing
120
+
121
+ ```bash
122
+ npm test
123
+ ```
124
+ README
125
+ end
126
+ end
127
+
128
+ # Template generator for Node.js project .gitignore files
129
+ #
130
+ # Generates a .gitignore file with common Node.js artifacts and
131
+ # log files that should not be committed to version control.
132
+ # Includes node_modules/, npm debug logs, and yarn error logs.
133
+ #
134
+ # @example
135
+ # gitignore = Gitignore.new("MyProject")
136
+ # ignore_content = gitignore.render
137
+ class Gitignore
138
+ # Initialize a new .gitignore template generator
139
+ #
140
+ # @param project_name [String] the name of the Node.js project (unused but kept for consistency)
141
+ def initialize(project_name)
142
+ @project_name = project_name
143
+ end
144
+
145
+ # Render the .gitignore file content
146
+ #
147
+ # @return [String] the complete .gitignore content for Node.js projects
148
+ def render
149
+ <<~GITIGNORE
150
+ node_modules/
151
+ npm-debug.log*
152
+ yarn-debug.log*
153
+ yarn-error.log*
154
+ GITIGNORE
155
+ end
156
+ end
157
+ end
158
+ end
159
+ end
160
+ end
161
+ end
@@ -1,26 +1,26 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- module Cli
5
- module Generators
6
- module Templates
7
- module Ruby
8
- # Template for Ruby gem Gemfile
9
- class Gemfile
10
- def initialize(project_name)
11
- @project_name = project_name
12
- end
13
-
14
- def render
15
- <<~GEMFILE
16
- source "https://rubygems.org"
17
-
18
- gem "#{@project_name}"
19
- GEMFILE
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ module Cli
5
+ module Generators
6
+ module Templates
7
+ module Ruby
8
+ # Template for Ruby gem Gemfile
9
+ class Gemfile
10
+ def initialize(project_name)
11
+ @project_name = project_name
12
+ end
13
+
14
+ def render
15
+ <<~GEMFILE
16
+ source "https://rubygems.org"
17
+
18
+ gem "#{@project_name}"
19
+ GEMFILE
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,40 +1,40 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- module Cli
5
- module Generators
6
- module Templates
7
- module Ruby
8
- # Template for Ruby gem gemspec file
9
- class Gemspec
10
- def initialize(project_name)
11
- @project_name = project_name
12
- end
13
-
14
- def render
15
- <<~GEMSPEC
16
- Gem::Specification.new do |spec|
17
- spec.name = "#{@project_name}"
18
- spec.version = "0.1.0"
19
- spec.authors = ["Author Name"]
20
- spec.email = ["author@example.com"]
21
- spec.summary = "A Ruby gem"
22
- spec.description = "A longer description of the gem"
23
- spec.homepage = "https://github.com/author/#{@project_name}"
24
- spec.license = "MIT"
25
- #{" "}
26
- spec.files = Dir["lib/**/*", "README.md"]
27
- spec.require_paths = ["lib"]
28
- #{" "}
29
- spec.add_development_dependency "bundler", "~> 2.0"
30
- spec.add_development_dependency "rake", "~> 13.0"
31
- spec.add_development_dependency "minitest", "~> 5.0"
32
- end
33
- GEMSPEC
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
40
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ module Cli
5
+ module Generators
6
+ module Templates
7
+ module Ruby
8
+ # Template for Ruby gem gemspec file
9
+ class Gemspec
10
+ def initialize(project_name)
11
+ @project_name = project_name
12
+ end
13
+
14
+ def render
15
+ <<~GEMSPEC
16
+ Gem::Specification.new do |spec|
17
+ spec.name = "#{@project_name}"
18
+ spec.version = "0.1.0"
19
+ spec.authors = ["Author Name"]
20
+ spec.email = ["author@example.com"]
21
+ spec.summary = "A Ruby gem"
22
+ spec.description = "A longer description of the gem"
23
+ spec.homepage = "https://github.com/author/#{@project_name}"
24
+ spec.license = "MIT"
25
+ #{" "}
26
+ spec.files = Dir["lib/**/*", "README.md"]
27
+ spec.require_paths = ["lib"]
28
+ #{" "}
29
+ spec.add_development_dependency "bundler", "~> 2.0"
30
+ spec.add_development_dependency "rake", "~> 13.0"
31
+ spec.add_development_dependency "minitest", "~> 5.0"
32
+ end
33
+ GEMSPEC
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,33 +1,33 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- module Cli
5
- module Generators
6
- module Templates
7
- module Ruby
8
- # Template for main Ruby gem lib file
9
- class MainLib
10
- def initialize(project_name)
11
- @project_name = project_name
12
- @module_name = project_name.split(/[-_]/).map(&:capitalize).join
13
- end
14
-
15
- def render
16
- <<~RUBY
17
- # frozen_string_literal: true
18
-
19
- require_relative "#{@project_name}/version"
20
-
21
- module #{@module_name}
22
- class Error < StandardError; end
23
- #{" "}
24
- # Your code goes here...
25
- end
26
- RUBY
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ module Cli
5
+ module Generators
6
+ module Templates
7
+ module Ruby
8
+ # Template for main Ruby gem lib file
9
+ class MainLib
10
+ def initialize(project_name)
11
+ @project_name = project_name
12
+ @module_name = project_name.split(/[-_]/).map(&:capitalize).join
13
+ end
14
+
15
+ def render
16
+ <<~RUBY
17
+ # frozen_string_literal: true
18
+
19
+ require_relative "#{@project_name}/version"
20
+
21
+ module #{@module_name}
22
+ class Error < StandardError; end
23
+ #{" "}
24
+ # Your code goes here...
25
+ end
26
+ RUBY
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,35 +1,35 @@
1
- # frozen_string_literal: true
2
-
3
- module Makit
4
- module Cli
5
- module Generators
6
- module Templates
7
- module Ruby
8
- # Template for Ruby gem Rakefile
9
- class Rakefile
10
- def initialize(project_name)
11
- @project_name = project_name
12
- end
13
-
14
- def render
15
- <<~RAKEFILE
16
- # frozen_string_literal: true
17
-
18
- require "bundler/gem_tasks"
19
- require "rake/testtask"
20
-
21
- Rake::TestTask.new(:test) do |t|
22
- t.libs << "test"
23
- t.libs << "lib"
24
- t.test_files = FileList["test/**/*_test.rb"]
25
- end
26
-
27
- task default: :test
28
- RAKEFILE
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
1
+ # frozen_string_literal: true
2
+
3
+ module Makit
4
+ module Cli
5
+ module Generators
6
+ module Templates
7
+ module Ruby
8
+ # Template for Ruby gem Rakefile
9
+ class Rakefile
10
+ def initialize(project_name)
11
+ @project_name = project_name
12
+ end
13
+
14
+ def render
15
+ <<~RAKEFILE
16
+ # frozen_string_literal: true
17
+
18
+ require "bundler/gem_tasks"
19
+ require "rake/testtask"
20
+
21
+ Rake::TestTask.new(:test) do |t|
22
+ t.libs << "test"
23
+ t.libs << "lib"
24
+ t.test_files = FileList["test/**/*_test.rb"]
25
+ end
26
+
27
+ task default: :test
28
+ RAKEFILE
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end