souls 0.13.0 → 0.13.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9e45fe52c745c15094df1a4fe179e8945f1eb3c966b99ea0d0f901bf2978523b
4
- data.tar.gz: 71423312a03a1aef118b07978b1c6c6157226cc4957875ae989c9aaa091376d9
3
+ metadata.gz: 074c5b354d039e12a5e400190e8268ea463ca5cb16e0b2dd0939060298dab8ca
4
+ data.tar.gz: fbdc806f48d8eede59f2a811db864d6df35950864f3c8c655ea49c52ca29b02b
5
5
  SHA512:
6
- metadata.gz: 4646780f03ce7f63cf703a404e5b2fa38b0aaaf1fb8b03bf872caaa6220599a60be1e171d21fd254758a99cc4cc09b3046db0a9f48de7596764e7ee043b96728
7
- data.tar.gz: 3ef3074ddf2cae0581460c6dcca565fddb0204f89ac2c3d535c2e2b0ca6cce0ef0da14e4aa7a99a72ac576fcab058058c752d6a274c0fec56f4c95c724648f39
6
+ metadata.gz: a40cc9942ac7985c7015a99cf5ae542a8df1465cd0941e083c518ca625b31a0874e9b5d1ae3ce2de8777361e080c3c44bc8fc3a25f3fc8a7743d2795564018d1
7
+ data.tar.gz: badfbba685bdf59298195e2995a7c33577a5dadddb5580eb512d30d5ece1186e37806ba787aaf89ad41545159009de241f52827aefddf465fa504d6f6ec801be
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- souls (0.12.6)
4
+ souls (0.13.5)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -12,20 +12,20 @@ GEM
12
12
  minitest (>= 5.1)
13
13
  tzinfo (~> 2.0)
14
14
  zeitwerk (~> 2.3)
15
- ast (2.4.1)
15
+ ast (2.4.2)
16
16
  ast_utils (0.3.0)
17
17
  parser (~> 2.4)
18
18
  thor (>= 0.19)
19
- concurrent-ruby (1.1.7)
19
+ concurrent-ruby (1.1.8)
20
20
  diff-lcs (1.4.4)
21
21
  ffi (1.14.2)
22
22
  i18n (1.8.7)
23
23
  concurrent-ruby (~> 1.0)
24
24
  language_server-protocol (3.15.0.1)
25
- listen (3.4.0)
25
+ listen (3.4.1)
26
26
  rb-fsevent (~> 0.10, >= 0.10.3)
27
27
  rb-inotify (~> 0.9, >= 0.9.10)
28
- minitest (5.14.2)
28
+ minitest (5.14.3)
29
29
  parallel (1.20.1)
30
30
  parser (2.7.2.0)
31
31
  ast (~> 2.4.1)
@@ -34,7 +34,7 @@ GEM
34
34
  rb-fsevent (0.10.4)
35
35
  rb-inotify (0.10.1)
36
36
  ffi (~> 1.0)
37
- rbs (1.0.0)
37
+ rbs (1.0.4)
38
38
  regexp_parser (2.0.3)
39
39
  rexml (3.2.4)
40
40
  rspec (3.1.0)
@@ -58,7 +58,7 @@ GEM
58
58
  rubocop-ast (>= 1.2.0, < 2.0)
59
59
  ruby-progressbar (~> 1.7)
60
60
  unicode-display_width (>= 1.4.0, < 2.0)
61
- rubocop-ast (1.4.0)
61
+ rubocop-ast (1.4.1)
62
62
  parser (>= 2.7.1.5)
63
63
  ruby-progressbar (1.11.0)
64
64
  steep (0.39.0)
@@ -69,7 +69,7 @@ GEM
69
69
  parser (~> 2.7.0)
70
70
  rainbow (>= 2.2.2, < 4.0)
71
71
  rbs (~> 1.0.0)
72
- thor (1.0.1)
72
+ thor (1.1.0)
73
73
  tzinfo (2.0.4)
74
74
  concurrent-ruby (~> 1.0)
75
75
  unicode-display_width (1.7.0)
data/exe/souls CHANGED
@@ -45,6 +45,8 @@ begin
45
45
  puts Souls::VERSION
46
46
  when "g", "generate"
47
47
  case ARGV[1]
48
+ when "test_dir"
49
+ Souls::Init.test_dir
48
50
  when "test"
49
51
  Souls::Init.single_migrate class_name: "user"
50
52
  when "model"
@@ -253,6 +253,19 @@ module Souls
253
253
  [file_path]
254
254
  end
255
255
 
256
+ def test_dir
257
+ FileUtils.mkdir_p "./app/graphql/mutations"
258
+ FileUtils.mkdir_p "./app/graphql/queries"
259
+ FileUtils.mkdir_p "./app/graphql/types"
260
+ FileUtils.mkdir_p "./spec/factories"
261
+ FileUtils.mkdir_p "./spec/queries"
262
+ FileUtils.mkdir_p "./spec/mutations"
263
+ FileUtils.mkdir_p "./spec/models"
264
+ FileUtils.mkdir_p "./db/"
265
+ FileUtils.touch "./db/schema.rb"
266
+ puts "test dir created!"
267
+ end
268
+
256
269
  def type_check type
257
270
  {
258
271
  bigint: "Integer",
@@ -272,8 +285,8 @@ module Souls
272
285
  float: 4.2,
273
286
  string: '"MyString"',
274
287
  text: '"MyString"',
275
- datetime: "Time.now",
276
- date: "Time.now",
288
+ datetime: "DateTime.now",
289
+ date: "DateTime.now",
277
290
  boolean: false,
278
291
  integer: 1
279
292
  }[type.to_sym]
@@ -304,15 +317,36 @@ module Souls
304
317
  file_path = "./app/graphql/mutations/#{class_name}/create_#{class_name}.rb"
305
318
  path = "./db/schema.rb"
306
319
  @on = false
320
+ @user_exist = false
321
+ @relation_params = []
307
322
  File.open(file_path, "a") do |new_line|
308
323
  File.open(path, "r") do |f|
309
324
  f.each_line.with_index do |line, i|
310
325
  if @on
311
- break if line.include?("end") || line.include?("t.index")
326
+ if line.include?("end") || line.include?("t.index")
327
+ if @user_exist
328
+ new_line.write <<-EOS
329
+
330
+ def resolve **args
331
+ args[:user_id] = context[:user].id
332
+ EOS
333
+ else
334
+ new_line.write <<-EOS
335
+
336
+ def resolve **args
337
+ EOS
338
+ end
339
+ break
340
+ end
312
341
  field = "[String]" if line.include?("array: true")
313
342
  type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
314
343
  field ||= type_check type
315
344
  case name
345
+ when "user_id"
346
+ @user_exist = true
347
+ when /$*_id\z/
348
+ @relation_params << name
349
+ new_line.write " argument :#{name}, String, required: false\n"
316
350
  when "created_at", "updated_at"
317
351
  next
318
352
  else
@@ -323,14 +357,24 @@ module Souls
323
357
  end
324
358
  end
325
359
  end
360
+ @relation_params
361
+ end
362
+
363
+ def create_mutation_after_params class_name: "article", relation_params: []
364
+ return false if relation_params.empty?
365
+ file_path = "./app/graphql/mutations/#{class_name}/create_#{class_name}.rb"
366
+ relation_params.each do |params_name|
367
+ File.open(file_path, "a") do |new_line|
368
+ new_line.write " _, args[:#{params_name}] = SoulsApiSchema.from_global_id(args[:#{params_name}])\n"
369
+ end
370
+ end
371
+ true
326
372
  end
327
373
 
328
374
  def create_mutation_end class_name: "souls"
329
375
  file_path = "./app/graphql/mutations/#{class_name}/create_#{class_name}.rb"
330
376
  File.open(file_path, "a") do |new_line|
