souls 0.51.1 → 0.52.2

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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -1
  3. data/exe/souls +3 -200
  4. data/lib/souls/api/generate/application.rb +97 -94
  5. data/lib/souls/api/generate/connection.rb +5 -4
  6. data/lib/souls/api/generate/edge.rb +5 -4
  7. data/lib/souls/api/generate/index.rb +0 -1
  8. data/lib/souls/api/generate/manager.rb +9 -7
  9. data/lib/souls/api/generate/model.rb +16 -18
  10. data/lib/souls/api/generate/mutation.rb +217 -218
  11. data/lib/souls/api/generate/policy.rb +5 -5
  12. data/lib/souls/api/generate/query.rb +51 -51
  13. data/lib/souls/api/generate/resolver.rb +115 -115
  14. data/lib/souls/api/generate/rspec_factory.rb +53 -53
  15. data/lib/souls/api/generate/rspec_model.rb +5 -5
  16. data/lib/souls/api/generate/rspec_mutation.rb +178 -178
  17. data/lib/souls/api/generate/rspec_policy.rb +5 -5
  18. data/lib/souls/api/generate/rspec_query.rb +111 -111
  19. data/lib/souls/api/generate/rspec_resolver.rb +163 -163
  20. data/lib/souls/api/generate/type.rb +66 -66
  21. data/lib/souls/api/index.rb +7 -4
  22. data/lib/souls/api/update/index.rb +15 -0
  23. data/lib/souls/api/update/mutation.rb +68 -64
  24. data/lib/souls/api/update/resolver.rb +59 -60
  25. data/lib/souls/api/update/rspec_factory.rb +40 -39
  26. data/lib/souls/api/update/rspec_mutation.rb +84 -83
  27. data/lib/souls/api/update/rspec_resolver.rb +70 -69
  28. data/lib/souls/api/update/type.rb +39 -38
  29. data/lib/souls/cli/console/index.rb +13 -1
  30. data/lib/souls/cli/create/index.rb +98 -94
  31. data/lib/souls/cli/db/index.rb +122 -1
  32. data/lib/souls/cli/docker/index.rb +30 -38
  33. data/lib/souls/cli/gcloud/compute/index.rb +100 -98
  34. data/lib/souls/cli/gcloud/iam/index.rb +84 -69
  35. data/lib/souls/cli/gcloud/index.rb +36 -35
  36. data/lib/souls/cli/gcloud/pubsub/subscriptions.rb +40 -27
  37. data/lib/souls/cli/gcloud/pubsub/topics.rb +16 -10
  38. data/lib/souls/cli/gcloud/run/index.rb +23 -17
  39. data/lib/souls/cli/gcloud/sql/index.rb +66 -47
  40. data/lib/souls/cli/index.rb +3 -20
  41. data/lib/souls/cli/init/index.rb +140 -140
  42. data/lib/souls/cli/release/release.rb +106 -105
  43. data/lib/souls/cli/server/index.rb +12 -1
  44. data/lib/souls/cli/sync/conf.rb +39 -38
  45. data/lib/souls/cli/sync/model.rb +19 -20
  46. data/lib/souls/cli/sync/pubsub.rb +69 -70
  47. data/lib/souls/cli/upgrade/gemfile.rb +108 -0
  48. data/lib/souls/cli/upgrade/index.rb +1 -1
  49. data/lib/souls/cli.rb +57 -0
  50. data/lib/souls/index.rb +1 -5
  51. data/lib/souls/version.rb +1 -1
  52. data/lib/souls/versions/.souls_api_version +1 -1
  53. data/lib/souls/versions/.souls_worker_version +1 -1
  54. data/lib/souls/worker/generate/index.rb +1 -1
  55. data/lib/souls/worker/generate/job.rb +45 -0
  56. data/lib/souls/worker/generate/mailer.rb +38 -43
  57. data/lib/souls/worker/index.rb +3 -1
  58. data/lib/souls.rb +2 -0
  59. metadata +19 -5
  60. data/lib/souls/api/generate/migration.rb +0 -51
  61. data/lib/souls/cli/upgrade/gem_update.rb +0 -107
  62. data/lib/souls/worker/generate/mutation.rb +0 -44
@@ -1,32 +1,48 @@
1
1
  module Souls
