souls 0.51.2 → 0.52.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -1
  3. data/exe/souls +4 -202
  4. data/lib/souls/api/generate/application.rb +97 -94
  5. data/lib/souls/api/generate/connection.rb +5 -4
  6. data/lib/souls/api/generate/edge.rb +5 -4
  7. data/lib/souls/api/generate/index.rb +0 -1
  8. data/lib/souls/api/generate/manager.rb +9 -7
  9. data/lib/souls/api/generate/model.rb +16 -18
  10. data/lib/souls/api/generate/mutation.rb +217 -218
  11. data/lib/souls/api/generate/policy.rb +5 -5
  12. data/lib/souls/api/generate/query.rb +51 -51
  13. data/lib/souls/api/generate/resolver.rb +115 -115
  14. data/lib/souls/api/generate/rspec_factory.rb +53 -53
  15. data/lib/souls/api/generate/rspec_model.rb +5 -5
  16. data/lib/souls/api/generate/rspec_mutation.rb +178 -178
  17. data/lib/souls/api/generate/rspec_policy.rb +5 -5
  18. data/lib/souls/api/generate/rspec_query.rb +111 -111
  19. data/lib/souls/api/generate/rspec_resolver.rb +163 -163
  20. data/lib/souls/api/generate/type.rb +66 -66
  21. data/lib/souls/api/index.rb +7 -4
  22. data/lib/souls/api/update/index.rb +15 -0
  23. data/lib/souls/api/update/mutation.rb +68 -64
  24. data/lib/souls/api/update/resolver.rb +59 -60
  25. data/lib/souls/api/update/rspec_factory.rb +40 -39
  26. data/lib/souls/api/update/rspec_mutation.rb +84 -83
  27. data/lib/souls/api/update/rspec_resolver.rb +70 -69
  28. data/lib/souls/api/update/type.rb +39 -38
  29. data/lib/souls/cli/console/index.rb +13 -1
  30. data/lib/souls/cli/create/index.rb +97 -93
  31. data/lib/souls/cli/db/index.rb +122 -1
  32. data/lib/souls/cli/docker/index.rb +30 -38
  33. data/lib/souls/cli/gcloud/compute/index.rb +100 -98
  34. data/lib/souls/cli/gcloud/iam/index.rb +84 -69
  35. data/lib/souls/cli/gcloud/index.rb +36 -35
  36. data/lib/souls/cli/gcloud/pubsub/subscriptions.rb +40 -27
  37. data/lib/souls/cli/gcloud/pubsub/topics.rb +16 -10
  38. data/lib/souls/cli/gcloud/run/index.rb +23 -17
  39. data/lib/souls/cli/gcloud/sql/index.rb +66 -47
  40. data/lib/souls/cli/index.rb +3 -20
  41. data/lib/souls/cli/init/index.rb +140 -140
  42. data/lib/souls/cli/release/release.rb +106 -105
  43. data/lib/souls/cli/server/index.rb +12 -1
  44. data/lib/souls/cli/sync/conf.rb +39 -38
  45. data/lib/souls/cli/sync/model.rb +19 -20
  46. data/lib/souls/cli/sync/pubsub.rb +69 -70
  47. data/lib/souls/cli/upgrade/gemfile.rb +108 -0
  48. data/lib/souls/cli/upgrade/index.rb +1 -1
  49. data/lib/souls/cli.rb +57 -0
  50. data/lib/souls/index.rb +1 -5
  51. data/lib/souls/version.rb +1 -1
  52. data/lib/souls/versions/.souls_api_version +1 -1
  53. data/lib/souls/versions/.souls_worker_version +1 -1
  54. data/lib/souls/worker/generate/index.rb +1 -1
  55. data/lib/souls/worker/generate/job.rb +45 -0
  56. data/lib/souls/worker/generate/mailer.rb +38 -43
  57. data/lib/souls/worker/index.rb +3 -1
  58. data/lib/souls.rb +2 -0
  59. metadata +19 -5
  60. data/lib/souls/api/generate/migration.rb +0 -51
  61. data/lib/souls/cli/upgrade/gem_update.rb +0 -107
  62. data/lib/souls/worker/generate/mutation.rb +0 -44
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62fc5434cd97d243c168e4524d26a39437f5237f16ee89778c4ea5995f244aee
4
- data.tar.gz: 2368dfe07467e449a0548ab40a6155399918a9a1359b286bbf3351a7ff0349f7
3
+ metadata.gz: a787225c8c1e3df750cf5de8cd184a3e3380cfbe8b469225ffc69a789634ddaf
4
+ data.tar.gz: 72adfc131aebcc47923b0f102615d45ac3c41a081f964a259aff5dfa29deffb5
5
5
  SHA512:
