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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6c4239f0c02de6282a1e9d02a3579e19afcaa21fbd6ecf364ad86c60cc401346
4
- data.tar.gz: 4e58930609faa0ab989f8d3622c5fc80a16eada1fcffec77b57ffb2bef33f756
3
+ metadata.gz: 83c36d8a3dcfd0d836638de3e3f7cadcdb0ba191014ad43c0284b5fdc5cf3c75
4
+ data.tar.gz: e415394242ec7c6dc4f74c9d5319b0bb8b981b31920ff2d3b8d9eea2068e9476
5
5
  SHA512:
6
- metadata.gz: 6e329ea0115a7f1bec70cc05021ce61c005a692defaada0836525fd7731e34c260096059d2d0fc62c63584dfba1ce6c255c47ca7b276a2ab323363fd94295548
7
- data.tar.gz: 82f34cf0948727f2eacc0d09d0d04b484a42bbcc289e66b94ad6e194350a439d50cb26055754df5cd77b9f71225107bc2f7848d72de2889271f14e7634cf0d76
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
- attr_reader :prompt, :result
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
- [result.app_path] + [
29
- database? ? ['-d', result.database] : [],
30
- javascript? ? ['-j', result.javascript] : [],
31
- css? ? ['-c', result.css] : [],
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.file.path] : []
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
- [brakeman?, rspec?, rubocop?].any?
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 rspec_code if gems.include? 'rspec'
25
- file.write rubocop_code if gems.include? 'rubocop'
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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mogu
4
- VERSION = '0.3.2'
4
+ VERSION = '0.4.0'
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.3.2
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-21 00:00:00.000000000 Z
11
+ date: 2022-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties