souls 0.25.11 → 0.25.15

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: a221f361ce49b70801f14ae68c5fa7013031c9b198e20f24df08903ad865db02
4
- data.tar.gz: bb493dae0b44d01adcd96675619bdba96d878ff3a4a5501ef0f080ab9c56d2aa
3
+ metadata.gz: 9260166372806697964d695eb8e5715701951aca0fbc488077e1e17e7f15d4c1
4
+ data.tar.gz: d773cf796195391e392520041225a3614aed1b863ccd759ad03e26b303782589
5
5
  SHA512:
6
- metadata.gz: ce44a5e5515c343cc6900c2e88510a0f9d09928dbd2296ba1415592a638c8ed01544a66c87c44c9fbd5ab87d70f4b48c086d56243caa309dce340e4dc24f7f94
7
- data.tar.gz: 2a6ef85f8aba382f8a4246cebf6336b15445fec56c26389cd7f6ca2113b220db2f42b7de15971fae22a79bb61835f7491e7541d7a30a88a1ff60ebff31dded54
6
+ metadata.gz: 976b7cc1173658166fd691a694f915e43beaa85e997f1d6ac71d5dcd7a9636067b2fbe41aa7e2ffc160ef35a4e710f98604d7af9b746bfed9ad00d409f65bcaa
7
+ data.tar.gz: 9d0d22d2ae8cc90cbf33ef6f66ac3699043b8db37749969a2c226a343a75cd14cc7bd8570a4056f76ba2119eaae86cfc5ef08436bb506c9d1b1a66c43b160555
data/README.md CHANGED
@@ -21,10 +21,12 @@
21
21
 
22
22
  Welcome to SOULs Serverless Application Framework!
23
23
 
24
- SOULs is a Serverless Application Framework with GraphQL.
24
+ SOULs is a Serverless Application Framework with Ruby GraphQL.
25
25
  SOULs has six strains, API, Worker, Console, Admin, Media, Doc, and can be used in combination according to the purpose. SOULs Backend GraphQL Ruby & Frontend Relay are Scalable and Easy to deploy to Google Cloud. No more routing for Backends!
26
26
  You can focus on your business logic. No more infra problems.
27
27
 
