mogu 0.7.0 → 0.8.2
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/.devcontainer/devcontainer.json +1 -1
- data/.vscode/settings.json +1 -0
- data/Gemfile +2 -0
- data/README.md +41 -34
- data/Steepfile +9 -0
- data/lib/mogu/gem_command.rb +7 -6
- data/lib/mogu/new_command.rb +54 -45
- data/lib/mogu/templates/gem.erb +1 -1
- data/lib/mogu/version.rb +1 -1
- data/mogu.gemspec +1 -1
- data/sig/mogu/cli.rbs +10 -0
- data/sig/mogu/gem_command.rbs +11 -0
- data/sig/mogu/new_command.rbs +25 -0
- data/sig/mogu/version.rbs +6 -0
- data/sig/patch.rbs +19 -0
- metadata +17 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2b97df52a63b57b648da331520f2dd757a6a6b91083065c4976adbf74ccf37c
|
4
|
+
data.tar.gz: eb9d4df6e3f74bc03a736b69cc7f037d22bad15f98bd08f295b819f21ae0a111
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05ec2871deacd7c4d4c2e9bf84aaeb38ae36ca01568fe94c34b87c839809467f555b6433783dcfa54d6783676a92170cffb962deab66fb9809abe7048e90bd72
|
7
|
+
data.tar.gz: e7b9207dd73b3db51f3b86db12f6fff893d1acbd92897eae97c8d2f459e863045b98875a46d4f913600537bde9268271e02d90030c19a474f235fb8bfa44d1c2
|
@@ -20,7 +20,7 @@
|
|
20
20
|
"settings": {},
|
21
21
|
|
22
22
|
// Add the IDs of extensions you want installed when the container is created.
|
23
|
-
"extensions": ["castwide.solargraph"]
|
23
|
+
"extensions": ["castwide.solargraph", "soutaro.steep-vscode"]
|
24
24
|
|
25
25
|
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
26
26
|
// "forwardPorts": [],
|
data/.vscode/settings.json
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -38,37 +38,42 @@ mogu new
|
|
38
38
|
```
|
39
39
|
|
40
40
|
```bash
|
41
|
-
Please input app path
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
41
|
+
? Please input app path
|
42
|
+
>
|
43
|
+
|
44
|
+
? Do you want api mode? (Choose with ↑ ↓ ⏎)
|
45
|
+
> 1. no
|
46
|
+
2. yes
|
47
|
+
|
48
|
+
? Choose customizes (Toggle options. Choose with ↑ ↓ ⏎, filter with 'f')
|
49
|
+
> 1. ☐ database (Default: sqlite3)
|
50
|
+
2. ☐ javascript (Default: importmap)
|
51
|
+
3. ☐ css
|
52
|
+
4. ☐ skips
|
53
|
+
0. Done
|
54
|
+
|
55
|
+
? Choose database (Choose with ↑ ↓ ⏎, filter with 'f')
|
56
|
+
> 1. sqlite3
|
57
|
+
2. mysql
|
58
|
+
3. postgresql
|
55
59
|
...
|
56
60
|
|
57
|
-
Choose javascript
|
58
|
-
> importmap
|
59
|
-
webpack
|
60
|
-
esbuild
|
61
|
-
rollup
|
62
|
-
|
63
|
-
Choose css
|
64
|
-
> tailwind
|
65
|
-
bootstrap
|
66
|
-
bulma
|
67
|
-
postcss
|
68
|
-
sass
|
69
|
-
|
70
|
-
Choose skips
|
71
|
-
>
|
61
|
+
? Choose javascript (Choose with ↑ ↓ ⏎, filter with 'f')
|
62
|
+
> 1. importmap
|
63
|
+
2. webpack
|
64
|
+
3. esbuild
|
65
|
+
4. rollup
|
66
|
+
|
67
|
+
? Choose css (Choose with ↑ ↓ ⏎, filter with 'f')
|
68
|
+
> 1. tailwind
|
69
|
+
2. bootstrap
|
70
|
+
3. bulma
|
71
|
+
4. postcss
|
72
|
+
5. sass
|
73
|
+
|
74
|
+
? Choose skips (Toggle options. Choose with ↑ ↓ ⏎, filter with 'f')
|
75
|
+
> 1. ☐ test
|
76
|
+
0. Done
|
72
77
|
```
|
73
78
|
|
74
79
|
### gem
|
@@ -80,11 +85,13 @@ mogu gem
|
|
80
85
|
```
|
81
86
|
|
82
87
|
```bash
|
83
|
-
Choose gems
|
84
|
-
>
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
+
? Choose gems (Toggle options. Choose with ↑ ↓ ⏎, filter with 'f')
|
89
|
+
> 1. ☐ brakeman
|
90
|
+
2. ☐ solargraph
|
91
|
+
3. ☐ rspec
|
92
|
+
4. ☐ rubocop
|
93
|
+
0. Done
|
94
|
+
|
88
95
|
```
|
89
96
|
|
90
97
|
## Development
|
data/Steepfile
ADDED
data/lib/mogu/gem_command.rb
CHANGED
@@ -1,18 +1,17 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'cli/ui'
|
3
4
|
require 'erb'
|
4
5
|
require 'rails/command'
|
5
6
|
require 'tempfile'
|
6
|
-
require 'tty-prompt'
|
7
7
|
|
8
8
|
module Mogu
|
9
9
|
class GemCommand
|
10
10
|
def run
|
11
|
-
erb = ERB.new File.read(File.expand_path('templates/gem.erb', __dir__))
|
12
|
-
prompt = TTY::Prompt.new
|
11
|
+
erb = ERB.new File.read(File.expand_path('templates/gem.erb', __dir__.to_s))
|
13
12
|
template = Tempfile.new
|
14
13
|
|
15
|
-
gems =
|
14
|
+
gems = ask_gems
|
16
15
|
template.write erb.result_with_hash(gems: gems)
|
17
16
|
template.rewind
|
18
17
|
|
@@ -23,8 +22,10 @@ module Mogu
|
|
23
22
|
|
24
23
|
private
|
25
24
|
|
26
|
-
def
|
27
|
-
%w[brakeman solargraph rspec rubocop]
|
25
|
+
def ask_gems
|
26
|
+
options = %w[brakeman solargraph rspec rubocop]
|
27
|
+
|
28
|
+
::CLI::UI::Prompt.ask 'Choose gems', multiple: true, options: options
|
28
29
|
end
|
29
30
|
end
|
30
31
|
end
|
data/lib/mogu/new_command.rb
CHANGED
@@ -1,81 +1,90 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'cli/ui'
|
3
4
|
require 'rails/command'
|
4
|
-
require 'tty-prompt'
|
5
5
|
|
6
6
|
module Mogu
|
7
7
|
class NewCommand
|
8
8
|
def run
|
9
|
-
@
|
9
|
+
@app_path = ask_app_path
|
10
|
+
@is_api = confirm_is_api
|
11
|
+
customizes = ask_customizes
|
10
12
|
|
11
|
-
@
|
12
|
-
@
|
13
|
-
@
|
14
|
-
|
15
|
-
@database = @prompt.select 'Choose database', database_choices if database?
|
16
|
-
@javascript = @prompt.select 'Choose javascript', javascript_choices if javascript?
|
17
|
-
@css = @prompt.select 'Choose css', css_choices if css?
|
18
|
-
@skips = @prompt.multi_select 'Choose skips', skip_choices if @customizes.include? 'skips'
|
13
|
+
@database = customizes.include?('database') ? ask_database : []
|
14
|
+
@javascript = customizes.include?('javascript') ? ask_javascript : []
|
15
|
+
@css = customizes.include?('css') ? ask_css : []
|
16
|
+
@skips = customizes.include?('skips') ? ask_skips : []
|
19
17
|
|
20
18
|
Rails::Command.invoke :application, ['new', *to_opt]
|
21
19
|
end
|
22
20
|
|
23
21
|
private
|
24
22
|
|
25
|
-
def
|
26
|
-
|
23
|
+
def ask_app_path
|
24
|
+
::CLI::UI::Prompt.ask 'Please input app path', allow_empty: false
|
27
25
|
end
|
28
26
|
|
29
|
-
def
|
30
|
-
|
27
|
+
def confirm_is_api
|
28
|
+
::CLI::UI::Prompt.confirm 'Do you want api mode?', default: false
|
31
29
|
end
|
32
30
|
|
33
|
-
def
|
34
|
-
|
35
|
-
|
31
|
+
def ask_customizes
|
32
|
+
::CLI::UI::Prompt.ask 'Choose customizes', multiple: true do |handler|
|
33
|
+
handler.option('database (Default: sqlite3)') { 'database' }
|
34
|
+
|
35
|
+
unless @is_api
|
36
|
+
handler.option('javascript (Default: importmap)') { 'javascript' }
|
37
|
+
handler.option('css') { 'css' }
|
38
|
+
end
|
36
39
|
|
37
|
-
|
38
|
-
|
40
|
+
handler.option('skips') { 'skips' }
|
41
|
+
end
|
39
42
|
end
|
40
43
|
|
41
|
-
def
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
[
|
49
|
-
{ name: 'database (Default: sqlite3)', value: 'database' },
|
50
|
-
{ name: 'javascript (Default: importmap)', value: 'javascript' },
|
51
|
-
{ name: 'css', value: 'css' },
|
52
|
-
{ name: 'skips', value: 'skips' }
|
53
|
-
]
|
44
|
+
def ask_database
|
45
|
+
options = %w[sqlite3 mysql postgresql oracle sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc]
|
46
|
+
|
47
|
+
::CLI::UI::Prompt.ask 'Choose database' do |handler|
|
48
|
+
options.each do |option|
|
49
|
+
handler.option(option) { |s| ['-d', s] }
|
50
|
+
end
|
54
51
|
end
|
55
52
|
end
|
56
53
|
|
57
|
-
def
|
58
|
-
%w[
|
54
|
+
def ask_javascript
|
55
|
+
options = %w[importmap webpack esbuild rollup]
|
56
|
+
|
57
|
+
::CLI::UI::Prompt.ask 'Choose javascript' do |handler|
|
58
|
+
options.each do |option|
|
59
|
+
handler.option(option) { |s| ['-j', s] }
|
60
|
+
end
|
61
|
+
end
|
59
62
|
end
|
60
63
|
|
61
|
-
def
|
62
|
-
%w[
|
64
|
+
def ask_css
|
65
|
+
options = %w[tailwind bootstrap bulma postcss sass]
|
66
|
+
|
67
|
+
::CLI::UI::Prompt.ask 'Choose css' do |handler|
|
68
|
+
options.each do |option|
|
69
|
+
handler.option(option) { |s| ['-c', s] }
|
70
|
+
end
|
71
|
+
end
|
63
72
|
end
|
64
73
|
|
65
|
-
def
|
66
|
-
|
67
|
-
|
68
|
-
|
74
|
+
def ask_skips
|
75
|
+
::CLI::UI::Prompt.ask 'Choose skips', multiple: true do |handler|
|
76
|
+
handler.option('test') { '--skip-test' }
|
77
|
+
end
|
69
78
|
end
|
70
79
|
|
71
80
|
def to_opt
|
72
81
|
[
|
73
82
|
@app_path,
|
74
|
-
@is_api ?
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
83
|
+
@is_api ? '--api' : [],
|
84
|
+
@database,
|
85
|
+
@javascript,
|
86
|
+
@css,
|
87
|
+
*@skips
|
79
88
|
].flatten
|
80
89
|
end
|
81
90
|
end
|
data/lib/mogu/templates/gem.erb
CHANGED
data/lib/mogu/version.rb
CHANGED
data/mogu.gemspec
CHANGED
@@ -32,9 +32,9 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.require_paths = ['lib']
|
33
33
|
|
34
34
|
# Uncomment to register a new dependency of your gem
|
35
|
+
spec.add_dependency 'cli-ui', '~> 1.0'
|
35
36
|
spec.add_dependency 'railties', '~> 7.0'
|
36
37
|
spec.add_dependency 'thor', '~> 1.0'
|
37
|
-
spec.add_dependency 'tty-prompt', '~> 0.23'
|
38
38
|
|
39
39
|
# For more information and examples about making a new gem, checkout our
|
40
40
|
# guide at: https://bundler.io/guides/creating_gem.html
|
data/sig/mogu/cli.rbs
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
# TypeProf 0.21.2
|
2
|
+
|
3
|
+
# Classes
|
4
|
+
module Mogu
|
5
|
+
class NewCommand
|
6
|
+
@app_path: String
|
7
|
+
@is_api: bool
|
8
|
+
@database: Array[String]
|
9
|
+
@javascript: Array[String]
|
10
|
+
@css: Array[String]
|
11
|
+
@skips: Array[String]
|
12
|
+
|
13
|
+
def run: -> void
|
14
|
+
|
15
|
+
private
|
16
|
+
def ask_app_path: -> String
|
17
|
+
def confirm_is_api: -> bool
|
18
|
+
def ask_customizes: -> Array[String]
|
19
|
+
def ask_database: -> Array[String]
|
20
|
+
def ask_javascript: -> Array[String]
|
21
|
+
def ask_css: -> Array[String]
|
22
|
+
def ask_skips: -> Array[String]
|
23
|
+
def to_opt: -> Array[String]
|
24
|
+
end
|
25
|
+
end
|
data/sig/patch.rbs
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Classes
|
2
|
+
module CLI
|
3
|
+
module UI
|
4
|
+
class Prompt
|
5
|
+
def self.ask: (String, ?allow_empty: bool, ?multiple: bool, ?options: Array[String]) ?{ (untyped) -> void } -> untyped
|
6
|
+
def self.confirm: (String, ?default: bool) -> bool
|
7
|
+
end
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module Rails
|
12
|
+
class Command
|
13
|
+
def self.invoke: (String | Symbol, ?Array[String]) -> void
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
class Thor
|
18
|
+
def self.desc: (String, String) -> void
|
19
|
+
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mogu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- MoguraStore
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-04-
|
11
|
+
date: 2022-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: cli-ui
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: railties
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '7.0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '7.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '0
|
47
|
+
version: '1.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '0
|
54
|
+
version: '1.0'
|
55
55
|
description: CLI to create rails projects interactively.
|
56
56
|
email:
|
57
57
|
- 368034+lisp719@users.noreply.github.com
|
@@ -71,6 +71,7 @@ files:
|
|
71
71
|
- LICENSE.txt
|
72
72
|
- README.md
|
73
73
|
- Rakefile
|
74
|
+
- Steepfile
|
74
75
|
- bin/console
|
75
76
|
- bin/setup
|
76
77
|
- compose.yaml
|
@@ -82,6 +83,11 @@ files:
|
|
82
83
|
- lib/mogu/templates/gem.erb
|
83
84
|
- lib/mogu/version.rb
|
84
85
|
- mogu.gemspec
|
86
|
+
- sig/mogu/cli.rbs
|
87
|
+
- sig/mogu/gem_command.rbs
|
88
|
+
- sig/mogu/new_command.rbs
|
89
|
+
- sig/mogu/version.rbs
|
90
|
+
- sig/patch.rbs
|
85
91
|
homepage: https://github.com/mogurastore/mogu
|
86
92
|
licenses:
|
87
93
|
- MIT
|