6
- metadata.gz: 8f2b2acef6fc5cb3678d6df40c0bdc2d56c7769fe20699bf214e32e70de341ef6110ba7b8fb2e63ae596f3d5da428beeb81fce1e126abe56aab982dc92f481fa
7
- data.tar.gz: 4bb3d0636e6b9c6ee696ffc2fb623850368550f7b8dde0a7b10e334cc3d221a42fba0987f28cb1b781957f98ea82a714ca2cc9617553ce08a50b79ba3ea8a3dd
6
+ metadata.gz: 5a8851074629eca06ca8b3090f5a25c10e0ceb0403df43455faf8d01ed81aae36b7e9967f91e6345a4f8d494df330a3bcebc3a24545790ff8009fbb52e3d1d24
7
+ data.tar.gz: dbda69409b250dfd73535d46def5352612bb251ec84a3b91cbca450aaffa7b2bf13a4ad4987dbce2421c713f9dbd054081f263660815f1016a824019d9c9226b
data/README.md CHANGED
@@ -82,6 +82,9 @@ And Create Your APP
82
82
  $ bundle
83
83
  $ souls s
84
84
 
85
+ Check your GraphQL PlayGround
86
+
87
+ (localhost:4000/playground)[localhost:4000/playground]
85
88
 
86
89
 
87
90
 
@@ -105,7 +108,7 @@ Souls.configure do |config|
105
108
  config.region = "asia-northeast1"
106
109
  config.endpoint = "/endpoint"
107
110
  config.strain = "api"
108
- config.fixed_gems = ["selenium-webdriver", "pg"]
111
+ config.fixed_gems = ["selenium-webdriver"]
109
112
  config.workers = []
110
113
  end
