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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e882b669b0fb0757b1919c4dd31ce6a27eb60d34c8314e1a09c687afa6c498c7
4
- data.tar.gz: '08e6fd354a294d446a9725272d5f4bd3d1c70ab1fb4e4049f5cc2d280a601d95'
3
+ metadata.gz: 6c4239f0c02de6282a1e9d02a3579e19afcaa21fbd6ecf364ad86c60cc401346
4
+ data.tar.gz: 4e58930609faa0ab989f8d3622c5fc80a16eada1fcffec77b57ffb2bef33f756
5
5
  SHA512:
6
- metadata.gz: ebe98974f88cc22c125d2506c374911327a88f0a5fe84bf7ca07c93b5e17d0c47788ca8d02215d2118098d9105edbfe18ad27fc2e0f6e3416e0878f6468dad60
7
- data.tar.gz: e890c2635c9d80b8950ff1c903b8a1aa62f5258c76db07eb0f34f989b50e66838d595fc6cbf081df66332d191e882f89396190252ed7780952b46b9bc5cec2d2
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
@@ -5,8 +5,10 @@ services:
5
5
  image: ruby
6
6
  volumes:
7
7
  - .:/workspace
8
+ - gem-credentials-data:/root/.local/share/gem
8
9
  - gem-data:/usr/local/bundle
9
10
  working_dir: /workspace
10
11
 
11
12
  volumes:
13
+ gem-credentials-data:
12
14
  gem-data:
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
- prompt = Mogu::Prompt.new
10
- prompt.run
10
+ params = OptionParser.getopts(ARGV, 'v')
11
11
 
12
- Rails::Command.invoke :application, ['new', *prompt.to_opt]
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 = %w[database javascript css gems]
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
- gem_group :development, :test do
33
- gem 'factory_bot_rails'
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mogu
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.2'
5
5
  end
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.0
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-18 00:00:00.000000000 Z
11
+ date: 2022-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties