mogu 0.7.0 → 0.8.0
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/README.md +41 -34
- data/lib/mogu/gem_command.rb +6 -5
- data/lib/mogu/new_command.rb +54 -45
- data/lib/mogu/version.rb +1 -1
- data/mogu.gemspec +1 -1
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ff62aaa44ea6ba8a4fa79cc8453cf5ac54bfe142b06d95d5512d80ea6e644540
|
4
|
+
data.tar.gz: 7ce4af13262e1cad5baf01e1c258a9d8d46918c8dc6f7b222f090d249c92d11e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f7552ae5a1531d8bc61d7b0df6dfaaa867ee26d6e9a091a12c650b63aa5afb04725a9cebca260f8f9b4aa20fe52541db02c10e710a333b1e22b883af29f922b
|
7
|
+
data.tar.gz: f9cf99602a0ad431399e55dcf76f84a29f6e5f7adc3ce8a2fe26bee759c4de62dfbfc11cd5654fdc637dc4faceeb0af75def7f165a11a57b305ccfbbd9cdcfa3
|
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/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
11
|
erb = ERB.new File.read(File.expand_path('templates/gem.erb', __dir__))
|
12
|
-
prompt = TTY::Prompt.new
|
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/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
|
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.0
|
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-12 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
|