souls 0.25.10 → 0.25.14

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: 6131ac7dbacce29869acdddcbf7f95fdeffd648e2bc05e91e24b506a97549c10
4
- data.tar.gz: 60fabbac02cd1bb688c8304feb1889a7dd2c881dad20a3ed2fe59e092607a208
3
+ metadata.gz: 5caa0fe7566de9ec8291055f08ebc39b40501714c26295f1debd2f5ddb00702c
4
+ data.tar.gz: edc4cb906800b7bc5e49596d94ba454c5f37c14002d9957c777572a9ed195e40
5
5
  SHA512:
6
- metadata.gz: 57e1edbcc388c5256dfebc4ce277ab29c63bb7c45e0369db616e33a1e8098933ae14bf410ab049dfb8aec72dc34c66107bb799c7845e6b2964976cd2b995bc7b
7
- data.tar.gz: '019f27084234e886327fb84f431bd70fd0a0b3fa7616b5feccccb0b387c9f796c1c724bb816be8f1a314d1581f0e49db86b56c8d698155571c59d02cad1df64c'
6
+ metadata.gz: bcc7bf94b49ae7714e58984e127bfd18407f517396028bbeb23835bbfd2816d13627b9d84736383c17391b74478c16104be46e84eb87c18aa7e2960ad0b88396
7
+ data.tar.gz: 261660b4920a2bbd3a033f93ff132b24eeff51a9a1ceb7831072fb4a86fd7b628d6daaed958a59e0d033d2001e8ded128e5c1efec73a074a80c684c2516125f5
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
@@ -78,8 +78,6 @@ begin
78
78
  Whirly.status = "Done!"
79
79
  end
80
80
  when "release"
81
- `gem uninstall -x --force`
82
- sleep(1)
83
81
  system("gem install souls")
84
82
  sleep(3)
85
83
  current_souls_ver = Souls::VERSION.strip.split(".").map(&:to_i)
@@ -130,57 +128,15 @@ begin
130
128
  puts(Paint["Wrong Argument!", :red])
131
129
  end
132
130
  when "g", "generate"
133
- graphql_class = ARGV[1]
134
- class_name = ARGV[2]
135
- case graphql_class
136
- when "test_dir"
137
- Souls::Generate.test_dir
138
- when "model"
139
- Souls::Generate.model(class_name: class_name)
140
- when "mutation"
141
- Souls::Generate.mutation(class_name: class_name)
142
- when "query"
143
- Souls::Generate.query(class_name: class_name)
144
- when "type"
145
- Souls::Generate.type(class_name: class_name)
146
- when "edge"
147
- Souls::Generate.edge(class_name: class_name)
148
- when "connection"
149
- Souls::Generate.connection(class_name: class_name)
150
- when "resolver"
151
- Souls::Generate.resolver(class_name: class_name)
152
- when "policy"
153
- Souls::Generate.policy(class_name: class_name)
154
- when "rspec_factory"
155
- Souls::Generate.rspec_factory(class_name: class_name)
156
- when "rspec_model"
157
- Souls::Generate.rspec_model(class_name: class_name)
158
- when "rspec_mutation"
159
- Souls::Generate.rspec_mutation(class_name: class_name)
160
- when "rspec_query"
161
- Souls::Generate.rspec_query(class_name: class_name)
162
- when "rspec_resolver"
163
- Souls::Generate.rspec_resolver(class_name: class_name)
164
- when "rspec_policy"
165
- Souls::Generate.rspec_policy(class_name: class_name)
166
- when "node_type"
167
- Souls::Generate.node_type(class_name: class_name)
168
- when "job"
169
- Souls::Generate.job(class_name: class_name)
170
- when "migrate"
171
- Souls::Generate.single_migrate(class_name: class_name)
172
- when "migrate_all"
173
- Souls::Generate.migrate_all
174
- when "migration"
175
- pluralized_class_name = class_name.underscore.pluralize
176
- system("rake db:create_migration NAME=create_#{pluralized_class_name}")
177
- when "update"
178
- Souls::Generate.update_delete(class_name: class_name)
179
- Souls::Generate.single_migrate(class_name: class_name)
180
- else
181
- "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
182
138
  end
183
- when "d"
139
+ when "d", "delete"
184
140
  class_name = ARGV[1]
185
141
  Souls::Generate.delete_all(class_name: class_name)
186
142
  when "db:create"
data/lib/souls.rb CHANGED
@@ -174,10 +174,12 @@ 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_backend_gemfile
177
178
 
178
179
  case current_dir_name
179
180
  when "souls"
180
181
  system("echo '#{new_ver}' > lib/souls/versions/.souls_#{service_name}_version")
182
+ system("echo '#{new_ver}' > apps/#{service_name}/.souls_#{service_name}_version")
181
183
  system("cd apps/ && tar -czf ../#{service_name}.tgz #{service_name}/ && cd ..")
182
184
  when "api", "worker", "console", "admin", "media"
183
185
  system("echo '#{new_ver}' > lib/souls/versions/.souls_#{service_name}_version")
@@ -255,6 +257,37 @@ module Souls
255
257
  end
256
258
  end
257
259
 
260
+ def update_backend_gemfile
261
+ %w[api worker].each do |service_name|
262
+ update_service_gemfile(service_name: service_name)
263
+ end
264
+ end
265
+
266
+ def update_service_gemfile(service_name: "api")
267
+ file_dir = "./apps/#{service_name}"
268
+ file_path = "#{file_dir}/Gemfile"
269
+ gemfile_lock = "#{file_dir}/Gemfile.lock"
270
+ tmp_file = "#{file_dir}/tmp/Gemfile"
271
+ File.open(file_path, "r") do |f|
272
+ File.open(tmp_file, "w") do |new_line|
273
+ f.each_line do |line|
274
+ gem = line.gsub("gem ", "").gsub("\"", "").gsub("\n", "").gsub(" ", "").split(",")
275
+ if gem[0] == "souls"
276
+ old_ver = gem[1].split(".")
277
+ old_ver[2] = (old_ver[2].to_i + 1).to_s
278
+ new_line.write(" gem \"souls\", \"#{old_ver.join('.')}\"\n")
279
+ else
280
+ new_line.write(line)
281
+ end
282
+ end
283
+ end
284
+ end
285
+ FileUtils.rm(file_path)
286
+ FileUtils.rm(gemfile_lock) if File.exist?(gemfile_lock)
287
+ FileUtils.mv(tmp_file, file_path)
288
+ puts(Paint["\nSuccessfully Updated #{service_name} Gemfile!", :green])
289
+ end
290
+
258
291
  def detect_change
259
292
  git_status = `git status`
260
293
  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.10".freeze
2
+ VERSION = "0.25.14".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 0.4.13
1
+ 0.4.17
@@ -1 +1 @@
1
- 0.4.13
1
+ 0.4.17
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.10
4
+ version: 0.25.14
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