souls 0.30.11 → 0.31.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|