k_starter 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/.builders/generators/01-bootstrap.rb +16 -16
- data/.rubocop.yml +14 -0
- data/CHANGELOG.md +7 -0
- data/Gemfile +22 -0
- data/README.md +1 -1
- data/exe/k_starter +15 -0
- data/ext/k_starter/extconf.rb +5 -0
- data/ext/k_starter/k_starter.c +9 -0
- data/ext/k_starter/k_starter.h +6 -0
- data/lib/k_starter/app.rb +16 -0
- data/lib/k_starter/app_generator.rb +198 -0
- data/lib/k_starter/cli.rb +63 -0
- data/lib/k_starter/commands/.keep +1 -0
- data/lib/k_starter/commands/command.rb +54 -0
- data/lib/k_starter/commands/configuration/configuration_menu.rb +46 -0
- data/lib/k_starter/commands/project/bootstrap_project.rb +28 -0
- data/lib/k_starter/commands/project/edit_project.rb +34 -0
- data/lib/k_starter/commands/project/new_project.rb +28 -0
- data/lib/k_starter/commands/project/project_menu.rb +51 -0
- data/lib/k_starter/commands/project/select_new_project_type.rb +44 -0
- data/lib/k_starter/database/base_model.rb +21 -0
- data/lib/k_starter/database/config_model.rb +99 -0
- data/lib/k_starter/database/project_model.rb +94 -0
- data/lib/k_starter/map.rb +46 -0
- data/lib/k_starter/questions/ask_questions.rb +20 -0
- data/lib/k_starter/questions/base_question.rb +208 -0
- data/lib/k_starter/questions/gem.rb +132 -0
- data/lib/k_starter/questions/rails.rb +162 -0
- data/lib/k_starter/questions/svelte.rb +52 -0
- data/lib/k_starter/r7_hotwire.rb +98 -0
- data/lib/k_starter/schema.rb +89 -0
- data/lib/k_starter/starters/base.rb +80 -0
- data/lib/k_starter/starters/gem.rb +71 -0
- data/lib/k_starter/starters/nuxt.rb +29 -0
- data/lib/k_starter/starters/rails.rb +29 -0
- data/lib/k_starter/starters/svelte.rb +45 -0
- data/lib/k_starter/tty_helpers.rb +118 -0
- data/lib/k_starter/version.rb +1 -1
- data/lib/k_starter.rb +44 -1
- data/package-lock.json +2 -2
- data/package.json +1 -1
- metadata +172 -1
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KStarter
|
4
|
+
module Starters
|
5
|
+
# Generate command line for a new ruby gem project.
|
6
|
+
class Nuxt
|
7
|
+
attr_reader :data
|
8
|
+
|
9
|
+
def initialize(data)
|
10
|
+
@data = data
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute
|
14
|
+
script
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def script
|
20
|
+
<<-BASH
|
21
|
+
|
22
|
+
cd #{data.root_path}
|
23
|
+
npx nuxi init #{data.name}
|
24
|
+
|
25
|
+
BASH
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module KStarter
|
4
|
+
module Starters
|
5
|
+
# Generate command line for a new ruby gem project.
|
6
|
+
class Rails
|
7
|
+
attr_reader :data
|
8
|
+
|
9
|
+
def initialize(data)
|
10
|
+
@data = data
|
11
|
+
end
|
12
|
+
|
13
|
+
def execute
|
14
|
+
script
|
15
|
+
end
|
16
|
+
|
17
|
+
private
|
18
|
+
|
19
|
+
def script
|
20
|
+
<<-BASH
|
21
|
+
|
22
|
+
cd #{data.root_path}
|
23
|
+
npx degit sveltejs/template #{data.name}
|
24
|
+
|
25
|
+
BASH
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Examples
|
4
|
+
# bundle gem --coc --ci=github --exe --linter=rubocop --test=rspec --mit k_genesis
|
5
|
+
# bundle gem --coc --test=rspec --mit k_genesis
|
6
|
+
# bundle gem --coc --test=rspec --mit conventional_gitflow
|
7
|
+
# bundle gem --coc --test=rspec --mit k_director
|
8
|
+
# bundle gem --coc --test=rspec --mit k_config
|
9
|
+
# bundle gem --coc --test=rspec --mit funky
|
10
|
+
# bundle gem --coc --test=rspec --mit --linter=rubocop --ci-github cmdlet
|
11
|
+
# bundle gem --coc --test=rspec --mit cmdlet
|
12
|
+
# bundle gem --coc --test=rspec --mit drawio_dsl
|
13
|
+
# bundle gem --coc --test=rspec --mit tailwind_dsl
|
14
|
+
# bundle gem --coc --test=rspec --mit test-google-cloud-functions
|
15
|
+
# bundle gem --coc --test=rspec --mit test_google_cloud_functions
|
16
|
+
# bundle gem --coc --test=rspec --mit handlebarsjs
|
17
|
+
# bundle gem --coc --test=rspec --mit k_starter
|
18
|
+
|
19
|
+
module KStarter
|
20
|
+
module Starters
|
21
|
+
# Generate command line for a new ruby gem project.
|
22
|
+
class Svelte
|
23
|
+
attr_reader :data
|
24
|
+
|
25
|
+
def initialize(data)
|
26
|
+
@data = data
|
27
|
+
end
|
28
|
+
|
29
|
+
def execute
|
30
|
+
script
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def script
|
36
|
+
<<-BASH
|
37
|
+
|
38
|
+
cd #{data.root_path}
|
39
|
+
npx degit sveltejs/template #{data.name}
|
40
|
+
|
41
|
+
BASH
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,118 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'app'
|
4
|
+
require 'forwardable'
|
5
|
+
|
6
|
+
module KStarter
|
7
|
+
# Base command class
|
8
|
+
module TtyHelpers
|
9
|
+
# Commandlet Configuration
|
10
|
+
def config
|
11
|
+
KStarter::App.config
|
12
|
+
end
|
13
|
+
|
14
|
+
# The external commands runner
|
15
|
+
#
|
16
|
+
# @see http://www.rubydoc.info/gems/tty-command
|
17
|
+
#
|
18
|
+
# @api public
|
19
|
+
def command(**options)
|
20
|
+
require 'tty-command'
|
21
|
+
TTY::Command.new(options)
|
22
|
+
end
|
23
|
+
|
24
|
+
# The cursor movement
|
25
|
+
#
|
26
|
+
# @see http://www.rubydoc.info/gems/tty-cursor
|
27
|
+
#
|
28
|
+
# @api public
|
29
|
+
def cursor
|
30
|
+
require 'tty-cursor'
|
31
|
+
TTY::Cursor
|
32
|
+
end
|
33
|
+
|
34
|
+
# Open a file or text in the user's preferred editor
|
35
|
+
#
|
36
|
+
# @see http://www.rubydoc.info/gems/tty-editor
|
37
|
+
#
|
38
|
+
# @api public
|
39
|
+
def editor
|
40
|
+
require 'tty-editor'
|
41
|
+
TTY::Editor
|
42
|
+
end
|
43
|
+
|
44
|
+
# File manipulation utility methods
|
45
|
+
#
|
46
|
+
# @see http://www.rubydoc.info/gems/tty-file
|
47
|
+
#
|
48
|
+
# @api public
|
49
|
+
def generator
|
50
|
+
require 'tty-file'
|
51
|
+
TTY::File
|
52
|
+
end
|
53
|
+
|
54
|
+
# Terminal output paging
|
55
|
+
#
|
56
|
+
# @see http://www.rubydoc.info/gems/tty-pager
|
57
|
+
#
|
58
|
+
# @api public
|
59
|
+
def pager(**options)
|
60
|
+
require 'tty-pager'
|
61
|
+
TTY::Pager.new(options)
|
62
|
+
end
|
63
|
+
|
64
|
+
# Terminal platform and OS properties
|
65
|
+
#
|
66
|
+
# @see http://www.rubydoc.info/gems/tty-pager
|
67
|
+
#
|
68
|
+
# @api public
|
69
|
+
def platform
|
70
|
+
require 'tty-platform'
|
71
|
+
TTY::Platform.new
|
72
|
+
end
|
73
|
+
|
74
|
+
# The interactive prompt
|
75
|
+
#
|
76
|
+
# @see http://www.rubydoc.info/gems/tty-prompt
|
77
|
+
#
|
78
|
+
# @api public
|
79
|
+
def prompt
|
80
|
+
require 'tty-prompt'
|
81
|
+
p = TTY::Prompt.new
|
82
|
+
p.on(:keyescape) do
|
83
|
+
raise KStarter::EscapePressed
|
84
|
+
end
|
85
|
+
p
|
86
|
+
end
|
87
|
+
|
88
|
+
# Get terminal screen properties
|
89
|
+
#
|
90
|
+
# @see http://www.rubydoc.info/gems/tty-screen
|
91
|
+
#
|
92
|
+
# @api public
|
93
|
+
def screen
|
94
|
+
require 'tty-screen'
|
95
|
+
TTY::Screen
|
96
|
+
end
|
97
|
+
|
98
|
+
# The unix which utility
|
99
|
+
#
|
100
|
+
# @see http://www.rubydoc.info/gems/tty-which
|
101
|
+
#
|
102
|
+
# @api public
|
103
|
+
def which(*args)
|
104
|
+
require 'tty-which'
|
105
|
+
TTY::Which.which(*args)
|
106
|
+
end
|
107
|
+
|
108
|
+
# Check if executable exists
|
109
|
+
#
|
110
|
+
# @see http://www.rubydoc.info/gems/tty-which
|
111
|
+
#
|
112
|
+
# @api public
|
113
|
+
def exec_exist?(*args)
|
114
|
+
require 'tty-which'
|
115
|
+
TTY::Which.exist?(*args)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
end
|
data/lib/k_starter/version.rb
CHANGED
data/lib/k_starter.rb
CHANGED
@@ -1,12 +1,55 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'pry'
|
4
|
+
|
5
|
+
require 'json'
|
6
|
+
require 'dry-struct'
|
7
|
+
require 'tty-config'
|
8
|
+
require 'tty-prompt'
|
9
|
+
require 'tty-table'
|
10
|
+
require 'k_util'
|
11
|
+
|
12
|
+
require 'dry/cli'
|
13
|
+
require 'k_doc'
|
14
|
+
require 'k_manager'
|
15
|
+
require 'k_manager/cli/base_command'
|
16
|
+
require 'k_manager/cli/commands'
|
17
|
+
require 'k_manager/cli/new'
|
18
|
+
|
19
|
+
require 'rails/generators/rails/app/app_generator'
|
20
|
+
|
3
21
|
require_relative 'k_starter/version'
|
22
|
+
require_relative 'k_starter/tty_helpers'
|
23
|
+
require_relative 'k_starter/app_generator'
|
24
|
+
require_relative 'k_starter/schema'
|
25
|
+
require_relative 'k_starter/map'
|
26
|
+
require_relative 'k_starter/database/base_model'
|
27
|
+
require_relative 'k_starter/database/config_model'
|
28
|
+
require_relative 'k_starter/database/project_model'
|
29
|
+
require_relative 'k_starter/questions/base_question'
|
30
|
+
require_relative 'k_starter/questions/rails'
|
31
|
+
require_relative 'k_starter/questions/gem'
|
32
|
+
require_relative 'k_starter/questions/svelte'
|
33
|
+
require_relative 'k_starter/questions/ask_questions'
|
34
|
+
require_relative 'k_starter/cli'
|
35
|
+
require_relative 'k_starter/commands/command'
|
36
|
+
require_relative 'k_starter/commands/configuration/configuration_menu'
|
37
|
+
require_relative 'k_starter/commands/project/project_menu'
|
38
|
+
require_relative 'k_starter/commands/project/select_new_project_type'
|
39
|
+
require_relative 'k_starter/commands/project/new_project'
|
40
|
+
require_relative 'k_starter/commands/project/edit_project'
|
41
|
+
require_relative 'k_starter/commands/project/bootstrap_project'
|
42
|
+
require_relative 'k_starter/starters/base'
|
43
|
+
require_relative 'k_starter/starters/gem'
|
44
|
+
require_relative 'k_starter/starters/nuxt'
|
45
|
+
require_relative 'k_starter/starters/rails'
|
46
|
+
require_relative 'k_starter/starters/svelte'
|
4
47
|
|
5
48
|
module KStarter
|
6
49
|
# raise KStarter::Error, 'Sample message'
|
7
50
|
Error = Class.new(StandardError)
|
8
51
|
|
9
|
-
|
52
|
+
EscapePressed = Class.new(StandardError)
|
10
53
|
end
|
11
54
|
|
12
55
|
if ENV.fetch('KLUE_DEBUG', 'false').downcase == 'true'
|
data/package-lock.json
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "k_starter",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.1",
|
4
4
|
"lockfileVersion": 2,
|
5
5
|
"requires": true,
|
6
6
|
"packages": {
|
7
7
|
"": {
|
8
8
|
"name": "k_starter",
|
9
|
-
"version": "0.1.
|
9
|
+
"version": "0.1.1",
|
10
10
|
"devDependencies": {
|
11
11
|
"@klueless-js/semantic-release-rubygem": "github:klueless-js/semantic-release-rubygem",
|
12
12
|
"@semantic-release/changelog": "^6.0.1",
|
data/package.json
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k_starter
|
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
|
- David Cruwys
|
@@ -10,6 +10,34 @@ bindir: exe
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2022-06-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dry-struct
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: k_doc
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.37
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.37
|
13
41
|
- !ruby/object:Gem::Dependency
|
14
42
|
name: k_log
|
15
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -24,6 +52,118 @@ dependencies:
|
|
24
52
|
- - "~>"
|
25
53
|
- !ruby/object:Gem::Version
|
26
54
|
version: 0.0.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: k_manager
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 0.0.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.0.0
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: k_util
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 0.0.0
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 0.0.0
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: railties
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '6'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '6'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: tty-config
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0.5'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0.5'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: tty-editor
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0.7'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0.7'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: tty-prompt
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.23'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0.23'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: tty-table
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: 0.12.0
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: 0.12.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: pastel
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.8'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.8'
|
27
167
|
description: " Create starter applications for Rails, Ruby, and various javascript
|
28
168
|
frameworks.\n"
|
29
169
|
email:
|
@@ -49,7 +189,38 @@ files:
|
|
49
189
|
- bin/console
|
50
190
|
- bin/setup
|
51
191
|
- exe/k_starter
|
192
|
+
- ext/k_starter/extconf.rb
|
193
|
+
- ext/k_starter/k_starter.c
|
194
|
+
- ext/k_starter/k_starter.h
|
52
195
|
- lib/k_starter.rb
|
196
|
+
- lib/k_starter/app.rb
|
197
|
+
- lib/k_starter/app_generator.rb
|
198
|
+
- lib/k_starter/cli.rb
|
199
|
+
- lib/k_starter/commands/.keep
|
200
|
+
- lib/k_starter/commands/command.rb
|
201
|
+
- lib/k_starter/commands/configuration/configuration_menu.rb
|
202
|
+
- lib/k_starter/commands/project/bootstrap_project.rb
|
203
|
+
- lib/k_starter/commands/project/edit_project.rb
|
204
|
+
- lib/k_starter/commands/project/new_project.rb
|
205
|
+
- lib/k_starter/commands/project/project_menu.rb
|
206
|
+
- lib/k_starter/commands/project/select_new_project_type.rb
|
207
|
+
- lib/k_starter/database/base_model.rb
|
208
|
+
- lib/k_starter/database/config_model.rb
|
209
|
+
- lib/k_starter/database/project_model.rb
|
210
|
+
- lib/k_starter/map.rb
|
211
|
+
- lib/k_starter/questions/ask_questions.rb
|
212
|
+
- lib/k_starter/questions/base_question.rb
|
213
|
+
- lib/k_starter/questions/gem.rb
|
214
|
+
- lib/k_starter/questions/rails.rb
|
215
|
+
- lib/k_starter/questions/svelte.rb
|
216
|
+
- lib/k_starter/r7_hotwire.rb
|
217
|
+
- lib/k_starter/schema.rb
|
218
|
+
- lib/k_starter/starters/base.rb
|
219
|
+
- lib/k_starter/starters/gem.rb
|
220
|
+
- lib/k_starter/starters/nuxt.rb
|
221
|
+
- lib/k_starter/starters/rails.rb
|
222
|
+
- lib/k_starter/starters/svelte.rb
|
223
|
+
- lib/k_starter/tty_helpers.rb
|
53
224
|
- lib/k_starter/version.rb
|
54
225
|
- package-lock.json
|
55
226
|
- package.json
|