blade-setting 0.2.2 → 0.2.3

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: 1a06ae4eee6846b2674edb58db2c39213380ac1c0bd8e847da07e1871eafa65d
4
- data.tar.gz: 9cf2c6fa804b6c7a8566de0a2538974dac787b99fc6769952c1546c7ff2609aa
3
+ metadata.gz: d1433ba40da43a8f46a052cb40f97fba0e4c4488a9d6f61c7488843782f61634
4
+ data.tar.gz: df969ee95e0f7224c376b0222d7ecd76bc776e34d6c212351cc51863900d0b0f
5
5
  SHA512:
6
- metadata.gz: e0845b322a13b6d434c541256b41ffe94bc7a23b04e07f0cf032c2c5a54fd9cb83966d684db03a3975d94c87cd2ce732c8816f6e9a06582655757dd984697261
7
- data.tar.gz: e01dad0c9a01fc8e8841a857dc0fb495449aff5c5e13b74634bf25b58f332b7767e1eeacf58eb87697c2fde1b44a6e012810cdeb93907e33104af70d902ee99d
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="2678" />
53
+ <entry key="bs" value="2938" />
53
54
  <entry key="gemspec" value="89" />
54
- <entry key="rb" value="4594" />
55
- <entry key="sh" value="34" />
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="34" />
61
- <entry key="Ruby" value="7361" />
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="31" />
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="1" />
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="3" />
82
- <entry key="Ruby" value="39" />
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="false">
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="15" selection-start-line="2" selection-start-column="15" selection-end-line="2" selection-end-column="20" />
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="257">
106
- <caret line="84" column="68" selection-start-line="84" selection-start-column="68" selection-end-line="84" selection-end-column="68" />
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="true">
112
- <entry file="file://$PROJECT_DIR$/lib/blade/setting/controller_template.rb">
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="197">
115
- <caret line="31" column="14" selection-start-line="31" selection-start-column="14" selection-end-line="31" selection-end-column="14" />
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="302">
124
- <caret line="88" column="29" selection-start-line="88" selection-start-column="29" selection-end-line="88" selection-end-column="29" />
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/version.rb" />
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/controller_template.rb" />
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&#9;FILE&#9;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="3620000" />
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="72842000" />
389
+ <option name="totallyTimeSpent" value="84913000" />
358
390
  </component>
359
391
  <component name="ToolWindowManager">
360
- <frame x="0" y="23" width="1674" height="937" extended-state="0" />
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/base_template.rb">
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="624">
473
- <caret line="874" selection-start-line="874" selection-end-line="874" />
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$/reinstall.sh">
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="45">
480
- <caret line="3" column="34" selection-start-line="3" selection-start-column="34" selection-end-line="3" selection-end-column="34" />
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/model_template.rb">
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="75">
487
- <caret line="5" selection-start-line="5" selection-end-line="7" selection-end-column="11" />
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/yml_template.rb">
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="654">
494
- <caret line="251" column="7" lean-forward="true" selection-start-line="251" selection-start-column="7" selection-end-line="251" selection-end-column="7" />
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$/lib/blade/setting/version.rb">
530
+ <entry file="file://$PROJECT_DIR$/reinstall.sh">
499
531
  <provider selected="true" editor-type-id="text-editor">
500
- <state relative-caret-position="30">
501
- <caret line="2" column="15" selection-start-line="2" selection-start-column="15" selection-end-line="2" selection-end-column="20" />
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="302">
508
- <caret line="88" column="29" selection-start-line="88" selection-start-column="29" selection-end-line="88" selection-end-column="29" />
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="257">
515
- <caret line="84" column="68" selection-start-line="84" selection-start-column="68" selection-end-line="84" selection-end-column="68" />
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/controller_template.rb">
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="197">
522
- <caret line="31" column="14" selection-start-line="31" selection-start-column="14" selection-end-line="31" selection-end-column="14" />
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
- exit(0);
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
- menu_result = prompt.collect do
37
- key(:menu).select('select the menu you want to do') do |menu|
38
- menu.choice "Generate yml and setting logic files", 1
39
- menu.choice "Generate Model's crud scaffold", 2
40
- menu.choice "Add graphql base file to your project", 3
41
- menu.choice "Add Doorkeeper Token to project", 4
42
- menu.choice "Add Base File for project [response.rb,application.json.jbuilder, application.helper, base_model_concern]", 0
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
- result = prompt.collect do
49
- key(:setting_path).ask('The generated config file path', default: '/app/settings')
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
- setting_choices = %w(redis sentry database influxdb scout_apm send_cloud elastic_search wechat carrierwave)
54
+ setting_choices = %w(redis sentry database influxdb scout_apm send_cloud elastic_search wechat carrierwave)
52
55
 