331
377
  new_line.write <<~EOS
332
-
333
- def resolve **args
334
378
  #{class_name} = ::#{class_name.camelize}.new args
335
379
  if #{class_name}.save
336
380
  { #{class_name}: #{class_name} }
@@ -357,6 +401,7 @@ module Souls
357
401
  class Update#{class_name.camelize} < BaseMutation
358
402
  field :#{class_name}, Types::#{class_name.camelize}Type, null: false
359
403
 
404
+ argument :id, String, required: true
360
405
  EOS
361
406
  end
362
407
  end
@@ -365,15 +410,38 @@ module Souls
365
410
  file_path = "./app/graphql/mutations/#{class_name}/update_#{class_name}.rb"
366
411
  path = "./db/schema.rb"
367
412
  @on = false
413
+ @user_exist = false
414
+ @relation_params = []
368
415
  File.open(file_path, "a") do |new_line|
369
416
  File.open(path, "r") do |f|
370
417
  f.each_line.with_index do |line, i|
371
418
  if @on
372
- break if line.include?("end") || line.include?("t.index")
419
+ if line.include?("end") || line.include?("t.index")
420
+ if @user_exist
421
+ new_line.write <<-EOS
422
+
423
+ def resolve **args
424
+ args[:user_id] = context[:user].id
425
+ _, args[:id] = SoulsApiSchema.from_global_id(args[:id])
426
+ EOS
427
+ else
428
+ new_line.write <<-EOS
429
+
430
+ def resolve **args
431
+ _, args[:id] = SoulsApiSchema.from_global_id(args[:id])
432
+ EOS
433
+ end
434
+ break
435
+ end
373
436
  field = "[String]" if line.include?("array: true")
374
437
  type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
375
438
  field ||= type_check type
376
439
  case name
440
+ when "user_id"
441
+ @user_exist = true
442
+ when /$*_id\z/
443
+ @relation_params << name
444
+ new_line.write " argument :#{name}, String, required: false\n"
377
445
  when "created_at", "updated_at"
378
446
  next
379
447
  else
@@ -384,14 +452,24 @@ module Souls
384
452
  end
385
453
  end
386
454
  end
455
+ @relation_params
456
+ end
457
+
458
+ def update_mutation_after_params class_name: "article", relation_params: []
459
+ return false if relation_params.empty?
460
+ file_path = "./app/graphql/mutations/#{class_name}/update_#{class_name}.rb"
461
+ relation_params.each do |params_name|
462
+ File.open(file_path, "a") do |new_line|
463
+ new_line.write " _, args[:#{params_name}] = SoulsApiSchema.from_global_id(args[:#{params_name}])\n"
464
+ end
465
+ end
466
+ true
387
467
  end
388
468
 
389
469
  def update_mutation_end class_name: "souls"
390
470
  file_path = "./app/graphql/mutations/#{class_name}/update_#{class_name}.rb"
391
471
  File.open(file_path, "a") do |new_line|
392
472
  new_line.write <<~EOS
393
-
394
- def resolve **args
395
473
  #{class_name} = ::#{class_name.camelize}.find args[:id]
396
474
  #{class_name}.update args
397
475
  { #{class_name}: ::#{class_name.camelize}.find(args[:id]) }
@@ -408,7 +486,8 @@ module Souls
408
486
 
409
487
  def update_mutation class_name: "souls"
410
488
  update_mutation_head class_name: class_name
411
- update_mutation_params class_name: class_name
489
+ relation_params = update_mutation_params class_name: class_name
490
+ update_mutation_after_params class_name: class_name, relation_params: relation_params
412
491
  update_mutation_end class_name: class_name
413
492
  end
414
493
 
@@ -420,10 +499,11 @@ module Souls
420
499
  module #{class_name.camelize}
421
500
  class Delete#{class_name.camelize} < BaseMutation
422
501
  field :#{class_name}, Types::#{class_name.camelize}Type, null: false
423
- argument :id, Integer, required: true
502
+ argument :id, String, required: true
424
503
 
425
- def resolve id:
426
- #{class_name} = ::#{class_name.camelize}.find id
504
+ def resolve **args
505
+ _, data_id = SoulsApiSchema.from_global_id args[:id]
506
+ #{class_name} = ::#{class_name.camelize}.find data_id
427
507
  #{class_name}.destroy
428
508
  { #{class_name}: #{class_name} }
429
509
  rescue StandardError => error
@@ -452,7 +532,8 @@ module Souls
452
532
  Dir.mkdir "./app/graphql/mutations/#{singularized_class_name}"
453
533
  end
454
534
  create_mutation_head class_name: singularized_class_name
455
- create_mutation_params class_name: singularized_class_name
535
+ relation_params = create_mutation_params class_name: singularized_class_name
536
+ create_mutation_after_params class_name: singularized_class_name, relation_params: relation_params
456
537
  [
457
538
  create_mutation_end(class_name: singularized_class_name),
458
539
  update_mutation(class_name: singularized_class_name),
@@ -490,8 +571,8 @@ module Souls
490
571
  argument :id, String, required: true
491
572
 
492
573
  def resolve **args
493
- _, #{class_name.singularize.underscore}_id = SoulsApiSchema.from_global_id args[:id]
494
- ::#{class_name.camelize}.find(#{class_name.singularize.underscore}_id)
574
+ _, data_id = SoulsApiSchema.from_global_id args[:id]
575
+ ::#{class_name.camelize}.find(data_id)
495
576
  rescue StandardError => error
496
577
  GraphQL::ExecutionError.new error
497
578
  end
@@ -531,7 +612,12 @@ module Souls
531
612
  field = "[String]" if line.include?("array: true")
532
613
  type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
533
614
  field ||= type_check type
534
- new_line.write " field :#{name}, #{field}, null: true\n"
615
+ case name
616
+ when /$*_id\z/
617
+ new_line.write " field :#{name.gsub("_id", "")}, Types::#{name.gsub("_id", "").singularize.camelize}Type, null: false\n"
618
+ else
619
+ new_line.write " field :#{name}, #{field}, null: true\n"
620
+ end
535
621
  end
536
622
  if table_check(line: line, class_name: class_name)
537
623
  @on = true
@@ -637,7 +723,7 @@ module Souls
637
723
  f.write <<~EOS
638
724
  RSpec.describe \"#{class_name.camelize} Mutation テスト\" do
639
725
  describe "#{class_name.camelize} データを登録する" do
640
- let!(:#{class_name.singularize.underscore}) { FactoryBot.create(:#{class_name.singularize.underscore}) }
726
+ let(:#{class_name.singularize.underscore}) { FactoryBot.attributes_for(:#{class_name.singularize.underscore}) }
641
727
 
642
728
  let(:mutation) do
643
729
  %(mutation {
@@ -650,26 +736,32 @@ module Souls
650
736
  file_path = "./spec/mutations/#{class_name.singularize}_spec.rb"
651
737
  path = "./db/schema.rb"
652
738
  @on = false
739
+ @user_exist = false
653
740
  File.open(file_path, "a") do |new_line|
654
741
  File.open(path, "r") do |f|
655
742
  f.each_line.with_index do |line, i|
656
- if @on
743
+ if @on
657
744
  if line.include?("end") || line.include?("t.index")
658
745
  new_line.write " }) {\n #{class_name.singularize.camelize(:lower)} {\n id\n"
659
746
  break
660
747
  end
661
748
  type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
749
+ array_true = line.include?("array: true")
662
750
  case name
663
751
  when "created_at", "updated_at"
664
752
  next
753
+ when "user_id"
754
+ @user_exist = true
665
755
  else
666
756
  case type
667
- when "string", "text"
668
- new_line.write " #{name.singularize.camelize(:lower)}: \"\#{#{class_name.singularize}.#{name.singularize.underscore}}\"\n"
757
+ when "string", "text", "date", "datetime"
758
+ if array_true && name != "tag"
759
+ new_line.write " #{name.pluralize.camelize(:lower)}: \#{#{class_name.singularize}[:#{name.pluralize.underscore}]}\n"
760
+ else
761
+ new_line.write " #{name.singularize.camelize(:lower)}: \"\#{#{class_name.singularize}[:#{name.singularize.underscore}]}\"\n"
762
+ end
669
763
  when "bigint", "integer", "float", "boolean"
670
- new_line.write " #{name.singularize.camelize(:lower)}: \#{#{class_name.singularize}.#{name.singularize.underscore}}\n"
671
- when "date", "datetime"
672
- new_line.write " #{name.singularize.camelize(:lower)}: \#{Time.now}\n"
764
+ new_line.write " #{name.singularize.camelize(:lower)}: \#{#{class_name.singularize}[:#{name.singularize.underscore}]}\n"
673
765
  end
674
766
  end
675
767
  end
@@ -690,7 +782,28 @@ module Souls
690
782
  f.each_line.with_index do |line, i|
691
783
  if @on
692
784
  if line.include?("end") || line.include?("t.index")
693
- new_line.write <<-EOS
785
+ if @user_exist
786
+ new_line.write <<-EOS
787
+ }
788
+ }
789
+ }
790
+ )
791
+ end
792
+
793
+ subject(:result) do
794
+ context = {
795
+ user: user
796
+ }
797
+ SoulsApiSchema.execute(mutation, context: context).as_json
798
+ end
799
+
800
+ it "return #{class_name.camelize} Data" do
801
+ a1 = result.dig("data", "create#{class_name.singularize.camelize}", "#{class_name.singularize.camelize(:lower)}")
802
+ expect(a1).to include(
803
+ "id" => be_a(String),
804
+ EOS
805
+ else
806
+ new_line.write <<-EOS
694
807
  }
695
808
  }
696
809
  }
@@ -705,15 +818,21 @@ module Souls
705
818
  a1 = result.dig("data", "create#{class_name.singularize.camelize}", "#{class_name.singularize.camelize(:lower)}")
706
819
  expect(a1).to include(
707
820
  "id" => be_a(String),
708
- EOS
821
+ EOS
822
+ end
709
823
  break
710
824
  end
711
825
  _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
826
+ array_true = line.include?("array: true")
712
827
  case name
713
- when "created_at", "updated_at"
828
+ when "user_id", "created_at", "updated_at"
714
829
  next
715
830
  else
716
- new_line.write " #{name.singularize.camelize(:lower)}\n"
831
+ if array_true
832
+ new_line.write " #{name.pluralize.camelize(:lower)}\n"
833
+ else
834
+ new_line.write " #{name.singularize.camelize(:lower)}\n"
835
+ end
717
836
  end
718
837
  end
719
838
  if table_check(line: line, class_name: class_name)
@@ -733,11 +852,11 @@ module Souls
733
852
  f.each_line.with_index do |line, i|
734
853
  if @on
735
854
  if line.include?("end") || line.include?("t.index")
736
- new_line.write <<-EOS
737
- )
738
- end
739
- end
740
- end
855
+ new_line.write <<~EOS
856
+ )
857
+ end
858
+ end
859
+ end
741
860
  EOS
742
861
  break
743
862
  end
@@ -745,22 +864,20 @@ end
745
864
  field ||= type_check type
746
865
  array_true = line.include?("array: true")
747
866
  case name
748
- when "created_at", "updated_at"
867
+ when "user_id", "created_at", "updated_at"
749
868
  next
750
869
  else
751
870
  case type
752
- when "text"
871
+ when "text", "date", "datetime"
753
872
  if array_true
754
- new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_all(String),\n"
873
+ new_line.write " \"#{name.pluralize.camelize(:lower)}\" => be_all(String),\n"
755
874
  else
756
- new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n"
875
+ new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(String),\n"
757
876
  end
758
877
  when "boolean"
759
878
  new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n"
760
879
  when "string", "bigint", "integer", "float"
761
880
  new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n"
762
- when "date", "datetime"
763
- new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(DateTime),\n"
764
881
  end
765
882
  end
766
883
  end
@@ -826,7 +943,7 @@ end
826
943
  end
827
944
  _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
828
945
  case name
829
- when "created_at", "updated_at"
946
+ when "user_id", "created_at", "updated_at"
830
947
  next
831
948
  else
832
949
  new_line.write " #{name.singularize.camelize(:lower)}\n"
@@ -861,22 +978,20 @@ end
861
978
  field ||= type_check type
862
979
  array_true = line.include?("array: true")
863
980
  case name
864
- when "created_at", "updated_at"
981
+ when "user_id", "created_at", "updated_at"
865
982
  next
866
983
  else
867
984
  case type
868
- when "text"
985
+ when "text", "date", "datetime"
869
986
  if array_true
870
987
  new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_all(String),\n"
871
988
  else
872
- new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n"
989
+ new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(String),\n"
873
990
  end
874
991
  when "boolean"
875
992
  new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n"
876
993
  when "string", "bigint", "integer", "float"
877
994
  new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n"
878
- when "date", "datetime"
879
- new_line.write " \"#{name.singularize.camelize(:lower)}\" => be_a(DateTime),\n"
880
995
  end
881
996
  end
882
997
  end
@@ -1,3 +1,3 @@
1
1
  module Souls
2
- VERSION = "0.13.0"
2
+ VERSION = "0.13.6"
3
3
  end
@@ -1,4 +1,4 @@
1
- require_relative 'lib/souls/version'
1
+ require_relative "lib/souls/version"
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "souls"
@@ -6,7 +6,7 @@ Gem::Specification.new do |spec|
6
6
  spec.authors = ["POPPIN-FUMI", "KishiTheMechanic", "James Neve"]
7
7
  spec.email = ["fumitake.kawasaki@el-soul.com", "shota.kishi@el-soul.com", "jamesoneve@gmail.com"]
8
8
 
9
- spec.summary = "SOULS is a Web Application Framework for Microservices on Multi Cloud Platform such as Google Cloud Platform, Amazon Web Services, and Alibaba Cloud. Auto deploy with scalable condition. You can focus on business logic. No more infra problems."
9
+ spec.summary = "SOULS is a GraphQL Based Web Application Framework for Microservices on Multi Cloud Platform such as Google Cloud Platform, Amazon Web Services, and Alibaba Cloud. Auto deploy with scalable condition. You can focus on business logic. No more infra problems."
10
10
  spec.description = "SOULS is a Web Application Framework for Microservices on Multi Cloud Platform such as Google Cloud Platform, Amazon Web Services, and Alibaba Cloud. Auto deploy with scalable condition. You can focus on business logic. No more infra problems."
11
11
  spec.homepage = "https://github.com/elsoul/souls"
12
12
  spec.license = "Apache-2.0"
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.13.0
4
+ version: 0.13.6
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-28 00:00:00.000000000 Z
13
+ date: 2021-01-31 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.
@@ -69,10 +69,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  requirements: []
72
- rubygems_version: 3.2.3
72
+ rubygems_version: 3.2.4
73
73
  signing_key:
74
74
  specification_version: 4
75
- summary: SOULS is a Web Application Framework for Microservices on Multi Cloud Platform
76
- such as Google Cloud Platform, Amazon Web Services, and Alibaba Cloud. Auto deploy
77
- with scalable condition. You can focus on business logic. No more infra problems.
75
+ summary: SOULS is a GraphQL Based Web Application Framework for Microservices on Multi
76
+ Cloud Platform such as Google Cloud Platform, Amazon Web Services, and Alibaba Cloud.
77
+ Auto deploy with scalable condition. You can focus on business logic. No more infra
78
+ problems.
78
79
  test_files: []