28
+ ![画像](https://storage.googleapis.com/souls-bucket/imgs/souls-structure.jpg)
29
+
28
30
  SOULs creates 6 types of framework.
29
31
 
30
32
  1. API - GraphQL (Ruby) - Simple API - Cloud Run
data/exe/souls CHANGED
@@ -128,57 +128,15 @@ begin
128
128
  puts(Paint["Wrong Argument!", :red])
129
129
  end
130
130
  when "g", "generate"
131
- graphql_class = ARGV[1]
132
- class_name = ARGV[2]
133
- case graphql_class
134
- when "test_dir"
135
- Souls::Generate.test_dir
136
- when "model"
137
- Souls::Generate.model(class_name: class_name)
138
- when "mutation"
139
- Souls::Generate.mutation(class_name: class_name)
140
- when "query"
141
- Souls::Generate.query(class_name: class_name)
142
- when "type"
143
- Souls::Generate.type(class_name: class_name)
144
- when "edge"
145
- Souls::Generate.edge(class_name: class_name)
146
- when "connection"
147
- Souls::Generate.connection(class_name: class_name)
148
- when "resolver"
149
- Souls::Generate.resolver(class_name: class_name)
150
- when "policy"
151
- Souls::Generate.policy(class_name: class_name)
152
- when "rspec_factory"
153
- Souls::Generate.rspec_factory(class_name: class_name)
154
- when "rspec_model"
155
- Souls::Generate.rspec_model(class_name: class_name)
156
- when "rspec_mutation"
157
- Souls::Generate.rspec_mutation(class_name: class_name)
158
- when "rspec_query"
159
- Souls::Generate.rspec_query(class_name: class_name)
160
- when "rspec_resolver"
161
- Souls::Generate.rspec_resolver(class_name: class_name)
162
- when "rspec_policy"
163
- Souls::Generate.rspec_policy(class_name: class_name)
164
- when "node_type"
165
- Souls::Generate.node_type(class_name: class_name)
166
- when "job"
167
- Souls::Generate.job(class_name: class_name)
168
- when "migrate"
169
- Souls::Generate.single_migrate(class_name: class_name)
170
- when "migrate_all"
171
- Souls::Generate.migrate_all
172
- when "migration"
173
- pluralized_class_name = class_name.underscore.pluralize
174
- system("rake db:create_migration NAME=create_#{pluralized_class_name}")
175
- when "update"
176
- Souls::Generate.update_delete(class_name: class_name)
177
- Souls::Generate.single_migrate(class_name: class_name)
178
- else
179
- "SOULs!"
131
+ args = ARGV
132
+ status = Paint["Generating Files...", :yellow]
133
+ done = Paint["Generated SOULs CRUD Files☻", :yellow]
134
+ Whirly.start(spinner: "clock", interval: 420, stop: "🎉") do
135
+ Whirly.status = status
136
+ Souls::Generate.return_method(args)
137
+ Whirly.status = done
180
138
  end
181
- when "d"
139
+ when "d", "delete"
182
140
  class_name = ARGV[1]
183
141
  Souls::Generate.delete_all(class_name: class_name)
184
142
  when "db:create"
data/lib/souls.rb CHANGED
@@ -174,6 +174,7 @@ module Souls
174
174
  bucket_url = "gs://souls-bucket/boilerplates"
175
175
  file_name = "#{service_name}-v#{new_ver}.tgz"
176
176
  release_name = "#{service_name}-latest.tgz"
177
+ update_service_gemfile(service_name: service_name)
177
178
 
178
179
  case current_dir_name
179
180
  when "souls"
@@ -256,6 +257,31 @@ module Souls
256
257
  end
257
258
  end
258
259
 
260
+ def update_service_gemfile(service_name: "api")
261
+ file_dir = "./apps/#{service_name}"
262
+ file_path = "#{file_dir}/Gemfile"
263
+ gemfile_lock = "#{file_dir}/Gemfile.lock"
264
+ tmp_file = "#{file_dir}/tmp/Gemfile"
265
+ File.open(file_path, "r") do |f|
266
+ File.open(tmp_file, "w") do |new_line|
267
+ f.each_line do |line|
268
+ gem = line.gsub("gem ", "").gsub("\"", "").gsub("\n", "").gsub(" ", "").split(",")
269
+ if gem[0] == "souls"
270
+ old_ver = gem[1].split(".")
271
+ old_ver[2] = (old_ver[2].to_i + 1).to_s
272
+ new_line.write(" gem \"souls\", \"#{old_ver.join('.')}\"\n")
273
+ else
274
+ new_line.write(line)
275
+ end
276
+ end
277
+ end
278
+ end
279
+ FileUtils.rm(file_path)
280
+ FileUtils.rm(gemfile_lock) if File.exist?(gemfile_lock)
281
+ FileUtils.mv(tmp_file, file_path)
282
+ puts(Paint["\nSuccessfully Updated #{service_name} Gemfile!", :green])
283
+ end
284
+
259
285
  def detect_change
260
286
  git_status = `git status`
261
287
  result =
@@ -15,6 +15,7 @@ require_relative "./generate/type"
15
15
  require_relative "./generate/edge"
16
16
  require_relative "./generate/connection"
17
17
  require_relative "./generate/application"
18
+ require_relative "./generate/methods"
18
19
 
19
20
  module Souls
20
21
  module Generate
@@ -121,7 +121,7 @@ module Souls
121
121
  pluralized_class_name = class_name.pluralize.underscore
122
122
  FileUtils.rm("./app/models/#{singularized_class_name}.rb")
123
123
  FileUtils.rm("./app/policies/#{singularized_class_name}_policy.rb")
124
- FileUtils.rm_rf("./app/graphql/mutations/#{singularized_class_name}")
124
+ FileUtils.rm_rf("./app/graphql/mutations/base/#{singularized_class_name}")
125
125
  FileUtils.rm("./app/graphql/queries/#{singularized_class_name}.rb")
126
126
  FileUtils.rm("./app/graphql/queries/#{pluralized_class_name}.rb")
127
127
  FileUtils.rm("./app/graphql/resolvers/#{singularized_class_name}_search.rb")
@@ -129,14 +129,14 @@ module Souls
129
129
  FileUtils.rm("./app/graphql/types/edges/#{singularized_class_name}_edge.rb")
130
130
  FileUtils.rm("./app/graphql/types/connections/#{singularized_class_name}_connection.rb")
131
131
  FileUtils.rm("./spec/factories/#{pluralized_class_name}.rb")
132
- FileUtils.rm("./spec/mutations/#{singularized_class_name}_spec.rb")
132
+ FileUtils.rm("./spec/mutations/base/#{singularized_class_name}_spec.rb")
133
133
  FileUtils.rm("./spec/models/#{singularized_class_name}_spec.rb")
134
134
  FileUtils.rm("./spec/queries/#{singularized_class_name}_spec.rb")
135
135
  FileUtils.rm("./spec/policies/#{singularized_class_name}_policy_spec.rb")
136
136
  FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
137
- puts("deleted #{class_name.camelize} CRUD!")
137
+ puts(Paint["deleted #{class_name.camelize} CRUD!", :yellow])
138
138
  rescue StandardError => e
139
- puts(e)
139
+ raise(StandardError, e)
140
140
  end
141
141
 
142
142
  def self.update_delete(class_name: "souls")
@@ -154,27 +154,7 @@ module Souls
154
154
  FileUtils.rm("./spec/resolvers/#{singularized_class_name}_search_spec.rb")
155
155
  puts("deleted #{class_name.camelize} CRUD!")
156
156
  rescue StandardError => e
157
- puts(e)
158
- end
159
-
160
- def self.single_migrate(class_name: "user")
161
- puts("◆◆◆ Let's Auto Generate CRUD API SET ◆◆◆\n")
162
- migrate(class_name: class_name)
163
- puts("Generated #{class_name.camelize} CRUD Files\n")
164
- Souls::Generate.generated_paths(class_name: class_name).each { |f| puts(f) }
165
- puts("\nAll files created from ./db/schema.rb")
166
- puts("\n\n")
167
- end
168
-
169
- def self.migrate_all
170
- puts("◆◆◆ SOULs CRUD Assist ◆◆◆\n")
171
- get_tables.each do |class_name|
172
- migrate(class_name: class_name.singularize)
173
- puts("Generated #{class_name.camelize} CRUD Files\n")
174
- Souls::Generate.generated_paths(class_name: class_name).each { |f| puts(f) }
175
- puts("\n")
176
- end
177
- puts("\nAll files created from ./db/schema.rb\n\n You're all set ;)")
157
+ raise(StandardError, e)
178
158
  end
179
159
  end
180
160
  end
@@ -1,6 +1,8 @@
1
1
  module Souls
2
2
  module Generate
3
3
  def self.connection(class_name: "souls")
4
+ file_dir = "./app/graphql/types/connections/"
5
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
4
6
  singularized_class_name = class_name.underscore.singularize
5
7
  file_path = "./app/graphql/types/connections/#{singularized_class_name}_connection.rb"
6
8
  File.open(file_path, "w") do |f|
@@ -1,6 +1,8 @@
1
1
  module Souls
2
2
  module Generate
3
3
  def self.edge(class_name: "souls")
4
+ file_dir = "./app/graphql/types/edges"
5
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
4
6
  singularized_class_name = class_name.underscore.singularize
5
7
  file_path = "./app/graphql/types/edges/#{singularized_class_name}_edge.rb"
6
8
  File.open(file_path, "w") do |f|
@@ -0,0 +1,62 @@
1
+ module Souls
2
+ module Generate
3
+ class << self
4
+ def return_method(args)
5
+ graphql_class = args[1]
6
+ class_name = args[2]
7
+ case graphql_class
8
+ when "test_dir"
9
+ Souls::Generate.test_dir
10
+ when "model"
11
+ Souls::Generate.model(class_name: class_name)
12
+ when "mutation"
13
+ Souls::Generate.mutation(class_name: class_name)
14
+ when "query"
15
+ Souls::Generate.query(class_name: class_name)
16
+ when "type"
17
+ Souls::Generate.type(class_name: class_name)
18
+ when "edge"
19
+ Souls::Generate.edge(class_name: class_name)
20
+ when "connection"
21
+ Souls::Generate.connection(class_name: class_name)
22
+ when "resolver"
23
+ Souls::Generate.resolver(class_name: class_name)
24
+ when "policy"
25
+ Souls::Generate.policy(class_name: class_name)
26
+ when "rspec_factory"
27
+ Souls::Generate.rspec_factory(class_name: class_name)
28
+ when "rspec_model"
29
+ Souls::Generate.rspec_model(class_name: class_name)
30
+ when "rspec_mutation"
31
+ Souls::Generate.rspec_mutation(class_name: class_name)
32
+ when "rspec_query"
33
+ Souls::Generate.rspec_query(class_name: class_name)
34
+ when "rspec_resolver"
35
+ Souls::Generate.rspec_resolver(class_name: class_name)
36
+ when "rspec_policy"
37
+ Souls::Generate.rspec_policy(class_name: class_name)
38
+ when "node_type"
39
+ Souls::Generate.node_type(class_name: class_name)
40
+ when "job"
41
+ Souls::Generate.job(class_name: class_name)
42
+ when "migrate"
43
+ Souls::Generate.migrate(class_name: class_name)
44
+ when "migrate_all"
45
+ puts(Paint["Let's Go SOULs AUTO CRUD Assist!\n", :cyan])
46
+ Souls::Generate.get_tables.each do |table|
47
+ Souls::Generate.migrate(class_name: table.singularize)
48
+ puts(Paint["Generated #{table.camelize} CRUD Files\n", :yellow])
49
+ end
50
+ when "migration"
51
+ pluralized_class_name = class_name.underscore.pluralize
52
+ system("rake db:create_migration NAME=create_#{pluralized_class_name}")
53
+ when "update"
54
+ Souls::Generate.update_delete(class_name: class_name)
55
+ Souls::Generate.migrate(class_name: class_name)
56
+ else
57
+ "SOULs!"
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -265,6 +265,8 @@ module Souls
265
265
 
266
266
  def self.mutation(class_name: "souls")
267
267
  singularized_class_name = class_name.singularize
268
+ file_dir = "./app/graphql/mutations/base"
269
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
268
270
  file_path = "./app/graphql/mutations/base/#{singularized_class_name}/create_#{singularized_class_name}.rb"
269
271
  return "Mutation already exist! #{file_path}" if File.exist?(file_path)
270
272
 
@@ -54,6 +54,8 @@ module Souls
54
54
  end
55
55
 
56
56
  def self.query(class_name: "souls")
57
+ file_dir = "./app/graphql/queries/"
58
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
57
59
  singularized_class_name = class_name.singularize
58
60
  create_query(class_name: singularized_class_name)
59
61
  create_queries(class_name: singularized_class_name)
@@ -2,6 +2,8 @@ module Souls
2
2
  module Generate
3
3
  ## Generate Rspec Model
4
4
  def self.rspec_model(class_name: "souls")
5
+ file_dir = "./spec/models/"
6
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
5
7
  file_path = "./spec/models/#{class_name}_spec.rb"
6
8
  return "RspecModel already exist! #{file_path}" if File.exist?(file_path)
7
9
 
@@ -2,6 +2,8 @@ module Souls
2
2
  module Generate
3
3
  ## Generate Rspec Mutation
4
4
  def self.rspec_mutation_head(class_name: "souls")
5
+ file_dir = "./spec/mutations/base/"
6
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
5
7
  file_path = "./spec/mutations/base/#{class_name.singularize}_spec.rb"
6
8
  File.open(file_path, "w") do |f|
7
9
  f.write(<<~TEXT)
@@ -2,6 +2,8 @@ module Souls
2
2
  module Generate
3
3
  ## Generate Rspec Query
4
4
  def self.rspec_query_head(class_name: "souls")
5
+ file_dir = "./spec/queries/"
6
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
5
7
  file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
6
8
  File.open(file_path, "w") do |f|
7
9
  f.write(<<~TEXT)
@@ -2,6 +2,8 @@ module Souls
2
2
  module Generate
3
3
  ## Generate Rspec Resolver
4
4
  def self.rspec_resolver_head(class_name: "souls")
5
+ file_dir = "./spec/resolvers/"
6
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
5
7
  file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
6
8
  File.open(file_path, "w") do |f|
7
9
  f.write(<<~TEXT)
@@ -170,7 +172,7 @@ module Souls
170
172
 
171
173
  def self.rspec_resolver(class_name: "souls")
172
174
  singularized_class_name = class_name.singularize
173
- file_path = "#{Dir.pwd}/spec/resolvers/#{singularized_class_name}_search_spec.rb"
175
+ file_path = "./spec/resolvers/#{singularized_class_name}_search_spec.rb"
174
176
  return "Resolver already exist! #{file_path}" if File.exist?(file_path)
175
177
 
176
178
  rspec_resolver_head(class_name: singularized_class_name)
@@ -3,6 +3,8 @@ module Souls
3
3
  class << self
4
4
  ## Generate Type
5
5
  def create_type_head(class_name: "souls")
6
+ file_dir = "./app/graphql/types/"
7
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
6
8
  file_path = "./app/graphql/types/#{class_name}_type.rb"
7
9
  File.open(file_path, "w") do |f|
8
10
  f.write(<<~TEXT)
data/lib/souls/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Souls
2
- VERSION = "0.25.11".freeze
2
+ VERSION = "0.25.15".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 0.4.14
1
+ 0.4.18
@@ -1 +1 @@
1
- 0.4.14
1
+ 0.4.18
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.25.11
4
+ version: 0.25.15
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-07-27 00:00:00.000000000 Z
13
+ date: 2021-07-28 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: paint
@@ -81,6 +81,7 @@ files:
81
81
  - lib/souls/generate/application.rb
82
82
  - lib/souls/generate/connection.rb
83
83
  - lib/souls/generate/edge.rb
84
+ - lib/souls/generate/methods.rb
84
85
  - lib/souls/generate/model.rb
85
86
  - lib/souls/generate/mutation.rb
86
87
  - lib/souls/generate/policy.rb