2
- module Api::Generate
3
- ## Generate Rspec Query
4
- class << self
5
- def rspec_query_head(class_name: "user")
6
- file_dir = "./spec/queries/"
7
- FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
8
- file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
9
- File.open(file_path, "w") do |f|
10
- f.write(<<~TEXT)
11
- RSpec.describe \"#{class_name.camelize} Query テスト\" do
12
- describe "#{class_name.camelize} データを取得する" do
13
- TEXT
14
- end
2
+ class Generate < Thor
3
+ desc "rspec_query [CLASS_NAME]", "Generate Rspec Query Test from schema.rb"
4
+ def rspec_query(class_name)
5
+ singularized_class_name = class_name.singularize
6
+ file_path = "./spec/queries/#{singularized_class_name}_spec.rb"
7
+ return "RspecQuery already exist! #{file_path}" if File.exist?(file_path)
8
+
9
+ rspec_query_head(class_name: singularized_class_name)
10
+ rspec_query_after_head(class_name: singularized_class_name)
11
+ rspec_query_params(class_name: singularized_class_name)
12
+ rspec_query_end(class_name: singularized_class_name)
13
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
14
+ file_path
15
+ rescue Thor::Error => e
16
+ raise(Thor::Error, e)
17
+ end
18
+
19
+ private
20
+
21
+ def rspec_query_head(class_name: "user")
22
+ file_dir = "./spec/queries/"
23
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
24
+ file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
25
+ File.open(file_path, "w") do |f|
26
+ f.write(<<~TEXT)
27
+ RSpec.describe \"#{class_name.camelize} Query テスト\" do
28
+ describe "#{class_name.camelize} データを取得する" do
29
+ TEXT
15
30
  end
31
+ end
16
32
 
17
- def rspec_query_after_head(class_name: "user")
18
- file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
19
- path = "./db/schema.rb"
20
- @on = false
21
- @user_exist = false
22
- @relation_params = []
23
- File.open(file_path, "a") do |new_line|
24
- File.open(path, "r") do |f|
25
- f.each_line.with_index do |line, _i|
26
- if @on
27
- if line.include?("t.index") || line.strip == "end"
28
- if @relation_params.empty?
29
- new_line.write(<<-TEXT)
33
+ def rspec_query_after_head(class_name: "user")
34
+ file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
35
+ path = "./db/schema.rb"
36
+ @on = false
37
+ @user_exist = false
38
+ @relation_params = []
39
+ File.open(file_path, "a") do |new_line|
40
+ File.open(path, "r") do |f|
41
+ f.each_line.with_index do |line, _i|
42
+ if @on
43
+ if line.include?("t.index") || line.strip == "end"
44
+ if @relation_params.empty?
45
+ new_line.write(<<-TEXT)
30
46
  let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
31
47
 
32
48
  let(:query) do
