mogu 0.2.0 → 0.3.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/README.md +38 -0
- data/docker-compose.yml +2 -0
- data/lib/mogu/cli.rb +10 -3
- data/lib/mogu/prompt.rb +16 -3
- data/lib/mogu/template.rb +31 -4
- 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: 6c4239f0c02de6282a1e9d02a3579e19afcaa21fbd6ecf364ad86c60cc401346
|
4
|
+
data.tar.gz: 4e58930609faa0ab989f8d3622c5fc80a16eada1fcffec77b57ffb2bef33f756
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e329ea0115a7f1bec70cc05021ce61c005a692defaada0836525fd7731e34c260096059d2d0fc62c63584dfba1ce6c255c47ca7b276a2ab323363fd94295548
|
7
|
+
data.tar.gz: 82f34cf0948727f2eacc0d09d0d04b484a42bbcc289e66b94ad6e194350a439d50cb26055754df5cd77b9f71225107bc2f7848d72de2889271f14e7634cf0d76
|
data/README.md
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
|
3
3
|
CLI to create rails projects interactively.
|
4
4
|
|
5
|
+
## Prerequisites
|
6
|
+
|
7
|
+
- Rails 7+
|
8
|
+
|
5
9
|
## Features
|
6
10
|
|
7
11
|
- Support for rails new option selection.
|
@@ -18,6 +22,40 @@ gem install mogu
|
|
18
22
|
mogu
|
19
23
|
```
|
20
24
|
|
25
|
+
```bash
|
26
|
+
Please input app path
|
27
|
+
|
28
|
+
Choose customizes
|
29
|
+
> ⬡ database
|
30
|
+
⬡ javascript
|
31
|
+
⬡ css
|
32
|
+
⬡ gems
|
33
|
+
|
34
|
+
Choose database
|
35
|
+
> sqlite3
|
36
|
+
mysql
|
37
|
+
postgresql
|
38
|
+
...
|
39
|
+
|
40
|
+
Choose javascript
|
41
|
+
> importmap
|
42
|
+
webpack
|
43
|
+
esbuild
|
44
|
+
rollup
|
45
|
+
|
46
|
+
Choose css
|
47
|
+
> tailwind
|
48
|
+
bootstrap
|
49
|
+
bulma
|
50
|
+
postcss
|
51
|
+
sass
|
52
|
+
|
53
|
+
Choose gems
|
54
|
+
> ⬡ brakeman
|
55
|
+
⬡ rspec
|
56
|
+
⬡ rubocop
|
57
|
+
```
|
58
|
+
|
21
59
|
## Development
|
22
60
|
|
23
61
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/docker-compose.yml
CHANGED
data/lib/mogu/cli.rb
CHANGED
@@ -1,15 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'optparse'
|
3
4
|
require 'rails/command'
|
4
5
|
|
5
6
|
module Mogu
|
6
7
|
class CLI
|
7
8
|
class << self
|
8
9
|
def start
|
9
|
-
|
10
|
-
prompt.run
|
10
|
+
params = OptionParser.getopts(ARGV, 'v')
|
11
11
|
|
12
|
-
|
12
|
+
if params['v']
|
13
|
+
puts "mogu #{Mogu::VERSION}"
|
14
|
+
else
|
15
|
+
prompt = Mogu::Prompt.new
|
16
|
+
prompt.run
|
17
|
+
|
18
|
+
Rails::Command.invoke :application, ['new', *prompt.to_opt]
|
19
|
+
end
|
13
20
|
end
|
14
21
|
end
|
15
22
|
end
|
data/lib/mogu/prompt.rb
CHANGED
@@ -52,12 +52,20 @@ module Mogu
|
|
52
52
|
result.customizes.include? 'gems'
|
53
53
|
end
|
54
54
|
|
55
|
+
def brakeman?
|
56
|
+
result.gems.include? 'brakeman'
|
57
|
+
end
|
58
|
+
|
55
59
|
def rspec?
|
56
60
|
result.gems.include? 'rspec'
|
57
61
|
end
|
58
62
|
|
63
|
+
def rubocop?
|
64
|
+
result.gems.include? 'rubocop'
|
65
|
+
end
|
66
|
+
|
59
67
|
def template?
|
60
|
-
rspec?
|
68
|
+
[brakeman?, rspec?, rubocop?].any?
|
61
69
|
end
|
62
70
|
|
63
71
|
def app_path
|
@@ -71,7 +79,12 @@ module Mogu
|
|
71
79
|
end
|
72
80
|
|
73
81
|
def customizes
|
74
|
-
choices =
|
82
|
+
choices = [
|
83
|
+
{ name: 'database (Default: sqlite3)', value: 'database' },
|
84
|
+
{ name: 'javascript (Default: importmap)', value: 'javascript' },
|
85
|
+
{ name: 'css', value: 'css' },
|
86
|
+
{ name: 'gems', value: 'gems' }
|
87
|
+
]
|
75
88
|
|
76
89
|
prompt.multi_select 'Choose customizes', choices
|
77
90
|
end
|
@@ -83,7 +96,7 @@ module Mogu
|
|
83
96
|
end
|
84
97
|
|
85
98
|
def gems
|
86
|
-
choices = %w[rspec]
|
99
|
+
choices = %w[brakeman rspec rubocop]
|
87
100
|
|
88
101
|
prompt.multi_select 'Choose gems', choices
|
89
102
|
end
|
data/lib/mogu/template.rb
CHANGED
@@ -20,24 +20,51 @@ module Mogu
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def write(gems)
|
23
|
+
file.write brakeman_code if gems.include? 'brakeman'
|
23
24
|
file.write rspec_code if gems.include? 'rspec'
|
25
|
+
file.write rubocop_code if gems.include? 'rubocop'
|
24
26
|
|
25
27
|
file.rewind
|
26
28
|
end
|
27
29
|
|
28
30
|
private
|
29
31
|
|
32
|
+
def brakeman_code
|
33
|
+
<<~CODE
|
34
|
+
gem 'brakeman', group: :development
|
35
|
+
CODE
|
36
|
+
end
|
37
|
+
|
30
38
|
def rspec_code
|
31
39
|
<<~CODE
|
32
|
-
|
33
|
-
|
34
|
-
gem 'rspec-rails'
|
35
|
-
end
|
40
|
+
gem 'factory_bot_rails', group: %i[development test]
|
41
|
+
gem 'rspec-rails', group: %i[development test]
|
36
42
|
|
37
43
|
after_bundle do
|
38
44
|
generate 'rspec:install'
|
39
45
|
end
|
40
46
|
CODE
|
41
47
|
end
|
48
|
+
|
49
|
+
def rubocop_code
|
50
|
+
<<~CODE
|
51
|
+
gem 'rubocop-rails', group: :development, require: false
|
52
|
+
|
53
|
+
create_file '.rubocop.yml', <<~YML
|
54
|
+
require:
|
55
|
+
- rubocop-rails
|
56
|
+
|
57
|
+
AllCops:
|
58
|
+
NewCops: enable
|
59
|
+
|
60
|
+
Rails:
|
61
|
+
Enabled: true
|
62
|
+
YML
|
63
|
+
|
64
|
+
after_bundle do
|
65
|
+
run 'rubocop --auto-gen-config'
|
66
|
+
end
|
67
|
+
CODE
|
68
|
+
end
|
42
69
|
end
|
43
70
|
end
|
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.2
|
4
|
+
version: 0.3.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-03-
|
11
|
+
date: 2022-03-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|