souls 0.25.12 → 0.25.16

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: 010f21f11478d37751cc98517df31f540578476dd6de62a8d983e5831352c5c5
4
- data.tar.gz: b05740f50397a99e95a03fdb0263cafc9e7e083d264dfd50e3866ce959b2b64b
3
+ metadata.gz: 4e8b0af25e3d9a42b03bba36beefe296a3ad4071e42afdba29bdb611f45bc4c5
4
+ data.tar.gz: ae642be3d64d0d5da50c0547de050e7d5e58d55bbcdf991ba0e8c7e90063f2f1
5
5
  SHA512:
6
- metadata.gz: 3d63b61b0fe9e62d002f2eeeb889600c9fd930d0818ca7eb180e04b705d0d2ad2c72e299cbfafad493bc2761aae58847ce8efb95518f8c85f169f97f149ca9ae
7
- data.tar.gz: f306f72d238c9389590642866765fd60372ae67d67d6d34d33f5b10311d35eb6e31764e890008b350d733e2468778092233904b6fdc3a7eef13022db85a18342
6
+ metadata.gz: 95a0d969315e1a81c5ed126fba58d5929aa78ad9311d89dd8671472b07bf98da92b7f7047843b4a50ac2601a01eec41228ca4707e3e64222c41a7aceb2fd6dec
7
+ data.tar.gz: c693b388d8b5123ff9ac3b6610fe8cbe661158d5bcde0a7781c0b9dffe4a84fa4c2df1a639e84b8b42ceb8e035bb81148694220be68fcaf477092ae8c0a52735
data/README.md CHANGED
@@ -25,7 +25,7 @@ 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.jpg)
28
+ ![画像](https://storage.googleapis.com/souls-bucket/imgs/souls-structure.jpg)
29
29
 
30
30
  SOULs creates 6 types of framework.
31
31
 
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
@@ -10,7 +10,7 @@ module Souls
10
10
  File.open(file_path, "w") do |new_line|
11
11
  new_line.write(<<~TEXT)
12
12
  module Mutations
13
- module #{singularized_class_name.camelize}
13
+ module Base::#{singularized_class_name.camelize}
14
14
  class Create#{singularized_class_name.camelize} < BaseMutation
15
15
  field :#{singularized_class_name}_edge, Types::#{singularized_class_name.camelize}.edge_type, null: false
16
16
  field :error, String, null: true
@@ -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)
@@ -15,7 +15,7 @@ module Souls
15
15
  let(:#{class_name.underscore}) { FactoryBot.create(:#{class_name.underscore}) }
16
16
 
17
17
  context "being a visitor" do
18
- let(:user) { FactoryBot.create(:user, user_role: :normal) }
18
+ let(:user) { FactoryBot.create(:user, roles: :normal) }
19
19
 
20
20
  it { is_expected.to permit_action(:index) }
21
21
  it { is_expected.to permit_action(:show) }
@@ -23,13 +23,13 @@ module Souls
23
23
  end
24
24
 
25
25
  context "being a user" do
26
- let(:user) { FactoryBot.create(:user, user_role: :user) }
26
+ let(:user) { FactoryBot.create(:user, roles: :user) }
27
27
 
28
28
  it { is_expected.to permit_actions([:create, :update]) }
29
29
  end
30
30
 
31
31
  context "being an admin" do
32
- let(:user) { FactoryBot.create(:user, user_role: :admin) }
32
+ let(:user) { FactoryBot.create(:user, roles: :admin) }
33
33
 
34
34
  it { is_expected.to permit_actions([:create, :update, :delete]) }
35
35
  end
@@ -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)
@@ -24,23 +26,23 @@ module Souls
24
26
  if line.include?("end") || line.include?("t.index")
25
27
  if @relation_params.empty?
26
28
  new_line.write(<<-TEXT)
27
- let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
29
+ let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
28
30
 