53
- prompt.say('Please select the config file you want to generate,
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
- key(:configs).multi_select('check configs',
56
- setting_choices, filter: true)
58
+ key(:configs).multi_select('check configs',
59
+ setting_choices, filter: true)
57
60
 
58
- key(:yml_path).ask('The generated yml path', default: '/environments')
61
+ key(:yml_path).ask('The generated yml path', default: '/environments')
59
62
 
60
- key(:extra_yml_path).ask('Other environment? (Input words like sit,dit,prod)', default: 'dev,sit,dit,prod') do |q|
61
- q.convert -> (input) {input.split(/,\s*/)}
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
- prompt.ok('config complete')
66
- prompt.warn("generating files ...plz don't quit")
68
+ prompt.ok('config complete')
69
+ prompt.warn("generating files ...plz don't quit")
67
70
  #生成setting logic
68
- Blade::BladeSetting.generate_setting_logic(result[:setting_path], result[:configs])
71
+ Blade::BladeSetting.generate_setting_logic(result[:setting_path], result[:configs])
69
72
 
70
- prompt.warn('generating yml files ...')
71
- Blade::BladeSetting.generate_setting_yml(result[:yml_path], result[:extra_yml_path], result[:configs])
73
+ prompt.warn('generating yml files ...')
74
+ Blade::BladeSetting.generate_setting_yml(result[:yml_path], result[:extra_yml_path], result[:configs])
72
75
 
73
- prompt.ok("generate complete ! check files now")
76
+ prompt.ok("generate complete ! check files now")
74
77
 
75
78
 
76
- when 2
77
- model_result = prompt.collect do
78
- key(:model_name).ask('enter the model name')
79
- key(:namespace).ask('enter the controller namespace', default: 'api')
80
- end
81
- ActiveRecord::Base.connection
82
- model = Blade::BladeSetting.get_model(model_result[:model_name].classify)
83
- if (model.blank?)
84
- prompt.error("Model doesn't exist")
85
- exit(0);
86
- end
87
- prompt.warn("generating files ...please don't quit")
88
- Blade::BladeSetting.generate_model_template(model,model_result[:model_name])
89
- Blade::BladeSetting.generate_crud(model,model_result[:model_name], model_result[:namespace])
90
- ok();
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
- token_result = prompt.collect do
96
- key(:app_name).ask('Enter the app name', default: 'My app')
97
- key(:uri).ask('enter the redirect uri', default: 'localhost:3000')
98
- end
99
- if (!defined? Doorkeeper)
100
- Blade::BladeSetting.generate_gem('doorkeeper')
101
- prompt.error('You should install doorkeeper first')
102
- else
103
- app = Doorkeeper::Application.new(name: token_result[:app_name], redirect_uri: token_result[:uri], scopes: token_result[:uri])
104
- app.save!
105
- end
106
- fail()
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 0
109
- Blade::BladeSetting.generate_base_files
110
- ok();
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
@@ -1,5 +1,5 @@
1
1
  module Blade
2
2
  module Setting
3
- VERSION = "0.2.2"
3
+ VERSION = "0.2.3"
4
4
  end
5
5
  end
data/reinstall.sh CHANGED
@@ -1,4 +1,4 @@
1
1
  gem uninstall blade-setting
2
- rm -rf blade-setting-0.2.1.gem
2
+ rm -rf blade-setting-0.2.2.gem
3
3
  gem build blade-setting.gemspec
4
- gem install blade-setting-0.2.1.gem
4
+ gem install blade-setting-0.2.2.gem
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.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-05 00:00:00.000000000 Z
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