blade-setting 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/workspace.xml +86 -47
- data/bin/bs +78 -59
- data/lib/blade/setting.rb +16 -0
- data/lib/blade/setting/swagger_template.rb +143 -0
- data/lib/blade/setting/version.rb +1 -1
- data/reinstall.sh +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1433ba40da43a8f46a052cb40f97fba0e4c4488a9d6f61c7488843782f61634
|
4
|
+
data.tar.gz: df969ee95e0f7224c376b0222d7ecd76bc776e34d6c212351cc51863900d0b0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b8ed07c14b798b2ab41f38f922ffa468f7e11fe731025e3c04e06cdd35f7e3d60fb4420f63f13518a187a85451b92038e0dc127a013c8736befec2364cf42fea
|
7
|
+
data.tar.gz: d904234565a9af09b2e08f6f51ac2a7c0c463518ffd8830ade491e00eda91902140b3133a48e6699b6c239f5ea2b919f592fb9f4feed064034394fc06f260e34
|
data/.idea/workspace.xml
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
<change afterPath="$PROJECT_DIR$/lib/blade/setting/base_template.rb" afterDir="false" />
|
7
7
|
<change afterPath="$PROJECT_DIR$/lib/blade/setting/controller_template.rb" afterDir="false" />
|
8
8
|
<change afterPath="$PROJECT_DIR$/lib/blade/setting/model_template.rb" afterDir="false" />
|
9
|
+
<change afterPath="$PROJECT_DIR$/lib/blade/setting/swagger_template.rb" afterDir="false" />
|
9
10
|
<change afterPath="$PROJECT_DIR$/lib/blade/setting/yml_template.rb" afterDir="false" />
|
10
11
|
<change afterPath="$PROJECT_DIR$/reinstall.sh" afterDir="false" />
|
11
12
|
<change beforePath="$PROJECT_DIR$/.idea/.rakeTasks" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.rakeTasks" afterDir="false" />
|
@@ -49,16 +50,16 @@
|
|
49
50
|
</usages-collector>
|
50
51
|
<usages-collector id="statistics.file.extensions.edit">
|
51
52
|
<counts>
|
52
|
-
<entry key="bs" value="
|
53
|
+
<entry key="bs" value="2938" />
|
53
54
|
<entry key="gemspec" value="89" />
|
54
|
-
<entry key="rb" value="
|
55
|
-
<entry key="sh" value="
|
55
|
+
<entry key="rb" value="7237" />
|
56
|
+
<entry key="sh" value="36" />
|
56
57
|
</counts>
|
57
58
|
</usages-collector>
|
58
59
|
<usages-collector id="statistics.file.types.edit">
|
59
60
|
<counts>
|
60
|
-
<entry key="PLAIN_TEXT" value="
|
61
|
-
<entry key="Ruby" value="
|
61
|
+
<entry key="PLAIN_TEXT" value="36" />
|
62
|
+
<entry key="Ruby" value="10264" />
|
62
63
|
</counts>
|
63
64
|
</usages-collector>
|
64
65
|
<usages-collector id="statistics.file.extensions.open">
|
@@ -68,18 +69,18 @@
|
|
68
69
|
<entry key="console" value="1" />
|
69
70
|
<entry key="gemspec" value="1" />
|
70
71
|
<entry key="png" value="1" />
|
71
|
-
<entry key="rb" value="
|
72
|
+
<entry key="rb" value="36" />
|
72
73
|
<entry key="rspec" value="1" />
|
73
74
|
<entry key="setup" value="1" />
|
74
|
-
<entry key="sh" value="
|
75
|
+
<entry key="sh" value="2" />
|
75
76
|
<entry key="yml" value="2" />
|
76
77
|
</counts>
|
77
78
|
</usages-collector>
|
78
79
|
<usages-collector id="statistics.file.types.open">
|
79
80
|
<counts>
|
80
81
|
<entry key="Image" value="1" />
|
81
|
-
<entry key="PLAIN_TEXT" value="
|
82
|
-
<entry key="Ruby" value="
|
82
|
+
<entry key="PLAIN_TEXT" value="4" />
|
83
|
+
<entry key="Ruby" value="44" />
|
83
84
|
<entry key="YAML" value="2" />
|
84
85
|
</counts>
|
85
86
|
</usages-collector>
|
@@ -90,11 +91,20 @@
|
|
90
91
|
</component>
|
91
92
|
<component name="FileEditorManager">
|
92
93
|
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
93
|
-
<file pinned="false" current-in-tab="
|
94
|
+
<file pinned="false" current-in-tab="true">
|
94
95
|
<entry file="file://$PROJECT_DIR$/lib/blade/setting/version.rb">
|
95
96
|
<provider selected="true" editor-type-id="text-editor">
|
96
97
|
<state relative-caret-position="30">
|
97
|
-
<caret line="2" column="
|
98
|
+
<caret line="2" column="20" selection-start-line="2" selection-start-column="20" selection-end-line="2" selection-end-column="20" />
|
99
|
+
</state>
|
100
|
+
</provider>
|
101
|
+
</entry>
|
102
|
+
</file>
|
103
|
+
<file pinned="false" current-in-tab="false">
|
104
|
+
<entry file="file://$PROJECT_DIR$/reinstall.sh">
|
105
|
+
<provider selected="true" editor-type-id="text-editor">
|
106
|
+
<state relative-caret-position="15">
|
107
|
+
<caret line="1" column="26" selection-start-line="1" selection-start-column="26" selection-end-line="1" selection-end-column="26" />
|
98
108
|
</state>
|
99
109
|
</provider>
|
100
110
|
</entry>
|
@@ -102,17 +112,35 @@
|
|
102
112
|
<file pinned="false" current-in-tab="false">
|
103
113
|
<entry file="file://$PROJECT_DIR$/lib/blade/setting.rb">
|
104
114
|
<provider selected="true" editor-type-id="text-editor">
|
105
|
-
<state relative-caret-position="
|
106
|
-
<caret line="
|
115
|
+
<state relative-caret-position="394">
|
116
|
+
<caret line="62" column="14" lean-forward="true" selection-start-line="62" selection-start-column="14" selection-end-line="62" selection-end-column="14" />
|
107
117
|
</state>
|
108
118
|
</provider>
|
109
119
|
</entry>
|
110
120
|
</file>
|
111
|
-
<file pinned="false" current-in-tab="
|
112
|
-
<entry file="file://$PROJECT_DIR$/lib/blade/setting/
|
121
|
+
<file pinned="false" current-in-tab="false">
|
122
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/swagger_template.rb">
|
123
|
+
<provider selected="true" editor-type-id="text-editor">
|
124
|
+
<state relative-caret-position="1545">
|
125
|
+
<caret line="103" column="32" selection-start-line="103" selection-start-column="32" selection-end-line="103" selection-end-column="32" />
|
126
|
+
</state>
|
127
|
+
</provider>
|
128
|
+
</entry>
|
129
|
+
</file>
|
130
|
+
<file pinned="false" current-in-tab="false">
|
131
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/model_template.rb">
|
132
|
+
<provider selected="true" editor-type-id="text-editor">
|
133
|
+
<state relative-caret-position="179">
|
134
|
+
<caret line="12" column="22" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="31" />
|
135
|
+
</state>
|
136
|
+
</provider>
|
137
|
+
</entry>
|
138
|
+
</file>
|
139
|
+
<file pinned="false" current-in-tab="false">
|
140
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/base_template.rb">
|
113
141
|
<provider selected="true" editor-type-id="text-editor">
|
114
|
-
<state relative-caret-position="
|
115
|
-
<caret line="
|
142
|
+
<state relative-caret-position="570">
|
143
|
+
<caret line="794" column="4" selection-start-line="794" selection-start-column="4" selection-end-line="794" selection-end-column="4" />
|
116
144
|
</state>
|
117
145
|
</provider>
|
118
146
|
</entry>
|
@@ -120,8 +148,8 @@
|
|
120
148
|
<file pinned="false" current-in-tab="false">
|
121
149
|
<entry file="file://$PROJECT_DIR$/bin/bs">
|
122
150
|
<provider selected="true" editor-type-id="text-editor">
|
123
|
-
<state relative-caret-position="
|
124
|
-
<caret line="
|
151
|
+
<state relative-caret-position="542">
|
152
|
+
<caret line="120" column="29" selection-start-line="120" selection-start-column="29" selection-end-line="120" selection-end-column="29" />
|
125
153
|
</state>
|
126
154
|
</provider>
|
127
155
|
</entry>
|
@@ -160,6 +188,7 @@
|
|
160
188
|
<find>0.1.8</find>
|
161
189
|
<find>included</find>
|
162
190
|
<find>redis</find>
|
191
|
+
<find>sup</find>
|
163
192
|
</findStrings>
|
164
193
|
<replaceStrings>
|
165
194
|
<replace>blade/setting</replace>
|
@@ -200,13 +229,14 @@
|
|
200
229
|
<option value="$PROJECT_DIR$/blade-setting.gemspec" />
|
201
230
|
<option value="$PROJECT_DIR$/lib/blade/setting/model_template.rb" />
|
202
231
|
<option value="$PROJECT_DIR$/lib/blade/setting/view_template.rb" />
|
203
|
-
<option value="$PROJECT_DIR$/lib/blade/setting/base_template.rb" />
|
204
232
|
<option value="$PROJECT_DIR$/lib/blade/setting/yml_template.rb" />
|
205
|
-
<option value="$PROJECT_DIR$/lib/blade/setting/
|
233
|
+
<option value="$PROJECT_DIR$/lib/blade/setting/controller_template.rb" />
|
234
|
+
<option value="$PROJECT_DIR$/lib/blade/setting/base_template.rb" />
|
206
235
|
<option value="$PROJECT_DIR$/reinstall.sh" />
|
207
236
|
<option value="$PROJECT_DIR$/bin/bs" />
|
208
|
-
<option value="$PROJECT_DIR$/lib/blade/setting/
|
237
|
+
<option value="$PROJECT_DIR$/lib/blade/setting/swagger_template.rb" />
|
209
238
|
<option value="$PROJECT_DIR$/lib/blade/setting.rb" />
|
239
|
+
<option value="$PROJECT_DIR$/lib/blade/setting/version.rb" />
|
210
240
|
</list>
|
211
241
|
</option>
|
212
242
|
</component>
|
@@ -217,6 +247,7 @@
|
|
217
247
|
<sorting>DEFINITION_ORDER</sorting>
|
218
248
|
</component>
|
219
249
|
<component name="ProjectFrameBounds">
|
250
|
+
<option name="x" value="-1" />
|
220
251
|
<option name="y" value="23" />
|
221
252
|
<option name="width" value="1674" />
|
222
253
|
<option name="height" value="937" />
|
@@ -275,6 +306,7 @@
|
|
275
306
|
</panes>
|
276
307
|
</component>
|
277
308
|
<component name="PropertiesComponent">
|
309
|
+
<property name="SearchEverywhereHistoryKey" value="ver	FILE	file:///Users/icepoint1999/code/yunshen/blade-translate/lib/blade/setting/version.rb" />
|
278
310
|
<property name="WebServerToolWindowFactoryState" value="false" />
|
279
311
|
<property name="js-jscs-nodeInterpreter" value="/usr/local/bin/node" />
|
280
312
|
<property name="last_opened_file_path" value="$PROJECT_DIR$" />
|
@@ -349,15 +381,15 @@
|
|
349
381
|
<workItem from="1516678356632" duration="151000" />
|
350
382
|
<workItem from="1550567927497" duration="38943000" />
|
351
383
|
<workItem from="1551061926156" duration="25920000" />
|
352
|
-
<workItem from="1551757864469" duration="
|
384
|
+
<workItem from="1551757864469" duration="15691000" />
|
353
385
|
</task>
|
354
386
|
<servers />
|
355
387
|
</component>
|
356
388
|
<component name="TimeTrackingManager">
|
357
|
-
<option name="totallyTimeSpent" value="
|
389
|
+
<option name="totallyTimeSpent" value="84913000" />
|
358
390
|
</component>
|
359
391
|
<component name="ToolWindowManager">
|
360
|
-
<frame x="
|
392
|
+
<frame x="-1" y="23" width="1674" height="937" extended-state="0" />
|
361
393
|
<editor active="true" />
|
362
394
|
<layout>
|
363
395
|
<window_info active="true" id="Project" order="0" visible="true" weight="0.23100491" />
|
@@ -467,59 +499,66 @@
|
|
467
499
|
</state>
|
468
500
|
</provider>
|
469
501
|
</entry>
|
470
|
-
<entry file="file://$PROJECT_DIR$/lib/blade/setting/
|
502
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/yml_template.rb">
|
471
503
|
<provider selected="true" editor-type-id="text-editor">
|
472
|
-
<state relative-caret-position="
|
473
|
-
<caret line="
|
504
|
+
<state relative-caret-position="654">
|
505
|
+
<caret line="251" column="7" lean-forward="true" selection-start-line="251" selection-start-column="7" selection-end-line="251" selection-end-column="7" />
|
474
506
|
</state>
|
475
507
|
</provider>
|
476
508
|
</entry>
|
477
|
-
<entry file="file://$PROJECT_DIR$/
|
509
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/controller_template.rb">
|
478
510
|
<provider selected="true" editor-type-id="text-editor">
|
479
|
-
<state relative-caret-position="
|
480
|
-
<caret line="
|
511
|
+
<state relative-caret-position="197">
|
512
|
+
<caret line="31" column="14" selection-start-line="31" selection-start-column="14" selection-end-line="31" selection-end-column="14" />
|
481
513
|
</state>
|
482
514
|
</provider>
|
483
515
|
</entry>
|
484
|
-
<entry file="file://$PROJECT_DIR$/lib/blade/setting/
|
516
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/base_template.rb">
|
485
517
|
<provider selected="true" editor-type-id="text-editor">
|
486
|
-
<state relative-caret-position="
|
487
|
-
<caret line="
|
518
|
+
<state relative-caret-position="570">
|
519
|
+
<caret line="794" column="4" selection-start-line="794" selection-start-column="4" selection-end-line="794" selection-end-column="4" />
|
488
520
|
</state>
|
489
521
|
</provider>
|
490
522
|
</entry>
|
491
|
-
<entry file="file://$PROJECT_DIR$/lib/blade/setting/
|
523
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/model_template.rb">
|
492
524
|
<provider selected="true" editor-type-id="text-editor">
|
493
|
-
<state relative-caret-position="
|
494
|
-
<caret line="
|
525
|
+
<state relative-caret-position="179">
|
526
|
+
<caret line="12" column="22" selection-start-line="12" selection-start-column="22" selection-end-line="12" selection-end-column="31" />
|
495
527
|
</state>
|
496
528
|
</provider>
|
497
529
|
</entry>
|
498
|
-
<entry file="file://$PROJECT_DIR$/
|
530
|
+
<entry file="file://$PROJECT_DIR$/reinstall.sh">
|
499
531
|
<provider selected="true" editor-type-id="text-editor">
|
500
|
-
<state relative-caret-position="
|
501
|
-
<caret line="
|
532
|
+
<state relative-caret-position="15">
|
533
|
+
<caret line="1" column="26" selection-start-line="1" selection-start-column="26" selection-end-line="1" selection-end-column="26" />
|
502
534
|
</state>
|
503
535
|
</provider>
|
504
536
|
</entry>
|
505
537
|
<entry file="file://$PROJECT_DIR$/bin/bs">
|
506
538
|
<provider selected="true" editor-type-id="text-editor">
|
507
|
-
<state relative-caret-position="
|
508
|
-
<caret line="
|
539
|
+
<state relative-caret-position="542">
|
540
|
+
<caret line="120" column="29" selection-start-line="120" selection-start-column="29" selection-end-line="120" selection-end-column="29" />
|
541
|
+
</state>
|
542
|
+
</provider>
|
543
|
+
</entry>
|
544
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/swagger_template.rb">
|
545
|
+
<provider selected="true" editor-type-id="text-editor">
|
546
|
+
<state relative-caret-position="1545">
|
547
|
+
<caret line="103" column="32" selection-start-line="103" selection-start-column="32" selection-end-line="103" selection-end-column="32" />
|
509
548
|
</state>
|
510
549
|
</provider>
|
511
550
|
</entry>
|
512
551
|
<entry file="file://$PROJECT_DIR$/lib/blade/setting.rb">
|
513
552
|
<provider selected="true" editor-type-id="text-editor">
|
514
|
-
<state relative-caret-position="
|
515
|
-
<caret line="
|
553
|
+
<state relative-caret-position="394">
|
554
|
+
<caret line="62" column="14" lean-forward="true" selection-start-line="62" selection-start-column="14" selection-end-line="62" selection-end-column="14" />
|
516
555
|
</state>
|
517
556
|
</provider>
|
518
557
|
</entry>
|
519
|
-
<entry file="file://$PROJECT_DIR$/lib/blade/setting/
|
558
|
+
<entry file="file://$PROJECT_DIR$/lib/blade/setting/version.rb">
|
520
559
|
<provider selected="true" editor-type-id="text-editor">
|
521
|
-
<state relative-caret-position="
|
522
|
-
<caret line="
|
560
|
+
<state relative-caret-position="30">
|
561
|
+
<caret line="2" column="20" selection-start-line="2" selection-start-column="20" selection-end-line="2" selection-end-column="20" />
|
523
562
|
</state>
|
524
563
|
</provider>
|
525
564
|
</entry>
|
data/bin/bs
CHANGED
@@ -13,7 +13,7 @@ end
|
|
13
13
|
def ok
|
14
14
|
prompt = TTY::Prompt.new
|
15
15
|
prompt.ok("generate complete ! check files now")
|
16
|
-
|
16
|
+
cli
|
17
17
|
end
|
18
18
|
|
19
19
|
def fail()
|
@@ -33,83 +33,102 @@ end
|
|
33
33
|
|
34
34
|
require_relative '../lib/blade/setting'
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
menu.
|
40
|
-
|
41
|
-
|
42
|
-
|
36
|
+
def cli
|
37
|
+
prompt = TTY::Prompt.new
|
38
|
+
menu_result = prompt.collect do
|
39
|
+
key(:menu).select('select the menu you want to do') do |menu|
|
40
|
+
menu.choice "Generate yml and setting logic files", 1
|
41
|
+
menu.choice "Generate Model's crud scaffold", 2
|
42
|
+
menu.choice "Add graphql base file to your project", 3
|
43
|
+
menu.choice "Add Doorkeeper Token to project", 4
|
44
|
+
menu.choice "Add Base File for project [response.rb,application.json.jbuilder, application.helper, base_model_concern]", 0
|
45
|
+
menu.choice "Generate Swagger doc file by Model Module", 5
|
46
|
+
end
|
43
47
|
end
|
44
|
-
end
|
45
48
|
|
46
|
-
case menu_result[:menu]
|
47
|
-
when 1
|
48
|
-
|
49
|
-
|
49
|
+
case menu_result[:menu]
|
50
|
+
when 1
|
51
|
+
result = prompt.collect do
|
52
|
+
key(:setting_path).ask('The generated config file path', default: '/app/settings')
|
50
53
|
|
51
|
-
|
54
|
+
setting_choices = %w(redis sentry database influxdb scout_apm send_cloud elastic_search wechat carrierwave)
|
52
55
|
|
53
|
-
|
56
|
+
prompt.say('Please select the config file you want to generate,
|
54
57
|
(Use arrow keys, press Space to select and Enter to finish, and letter keys to filter)')
|
55
|
-
|
56
|
-
|
58
|
+
key(:configs).multi_select('check configs',
|
59
|
+
setting_choices, filter: true)
|
57
60
|
|
58
|
-
|
61
|
+
key(:yml_path).ask('The generated yml path', default: '/environments')
|
59
62
|
|
60
|
-
|
61
|
-
|
63
|
+
key(:extra_yml_path).ask('Other environment? (Input words like sit,dit,prod)', default: 'dev,sit,dit,prod') do |q|
|
64
|
+
q.convert -> (input) {input.split(/,\s*/)}
|
65
|
+
end
|
62
66
|
end
|
63
|
-
end
|
64
67
|
|
65
|
-
|
66
|
-
|
68
|
+
prompt.ok('config complete')
|
69
|
+
prompt.warn("generating files ...plz don't quit")
|
67
70
|
#生成setting logic
|
68
|
-
|
71
|
+
Blade::BladeSetting.generate_setting_logic(result[:setting_path], result[:configs])
|
69
72
|
|
70
|
-
|
71
|
-
|
73
|
+
prompt.warn('generating yml files ...')
|
74
|
+
Blade::BladeSetting.generate_setting_yml(result[:yml_path], result[:extra_yml_path], result[:configs])
|
72
75
|
|
73
|
-
|
76
|
+
prompt.ok("generate complete ! check files now")
|
74
77
|
|
75
78
|
|
76
|
-
when 2
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
79
|
+
when 2
|
80
|
+
model_result = prompt.collect do
|
81
|
+
key(:model_name).ask('enter the model name')
|
82
|
+
key(:namespace).ask('enter the controller namespace', default: 'api')
|
83
|
+
end
|
84
|
+
ActiveRecord::Base.connection
|
85
|
+
model = Blade::BladeSetting.get_model(model_result[:model_name].classify)
|
86
|
+
if (model.blank?)
|
87
|
+
prompt.error("Model doesn't exist")
|
88
|
+
exit(0);
|
89
|
+
end
|
90
|
+
prompt.warn("generating files ...please don't quit")
|
91
|
+
Blade::BladeSetting.generate_model_template(model, model_result[:model_name])
|
92
|
+
Blade::BladeSetting.generate_crud(model, model_result[:model_name], model_result[:namespace])
|
93
|
+
ok();
|
91
94
|
|
92
|
-
when 3
|
95
|
+
when 3
|
93
96
|
|
94
|
-
when 4
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
97
|
+
when 4
|
98
|
+
token_result = prompt.collect do
|
99
|
+
key(:app_name).ask('Enter the app name', default: 'My app')
|
100
|
+
key(:uri).ask('enter the redirect uri', default: 'http://localhost:3000')
|
101
|
+
end
|
102
|
+
if (!defined? Doorkeeper)
|
103
|
+
Blade::BladeSetting.generate_gem('doorkeeper')
|
104
|
+
prompt.error('You should install doorkeeper first')
|
105
|
+
fail()
|
106
|
+
else
|
107
|
+
app = Doorkeeper::Application.new(name: token_result[:app_name], redirect_uri: token_result[:uri], scopes: token_result[:uri])
|
108
|
+
app.save!
|
109
|
+
prompt.ok("The Uid is #{app.uid}")
|
110
|
+
prompt.ok("The secret key is #{app.secret}")
|
111
|
+
end
|
112
|
+
ok()
|
107
113
|
|
108
|
-
when
|
109
|
-
|
110
|
-
|
114
|
+
when 5
|
115
|
+
doc_result = prompt.collect do
|
116
|
+
key(:model).ask('Enter the module name', default: 'user')
|
117
|
+
end
|
118
|
+
doc_name_result = prompt.collect do
|
119
|
+
key(:name).ask('Enter the module name', default: doc_result[:model])
|
120
|
+
end
|
121
|
+
Blade::BladeSetting.generate_doc(doc_result[:model], doc_name_result[:name])
|
122
|
+
ok()
|
123
|
+
when 0
|
124
|
+
Blade::BladeSetting.generate_base_files
|
125
|
+
ok();
|
111
126
|
|
127
|
+
end
|
112
128
|
end
|
113
129
|
|
130
|
+
cli
|
131
|
+
|
132
|
+
|
114
133
|
|
115
134
|
|
data/lib/blade/setting.rb
CHANGED
@@ -2,6 +2,7 @@ require_relative '../blade/setting/yml_template'
|
|
2
2
|
require_relative '../blade/setting/model_template'
|
3
3
|
require_relative '../blade/setting/controller_template'
|
4
4
|
require_relative '../blade/setting/base_template'
|
5
|
+
require_relative '../blade/setting/swagger_template'
|
5
6
|
require 'rails/generators'
|
6
7
|
module Blade
|
7
8
|
|
@@ -170,7 +171,22 @@ end
|
|
170
171
|
|
171
172
|
def generate_gem(name)
|
172
173
|
gt.add_gem(name)
|
174
|
+
end
|
175
|
+
|
176
|
+
def generate_doc(model, name)
|
177
|
+
file = <<File
|
178
|
+
require 'swagger_helper'
|
179
|
+
|
180
|
+
describe '#{name}模块' do
|
181
|
+
|
182
|
+
#{Blade::Setting::SwaggerTemplate.generate_template(model, name)}
|
183
|
+
|
184
|
+
end
|
185
|
+
|
186
|
+
File
|
173
187
|
|
188
|
+
path = Rails.root.join('spec', 'integration', "#{model}_spec.rb")
|
189
|
+
gt.create_view_file(path, file)
|
174
190
|
end
|
175
191
|
|
176
192
|
def gt
|
@@ -0,0 +1,143 @@
|
|
1
|
+
module Blade
|
2
|
+
module Setting
|
3
|
+
class SwaggerTemplate
|
4
|
+
class << self
|
5
|
+
def render_routes(routes, model, name)
|
6
|
+
routes.map! do |route|
|
7
|
+
api_string = ""
|
8
|
+
path = route.path.spec.to_s
|
9
|
+
action = route.defaults[:action]
|
10
|
+
action_map = {update: "更新", index: "列表", create: "创建", destroy: "删除"}
|
11
|
+
action_method = {update: "put", index: "get", create: "post", destroy: "delete"}
|
12
|
+
action_in = {update: "body", index: "query", create: "body", destroy: "query"}
|
13
|
+
ActiveRecord::Base.connection
|
14
|
+
model_class = ActiveSupport::Dependencies.constantize(model.classify)
|
15
|
+
properties = {}
|
16
|
+
isSearch = (action == "index" || action == "destroy")
|
17
|
+
examples = {
|
18
|
+
data: {
|
19
|
+
},
|
20
|
+
status: {
|
21
|
+
code: "20000",
|
22
|
+
messages: []
|
23
|
+
}
|
24
|
+
}
|
25
|
+
property_prefix = nil
|
26
|
+
includes_actions = ["index", "create", "update", "destroy"]
|
27
|
+
if !includes_actions.include?(action)
|
28
|
+
next
|
29
|
+
end
|
30
|
+
model_example = {}
|
31
|
+
case action
|
32
|
+
when "create"
|
33
|
+
property_prefix = :create
|
34
|
+
|
35
|
+
when "update"
|
36
|
+
property_prefix = :update
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
if (property_prefix.present?)
|
41
|
+
properties[property_prefix] = {type: :object, properties: {}}
|
42
|
+
end
|
43
|
+
if (action == "index" || action == "destroy")
|
44
|
+
properties = []
|
45
|
+
end
|
46
|
+
|
47
|
+
required = []
|
48
|
+
excluded_columns = ["created_at", "deleted_at", "updated_at", "id"]
|
49
|
+
model_class.columns.each do |column|
|
50
|
+
if (!excluded_columns.include?(column.name))
|
51
|
+
if (action == "index")
|
52
|
+
properties.push("parameter name: :'search[#{column.name}]',description: '#{column.comment}', in: :query, type: :#{column.type} ")
|
53
|
+
end
|
54
|
+
if (property_prefix.present?)
|
55
|
+
properties[property_prefix][:properties][:"#{column.name}"] = {type: "#{column.type}".to_sym}
|
56
|
+
end
|
57
|
+
end
|
58
|
+
model_example[:"#{column.name}"] = column.comment
|
59
|
+
end
|
60
|
+
|
61
|
+
if (action == "update")
|
62
|
+
properties[:"#{model}_id"] = {type: :string}
|
63
|
+
end
|
64
|
+
|
65
|
+
if (action == "destroy")
|
66
|
+
properties.push("parameter name: :'#{model}_id', in: :query, type: :integer ")
|
67
|
+
end
|
68
|
+
|
69
|
+
if (action == "index")
|
70
|
+
examples[:data] = {
|
71
|
+
"#{model.pluralize}": [
|
72
|
+
model_example
|
73
|
+
],
|
74
|
+
"total_pages": 1,
|
75
|
+
"total_count": 1
|
76
|
+
}
|
77
|
+
end
|
78
|
+
|
79
|
+
if (action == "update" || action == "create")
|
80
|
+
examples[:data] = {
|
81
|
+
"#{model}": model_example
|
82
|
+
}
|
83
|
+
end
|
84
|
+
|
85
|
+
schema = {
|
86
|
+
type: :object,
|
87
|
+
properties: properties,
|
88
|
+
required: required
|
89
|
+
}
|
90
|
+
|
91
|
+
render_params = <<File
|
92
|
+
parameter name: "#{model}#{action_map[action.to_sym]}", in: :#{action_in[action.to_sym]},schema: #{schema}
|
93
|
+
File
|
94
|
+
if isSearch
|
95
|
+
render_params = <<File
|
96
|
+
#{properties.join("\n ")}
|
97
|
+
File
|
98
|
+
end
|
99
|
+
|
100
|
+
if (includes_actions.include?(action.to_s))
|
101
|
+
api_string = <<file
|
102
|
+
path "#{path.gsub("(.:format)", "").gsub(":id", "{id}")}" do
|
103
|
+
#{action_method[action.to_sym]} '#{model}#{action_map[action.to_sym]}' do
|
104
|
+
tags '#{model.classify} #{name} 模块'
|
105
|
+
security [access_token: [],user_session_key:[]]
|
106
|
+
consumes 'application/json'
|
107
|
+
#{render_params}
|
108
|
+
response '20000', '请求成功' do
|
109
|
+
# noinspection RubyArgCount
|
110
|
+
examples 'application/json' =>
|
111
|
+
#{examples}
|
112
|
+
run_test! do |response|
|
113
|
+
data = JSON.parse(response.body)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
response '50000', '请求失败' do
|
117
|
+
run_test!
|
118
|
+
end
|
119
|
+
end
|
120
|
+
end
|
121
|
+
file
|
122
|
+
end
|
123
|
+
|
124
|
+
api_string
|
125
|
+
end
|
126
|
+
routes.join("\n")
|
127
|
+
end
|
128
|
+
|
129
|
+
|
130
|
+
def generate_template(model, name)
|
131
|
+
|
132
|
+
all_routes = Rails.application.routes.routes.to_a
|
133
|
+
|
134
|
+
routes = all_routes.filter {|route| route.path.spec.to_s.include?("/#{model.pluralize}")}
|
135
|
+
|
136
|
+
routes.uniq! {|p| p.defaults}
|
137
|
+
|
138
|
+
render_routes(routes, model, name)
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
end
|
143
|
+
end
|
data/reinstall.sh
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blade-setting
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- icepoint0
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-03-
|
11
|
+
date: 2019-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -99,6 +99,7 @@ files:
|
|
99
99
|
- lib/blade/setting/base_template.rb
|
100
100
|
- lib/blade/setting/controller_template.rb
|
101
101
|
- lib/blade/setting/model_template.rb
|
102
|
+
- lib/blade/setting/swagger_template.rb
|
102
103
|
- lib/blade/setting/version.rb
|
103
104
|
- lib/blade/setting/yml_template.rb
|
104
105
|
- reinstall.sh
|