29
- let(:query) do
30
- data_id = Base64.encode64("#{class_name.camelize}:\#{#{class_name.singularize.underscore}.id}")
31
- %(query {
32
- #{class_name.singularize.camelize(:lower)}(id: \\"\#{data_id}\\") {
33
- id
31
+ let(:query) do
32
+ data_id = Base64.encode64("#{class_name.camelize}:\#{#{class_name.singularize.underscore}.id}")
33
+ %(query {
34
+ #{class_name.singularize.camelize(:lower)}(id: \\"\#{data_id}\\") {
35
+ id
34
36
  TEXT
35
37
  else
36
38
  new_line.write(<<-TEXT)
37
- let(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
39
+ let(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
38
40
 
39
- let(:query) do
40
- data_id = Base64.encode64("#{class_name.camelize}:\#{#{class_name.singularize.underscore}.id}")
41
- %(query {
42
- #{class_name.singularize.camelize(:lower)}(id: \\"\#{data_id}\\") {
43
- id
41
+ let(:query) do
42
+ data_id = Base64.encode64("#{class_name.camelize}:\#{#{class_name.singularize.underscore}.id}")
43
+ %(query {
44
+ #{class_name.singularize.camelize(:lower)}(id: \\"\#{data_id}\\") {
45
+ id
44
46
  TEXT
45
47
  end
46
48
  break
@@ -68,25 +70,25 @@ module Souls
68
70
  f.each_line.with_index do |line, _i|
69
71
  if @on
70
72
  if line.include?("end") || line.include?("t.index")
71
- new_line.write(<<~TEXT)
72
- }
73
- }
74
- )
75
- end
76
- #{' '}
77
- subject(:result) do
78
- SoulsApiSchema.execute(query).as_json
79
- end
80
- #{' '}
81
- it "return #{class_name.camelize} Data" do
82
- begin
83
- a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}")
84
- raise unless a1.present?
85
- rescue
86
- raise StandardError, result
87
- end
88
- expect(a1).to include(
89
- "id" => be_a(String),
73
+ new_line.write(<<-TEXT)
74
+ }
75
+ }
76
+ )
77
+ end
78
+
79
+ subject(:result) do
80
+ SoulsApiSchema.execute(query).as_json
81
+ end
82
+
83
+ it "return #{class_name.camelize} Data" do
84
+ begin
85
+ a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}")
86
+ raise unless a1.present?
87
+ rescue
88
+ raise StandardError, result
89
+ end
90
+ expect(a1).to include(
91
+ "id" => be_a(String),
90
92
  TEXT
91
93
  break
92
94
  end
@@ -131,14 +133,14 @@ module Souls
131
133
  case type
132
134
  when "text", "date", "datetime"
133
135
  if array_true
134
- new_line.write(" \"#{name.camelize(:lower)}\" => be_all(String),\n")
136
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_all(String),\n")
135
137
  else
136
- new_line.write(" \"#{name.camelize(:lower)}\" => be_a(String),\n")
138
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_a(String),\n")
137
139
  end
138
140
  when "boolean"
139
- new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n")
141
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n")
140
142
  when "string", "bigint", "integer", "float"
141
- new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n")
143
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n")
142
144
  end
143
145
  end
144
146
  end
@@ -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)
@@ -24,31 +26,31 @@ module Souls
24
26
  if line.include?("end") || line.include?("t.index")
25
27
  if @relation_params.empty?
26
28
  new_line.write(<<-TEXT)
27
- let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
29
+ let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
28
30
 
29
- let(:query) do
30
- %(query {
31
- #{class_name.singularize.camelize(:lower)}Search(filter: {
32
- isDeleted: false
33
- }) {
34
- edges {
35
- cursor
36
- node {
37
- id
31
+ let(:query) do
32
+ %(query {
33
+ #{class_name.singularize.camelize(:lower)}Search(filter: {
34
+ isDeleted: false
35
+ }) {
36
+ edges {
37
+ cursor
38
+ node {
39
+ id
38
40
  TEXT
39
41
  else
40
42
  new_line.write(<<-TEXT)
41
- let!(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
43
+ let!(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
42
44
 
43
- let(:query) do
44
- %(query {
45
- #{class_name.singularize.camelize(:lower)}Search(filter: {
46
- isDeleted: false
47
- }) {
48
- edges {
49
- cursor
50
- node {
51
- id
45
+ let(:query) do
46
+ %(query {
47
+ #{class_name.singularize.camelize(:lower)}Search(filter: {
48
+ isDeleted: false
49
+ }) {
50
+ edges {
51
+ cursor
52
+ node {
53
+ id
52
54
  TEXT
53
55
  end
54
56
  break
@@ -77,35 +79,35 @@ module Souls
77
79
  if @on
78
80
  if line.include?("end") || line.include?("t.index")
79
81
  new_line.write(<<-TEXT)
82
+ }
83
+ }
84
+ nodes {
85
+ id
86
+ }
87
+ pageInfo {
88
+ endCursor
89
+ hasNextPage
90
+ startCursor
91
+ hasPreviousPage
80
92
  }
81
- }
82
- nodes {
83
- id
84
- }
85
- pageInfo {
86
- endCursor
87
- hasNextPage
88
- startCursor
89
- hasPreviousPage
90
93
  }
91
94
  }
92
- }
93
- )
94
- end
95
-
96
- subject(:result) do
97
- SoulsApiSchema.execute(query).as_json
98
- end
95
+ )
96
+ end
99
97
 
100
- it "return #{class_name.camelize} Data" do
101
- begin
102
- a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}Search", "edges")[0]["node"]
103
- raise unless a1.present?
104
- rescue
105
- raise StandardError, result
98
+ subject(:result) do
99
+ SoulsApiSchema.execute(query).as_json
106
100
  end
107
- expect(a1).to include(
108
- "id" => be_a(String),
101
+
102
+ it "return #{class_name.camelize} Data" do
103
+ begin
104
+ a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}Search", "edges")[0]["node"]
105
+ raise unless a1.present?
106
+ rescue
107
+ raise StandardError, result
108
+ end
109
+ expect(a1).to include(
110
+ "id" => be_a(String),
109
111
  TEXT
110
112
  break
111
113
  end
@@ -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.12".freeze
2
+ VERSION = "0.25.16".freeze
3
3
  public_constant :VERSION
4
4
  end
@@ -1 +1 @@
1
- 0.4.15
1
+ 0.4.19
@@ -1 +1 @@
1
- 0.4.15
1
+ 0.4.19
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.12
4
+ version: 0.25.16
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