111
114
  ```
data/exe/souls CHANGED
@@ -1,208 +1,10 @@
1
1
  #!/usr/bin/env ruby
2
2
  require "souls"
3
+ require "thor"
3
4
  begin
4
- souls_command = ARGV[0]
5
- require("./config/souls") unless ["new", "docker", "-v", "deploy"].include?(souls_command)
5
+ require("./config/souls")
6
6
  rescue StandardError
7
- puts("Make sure you are at SOULs APP directory!")
7
+ raise(StandardError, "No confif! Please make `./config/souls.rb` File!")
8
8
  end
9
- begin
10
- case souls_command
11
- when "api"
12
- api_command = ARGV[1]
13
- Dir.chdir(Souls.get_api_path.to_s) do
14
- case api_command
15
- when "generate", "g"
16
- method_name = ARGV[2]
17
- class_name = ARGV[3]
18
- args = { class_name: class_name }
19
- args[:mutation] = ARGV[4] if ARGV.size > 4
20
- status = Paint["Running SOULs Generate Commands...", :yellow]
21
- Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
22
- Whirly.status = status
23
- Souls::Api::Generate.public_send(method_name, **args)
24
- Whirly.status = "Done!"
25
- end
26
- when "update"
27
- class_name = ARGV[2]
28
- status = Paint["Running SOULs Update Commands...", :yellow]
29
- Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
30
- Whirly.status = status
31
- Souls::Api::Update.create_mutation(class_name: class_name)
32
- Souls::Api::Update.update_mutation(class_name: class_name)
33
- Souls::Api::Update.resolver(class_name: class_name)
34
- Souls::Api::Update.type(class_name: class_name)
35
- Souls::Api::Update.rspec_factory(class_name: class_name)
36
- Souls::Api::Update.rspec_mutation(class_name: class_name)
37
- Souls::Api::Update.rspec_resolver(class_name: class_name)
38
- Whirly.status = "Done!"
39
- end
40
- when "d", "delete"
41
- class_name = ARGV[2]
42
- Souls::Api::Generate.delete_all(class_name: class_name)
43
- else
44
- puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
45
- end
46
- end
47
- when "worker"
48
- api_command = ARGV[1]
49
- case api_command
50
- when "generate", "g"
51
- method_name = ARGV[2]
52
- class_name = ARGV[3]
53
- args = { class_name: class_name }
54
- args[:option] = ARGV[4] if ARGV.size > 4
55
- status = Paint["Running SOULs Generate Commands...", :yellow]
56
- Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
57
- Whirly.status = status
58
- Souls::Worker::Generate.public_send(method_name, **args)
59
- Whirly.status = "Done!"
60
- end
61
- else
62
- puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
63
- end
64
- when "new"
65
- args = ARGV
66
- Souls::Init.start(args)
67
- when "bashrc", "zshrc"
68
- Souls::Init.generate_cd
69
- when "s", "server"
70
- all = ARGV[1]
71
- case all
72
- when "all"
73
- Dir.chdir(Souls.get_mother_path.to_s) do
74
- system("foreman start -f Procfile.dev")
75
- end
76
- else
77
- system("foreman start -f Procfile.dev")
78
- end
79
- when "c", "console"
80
- strain = Souls.configuration.strain
81
- case strain
82
- when "media", "admin", "console", "doc"
83
- system("yarn dev")
84
- else
85
- rack_env = ARGV[1]
86
- case rack_env
87
- when "RACK_ENV=production"
88
- system("RACK_ENV=production bundle exec irb")
89
- else
90
- system("bundle exec irb")
91
- end
92
- end
93
- when "docker"
94
- send_method = ARGV[1]
95
- Souls::Docker.public_send(send_method)
96
- when "gcloud"
97
- command = ARGV[1]
98
- status = Paint["Running Gcloud Commands...", :yellow]
99
- Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
100
- Whirly.status = status
101
- case command
102
- when "get_iam_key"
103
- app_name = Souls.configuration.app
104
- project_id = Souls.configuration.project_id
105
- Souls::Gcloud.auth_login(project_id: project_id)
106
- Souls::Gcloud::Iam.create_service_account(service_account: app_name)
107
- Souls::Gcloud::Iam.create_service_account_key(service_account: app_name, project_id: project_id)
108
- Souls::Gcloud.enable_permissions
109
- Souls::Gcloud::Iam.add_permissions(service_account: app_name, project_id: project_id)
110
- Souls::Gcloud::Iam.export_key_to_console
111
- when "auth_login"
112
- project_id = Souls.configuration.project_id
113
- Souls::Gcloud.auth_login(project_id: project_id)
114
- else
115
- module_name = ARGV[1]
116
- method_name = ARGV[2]
117
- ARGV.shift(3)
118
- key_strings = []
119
- keys = []
120
- ARGV.each_with_index do |n, i|
121
- n.include?(":") && i.even? ? keys << n.gsub(":", "").to_sym : key_strings << n
122
- end
123
- raise(StandardError, "wrong arguments!") unless keys.size == key_strings.size
124
9
 
125
- args = keys.zip(key_strings).to_h
126
- Object.const_get("Souls::Gcloud::#{module_name.camelize}").public_send(method_name.to_sym, **args)
127
- end
128
- Whirly.status = "Done!"
129
- end
130
- when "-v", "--version", "v", "version", "-version", "--v"
131
- puts(Paint[Souls::VERSION, :white])
132
- when "upgrade"
133
- method_command = ARGV[1]
134
- case method_command
135
- when "gemfile", "gem"
136
- status = Paint["Checking for updates...", :yellow]
137
- Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
138
- Whirly.status = status
139
- Souls::Upgrade.update_gemfile
140
- Whirly.status = "Done!"
141
- end
142
- else
143
- puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
144
- end
145
- when "release"
146
- Souls::Release.gem_release
147
- when "sync"
148
- method_name = ARGV[1]
149
- status = Paint["Syncing Files...", :yellow]
150
- Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
151
- Whirly.status = status
152
- Souls::Sync.public_send(method_name)
153
- Whirly.status = Paint["Synced!", :green]
154
- end
155
- when "create"
156
- service_name = ARGV[1]
157
- case service_name
158
- when "worker"
159
- worker_name = ARGV[2]
160
- Souls::Create.worker(worker_name: worker_name)
161
- else
162
- puts(Paint["Coming Soon...", :green])
163
- end
164
- when "db:create"
165
- rack_env = ARGV[1]
166
- case rack_env
167
- when "RACK_ENV=production"
168
- system("rake db:create RACK_ENV=production")
169
- else
170
- system("rake db:create && rake db:create RACK_ENV=test")
171
- end
172
- when "db:migrate"
173
- rack_env = ARGV[1]
174
- case rack_env
175
- when "RACK_ENV=production"
176
- system("rake db:migrate RACK_ENV=production")
177
- else
178
- system("rake db:migrate && rake db:migrate RACK_ENV=test")
179
- end
180
- when "db:seed"
181
- rack_env = ARGV[1]
182
- case rack_env
183
- when "RACK_ENV=production"
184
- system("rake db:seed RACK_ENV=production")
185
- else
186
- system("rake db:seed")
187
- end
188
- when "db:migrate:reset"
189
- rack_env = ARGV[1]
190
- case rack_env
191
- when "RACK_ENV=production"
192
- system("rake db:migrate:reset RACK_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1")
193
- else
194
- system("rake db:migrate:reset && rake db:migrate:reset RACK_ENV=test")
195
- end
196
- when "t", "test"
197
- system("rubocop -A")
198
- system("bundle exec rspec")
199
- when "deploy"
200
- project_id = Souls.configuration.project_id
201
- system("gcloud builds submit --config=cloudbuild.yml --project #{project_id}")
202
- else
203
- puts(Paint["Welcome to SOULs!", :green])
204
- end
205
- rescue StandardError => e
206
- puts(e.backtrace)
207
- puts(Paint[e, :red])
208
- end
10
+ Souls::CLI.start
@@ -1,103 +1,106 @@
1
1
  module Souls
2
- module Api::Generate
3
- ## Common Methods
4
- class << self
5
- def generated_paths(class_name: "user")
6
- singularized_class_name = class_name.singularize.underscore
7
- pluralized_class_name = class_name.pluralize.underscore
8
- [
9
- "./app/models/#{singularized_class_name}.rb",
10
- "./app/policies/#{singularized_class_name}_policy.rb",
11
- "./app/graphql/mutations/create_#{singularized_class_name}.rb",
12
- "./app/graphql/mutations/delete_#{singularized_class_name}.rb",
13
- "./app/graphql/mutations/destroy_delete_#{singularized_class_name}.rb",
14
- "./app/graphql/mutations/update_#{singularized_class_name}.rb",
15
- "./app/graphql/queries/#{singularized_class_name}.rb",
16
- "./app/graphql/queries/#{pluralized_class_name}.rb",
17
- "./app/graphql/resolvers/#{singularized_class_name}_search.rb",
18
- "./app/graphql/types/#{singularized_class_name}_type.rb",
19
- "./app/graphql/types/edges/#{singularized_class_name}_edge.rb",
20
- "./app/graphql/types/connections/#{singularized_class_name}_connection.rb",
21
- "./spec/factories/#{pluralized_class_name}.rb",
22
- "./spec/mutations/#{singularized_class_name}_spec.rb",
23
- "./spec/models/#{singularized_class_name}_spec.rb",
24
- "./spec/queries/#{singularized_class_name}_spec.rb",
25
- "./spec/policies/#{singularized_class_name}_policy_spec.rb",
26
- "./spec/resolvers/#{singularized_class_name}_search_spec.rb"
27
- ]
28
- end
2
+ class Generate < Thor
3
+ desc "scaffold [CLASS_NAME]", "Generate Scaffold from schema.rb"
4
+ def scaffold(class_name)
5
+ singularized_class_name = class_name.singularize
6
+ model(singularized_class_name)
7
+ type(singularized_class_name)
8
+ edge(singularized_class_name)
9
+ connection(singularized_class_name)
10
+ resolver(singularized_class_name)
11
+ rspec_factory(singularized_class_name)
12
+ rspec_model(singularized_class_name)
13
+ rspec_mutation(singularized_class_name)
14
+ rspec_query(singularized_class_name)
15
+ rspec_resolver(singularized_class_name)
16
+ query(singularized_class_name)
17
+ mutation(singularized_class_name)
18
+ policy(singularized_class_name)
19
+ rspec_policy(singularized_class_name)
20
+ rescue Thor::Error => e
21
+ raise(Thor::Error, e)
22
+ end
29
23
 
30
- def test_dir
31
- FileUtils.mkdir_p("./app/graphql/mutations")
32
- FileUtils.mkdir_p("./app/graphql/queries")
33
- FileUtils.mkdir_p("./app/graphql/types")
34
- FileUtils.mkdir_p("./app/graphql/resolvers")
35
- FileUtils.mkdir_p("./app/models")
36
- FileUtils.mkdir_p("./app/policies")
37
- FileUtils.mkdir_p("./spec/factories")
38
- FileUtils.mkdir_p("./spec/queries")
39
- FileUtils.mkdir_p("./spec/mutations")
40
- FileUtils.mkdir_p("./spec/models")
41
- FileUtils.mkdir_p("./spec/resolvers")
42
- FileUtils.mkdir_p("./spec/policies")
43
- FileUtils.mkdir_p("./config")
44
- FileUtils.touch("./config/souls.rb")
45
- FileUtils.mkdir_p("./db/")
46
- FileUtils.touch("./db/schema.rb")
47
- puts("test dir created!")
24
+ desc "scaffold_all", "Generate Scaffold All Tables from schema.rb"
25
+ def scaffold_all
26
+ puts(Paint["Let's Go SOULs AUTO CRUD Assist!\n", :cyan])
27
+ Souls.get_tables.each do |table|
28
+ Souls::Api::Generate.scaffold(class_name: table.singularize)
29
+ puts(Paint["Generated #{table.camelize} CRUD Files\n", :yellow])
48
30
  end
31
+ rescue Thor::Error => e
32
+ raise(Thor::Error, e)
33
+ end
49
34
 
50
- def scaffold(class_name: "user")
51
- singularized_class_name = class_name.singularize
52
- model(class_name: singularized_class_name)
53
- type(class_name: singularized_class_name)
54
- edge(class_name: singularized_class_name)
55
- connection(class_name: singularized_class_name)
56
- resolver(class_name: singularized_class_name)
57
- rspec_factory(class_name: singularized_class_name)
58
- rspec_model(class_name: singularized_class_name)
59
- rspec_mutation(class_name: singularized_class_name)
60
- rspec_query(class_name: singularized_class_name)
61
- rspec_resolver(class_name: singularized_class_name)
62
- query(class_name: singularized_class_name)
63
- mutation(class_name: singularized_class_name)
64
- policy(class_name: singularized_class_name)
65
- rspec_policy(class_name: singularized_class_name)
66
- rescue StandardError => e
67
- puts(e.backtrace)
68
- raise(StandardError, e)
69
- end
35
+ desc "delete_all [CLASS_NAME]", "Generate Scaffold All Tables from schema.rb"
36
+ def delete_all(class_name: "user")
37
+ singularized_class_name = class_name.singularize.underscore
38
+ pluralized_class_name = class_name.pluralize.underscore
39
+ FileUtils.rm("./app/models/#{singularized_class_name}.rb")
40
+ FileUtils.rm("./app/policies/#{singularized_class_name}_policy.rb")
41
+ FileUtils.rm_rf("./app/graphql/mutations/base/#{singularized_class_name}")
42
+ FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
43
+ FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
44
+ FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
45
+ FileUtils.rm("./app/graphql/types/#{singularized_class_name}_type.rb")
46
+ FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
47
+ FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
48
+ FileUtils.rm("./spec/factories/#{pluralized_class_name}.rb")
49
+ FileUtils.rm("./spec/mutations/base/#{singularized_class_name}_spec.rb")
50
+ FileUtils.rm("./spec/models/#{singularized_class_name}_spec.rb")
51
+ FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
52
+ FileUtils.rm("./spec/policies/#{singularized_class_name}_policy_spec.rb")
53
+ FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
54
+ puts(Paint["deleted #{class_name.camelize} CRUD!", :yellow])
55
+ rescue Thor::Error => e
56
+ raise(Thor::Error, e)
57
+ end
70
58
 
71
- def scaffold_all
72
- puts(Paint["Let's Go SOULs AUTO CRUD Assist!\n", :cyan])
73
- Souls.get_tables.each do |table|
74
- Souls::Api::Generate.scaffold(class_name: table.singularize)
75
- puts(Paint["Generated #{table.camelize} CRUD Files\n", :yellow])
76
- end
77
- end
59
+ private
78
60
 
79
- def delete_all(class_name: "user")
80
- singularized_class_name = class_name.singularize.underscore
81
- pluralized_class_name = class_name.pluralize.underscore
82
- FileUtils.rm("./app/models/#{singularized_class_name}.rb")
83
- FileUtils.rm("./app/policies/#{singularized_class_name}_policy.rb")
84
- FileUtils.rm_rf("./app/graphql/mutations/base/#{singularized_class_name}")
85
- FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
86
- FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
87
- FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
88
- FileUtils.rm("./app/graphql/types/#{singularized_class_name}_type.rb")
89
- FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
90
- FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
91
- FileUtils.rm("./spec/factories/#{pluralized_class_name}.rb")
92
- FileUtils.rm("./spec/mutations/base/#{singularized_class_name}_spec.rb")
93
- FileUtils.rm("./spec/models/#{singularized_class_name}_spec.rb")
94
- FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
95
- FileUtils.rm("./spec/policies/#{singularized_class_name}_policy_spec.rb")
96
- FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
97
- puts(Paint["deleted #{class_name.camelize} CRUD!", :yellow])
98
- rescue StandardError => e
99
- raise(StandardError, e)
100
- end
61
+ def generated_paths(class_name: "user")
62
+ singularized_class_name = class_name.singularize.underscore
63
+ pluralized_class_name = class_name.pluralize.underscore
64
+ [
65
+ "./app/models/#{singularized_class_name}.rb",
66
+ "./app/policies/#{singularized_class_name}_policy.rb",
67
+ "./app/graphql/mutations/create_#{singularized_class_name}.rb",
68
+ "./app/graphql/mutations/delete_#{singularized_class_name}.rb",
69
+ "./app/graphql/mutations/destroy_delete_#{singularized_class_name}.rb",
70
+ "./app/graphql/mutations/update_#{singularized_class_name}.rb",
71
+ "./app/graphql/queries/#{singularized_class_name}.rb",
72
+ "./app/graphql/queries/#{pluralized_class_name}.rb",
73
+ "./app/graphql/resolvers/#{singularized_class_name}_search.rb",
74
+ "./app/graphql/types/#{singularized_class_name}_type.rb",
75
+ "./app/graphql/types/edges/#{singularized_class_name}_edge.rb",
76
+ "./app/graphql/types/connections/#{singularized_class_name}_connection.rb",
77
+ "./spec/factories/#{pluralized_class_name}.rb",
78
+ "./spec/mutations/#{singularized_class_name}_spec.rb",
79
+ "./spec/models/#{singularized_class_name}_spec.rb",
80
+ "./spec/queries/#{singularized_class_name}_spec.rb",
81
+ "./spec/policies/#{singularized_class_name}_policy_spec.rb",
82
+ "./spec/resolvers/#{singularized_class_name}_search_spec.rb"
83
+ ]
84
+ end
85
+
86
+ def test_dir
87
+ FileUtils.mkdir_p("./app/graphql/mutations")
88
+ FileUtils.mkdir_p("./app/graphql/queries")
89
+ FileUtils.mkdir_p("./app/graphql/types")
90
+ FileUtils.mkdir_p("./app/graphql/resolvers")
91
+ FileUtils.mkdir_p("./app/models")
92
+ FileUtils.mkdir_p("./app/policies")
93
+ FileUtils.mkdir_p("./spec/factories")
94
+ FileUtils.mkdir_p("./spec/queries")
95
+ FileUtils.mkdir_p("./spec/mutations")
96
+ FileUtils.mkdir_p("./spec/models")
97
+ FileUtils.mkdir_p("./spec/resolvers")
98
+ FileUtils.mkdir_p("./spec/policies")
99
+ FileUtils.mkdir_p("./config")
100
+ FileUtils.touch("./config/souls.rb")
101
+ FileUtils.mkdir_p("./db/")
102
+ FileUtils.touch("./db/schema.rb")
103
+ puts("test dir created!")
101
104
  end
102
105
  end
103
106
  end
@@ -1,6 +1,7 @@
1
1
  module Souls
2
- module Api::Generate
3
- def self.connection(class_name: "user")
2
+ class Generate < Thor
3
+ desc "connection [CLASS_NAME]", "Generate GraphQL Connection from schema.rb"
4
+ def connection(class_name)
4
5
  file_dir = "./app/graphql/types/connections/"
5
6
  FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
6
7
  singularized_class_name = class_name.underscore.singularize
@@ -14,8 +15,8 @@ module Souls
14
15
  end
15
16
  puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
16
17
  file_path
17
- rescue StandardError => e
18
- raise(StandardError, e)
18
+ rescue Thor::Error => e
19
+ raise(Thor::Error, e)
19
20
  end
20
21
  end
21
22
  end