mogu 0.3.2 → 0.4.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/lib/mogu/prompt.rb +29 -38
- data/lib/mogu/template.rb +15 -6
- data/lib/mogu/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83c36d8a3dcfd0d836638de3e3f7cadcdb0ba191014ad43c0284b5fdc5cf3c75
|
4
|
+
data.tar.gz: e415394242ec7c6dc4f74c9d5319b0bb8b981b31920ff2d3b8d9eea2068e9476
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: debd2684a695d3d2d9dadfd60514e51903e566a576546e7691e681e0a483efc5739388016682f51bccfb1fc1d739d784b8945a79df7b2b6c3dbb7672a77bed19
|
7
|
+
data.tar.gz: 36140ce40449777bb3a7f55e6d237360b03021629eef4b036aa8f0fcbe4a16b4fb8aed849569b91229af2f55769f7ce908c8f26b29b43e34a6027350b19933c5
|
data/lib/mogu/prompt.rb
CHANGED
@@ -4,78 +4,69 @@ require 'tty-prompt'
|
|
4
4
|
|
5
5
|
module Mogu
|
6
6
|
class Prompt
|
7
|
-
|
7
|
+
Result = Struct.new(:app_path, :customizes, :database, :javascript, :css, :gems, :template, keyword_init: true)
|
8
8
|
|
9
9
|
def initialize
|
10
10
|
@prompt = TTY::Prompt.new
|
11
|
-
|
12
|
-
result = Struct.new(:app_path, :customizes, :database, :javascript, :css, :gems, :template, keyword_init: true)
|
13
|
-
@result = result.new(app_path: '', customizes: [], database: '', javascript: '', css: '', gems: [], template: nil)
|
11
|
+
@result = Result.new(app_path: '', customizes: [], database: '', javascript: '', css: '', gems: [], template: nil)
|
14
12
|
end
|
15
13
|
|
16
14
|
def run
|
17
|
-
result.app_path = app_path
|
18
|
-
result.customizes = customizes
|
19
|
-
|
20
|
-
result.database = database if database?
|
21
|
-
result.javascript = javascript if javascript?
|
22
|
-
result.css = css if css?
|
23
|
-
result.gems = gems if gems?
|
24
|
-
result.template = Mogu::Template.create result.gems if template?
|
15
|
+
@result.app_path = app_path
|
16
|
+
@result.customizes = customizes
|
17
|
+
|
18
|
+
@result.database = database if database?
|
19
|
+
@result.javascript = javascript if javascript?
|
20
|
+
@result.css = css if css?
|
21
|
+
@result.gems = gems if gems?
|
22
|
+
@result.template = Mogu::Template.create @result.gems if template?
|
25
23
|
end
|
26
24
|
|
27
25
|
def to_opt
|
28
|
-
[
|
29
|
-
|
30
|
-
|
31
|
-
|
26
|
+
[
|
27
|
+
@result.app_path,
|
28
|
+
database? ? ['-d', @result.database] : [],
|
29
|
+
javascript? ? ['-j', @result.javascript] : [],
|
30
|
+
css? ? ['-c', @result.css] : [],
|
32
31
|
rspec? ? %w[-T] : [],
|
33
|
-
template? ? ['-m', result.template.
|
32
|
+
template? ? ['-m', @result.template.path] : []
|
34
33
|
].flatten
|
35
34
|
end
|
36
35
|
|
37
36
|
private
|
38
37
|
|
39
38
|
def database?
|
40
|
-
result.customizes.include? 'database'
|
39
|
+
@result.customizes.include? 'database'
|
41
40
|
end
|
42
41
|
|
43
42
|
def javascript?
|
44
|
-
result.customizes.include? 'javascript'
|
43
|
+
@result.customizes.include? 'javascript'
|
45
44
|
end
|
46
45
|
|
47
46
|
def css?
|
48
|
-
result.customizes.include? 'css'
|
47
|
+
@result.customizes.include? 'css'
|
49
48
|
end
|
50
49
|
|
51
50
|
def gems?
|
52
|
-
result.customizes.include? 'gems'
|
53
|
-
end
|
54
|
-
|
55
|
-
def brakeman?
|
56
|
-
result.gems.include? 'brakeman'
|
51
|
+
@result.customizes.include? 'gems'
|
57
52
|
end
|
58
53
|
|
59
54
|
def rspec?
|
60
|
-
result.gems.include? 'rspec'
|
61
|
-
end
|
62
|
-
|
63
|
-
def rubocop?
|
64
|
-
result.gems.include? 'rubocop'
|
55
|
+
@result.gems.include? 'rspec'
|
65
56
|
end
|
66
57
|
|
67
58
|
def template?
|
68
|
-
|
59
|
+
@result.gems.any?
|
69
60
|
end
|
70
61
|
|
71
62
|
def app_path
|
72
|
-
prompt.ask 'Please input app path', required: true
|
63
|
+
@prompt.ask 'Please input app path', required: true
|
73
64
|
end
|
74
65
|
|
75
66
|
def css
|
76
67
|
choices = %w[tailwind bootstrap bulma postcss sass]
|
77
68
|
|
78
|
-
prompt.select 'Choose css', choices
|
69
|
+
@prompt.select 'Choose css', choices
|
79
70
|
end
|
80
71
|
|
81
72
|
def customizes
|
@@ -86,25 +77,25 @@ module Mogu
|
|
86
77
|
{ name: 'gems', value: 'gems' }
|
87
78
|
]
|
88
79
|
|
89
|
-
prompt.multi_select 'Choose customizes', choices
|
80
|
+
@prompt.multi_select 'Choose customizes', choices
|
90
81
|
end
|
91
82
|
|
92
83
|
def database
|
93
84
|
choices = %w[sqlite3 mysql postgresql oracle sqlserver jdbcmysql jdbcsqlite3 jdbcpostgresql jdbc]
|
94
85
|
|
95
|
-
prompt.select 'Choose database', choices
|
86
|
+
@prompt.select 'Choose database', choices
|
96
87
|
end
|
97
88
|
|
98
89
|
def gems
|
99
|
-
choices = %w[brakeman rspec rubocop]
|
90
|
+
choices = %w[brakeman solargraph rspec rubocop]
|
100
91
|
|
101
|
-
prompt.multi_select 'Choose gems', choices
|
92
|
+
@prompt.multi_select 'Choose gems', choices
|
102
93
|
end
|
103
94
|
|
104
95
|
def javascript
|
105
96
|
choices = %w[importmap webpack esbuild rollup]
|
106
97
|
|
107
|
-
prompt.select 'Choose javascript', choices
|
98
|
+
@prompt.select 'Choose javascript', choices
|
108
99
|
end
|
109
100
|
end
|
110
101
|
end
|
data/lib/mogu/template.rb
CHANGED
@@ -4,8 +4,6 @@ require 'tempfile'
|
|
4
4
|
|
5
5
|
module Mogu
|
6
6
|
class Template
|
7
|
-
attr_reader :file
|
8
|
-
|
9
7
|
class << self
|
10
8
|
def create(gems)
|
11
9
|
template = new
|
@@ -19,12 +17,17 @@ module Mogu
|
|
19
17
|
@file = Tempfile.new
|
20
18
|
end
|
21
19
|
|
20
|
+
def path
|
21
|
+
@file.path
|
22
|
+
end
|
23
|
+
|
22
24
|
def write(gems)
|
23
|
-
file.write brakeman_code if gems.include? 'brakeman'
|
24
|
-
file.write
|
25
|
-
file.write
|
25
|
+
@file.write brakeman_code if gems.include? 'brakeman'
|
26
|
+
@file.write solargraph_code if gems.include? 'solargraph'
|
27
|
+
@file.write rspec_code if gems.include? 'rspec'
|
28
|
+
@file.write rubocop_code if gems.include? 'rubocop'
|
26
29
|
|
27
|
-
file.rewind
|
30
|
+
@file.rewind
|
28
31
|
end
|
29
32
|
|
30
33
|
private
|
@@ -35,6 +38,12 @@ module Mogu
|
|
35
38
|
CODE
|
36
39
|
end
|
37
40
|
|
41
|
+
def solargraph_code
|
42
|
+
<<~CODE
|
43
|
+
gem 'solargraph', group: :development
|
44
|
+
CODE
|
45
|
+
end
|
46
|
+
|
38
47
|
def rspec_code
|
39
48
|
<<~CODE
|
40
49
|
gem 'factory_bot_rails', group: %i[development test]
|
data/lib/mogu/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mogu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.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-03-
|
11
|
+
date: 2022-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|