@@ -34,9 +50,9 @@ module Souls
34
50
  %(query {
35
51
  #{class_name.singularize.camelize(:lower)}(id: \\"\#{data_id}\\") {
36
52
  id
37
- TEXT
38
- else
39
- new_line.write(<<-TEXT)
53
+ TEXT
54
+ else
55
+ new_line.write(<<-TEXT)
40
56
  let(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
41
57
 
42
58
  let(:query) do
@@ -44,34 +60,34 @@ module Souls
44
60
  %(query {
45
61
  #{class_name.singularize.camelize(:lower)}(id: \\"\#{data_id}\\") {
46
62
  id
47
- TEXT
48
- end
49
- break
50
- end
51
- _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
52
- case name
53
- when /$*_id\z/
54
- relation_col = name.gsub("_id", "")
55
- @relation_params << "#{name}: #{relation_col}.id"
56
- new_line.write(" let(:#{relation_col}) { FactoryBot.create(:#{relation_col}) }\n")
63
+ TEXT
57
64
  end
65
+ break
66
+ end
67
+ _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
68
+ case name
69
+ when /$*_id\z/
70
+ relation_col = name.gsub("_id", "")
71
+ @relation_params << "#{name}: #{relation_col}.id"
72
+ new_line.write(" let(:#{relation_col}) { FactoryBot.create(:#{relation_col}) }\n")
58
73
  end
59
- @on = true if Souls.table_check(line: line, class_name: class_name)
60
74
  end
75
+ @on = true if Souls.table_check(line: line, class_name: class_name)
61
76
  end
62
77
  end
63
78
  end
79
+ end
64
80
 
65
- def rspec_query_params(class_name: "user")
66
- file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
67
- path = "./db/schema.rb"
68
- @on = false
69
- File.open(file_path, "a") do |new_line|
70
- File.open(path, "r") do |f|
71
- f.each_line.with_index do |line, _i|
72
- if @on
73
- if line.include?("t.index") || line.strip == "end"
74
- new_line.write(<<-TEXT)
81
+ def rspec_query_params(class_name: "user")
82
+ file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
83
+ path = "./db/schema.rb"
84
+ @on = false
85
+ File.open(file_path, "a") do |new_line|
86
+ File.open(path, "r") do |f|
87
+ f.each_line.with_index do |line, _i|
88
+ if @on
89
+ if line.include?("t.index") || line.strip == "end"
90
+ new_line.write(<<-TEXT)
75
91
  }
76
92
  }
77
93
  )
@@ -90,82 +106,66 @@ module Souls
90
106
  end
91
107
  expect(a1).to include(
92
108
  "id" => be_a(String),
93
- TEXT
94
- break
95
- end
96
- _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
97
- case name
98
- when "user_id", "created_at", "updated_at", /$*_id\z/
99
- next
100
- else
101
- new_line.write(" #{name.camelize(:lower)}\n")
102
- end
109
+ TEXT
110
+ break
111
+ end
112
+ _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
113
+ case name
114
+ when "user_id", "created_at", "updated_at", /$*_id\z/
115
+ next
116
+ else
117
+ new_line.write(" #{name.camelize(:lower)}\n")
103
118
  end
104
- @on = true if Souls.table_check(line: line, class_name: class_name)
105
119
  end
120
+ @on = true if Souls.table_check(line: line, class_name: class_name)
106
121
  end
107
122
  end
108
123
  end
124
+ end
109
125
 
110
- def rspec_query_end(class_name: "user")
111
- file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
112
- path = "./db/schema.rb"
113
- @on = false
114
- File.open(file_path, "a") do |new_line|
115
- File.open(path, "r") do |f|
116
- f.each_line.with_index do |line, _i|
117
- if @on
118
- if line.include?("t.index") || line.strip == "end"
119
- new_line.write(<<~TEXT)
120
- )
121
- end
126
+ def rspec_query_end(class_name: "user")
127
+ file_path = "./spec/queries/#{class_name.singularize}_spec.rb"
128
+ path = "./db/schema.rb"
129
+ @on = false
130
+ File.open(file_path, "a") do |new_line|
131
+ File.open(path, "r") do |f|
132
+ f.each_line.with_index do |line, _i|
133
+ if @on
134
+ if line.include?("t.index") || line.strip == "end"
135
+ new_line.write(<<~TEXT)
136
+ )
122
137
  end
123
138
  end
124
- TEXT
125
- break
126
- end
127
- type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
128
- field ||= Souls.type_check(type)
129
- array_true = line.include?("array: true")
130
- case name
131
- when "user_id", "created_at", "updated_at", /$*_id\z/
132
- next
133
- else
134
- case type
135
- when "text", "date", "datetime"
136
- if array_true
137
- new_line.write(" \"#{name.camelize(:lower)}\" => be_all(String),\n")
138
- else
139
- new_line.write(" \"#{name.camelize(:lower)}\" => be_a(String),\n")
140
- end
141
- when "boolean"
142
- new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n")
143
- when "string", "bigint", "integer", "float"
144
- new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n")
145
139
  end
140
+ TEXT
141
+ break
142
+ end
143
+ type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
144
+ field ||= Souls.type_check(type)
145
+ array_true = line.include?("array: true")
146
+ case name
147
+ when "user_id", "created_at", "updated_at", /$*_id\z/
148
+ next
149
+ else
150
+ case type
151
+ when "text", "date", "datetime"
152
+ if array_true
153
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_all(String),\n")
154
+ else
155
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_a(String),\n")
156
+ end
157
+ when "boolean"
158
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n")
159
+ when "string", "bigint", "integer", "float"
160
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n")
146
161
  end
147
162
  end
148
- @on = true if Souls.table_check(line: line, class_name: class_name)
149
163
  end
164
+ @on = true if Souls.table_check(line: line, class_name: class_name)
150
165
  end
151
166
  end
152
- file_path
153
- end
154
-
155
- def rspec_query(class_name: "user")
156
- singularized_class_name = class_name.singularize
157
- file_path = "./spec/queries/#{singularized_class_name}_spec.rb"
158
- return "RspecQuery already exist! #{file_path}" if File.exist?(file_path)
159
-
160
- rspec_query_head(class_name: singularized_class_name)
161
- rspec_query_after_head(class_name: singularized_class_name)
162
- rspec_query_params(class_name: singularized_class_name)
163
- rspec_query_end(class_name: singularized_class_name)
164
- puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
165
- file_path
166
- rescue StandardError => e
167
- raise(StandardError, e)
168
167
  end
168
+ file_path
169
169
  end
170
170
  end
171
171
  end
@@ -1,198 +1,198 @@
1
1
  module Souls
2
- module Api::Generate
3
- ## Generate Rspec Resolver
4
- class << self
5
- def rspec_resolver_head(class_name: "user")
6
- file_dir = "./spec/resolvers/"
7
- FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
8
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
9
- File.open(file_path, "w") do |f|
10
- f.write(<<~TEXT)
11
- RSpec.describe \"#{class_name.camelize}Search Resolver テスト\" do
12
- describe "削除フラグ false の #{class_name.camelize} を返却する" do
13
- TEXT
14
- end
2
+ class Generate < Thor
3
+ desc "rspec_resolver [CLASS_NAME]", "Generate Rspec Resolver Test from schema.rb"
4
+ def rspec_resolver(class_name)
5
+ singularized_class_name = class_name.singularize
6
+ file_path = "./spec/resolvers/#{singularized_class_name}_search_spec.rb"
7
+ return "Resolver already exist! #{file_path}" if File.exist?(file_path)
8
+
9
+ rspec_resolver_head(class_name: singularized_class_name)
10
+ rspec_resolver_after_head(class_name: singularized_class_name)
11
+ rspec_resolver_params(class_name: singularized_class_name)
12
+ rspec_resolver_end(class_name: singularized_class_name)
13
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
14
+ file_path
15
+ rescue Thor::Error => e
16
+ raise(Thor::Error, e)
17
+ end
18
+
19
+ private
20
+
21
+ def rspec_resolver_head(class_name: "user")
22
+ file_dir = "./spec/resolvers/"
23
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
24
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
25
+ File.open(file_path, "w") do |f|
26
+ f.write(<<~TEXT)
27
+ RSpec.describe \"#{class_name.camelize}Search Resolver テスト\" do
28
+ describe "削除フラグ false の #{class_name.camelize} を返却する" do
29
+ TEXT
15
30
  end
31
+ end
16
32
 
17
- def rspec_resolver_after_head(class_name: "user")
18
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
19
- path = "./db/schema.rb"
20
- @on = false
21
- @user_exist = false
22
- @relation_params = []
23
- File.open(file_path, "a") do |new_line|
24
- File.open(path, "r") do |f|
25
- f.each_line.with_index do |line, _i|
26
- if @on
27
- if line.include?("t.index") || line.strip == "end"
28
- if @relation_params.empty?
29
- new_line.write(<<-TEXT)
30
- let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
33
+ def rspec_resolver_after_head(class_name: "user")
34
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
35
+ path = "./db/schema.rb"
36
+ @on = false
37
+ @user_exist = false
38
+ @relation_params = []
39
+ File.open(file_path, "a") do |new_line|
40
+ File.open(path, "r") do |f|
41
+ f.each_line.with_index do |line, _i|
42
+ if @on
43
+ if line.include?("t.index") || line.strip == "end"
44
+ if @relation_params.empty?
45
+ new_line.write(<<-TEXT)
46
+ let!(:#{class_name}) { FactoryBot.create(:#{class_name}) }
31
47
 
32
- let(:query) do
33
- %(query {
34
- #{class_name.singularize.camelize(:lower)}Search(filter: {
35
- isDeleted: false
36
- }) {
37
- edges {
38
- cursor
39
- node {
40
- id
41
- TEXT
42
- else
43
- new_line.write(<<-TEXT)
44
- let!(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
48
+ let(:query) do
49
+ %(query {
50
+ #{class_name.singularize.camelize(:lower)}Search(filter: {
51
+ isDeleted: false
52
+ }) {
53
+ edges {
54
+ cursor
55
+ node {
56
+ id
57
+ TEXT
58
+ else
59
+ new_line.write(<<-TEXT)
60
+ let!(:#{class_name}) { FactoryBot.create(:#{class_name}, #{@relation_params.join(', ')}) }
45
61
 
46
- let(:query) do
47
- %(query {
48
- #{class_name.singularize.camelize(:lower)}Search(filter: {
49
- isDeleted: false
50
- }) {
51
- edges {
52
- cursor
53
- node {
54
- id
55
- TEXT
56
- end
57
- break
58
- end
59
- _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
60
- case name
61
- when /$*_id\z/
62
- relation_col = name.gsub("_id", "")
63
- @relation_params << "#{name}: #{relation_col}.id"
64
- new_line.write(" let(:#{relation_col}) { FactoryBot.create(:#{relation_col}) }\n")
62
+ let(:query) do
63
+ %(query {
64
+ #{class_name.singularize.camelize(:lower)}Search(filter: {
65
+ isDeleted: false
66
+ }) {
67
+ edges {
68
+ cursor
69
+ node {
70
+ id
71
+ TEXT
65
72
  end
73
+ break
74
+ end
75
+ _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
76
+ case name
77
+ when /$*_id\z/
78
+ relation_col = name.gsub("_id", "")
79
+ @relation_params << "#{name}: #{relation_col}.id"
80
+ new_line.write(" let(:#{relation_col}) { FactoryBot.create(:#{relation_col}) }\n")
66
81
  end
67
- @on = true if Souls.table_check(line: line, class_name: class_name)
68
82
  end
83
+ @on = true if Souls.table_check(line: line, class_name: class_name)
69
84
  end
70
85
  end
71
86
  end
87
+ end
72
88
 
73
- def rspec_resolver_params(class_name: "user")
74
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
75
- path = "./db/schema.rb"
76
- @on = false
77
- File.open(file_path, "a") do |new_line|
78
- File.open(path, "r") do |f|
79
- f.each_line.with_index do |line, _i|
80
- if @on
81
- if line.include?("t.index") || line.strip == "end"
82
- new_line.write(<<-TEXT)
83
- }
84
- }
85
- nodes {
86
- id
87
- }
88
- pageInfo {
89
- endCursor
90
- hasNextPage
91
- startCursor
92
- hasPreviousPage
89
+ def rspec_resolver_params(class_name: "user")
90
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
91
+ path = "./db/schema.rb"
92
+ @on = false
93
+ File.open(file_path, "a") do |new_line|
94
+ File.open(path, "r") do |f|
95
+ f.each_line.with_index do |line, _i|
96
+ if @on
97
+ if line.include?("t.index") || line.strip == "end"
98
+ new_line.write(<<-TEXT)
93
99
  }
94
100
  }
101
+ nodes {
102
+ id
103
+ }
104
+ pageInfo {
105
+ endCursor
106
+ hasNextPage
107
+ startCursor
108
+ hasPreviousPage
109
+ }
95
110
  }
96
- )
97
- end
111
+ }
112
+ )
113
+ end
98
114
 
99
- subject(:result) do
100
- SoulsApiSchema.execute(query).as_json
101
- end
115
+ subject(:result) do
116
+ SoulsApiSchema.execute(query).as_json
117
+ end
102
118
 
103
- it "return #{class_name.camelize} Data" do
104
- begin
105
- a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}Search", "edges")[0]["node"]
106
- raise unless a1.present?
107
- rescue
108
- raise StandardError, result
109
- end
110
- expect(a1).to include(
111
- "id" => be_a(String),
112
- TEXT
113
- break
114
- end
115
- _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
116
- case name
117
- when "user_id", "created_at", "updated_at", /$*_id\z/
118
- next
119
- else
120
- new_line.write(" #{name.camelize(:lower)}\n")
121
- end
119
+ it "return #{class_name.camelize} Data" do
120
+ begin
121
+ a1 = result.dig("data", "#{class_name.singularize.camelize(:lower)}Search", "edges")[0]["node"]
122
+ raise unless a1.present?
123
+ rescue
124
+ raise StandardError, result
125
+ end
126
+ expect(a1).to include(
127
+ "id" => be_a(String),
128
+ TEXT
129
+ break
130
+ end
131
+ _, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
132
+ case name
133
+ when "user_id", "created_at", "updated_at", /$*_id\z/
134
+ next
135
+ else
136
+ new_line.write(" #{name.camelize(:lower)}\n")
122
137
  end
123
- @on = true if Souls.table_check(line: line, class_name: class_name)
124
138
  end
139
+ @on = true if Souls.table_check(line: line, class_name: class_name)
125
140
  end
126
141
  end
127
142
  end
143
+ end
128
144
 
129
- def rspec_resolver_end(class_name: "user")
130
- file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
131
- path = "./db/schema.rb"
132
- @on = false
133
- File.open(file_path, "a") do |new_line|
134
- File.open(path, "r") do |f|
135
- f.each_line.with_index do |line, _i|
136
- if @on
137
- if line.include?("t.index") || line.strip == "end"
138
- new_line.write(<<~TEXT)
139
- )
140
- end
145
+ def rspec_resolver_end(class_name: "user")
146
+ file_path = "./spec/resolvers/#{class_name.singularize}_search_spec.rb"
147
+ path = "./db/schema.rb"
148
+ @on = false
149
+ File.open(file_path, "a") do |new_line|
150
+ File.open(path, "r") do |f|
151
+ f.each_line.with_index do |line, _i|
152
+ if @on
153
+ if line.include?("t.index") || line.strip == "end"
154
+ new_line.write(<<~TEXT)
155
+ )
141
156
  end
142
157
  end
143
- TEXT
144
- break
145
- end
146
- type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
147
- field ||= Souls.type_check(type)
148
- array_true = line.include?("array: true")
149
- case name
150
- when "user_id", "created_at", "updated_at", /$*_id\z/
151
- next
152
- else
153
- case type
154
- when "text", "date", "datetime"
155
- if array_true
156
- new_line.write(" \"#{name.camelize(:lower)}\" => be_all(String),\n")
157
- else
158
- new_line.write(" \"#{name.camelize(:lower)}\" => be_a(String),\n")
159
- end
160
- when "boolean"
161
- if array_true
162
- new_line.write(" \"#{name.camelize(:lower)}\" => be_all([true, false]),\n")
163
- else
164
- new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n")
165
- end
166
- when "string", "bigint", "integer", "float"
167
- if array_true
168
- new_line.write(" \"#{name.camelize(:lower)}\" => be_all(#{field}),\n")
169
- else
170
- new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n")
171
- end
158
+ end
159
+ TEXT
160
+ break
161
+ end
162
+ type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
163
+ field ||= Souls.type_check(type)
164
+ array_true = line.include?("array: true")
165
+ case name
166
+ when "user_id", "created_at", "updated_at", /$*_id\z/
167
+ next
168
+ else
169
+ case type
170
+ when "text", "date", "datetime"
171
+ if array_true
172
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_all(String),\n")
173
+ else
174
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_a(String),\n")
175
+ end
176
+ when "boolean"
177
+ if array_true
178
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_all([true, false]),\n")
179
+ else
180
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_in([true, false]),\n")
181
+ end
182
+ when "string", "bigint", "integer", "float"
183
+ if array_true
184
+ new_line.write(" \"#{name.camelize(:lower)}\" => be_all(#{field}),\n")
185
+ else
186
+ new_line.write(" \"#{name.singularize.camelize(:lower)}\" => be_a(#{field}),\n")
172
187
  end
173
188
  end
174
189
  end
175
- @on = true if Souls.table_check(line: line, class_name: class_name)
176
190
  end
191
+ @on = true if Souls.table_check(line: line, class_name: class_name)
177
192
  end
178
193
  end
179
- file_path
180
- end
181
-
182
- def rspec_resolver(class_name: "user")
183
- singularized_class_name = class_name.singularize
184
- file_path = "./spec/resolvers/#{singularized_class_name}_search_spec.rb"
185
- return "Resolver already exist! #{file_path}" if File.exist?(file_path)
186
-
187
- rspec_resolver_head(class_name: singularized_class_name)
188
- rspec_resolver_after_head(class_name: singularized_class_name)
189
- rspec_resolver_params(class_name: singularized_class_name)
190
- rspec_resolver_end(class_name: singularized_class_name)
191
- puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
192
- file_path
193
- rescue StandardError => e
194
- raise(StandardError, e)
195
194
  end
195
+ file_path
196
196
  end
197
197
  end
198
198
  end