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 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