souls 0.30.11 → 0.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/exe/souls +31 -38
- data/lib/souls.rb +0 -62
- data/lib/souls/api/generate/application.rb +3 -21
- data/lib/souls/api/update/rspec_mutation.rb +1 -3
- data/lib/souls/api/update/rspec_resolver.rb +0 -2
- data/lib/souls/cli.rb +1 -0
- data/lib/souls/cli/docker/docker.rb +12 -0
- data/lib/souls/cli/sync.rb +6 -0
- data/lib/souls/cli/sync/model.rb +69 -0
- data/lib/souls/version.rb +1 -1
- data/lib/souls/versions/.souls_api_version +1 -1
- data/lib/souls/versions/.souls_worker_version +1 -1
- data/lib/souls/worker/generate.rb +0 -1
- data/lib/souls/worker/generate/mailer.rb +0 -5
- metadata +8 -6
- data/lib/souls/worker/generate/application.rb +0 -150
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 378a3ef40cd5cbc43e093f65d122236ea79c69a26fb823a7666296f87b36221e
|
|
4
|
+
data.tar.gz: 4396ee4d17f3c1dfeeaf68ba394cfa8252da1269cb8423438242387f4399dd93
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2686058accaf16fd46e5e54acd294f33296340812417af70c8c2a5730f05082e1bfa6837b60521b4f322b8352f7121094585007b360006ec997a5189958c3046
|
|
7
|
+
data.tar.gz: e9730f1a4824de288bdb98385cfbb43e05ecd0353a9a49fd6079f5130bb958a238960ee73518e2dc0eaf424e9457ea111e945fa80567314fc93292fc20f8cfda
|
data/exe/souls
CHANGED
|
@@ -20,7 +20,7 @@ begin
|
|
|
20
20
|
Souls::Api::Generate.public_send(method_name, class_name: class_name)
|
|
21
21
|
Whirly.status = "Done!"
|
|
22
22
|
end
|
|
23
|
-
when "
|
|
23
|
+
when "update"
|
|
24
24
|
class_name = ARGV[2]
|
|
25
25
|
status = Paint["Running SOULs Update Commands...", :yellow]
|
|
26
26
|
Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
|
|
@@ -34,6 +34,9 @@ begin
|
|
|
34
34
|
Souls::Api::Update.rspec_resolver(class_name: class_name)
|
|
35
35
|
Whirly.status = "Done!"
|
|
36
36
|
end
|
|
37
|
+
when "d", "delete"
|
|
38
|
+
class_name = ARGV[2]
|
|
39
|
+
Souls::Api::Generate.delete_all(class_name: class_name)
|
|
37
40
|
else
|
|
38
41
|
puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
|
|
39
42
|
end
|
|
@@ -73,7 +76,7 @@ begin
|
|
|
73
76
|
system("bundle exec irb")
|
|
74
77
|
end
|
|
75
78
|
end
|
|
76
|
-
when "
|
|
79
|
+
when "docker"
|
|
77
80
|
send_method = ARGV[1]
|
|
78
81
|
Souls::Docker.public_send(send_method)
|
|
79
82
|
when "gcloud"
|
|
@@ -86,49 +89,42 @@ begin
|
|
|
86
89
|
end
|
|
87
90
|
when "-v", "--version", "v", "version", "-version", "--v"
|
|
88
91
|
puts(Paint[Souls::VERSION, :white])
|
|
89
|
-
when "
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
Whirly.
|
|
92
|
+
when "upgrade"
|
|
93
|
+
method_command = ARGV[1]
|
|
94
|
+
case method_command
|
|
95
|
+
when "gemfile", "gem"
|
|
96
|
+
status = Paint["Checking for updates...", :yellow]
|
|
97
|
+
Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
|
|
98
|
+
Whirly.status = status
|
|
99
|
+
Souls.update_gemfile
|
|
100
|
+
Whirly.status = "Done!"
|
|
101
|
+
end
|
|
102
|
+
else
|
|
103
|
+
puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
|
|
95
104
|
end
|
|
96
105
|
when "release"
|
|
97
106
|
Souls::Release.gem_release
|
|
98
|
-
when "
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
Whirly.
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
when "mutation"
|
|
109
|
-
Souls::Init.add_mutation(class_name: "user", file_name: "hoi")
|
|
110
|
-
when "type"
|
|
111
|
-
Souls::Init.add_type(class_name: "user", file_name: "hoi")
|
|
112
|
-
when "connection"
|
|
113
|
-
Souls::Init.add_connection(class_name: "user", file_name: "hoi")
|
|
114
|
-
when "edge"
|
|
115
|
-
Souls::Init.add_edge(class_name: "user", file_name: "hoi")
|
|
116
|
-
when "rspec_mutation"
|
|
117
|
-
Souls::Init.add_rspec_mutation(class_name: "user", file_name: "hoi")
|
|
107
|
+
when "sync"
|
|
108
|
+
target = ARGV[1]
|
|
109
|
+
case target
|
|
110
|
+
when "model", "m"
|
|
111
|
+
status = Paint["Syncing Models...", :yellow]
|
|
112
|
+
Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
|
|
113
|
+
Whirly.status = status
|
|
114
|
+
Souls::Sync.model
|
|
115
|
+
Whirly.status = "API and Worker Both Models Synced!"
|
|
116
|
+
end
|
|
118
117
|
else
|
|
119
|
-
puts(Paint["
|
|
118
|
+
puts(Paint["Comannd doesn't exist.Check you command again!...", :red])
|
|
120
119
|
end
|
|
121
|
-
when "
|
|
122
|
-
|
|
123
|
-
case
|
|
120
|
+
when "create"
|
|
121
|
+
service_name = ARGV[1]
|
|
122
|
+
case service_name
|
|
124
123
|
when "worker"
|
|
125
124
|
Souls::Init.download_worker
|
|
126
125
|
else
|
|
127
126
|
puts(Paint["Coming Soon...", :green])
|
|
128
127
|
end
|
|
129
|
-
when "d", "delete"
|
|
130
|
-
class_name = ARGV[1]
|
|
131
|
-
Souls::Api::Generate.delete_all(class_name: class_name)
|
|
132
128
|
when "db:create"
|
|
133
129
|
rack_env = ARGV[1]
|
|
134
130
|
case rack_env
|
|
@@ -164,9 +160,6 @@ begin
|
|
|
164
160
|
when "t", "test"
|
|
165
161
|
system("rubocop -A")
|
|
166
162
|
system("bundle exec rspec")
|
|
167
|
-
when "run"
|
|
168
|
-
system("docker build . -t souls -f Dockerfile.dev")
|
|
169
|
-
system("docker run --rm --env-file .env -p 3000:3000 souls:latest")
|
|
170
163
|
when "deploy"
|
|
171
164
|
project_id = Souls.configuration.project_id
|
|
172
165
|
system("gcloud builds submit --config=cloudbuild.yml --project #{project_id}")
|
data/lib/souls.rb
CHANGED
|
@@ -249,68 +249,6 @@ module Souls
|
|
|
249
249
|
puts(Paint["\nSuccessfully Updated #{service_name} Gemfile!", :green])
|
|
250
250
|
end
|
|
251
251
|
|
|
252
|
-
def update_models
|
|
253
|
-
current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
|
|
254
|
-
permitted_dirs = %w[worker api]
|
|
255
|
-
unless permitted_dirs.include?(current_dir_name)
|
|
256
|
-
raise(StandardError, "You are at wrong directory!Go to API or Worker Directory!")
|
|
257
|
-
end
|
|
258
|
-
|
|
259
|
-
cp_dir = get_models_path(service_name: current_dir_name)
|
|
260
|
-
cp_dir.each do |path|
|
|
261
|
-
cp_and_dl_files(api_dir: path[:api], worker_dir: path[:worker])
|
|
262
|
-
end
|
|
263
|
-
end
|
|
264
|
-
|
|
265
|
-
def cp_and_dl_files(api_dir: "", worker_dir: "")
|
|
266
|
-
if Dir["#{worker_dir}/*.rb"].blank?
|
|
267
|
-
|
|
268
|
-
api_latest_date = 1
|
|
269
|
-
worker_latest_date = 0
|
|
270
|
-
else
|
|
271
|
-
api_file_data = file_diff(Dir["#{api_dir}/*.rb"])
|
|
272
|
-
worker_file_data = file_diff(Dir["#{worker_dir}/*.rb"])
|
|
273
|
-
|
|
274
|
-
api_latest_date = Date.parse(api_file_data.max)
|
|
275
|
-
worker_latest_date = Date.parse(worker_file_data.max)
|
|
276
|
-
end
|
|
277
|
-
|
|
278
|
-
if api_latest_date < worker_latest_date
|
|
279
|
-
FileUtils.rm_rf(api_dir) if Dir.exist?(api_dir)
|
|
280
|
-
FileUtils.mkdir(api_dir) unless Dir.exist?(api_dir)
|
|
281
|
-
system("cp -r #{worker_dir}/* #{api_dir}")
|
|
282
|
-
else
|
|
283
|
-
FileUtils.rm_rf(worker_dir) if Dir.exist?(worker_dir)
|
|
284
|
-
FileUtils.mkdir(worker_dir) unless Dir.exist?(worker_dir)
|
|
285
|
-
system("cp -r #{api_dir}/* #{worker_dir}")
|
|
286
|
-
end
|
|
287
|
-
end
|
|
288
|
-
|
|
289
|
-
def get_models_path(service_name: "api")
|
|
290
|
-
case service_name
|
|
291
|
-
when "api"
|
|
292
|
-
api_path = "."
|
|
293
|
-
worker_path = "../worker"
|
|
294
|
-
when "worker"
|
|
295
|
-
api_path = "../api"
|
|
296
|
-
worker_path = "."
|
|
297
|
-
end
|
|
298
|
-
[
|
|
299
|
-
{
|
|
300
|
-
api: "#{api_path}/db",
|
|
301
|
-
worker: "#{worker_path}/db"
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
api: "#{api_path}/app/models",
|
|
305
|
-
worker: "#{worker_path}/app/models"
|
|
306
|
-
},
|
|
307
|
-
{
|
|
308
|
-
api: "#{api_path}/spec/factories",
|
|
309
|
-
worker: "#{worker_path}/spec/factories"
|
|
310
|
-
}
|
|
311
|
-
]
|
|
312
|
-
end
|
|
313
|
-
|
|
314
252
|
def file_diff(paths = [])
|
|
315
253
|
paths.map do |path|
|
|
316
254
|
stat(path)[:last_update]
|
|
@@ -109,7 +109,7 @@ module Souls
|
|
|
109
109
|
false
|
|
110
110
|
end
|
|
111
111
|
|
|
112
|
-
def self.
|
|
112
|
+
def self.scaffold(class_name: "souls")
|
|
113
113
|
singularized_class_name = class_name.singularize
|
|
114
114
|
model(class_name: singularized_class_name)
|
|
115
115
|
type(class_name: singularized_class_name)
|
|
@@ -130,10 +130,10 @@ module Souls
|
|
|
130
130
|
raise(StandardError, e)
|
|
131
131
|
end
|
|
132
132
|
|
|
133
|
-
def self.
|
|
133
|
+
def self.scaffold_all
|
|
134
134
|
puts(Paint["Let's Go SOULs AUTO CRUD Assist!\n", :cyan])
|
|
135
135
|
Souls::Api::Generate.get_tables.each do |table|
|
|
136
|
-
Souls::Api::Generate.
|
|
136
|
+
Souls::Api::Generate.scaffold(class_name: table.singularize)
|
|
137
137
|
puts(Paint["Generated #{table.camelize} CRUD Files\n", :yellow])
|
|
138
138
|
end
|
|
139
139
|
end
|
|
@@ -160,23 +160,5 @@ module Souls
|
|
|
160
160
|
rescue StandardError => e
|
|
161
161
|
raise(StandardError, e)
|
|
162
162
|
end
|
|
163
|
-
|
|
164
|
-
def self.update_delete(class_name: "souls")
|
|
165
|
-
singularized_class_name = class_name.singularize.underscore
|
|
166
|
-
pluralized_class_name = class_name.pluralize.underscore
|
|
167
|
-
FileUtils.rm_rf("./app/graphql/mutations/#{singularized_class_name}")
|
|
168
|
-
FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
|
|
169
|
-
FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
|
|
170
|
-
FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
|
|
171
|
-
FileUtils.rm("./app/graphql/types/#{singularized_class_name}_type.rb")
|
|
172
|
-
FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
|
|
173
|
-
FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
|
|
174
|
-
FileUtils.rm("./spec/mutations/#{singularized_class_name}_spec.rb")
|
|
175
|
-
FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
|
|
176
|
-
FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
|
|
177
|
-
puts("deleted #{class_name.camelize} CRUD!")
|
|
178
|
-
rescue StandardError => e
|
|
179
|
-
raise(StandardError, e)
|
|
180
|
-
end
|
|
181
163
|
end
|
|
182
164
|
end
|
|
@@ -49,8 +49,6 @@ module Souls
|
|
|
49
49
|
type = Souls::Api::Generate.type_check(col[:type])
|
|
50
50
|
text =
|
|
51
51
|
case type
|
|
52
|
-
when "String"
|
|
53
|
-
col[:array] ? "be_all(String)" : "be_a(String)"
|
|
54
52
|
when "Integer", "Float"
|
|
55
53
|
col[:array] ? "be_all(Integer)" : "be_a(Integer)"
|
|
56
54
|
when "Boolean"
|
|
@@ -59,7 +57,7 @@ module Souls
|
|
|
59
57
|
col[:array] ? "be_all(String)" : "be_a(String)"
|
|
60
58
|
end
|
|
61
59
|
unless test_args.include?(col[:column_name])
|
|
62
|
-
new_line.write("
|
|
60
|
+
new_line.write(" \"#{col[:column_name].camelize(:lower)}\" => #{text},\n")
|
|
63
61
|
end
|
|
64
62
|
end
|
|
65
63
|
test_res = false
|
data/lib/souls/cli.rb
CHANGED
|
@@ -26,6 +26,18 @@ module Souls
|
|
|
26
26
|
)
|
|
27
27
|
system("docker ps")
|
|
28
28
|
end
|
|
29
|
+
|
|
30
|
+
def run
|
|
31
|
+
current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
|
|
32
|
+
port =
|
|
33
|
+
if current_dir_name == "api"
|
|
34
|
+
"4000:4000"
|
|
35
|
+
else
|
|
36
|
+
"3000:3000"
|
|
37
|
+
end
|
|
38
|
+
system("docker build . -t souls-app -f Dockerfile.dev")
|
|
39
|
+
system("docker run --name souls-app --rm --env-file .env -p #{port} souls-app:latest")
|
|
40
|
+
end
|
|
29
41
|
end
|
|
30
42
|
end
|
|
31
43
|
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
module Souls
|
|
2
|
+
module Sync
|
|
3
|
+
class << self
|
|
4
|
+
def model
|
|
5
|
+
current_dir_name = FileUtils.pwd.to_s.match(%r{/([^/]+)/?$})[1]
|
|
6
|
+
permitted_dirs = %w[worker api]
|
|
7
|
+
unless permitted_dirs.include?(current_dir_name)
|
|
8
|
+
raise(StandardError, "You are at wrong directory!Go to API or Worker Directory!")
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
cp_dir = get_models_path(service_name: current_dir_name)
|
|
12
|
+
cp_dir.each do |path|
|
|
13
|
+
cp_and_dl_files(api_dir: path[:api], worker_dir: path[:worker])
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
private
|
|
18
|
+
|
|
19
|
+
def cp_and_dl_files(api_dir: "", worker_dir: "")
|
|
20
|
+
if Dir["#{worker_dir}/*.rb"].blank?
|
|
21
|
+
|
|
22
|
+
api_latest_date = 1
|
|
23
|
+
worker_latest_date = 0
|
|
24
|
+
else
|
|
25
|
+
api_file_data = file_diff(Dir["#{api_dir}/*.rb"])
|
|
26
|
+
worker_file_data = file_diff(Dir["#{worker_dir}/*.rb"])
|
|
27
|
+
|
|
28
|
+
api_latest_date = Date.parse(api_file_data.max)
|
|
29
|
+
worker_latest_date = Date.parse(worker_file_data.max)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
if api_latest_date < worker_latest_date
|
|
33
|
+
FileUtils.rm_rf(api_dir) if Dir.exist?(api_dir)
|
|
34
|
+
FileUtils.mkdir(api_dir) unless Dir.exist?(api_dir)
|
|
35
|
+
system("cp -r #{worker_dir}/* #{api_dir}")
|
|
36
|
+
else
|
|
37
|
+
FileUtils.rm_rf(worker_dir) if Dir.exist?(worker_dir)
|
|
38
|
+
FileUtils.mkdir(worker_dir) unless Dir.exist?(worker_dir)
|
|
39
|
+
system("cp -r #{api_dir}/* #{worker_dir}")
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def get_models_path(service_name: "api")
|
|
44
|
+
case service_name
|
|
45
|
+
when "api"
|
|
46
|
+
api_path = "."
|
|
47
|
+
worker_path = "../worker"
|
|
48
|
+
when "worker"
|
|
49
|
+
api_path = "../api"
|
|
50
|
+
worker_path = "."
|
|
51
|
+
end
|
|
52
|
+
[
|
|
53
|
+
{
|
|
54
|
+
api: "#{api_path}/db",
|
|
55
|
+
worker: "#{worker_path}/db"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
api: "#{api_path}/app/models",
|
|
59
|
+
worker: "#{worker_path}/app/models"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
api: "#{api_path}/spec/factories",
|
|
63
|
+
worker: "#{worker_path}/spec/factories"
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
data/lib/souls/version.rb
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.10.0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
0.10.0
|
|
@@ -3,7 +3,6 @@ module Souls
|
|
|
3
3
|
module Generate
|
|
4
4
|
class << self
|
|
5
5
|
def mailer(class_name: "mailer", option: "")
|
|
6
|
-
puts(option)
|
|
7
6
|
if option.to_sym == :sendgrid
|
|
8
7
|
sendgrid_mailer(class_name: class_name)
|
|
9
8
|
else
|
|
@@ -52,10 +51,6 @@ module Souls
|
|
|
52
51
|
puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
|
|
53
52
|
file_path
|
|
54
53
|
end
|
|
55
|
-
|
|
56
|
-
def sendgrid_mailer(class_name: "mailer")
|
|
57
|
-
p("Coming Soon..")
|
|
58
|
-
end
|
|
59
54
|
end
|
|
60
55
|
end
|
|
61
56
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: souls
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.31.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- POPPIN-FUMI
|
|
@@ -82,8 +82,9 @@ dependencies:
|
|
|
82
82
|
- - '='
|
|
83
83
|
- !ruby/object:Gem::Version
|
|
84
84
|
version: 0.3.0
|
|
85
|
-
description:
|
|
86
|
-
|
|
85
|
+
description: |-
|
|
86
|
+
SOULs はサーバーレスフルスタックフレームワークです。柔軟な Ruby GraphQL API と Worker はルーティングの必要がありません。
|
|
87
|
+
クラウド環境への自動デプロイ、CI/CD ワークフローを標準装備。開発者がビジネスロジックに集中し、楽しくコードが書けるような環境を目指しています。
|
|
87
88
|
email:
|
|
88
89
|
- f.kawasaki@elsoul.nl
|
|
89
90
|
- s.kishi@elsoul.nl
|
|
@@ -135,13 +136,14 @@ files:
|
|
|
135
136
|
- lib/souls/cli/gcloud/run.rb
|
|
136
137
|
- lib/souls/cli/release.rb
|
|
137
138
|
- lib/souls/cli/release/release.rb
|
|
139
|
+
- lib/souls/cli/sync.rb
|
|
140
|
+
- lib/souls/cli/sync/model.rb
|
|
138
141
|
- lib/souls/init.rb
|
|
139
142
|
- lib/souls/version.rb
|
|
140
143
|
- lib/souls/versions/.souls_api_version
|
|
141
144
|
- lib/souls/versions/.souls_worker_version
|
|
142
145
|
- lib/souls/worker.rb
|
|
143
146
|
- lib/souls/worker/generate.rb
|
|
144
|
-
- lib/souls/worker/generate/application.rb
|
|
145
147
|
- lib/souls/worker/generate/mailer.rb
|
|
146
148
|
homepage: https://souls.elsoul.nl
|
|
147
149
|
licenses:
|
|
@@ -168,6 +170,6 @@ requirements: []
|
|
|
168
170
|
rubygems_version: 3.2.22
|
|
169
171
|
signing_key:
|
|
170
172
|
specification_version: 4
|
|
171
|
-
summary: SOULs はサーバーレスフルスタックフレームワークです。柔軟な Ruby GraphQL API と Worker
|
|
172
|
-
ワークフローを標準装備。開発者がビジネスロジックに集中し、楽しくコードが書けるような環境を目指しています。
|
|
173
|
+
summary: SOULs はサーバーレスフルスタックフレームワークです。柔軟な Ruby GraphQL API と Worker はルーティングの必要がありません。
|
|
174
|
+
クラウド環境への自動デプロイ、CI/CD ワークフローを標準装備。開発者がビジネスロジックに集中し、楽しくコードが書けるような環境を目指しています。
|
|
173
175
|
test_files: []
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
module Souls
|
|
2
|
-
module Worker
|
|
3
|
-
module Generate
|
|
4
|
-
## Common Methods
|
|
5
|
-
def self.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
|
|
29
|
-
|
|
30
|
-
def self.get_type_and_name(line)
|
|
31
|
-
line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def self.get_tables
|
|
35
|
-
path = "./db/schema.rb"
|
|
36
|
-
tables = []
|
|
37
|
-
File.open(path, "r") do |f|
|
|
38
|
-
f.each_line.with_index do |line, _i|
|
|
39
|
-
tables << line.split("\"")[1] if line.include?("create_table")
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
tables
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def self.type_check(type)
|
|
46
|
-
{
|
|
47
|
-
bigint: "Integer",
|
|
48
|
-
string: "String",
|
|
49
|
-
float: "Float",
|
|
50
|
-
text: "String",
|
|
51
|
-
datetime: "String",
|
|
52
|
-
date: "String",
|
|
53
|
-
boolean: "Boolean",
|
|
54
|
-
integer: "Integer"
|
|
55
|
-
}[type.to_sym]
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def self.get_test_type(type)
|
|
59
|
-
{
|
|
60
|
-
bigint: 1,
|
|
61
|
-
float: 4.2,
|
|
62
|
-
string: '"MyString"',
|
|
63
|
-
text: '"MyString"',
|
|
64
|
-
datetime: "Time.now",
|
|
65
|
-
date: "Time.now",
|
|
66
|
-
boolean: false,
|
|
67
|
-
integer: 1
|
|
68
|
-
}[type.to_sym]
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def self.table_check(line: "", class_name: "")
|
|
72
|
-
if line.include?("create_table") && (line.split[1].gsub("\"", "").gsub(",", "") == class_name.pluralize.to_s)
|
|
73
|
-
|
|
74
|
-
return true
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
false
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
def self.migrate(class_name: "souls")
|
|
81
|
-
singularized_class_name = class_name.singularize
|
|
82
|
-
model(class_name: singularized_class_name)
|
|
83
|
-
type(class_name: singularized_class_name)
|
|
84
|
-
edge(class_name: singularized_class_name)
|
|
85
|
-
connection(class_name: singularized_class_name)
|
|
86
|
-
resolver(class_name: singularized_class_name)
|
|
87
|
-
rspec_factory(class_name: singularized_class_name)
|
|
88
|
-
rspec_model(class_name: singularized_class_name)
|
|
89
|
-
rspec_mutation(class_name: singularized_class_name)
|
|
90
|
-
rspec_query(class_name: singularized_class_name)
|
|
91
|
-
rspec_resolver(class_name: singularized_class_name)
|
|
92
|
-
query(class_name: singularized_class_name)
|
|
93
|
-
mutation(class_name: singularized_class_name)
|
|
94
|
-
policy(class_name: singularized_class_name)
|
|
95
|
-
rspec_policy(class_name: singularized_class_name)
|
|
96
|
-
rescue StandardError => e
|
|
97
|
-
raise(StandardError, e)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
def self.migrate_all
|
|
101
|
-
puts(Paint["Let's Go SOULs AUTO CRUD Assist!\n", :cyan])
|
|
102
|
-
Souls::Api::Generate.get_tables.each do |table|
|
|
103
|
-
Souls::Api::Generate.migrate(class_name: table.singularize)
|
|
104
|
-
puts(Paint["Generated #{table.camelize} CRUD Files\n", :yellow])
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def self.delete_all(class_name: "souls")
|
|
109
|
-
singularized_class_name = class_name.singularize.underscore
|
|
110
|
-
pluralized_class_name = class_name.pluralize.underscore
|
|
111
|
-
FileUtils.rm("./app/models/#{singularized_class_name}.rb")
|
|
112
|
-
FileUtils.rm("./app/policies/#{singularized_class_name}_policy.rb")
|
|
113
|
-
FileUtils.rm_rf("./app/graphql/mutations/base/#{singularized_class_name}")
|
|
114
|
-
FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
|
|
115
|
-
FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
|
|
116
|
-
FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
|
|
117
|
-
FileUtils.rm("./app/graphql/types/#{singularized_class_name}_type.rb")
|
|
118
|
-
FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
|
|
119
|
-
FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
|
|
120
|
-
FileUtils.rm("./spec/factories/#{pluralized_class_name}.rb")
|
|
121
|
-
FileUtils.rm("./spec/mutations/base/#{singularized_class_name}_spec.rb")
|
|
122
|
-
FileUtils.rm("./spec/models/#{singularized_class_name}_spec.rb")
|
|
123
|
-
FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
|
|
124
|
-
FileUtils.rm("./spec/policies/#{singularized_class_name}_policy_spec.rb")
|
|
125
|
-
FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
|
|
126
|
-
puts(Paint["deleted #{class_name.camelize} CRUD!", :yellow])
|
|
127
|
-
rescue StandardError => e
|
|
128
|
-
raise(StandardError, e)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def self.update_delete(class_name: "souls")
|
|
132
|
-
singularized_class_name = class_name.singularize.underscore
|
|
133
|
-
pluralized_class_name = class_name.pluralize.underscore
|
|
134
|
-
FileUtils.rm_rf("./app/graphql/mutations/#{singularized_class_name}")
|
|
135
|
-
FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
|
|
136
|
-
FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
|
|
137
|
-
FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
|
|
138
|
-
FileUtils.rm("./app/graphql/types/#{singularized_class_name}_type.rb")
|
|
139
|
-
FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
|
|
140
|
-
FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
|
|
141
|
-
FileUtils.rm("./spec/mutations/#{singularized_class_name}_spec.rb")
|
|
142
|
-
FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
|
|
143
|
-
FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
|
|
144
|
-
puts("deleted #{class_name.camelize} CRUD!")
|
|
145
|
-
rescue StandardError => e
|
|
146
|
-
raise(StandardError, e)
|
|
147
|
-
end
|
|
148
|
-
end
|
|
149
|
-
end
|
|
150
|
-
end
|