souls 0.9.3 → 0.9.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -1
- data/Gemfile.lock +1 -1
- data/exe/souls +10 -5
- data/lib/souls.rb +1 -0
- data/lib/souls/init.rb +83 -41
- data/lib/souls/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d825fd34a0c8330fe7f2bb659061d47e5236f3026f3d48f2f47b53747dcecac2
|
4
|
+
data.tar.gz: 2e54fe6eb846ac78d53dc1cb5e4549e3af3f41fb2e8674477ac947e4563f8f55
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a461d07f08c1c838ef6b532145e02bd1770fd689353a4e7ddb69ff176ee60573eca6079e8c1fa2831e19f393ed9c9451bf00db23b25629d5f31aa8222a0a1eb2
|
7
|
+
data.tar.gz: 837cad066a089928ab0f2b86eb42249eac6bc580c6e01eb70fc288f33bb82828efb3be26193ce7a2e17355efe6b20b5a5ceffd3c0e2c3eaf500c73727730e0e1
|
data/.rubocop.yml
CHANGED
data/Gemfile.lock
CHANGED
data/exe/souls
CHANGED
@@ -48,7 +48,7 @@ begin
|
|
48
48
|
when "g", "generate"
|
49
49
|
case ARGV[1]
|
50
50
|
when "test"
|
51
|
-
Souls::Init.
|
51
|
+
Souls::Init.get_tables
|
52
52
|
when "model"
|
53
53
|
Souls::Init.model class_name: ARGV[2]
|
54
54
|
when "mutation"
|
@@ -59,6 +59,10 @@ begin
|
|
59
59
|
Souls::Init.type class_name: ARGV[2]
|
60
60
|
when "migrate"
|
61
61
|
Souls::Init.migration class_name: ARGV[2]
|
62
|
+
when "migrate_all"
|
63
|
+
Souls::Init.get_tables.each do |class_name|
|
64
|
+
Souls::Init.migration class_name: class_name
|
65
|
+
end
|
62
66
|
when "migration"
|
63
67
|
`rake db:create_migration NAME=#{ARGV[3]}`
|
64
68
|
when "rspec_factory"
|
@@ -74,15 +78,16 @@ begin
|
|
74
78
|
else
|
75
79
|
end
|
76
80
|
when "t", "test"
|
77
|
-
`rubocop`
|
78
|
-
`bundle exec rspec`
|
81
|
+
puts `rubocop`
|
82
|
+
puts `bundle exec rspec`
|
79
83
|
when "deploy"
|
80
84
|
project_id = Souls.configuration.project_id
|
81
85
|
`gcloud builds submit --config=cloudbuild.yml --project #{project_id}`
|
82
86
|
else
|
83
|
-
puts "Welcome to
|
87
|
+
puts "Welcome to SOULs!"
|
84
88
|
end
|
85
89
|
rescue StandardError => error
|
86
90
|
puts error
|
87
|
-
puts "Thank you
|
91
|
+
puts "Thank you!!"
|
92
|
+
puts "SOULs"
|
88
93
|
end
|
data/lib/souls.rb
CHANGED
data/lib/souls/init.rb
CHANGED
@@ -284,20 +284,21 @@ module Souls
|
|
284
284
|
end
|
285
285
|
|
286
286
|
def create_mutation_head class_name: "souls"
|
287
|
-
file_path = "./app/graphql/mutations/create_#{class_name}.rb"
|
287
|
+
file_path = "./app/graphql/mutations/#{class_name}/create_#{class_name}.rb"
|
288
288
|
File.open(file_path, "w") do |new_line|
|
289
289
|
new_line.write <<~EOS
|
290
290
|
module Mutations
|
291
|
-
|
292
|
-
|
293
|
-
|
291
|
+
module #{class_name.camelize}
|
292
|
+
class Create#{class_name.camelize} < BaseMutation
|
293
|
+
field :#{class_name}, Types::#{class_name.camelize}Type, null: false
|
294
|
+
field :error, String, null: true
|
294
295
|
|
295
296
|
EOS
|
296
297
|
end
|
297
298
|
end
|
298
299
|
|
299
300
|
def create_mutation_params class_name: "souls"
|
300
|
-
file_path = "./app/graphql/mutations/create_#{class_name}.rb"
|
301
|
+
file_path = "./app/graphql/mutations/#{class_name}/create_#{class_name}.rb"
|
301
302
|
path = "./db/schema.rb"
|
302
303
|
@on = false
|
303
304
|
File.open(file_path, "a") do |new_line|
|
@@ -311,7 +312,7 @@ module Souls
|
|
311
312
|
when "created_at", "updated_at"
|
312
313
|
next
|
313
314
|
else
|
314
|
-
new_line.write "
|
315
|
+
new_line.write " argument :#{name}, #{field}, required: false\n"
|
315
316
|
end
|
316
317
|
end
|
317
318
|
@on = true if table_check(line: line, class_name: class_name)
|
@@ -321,19 +322,20 @@ module Souls
|
|
321
322
|
end
|
322
323
|
|
323
324
|
def create_mutation_end class_name: "souls"
|
324
|
-
file_path = "./app/graphql/mutations/create_#{class_name}.rb"
|
325
|
+
file_path = "./app/graphql/mutations/#{class_name}/create_#{class_name}.rb"
|
325
326
|
File.open(file_path, "a") do |new_line|
|
326
327
|
new_line.write <<~EOS
|
327
328
|
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
329
|
+
def resolve **args
|
330
|
+
#{class_name} = #{class_name.camelize}.new args
|
331
|
+
if #{class_name}.save
|
332
|
+
{ #{class_name}: #{class_name} }
|
333
|
+
else
|
334
|
+
{ error: #{class_name}.errors.full_messages }
|
335
|
+
end
|
336
|
+
rescue StandardError => error
|
337
|
+
GraphQL::ExecutionError.new error
|
334
338
|
end
|
335
|
-
rescue StandardError => error
|
336
|
-
GraphQL::ExecutionError.new error
|
337
339
|
end
|
338
340
|
end
|
339
341
|
end
|
@@ -343,19 +345,20 @@ module Souls
|
|
343
345
|
end
|
344
346
|
|
345
347
|
def update_mutation_head class_name: "souls"
|
346
|
-
file_path = "./app/graphql/mutations/update_#{class_name}.rb"
|
348
|
+
file_path = "./app/graphql/mutations/#{class_name}/update_#{class_name}.rb"
|
347
349
|
File.open(file_path, "w") do |new_line|
|
348
350
|
new_line.write <<~EOS
|
349
351
|
module Mutations
|
350
|
-
|
351
|
-
|
352
|
+
module #{class_name.camelize}
|
353
|
+
class Update#{class_name.camelize} < BaseMutation
|
354
|
+
field :#{class_name}, Types::#{class_name.camelize}Type, null: false
|
352
355
|
|
353
356
|
EOS
|
354
357
|
end
|
355
358
|
end
|
356
359
|
|
357
360
|
def update_mutation_params class_name: "souls"
|
358
|
-
file_path = "./app/graphql/mutations/update_#{class_name}.rb"
|
361
|
+
file_path = "./app/graphql/mutations/#{class_name}/update_#{class_name}.rb"
|
359
362
|
path = "./db/schema.rb"
|
360
363
|
@on = false
|
361
364
|
File.open(file_path, "a") do |new_line|
|
@@ -369,7 +372,7 @@ module Souls
|
|
369
372
|
when "created_at", "updated_at"
|
370
373
|
next
|
371
374
|
else
|
372
|
-
new_line.write "
|
375
|
+
new_line.write " argument :#{name}, #{field}, required: false\n"
|
373
376
|
end
|
374
377
|
end
|
375
378
|
@on = true if table_check(line: line, class_name: class_name)
|
@@ -379,16 +382,17 @@ module Souls
|
|
379
382
|
end
|
380
383
|
|
381
384
|
def update_mutation_end class_name: "souls"
|
382
|
-
file_path = "./app/graphql/mutations/update_#{class_name}.rb"
|
385
|
+
file_path = "./app/graphql/mutations/#{class_name}/update_#{class_name}.rb"
|
383
386
|
File.open(file_path, "a") do |new_line|
|
384
387
|
new_line.write <<~EOS
|
385
388
|
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
389
|
+
def resolve **args
|
390
|
+
#{class_name} = #{class_name.camelize}.find args[:id]
|
391
|
+
#{class_name}.update args
|
392
|
+
{ #{class_name}: #{class_name.camelize}.find(args[:id]) }
|
393
|
+
rescue StandardError => error
|
394
|
+
GraphQL::ExecutionError.new error
|
395
|
+
end
|
392
396
|
end
|
393
397
|
end
|
394
398
|
end
|
@@ -404,20 +408,22 @@ module Souls
|
|
404
408
|
end
|
405
409
|
|
406
410
|
def delete_mutation class_name: "souls"
|
407
|
-
file_path = "./app/graphql/mutations/delete_#{class_name}.rb"
|
411
|
+
file_path = "./app/graphql/mutations/#{class_name}/delete_#{class_name}.rb"
|
408
412
|
File.open(file_path, "w") do |f|
|
409
413
|
f.write <<~EOS
|
410
414
|
module Mutations
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
415
|
+
module #{class_name.camelize}
|
416
|
+
class Delete#{class_name.camelize} < BaseMutation
|
417
|
+
field :#{class_name}, Types::#{class_name.camelize}Type, null: false
|
418
|
+
argument :id, Integer, required: true
|
419
|
+
|
420
|
+
def resolve id:
|
421
|
+
#{class_name} = #{class_name.camelize}.find id
|
422
|
+
#{class_name}.destroy
|
423
|
+
{ #{class_name}: #{class_name} }
|
424
|
+
rescue StandardError => error
|
425
|
+
GraphQL::ExecutionError.new error
|
426
|
+
end
|
421
427
|
end
|
422
428
|
end
|
423
429
|
end
|
@@ -426,13 +432,32 @@ module Souls
|
|
426
432
|
puts "Mutation create_#{class_name}.rb Auto Generated from schema.rb!: `#{file_path}`"
|
427
433
|
end
|
428
434
|
|
435
|
+
def create_confirm
|
436
|
+
puts "Directory already exists, Overwrite?? (Y/N)"
|
437
|
+
input = STDIN.gets.chomp
|
438
|
+
return true if input == "Y"
|
439
|
+
raise StandardError.new "Directory Already Exist!"
|
440
|
+
end
|
441
|
+
|
429
442
|
def mutation class_name: "souls"
|
430
443
|
singularized_class_name = class_name.singularize
|
444
|
+
if Dir.exist? "./app/graphql/mutations/#{singularized_class_name}"
|
445
|
+
create_confirm
|
446
|
+
FileUtils.rm_r("./app/graphql/mutations/#{singularized_class_name}")
|
447
|
+
end
|
448
|
+
Dir.mkdir "./app/graphql/mutations/#{singularized_class_name}"
|
431
449
|
create_mutation_head class_name: singularized_class_name
|
432
450
|
create_mutation_params class_name: singularized_class_name
|
433
451
|
create_mutation_end class_name: singularized_class_name
|
434
452
|
update_mutation class_name: singularized_class_name
|
435
453
|
delete_mutation class_name: singularized_class_name
|
454
|
+
puts "\n#############################################################################################################"
|
455
|
+
puts "\nAdd these lines at `./app/graphql/types/mutation_type.rb`"
|
456
|
+
puts "\n\n"
|
457
|
+
puts "field :create_#{singularized_class_name}, mutation: Mutations::#{singularized_class_name.camelize}::Create#{singularized_class_name.camelize}"
|
458
|
+
puts "field :update_#{singularized_class_name}, mutation: Mutations::#{singularized_class_name.camelize}::Update#{singularized_class_name.camelize}"
|
459
|
+
puts "field :delete_#{singularized_class_name}, mutation: Mutations::#{singularized_class_name.camelize}::Delete#{singularized_class_name.camelize}"
|
460
|
+
puts "\n\n#############################################################################################################"
|
436
461
|
end
|
437
462
|
|
438
463
|
def create_query class_name: "souls"
|
@@ -480,6 +505,12 @@ module Souls
|
|
480
505
|
singularized_class_name = class_name.singularize
|
481
506
|
create_query class_name: singularized_class_name
|
482
507
|
create_queries class_name: singularized_class_name
|
508
|
+
puts "\n#############################################################################################################"
|
509
|
+
puts "\nAdd these lines at `./app/graphql/types/query_type.rb`"
|
510
|
+
puts "\n\n"
|
511
|
+
puts "field :#{singularized_class_name}, resolber: Queries::#{singularized_class_name.camelize}"
|
512
|
+
puts "field :#{singularized_class_name.pluralize}, Types::#{singularized_class_name.camelize}Type.connection_type, null: true"
|
513
|
+
puts "\n\n#############################################################################################################"
|
483
514
|
end
|
484
515
|
|
485
516
|
def create_type_head class_name: "souls"
|
@@ -623,6 +654,17 @@ module Souls
|
|
623
654
|
end
|
624
655
|
end
|
625
656
|
|
657
|
+
def get_tables
|
658
|
+
path = "./db/schema.rb"
|
659
|
+
tables = []
|
660
|
+
File.open(path, "r") do |f|
|
661
|
+
f.each_line.with_index do |line, i|
|
662
|
+
tables << line.split("\"")[1] if line.include?("create_table")
|
663
|
+
end
|
664
|
+
end
|
665
|
+
tables
|
666
|
+
end
|
667
|
+
|
626
668
|
def add_mutation_type class_name: "souls"
|
627
669
|
# let's do this later
|
628
670
|
end
|
@@ -632,13 +674,13 @@ module Souls
|
|
632
674
|
end
|
633
675
|
|
634
676
|
def migration class_name: "souls"
|
635
|
-
`rake db:migrate`
|
677
|
+
# `rake db:migrate`
|
636
678
|
model class_name: class_name
|
637
|
-
mutation class_name: class_name
|
638
|
-
query class_name: class_name
|
639
679
|
type class_name: class_name
|
640
680
|
rspec_factory class_name: class_name
|
641
681
|
rspec_model class_name: class_name
|
682
|
+
query class_name: class_name
|
683
|
+
mutation class_name: class_name
|
642
684
|
end
|
643
685
|
end
|
644
686
|
end
|
data/lib/souls/version.rb
CHANGED
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.9.
|
4
|
+
version: 0.9.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- POPPIN-FUMI
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2021-01-
|
13
|
+
date: 2021-01-22 00:00:00.000000000 Z
|
14
14
|
dependencies: []
|
15
15
|
description: SOULS is a Web Application Framework for Microservices on Multi Cloud
|
16
16
|
Platform such as Google Cloud Platform, Amazon Web Services, and Alibaba Cloud.
|