souls 0.51.2 → 0.52.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +4 -1
  3. data/exe/souls +4 -202
  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 +97 -93
  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,7 +1,7 @@
1
1
  module Souls
2
- module Api::Generate
3
- ## Generate Policy
4
- def self.policy(class_name: "user")
2
+ class Generate < Thor
3
+ desc "policy [CLASS_NAME]", "Generate Policy File Template"
4
+ def policy(class_name)
5
5
  dir_name = "./app/policies"
6
6
  FileUtils.mkdir_p(dir_name) unless Dir.exist?(dir_name)
7
7
  file_path = "#{dir_name}/#{class_name.singularize}_policy.rb"
@@ -44,8 +44,8 @@ module Souls
44
44
  end
45
45
  puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
46
46
  file_path
47
- rescue StandardError => e
48
- raise(StandardError, e)
47
+ rescue Thor::Error => e
48
+ raise(Thor::Error, e)
49
49
  end
50
50
  end
51
51
  end
@@ -1,65 +1,65 @@
1
1
  module Souls
2
- module Api::Generate
3
- ## Generate Query / Queries
4
- class << self
5
- def create_queries(class_name: "user")
6
- file_path = "./app/graphql/queries/#{class_name.pluralize}.rb"
7
- return "Query already exist! #{file_path}" if File.exist?(file_path)
2
+ class Generate < Thor
3
+ desc "query [CLASS_NAME]", "Generate GraphQL Query from schema.rb"
4
+ def query(class_name)
5
+ file_dir = "./app/graphql/queries/"
6
+ FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
7
+ singularized_class_name = class_name.singularize
8
+ create_query(class_name: singularized_class_name)
9
+ create_queries(class_name: singularized_class_name)
10
+ rescue Thor::Error => e
11
+ raise(Thor::Error, e)
12
+ end
13
+
14
+ private
15
+
16
+ def create_queries(class_name: "user")
17
+ file_path = "./app/graphql/queries/#{class_name.pluralize}.rb"
18
+ return "Query already exist! #{file_path}" if File.exist?(file_path)
8
19
 
9
- File.open(file_path, "w") do |f|
10
- f.write(<<~TEXT)
11
- module Queries
12
- class #{class_name.camelize.pluralize} < Queries::BaseQuery
13
- type [Types::#{class_name.camelize}Type], null: false
20
+ File.open(file_path, "w") do |f|
21
+ f.write(<<~TEXT)
22
+ module Queries
23
+ class #{class_name.camelize.pluralize} < Queries::BaseQuery
24
+ type [Types::#{class_name.camelize}Type], null: false
14
25
 
15
- def resolve
16
- ::#{class_name.camelize}.all
17
- rescue StandardError => error
18
- GraphQL::ExecutionError.new error
19
- end
26
+ def resolve
27
+ ::#{class_name.camelize}.all
28
+ rescue StandardError => error
29
+ GraphQL::ExecutionError.new error
20
30
  end
21
31
  end
22
- TEXT
23
- end
24
- puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
25
- file_path
26
- rescue StandardError => e
27
- raise(StandardError, e)
32
+ end
33
+ TEXT
28
34
  end
35
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
36
+ file_path
37
+ rescue StandardError => e
38
+ raise(StandardError, e)
39
+ end
29
40
 
30
- def create_query(class_name: "user")
31
- file_path = "./app/graphql/queries/#{class_name}.rb"
32
- return "Query already exist! #{file_path}" if File.exist?(file_path)
41
+ def create_query(class_name: "user")
42
+ file_path = "./app/graphql/queries/#{class_name}.rb"
43
+ return "Query already exist! #{file_path}" if File.exist?(file_path)
33
44
 
34
- File.open(file_path, "w") do |f|
35
- f.write(<<~TEXT)
36
- module Queries
37
- class #{class_name.camelize} < Queries::BaseQuery
38
- type Types::#{class_name.camelize}Type, null: false
39
- argument :id, String, required: true
45
+ File.open(file_path, "w") do |f|
46
+ f.write(<<~TEXT)
47
+ module Queries
48
+ class #{class_name.camelize} < Queries::BaseQuery
49
+ type Types::#{class_name.camelize}Type, null: false
50
+ argument :id, String, required: true
40
51
 
41
- def resolve **args
42
- _, data_id = SoulsApiSchema.from_global_id args[:id]
43
- ::#{class_name.camelize}.find(data_id)
44
- rescue StandardError => error
45
- GraphQL::ExecutionError.new error
46
- end
52
+ def resolve **args
53
+ _, data_id = SoulsApiSchema.from_global_id args[:id]
54
+ ::#{class_name.camelize}.find(data_id)
55
+ rescue StandardError => error
56
+ GraphQL::ExecutionError.new error
47
57
  end
48
58
  end
49
- TEXT
50
- puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
51
- file_path
52
- rescue StandardError => e
53
- raise(StandardError, e)
54
- end
55
- end
56
-
57
- def query(class_name: "user")
58
- file_dir = "./app/graphql/queries/"
59
- FileUtils.mkdir_p(file_dir) unless Dir.exist?(file_dir)
60
- singularized_class_name = class_name.singularize
61
- create_query(class_name: singularized_class_name)
62
- create_queries(class_name: singularized_class_name)
59
+ end
60
+ TEXT
61
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
62
+ file_path
63
63
  rescue StandardError => e
64
64
  raise(StandardError, e)
65
65
  end
@@ -1,63 +1,80 @@
1
1
  module Souls
2
- module Api::Generate
3
- ## Generate Resolver
4
- class << self
5
- def resolver_head(class_name: "user")
6
- FileUtils.mkdir_p("./app/graphql/resolvers") unless Dir.exist?("./app/graphql/resolvers")
7
- file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
8
- @relation_params = []
9
- File.open(file_path, "w") do |f|
10
- f.write(<<~TEXT)
11
- module Resolvers
12
- class #{class_name.camelize}Search < Base
13
- include SearchObject.module(:graphql)
14
- scope { ::#{class_name.camelize}.all }
15
- type Types::#{class_name.camelize}Type.connection_type, null: false
16
- description "Search #{class_name.camelize}"
2
+ class Generate < Thor
3
+ desc "resolver [CLASS_NAME]", "Generate GraphQL Resolver from schema.rb"
4
+ def resolver(class_name)
5
+ singularized_class_name = class_name.singularize.underscore
6
+ file_path = "./app/graphql/resolvers/#{singularized_class_name}_search.rb"
7
+ raise(StandardError, "Resolver already exist! #{file_path}") if File.exist?(file_path)
17
8
 
18
- class #{class_name.camelize}Filter < ::Types::BaseInputObject
19
- argument :OR, [self], required: false
20
- TEXT
21
- end
9
+ resolver_head(class_name: singularized_class_name)
10
+ resolver_params(class_name: singularized_class_name)
11
+ resolver_after_params(class_name: singularized_class_name)
12
+ resolver_before_end(class_name: singularized_class_name)
13
+ resolver_end(class_name: singularized_class_name)
14
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
15
+ file_path
16
+ rescue Thor::Error => e
17
+ raise(Thor::Error, e)
18
+ end
19
+
20
+ private
21
+
22
+ def resolver_head(class_name: "user")
23
+ FileUtils.mkdir_p("./app/graphql/resolvers") unless Dir.exist?("./app/graphql/resolvers")
24
+ file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
25
+ @relation_params = []
26
+ File.open(file_path, "w") do |f|
27
+ f.write(<<~TEXT)
28
+ module Resolvers
29
+ class #{class_name.camelize}Search < Base
30
+ include SearchObject.module(:graphql)
31
+ scope { ::#{class_name.camelize}.all }
32
+ type Types::#{class_name.camelize}Type.connection_type, null: false
33
+ description "Search #{class_name.camelize}"
34
+
35
+ class #{class_name.camelize}Filter < ::Types::BaseInputObject
36
+ argument :OR, [self], required: false
37
+ TEXT
22
38
  end
39
+ end
23
40
 
24
- def resolver_params(class_name: "user")
25
- file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
26
- path = "./db/schema.rb"
27
- @on = false
28
- @user_exist = false
29
- @relation_params = []
30
- File.open(file_path, "a") do |new_line|
31
- File.open(path, "r") do |f|
32
- f.each_line.with_index do |line, _i|
33
- if @on
34
- break if line.include?("t.index") || line.strip == "end"
41
+ def resolver_params(class_name: "user")
42
+ file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
43
+ path = "./db/schema.rb"
44
+ @on = false
45
+ @user_exist = false
46
+ @relation_params = []
47
+ File.open(file_path, "a") do |new_line|
48
+ File.open(path, "r") do |f|
49
+ f.each_line.with_index do |line, _i|
50
+ if @on
51
+ break if line.include?("t.index") || line.strip == "end"
35
52
 
36
- field = "[String]" if line.include?("array: true")
37
- type, name = Souls.get_type_and_name(line)
38
- field ||= Souls.type_check(type)
39
- case name
40
- when "user_id"
41
- @user_exist = true
42
- when /$*_id\z/
43
- @relation_params << name
44
- new_line.write(" argument :#{name}, String, required: false\n")
45
- when "created_at", "updated_at"
46
- next
47
- else
48
- new_line.write(" argument :#{name}, #{field}, required: false\n")
49
- end
53
+ field = "[String]" if line.include?("array: true")
54
+ type, name = Souls.get_type_and_name(line)
55
+ field ||= Souls.type_check(type)
56
+ case name
57
+ when "user_id"
58
+ @user_exist = true
59
+ when /$*_id\z/
60
+ @relation_params << name
61
+ new_line.write(" argument :#{name}, String, required: false\n")
62
+ when "created_at", "updated_at"
63
+ next
64
+ else
65
+ new_line.write(" argument :#{name}, #{field}, required: false\n")
50
66
  end
51
- @on = true if Souls.table_check(line: line, class_name: class_name)
52
67
  end
68
+ @on = true if Souls.table_check(line: line, class_name: class_name)
53
69
  end
54
70
  end
55
71
  end
72
+ end
56
73
 
57
- def resolver_after_params(class_name: "user")
58
- file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
59
- File.open(file_path, "a") do |f|
60
- f.write(<<-TEXT)
74
+ def resolver_after_params(class_name: "user")
75
+ file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
76
+ File.open(file_path, "a") do |f|
77
+ f.write(<<-TEXT)
61
78
  argument :start_date, String, required: false
62
79
  argument :end_date, String, required: false
63
80
  end
@@ -73,86 +90,69 @@ module Souls
73
90
 
74
91
  def normalize_filters(value, branches = [])
75
92
  scope = ::#{class_name.camelize}.all
76
- TEXT
77
- end
93
+ TEXT
78
94
  end
95
+ end
79
96
 
80
- def resolver_before_end(class_name: "user")
81
- file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
82
- path = "./db/schema.rb"
83
- @on = false
84
- @user_exist = false
85
- @relation_params = []
86
- File.open(file_path, "a") do |new_line|
87
- File.open(path, "r") do |f|
88
- f.each_line.with_index do |line, _i|
89
- if @on
90
- break if line.include?("t.index") || line.strip == "end"
97
+ def resolver_before_end(class_name: "user")
98
+ file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
99
+ path = "./db/schema.rb"
100
+ @on = false
101
+ @user_exist = false
102
+ @relation_params = []
103
+ File.open(file_path, "a") do |new_line|
104
+ File.open(path, "r") do |f|
105
+ f.each_line.with_index do |line, _i|
106
+ if @on
107
+ break if line.include?("t.index") || line.strip == "end"
91
108
 
92
- type, name = Souls.get_type_and_name(line)
93
- if line.include?("array: true")
94
- new_line.write(
95
- " scope = scope.where(\"#{name} @> ARRAY[?]::text[]\", value[:#{name}]) if value[:#{name}]\n"
96
- )
97
- next
98
- end
99
- case name
100
- when "user_id"
101
- @user_exist = true
102
- when /$*_id\z/
103
- @relation_params << name
104
- new_line.write(
105
- " scope = scope.where(#{name}: decode_global_key(value[:#{name}])) if value[:#{name}]\n"
106
- )
107
- when "created_at", "updated_at"
108
- next
109
+ type, name = Souls.get_type_and_name(line)
110
+ if line.include?("array: true")
111
+ new_line.write(
112
+ " scope = scope.where(\"#{name} @> ARRAY[?]::text[]\", value[:#{name}]) if value[:#{name}]\n"
113
+ )
114
+ next
115
+ end
116
+ case name
117
+ when "user_id"
118
+ @user_exist = true
119
+ when /$*_id\z/
120
+ @relation_params << name
121
+ new_line.write(
122
+ " scope = scope.where(#{name}: decode_global_key(value[:#{name}])) if value[:#{name}]\n"
123
+ )
124
+ when "created_at", "updated_at"
125
+ next
126
+ else
127
+ case type
128
+ when "boolean"
129
+ new_line.write(" scope = scope.where(#{name}: value[:#{name}]) unless value[:#{name}].nil?\n")
109
130
  else
110
- case type
111
- when "boolean"
112
- new_line.write(" scope = scope.where(#{name}: value[:#{name}]) unless value[:#{name}].nil?\n")
113
- else
114
- new_line.write(" scope = scope.where(#{name}: value[:#{name}]) if value[:#{name}]\n")
115
- end
131
+ new_line.write(" scope = scope.where(#{name}: value[:#{name}]) if value[:#{name}]\n")
116
132
  end
117
133
  end
118
- @on = true if Souls.table_check(line: line, class_name: class_name)
119
134
  end
135
+ @on = true if Souls.table_check(line: line, class_name: class_name)
120
136
  end
121
137
  end
122
138
  end
139
+ end
123
140
 
124
- def resolver_end(class_name: "user")
125
- file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
126
- File.open(file_path, "a") do |f|
127
- f.write(<<~TEXT)
128
- scope = scope.where("created_at >= ?", value[:start_date]) if value[:start_date]
129
- scope = scope.where("created_at <= ?", value[:end_date]) if value[:end_date]
130
- branches << scope
131
- value[:OR].inject(branches) { |s, v| normalize_filters(v, s) } if value[:OR].present?
132
- branches
133
- end
141
+ def resolver_end(class_name: "user")
142
+ file_path = "./app/graphql/resolvers/#{class_name.singularize}_search.rb"
143
+ File.open(file_path, "a") do |f|
144
+ f.write(<<~TEXT)
145
+ scope = scope.where("created_at >= ?", value[:start_date]) if value[:start_date]
146
+ scope = scope.where("created_at <= ?", value[:end_date]) if value[:end_date]
147
+ branches << scope
148
+ value[:OR].inject(branches) { |s, v| normalize_filters(v, s) } if value[:OR].present?
149
+ branches
134
150
  end
135
151
  end
136
- TEXT
137
- end
138
- file_path
139
- end
140
-
141
- def resolver(class_name: "user")
142
- singularized_class_name = class_name.singularize.underscore
143
- file_path = "./app/graphql/resolvers/#{singularized_class_name}_search.rb"
144
- raise(StandardError, "Resolver already exist! #{file_path}") if File.exist?(file_path)
145
-
146
- resolver_head(class_name: singularized_class_name)
147
- resolver_params(class_name: singularized_class_name)
148
- resolver_after_params(class_name: singularized_class_name)
149
- resolver_before_end(class_name: singularized_class_name)
150
- resolver_end(class_name: singularized_class_name)
151
- puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
152
- file_path
153
- rescue StandardError => e
154
- raise(StandardError, e)
152
+ end
153
+ TEXT
155
154
  end
155
+ file_path
156
156
  end
157
157
  end
158
158
  end
@@ -1,67 +1,67 @@
1
1
  module Souls
2
- module Api::Generate
3
- ## Generate Rspec Factory
4
- class << self
5
- def rspec_factory_head(class_name: "user")
6
- file_path = "./spec/factories/#{class_name.pluralize}.rb"
7
- FileUtils.mkdir_p("./spec/factories/") unless Dir.exist?("./spec/factories/")
8
- File.open(file_path, "w") do |f|
9
- f.write(<<~TEXT)
10
- FactoryBot.define do
11
- factory :#{class_name} do
12
- TEXT
13
- end
2
+ class Generate < Thor
3
+ desc "rspec_factory [CLASS_NAME]", "Generate Rspec Factory Test from schema.rb"
4
+ def rspec_factory(class_name)
5
+ file_path = "./spec/factories/#{class_name.pluralize}.rb"
6
+ return "RspecFactory already exist! #{file_path}" if File.exist?(file_path)
7
+
8
+ singularized_class_name = class_name.singularize
9
+ rspec_factory_head(class_name: singularized_class_name)
10
+ rspec_factory_params(class_name: singularized_class_name)
11
+ rspec_factory_end(class_name: singularized_class_name)
12
+ puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
13
+ file_path
14
+ rescue Thor::Error => e
15
+ raise(Thor::Error, e)
16
+ end
17
+
18
+ private
19
+
20
+ def rspec_factory_head(class_name: "user")
21
+ file_path = "./spec/factories/#{class_name.pluralize}.rb"
22
+ FileUtils.mkdir_p("./spec/factories/") unless Dir.exist?("./spec/factories/")
23
+ File.open(file_path, "w") do |f|
24
+ f.write(<<~TEXT)
25
+ FactoryBot.define do
26
+ factory :#{class_name} do
27
+ TEXT
14
28
  end
29
+ end
15
30
 
16
- def rspec_factory_params(class_name: "user")
17
- file_path = "./spec/factories/#{class_name.pluralize}.rb"
18
- path = "./db/schema.rb"
19
- @on = false
20
- File.open(file_path, "a") do |new_line|
21
- File.open(path, "r") do |f|
22
- f.each_line.with_index do |line, _i|
23
- if @on
24
- new_line.write("\n" && break) if line.include?("t.index") || line.strip == "end"
25
- field = '["tag1", "tag2", "tag3"]' if line.include?("array: true")
26
- type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
27
- field ||= Souls.get_test_type(type)
28
- if type == "bigint" && name.include?("_id")
29
- id_name = name.gsub("_id", "")
30
- new_line.write(" association :#{id_name}, factory: :#{id_name}\n")
31
- else
32
- new_line.write(" #{name} { #{field} }\n")
33
- end
31
+ def rspec_factory_params(class_name: "user")
32
+ file_path = "./spec/factories/#{class_name.pluralize}.rb"
33
+ path = "./db/schema.rb"
34
+ @on = false
35
+ File.open(file_path, "a") do |new_line|
36
+ File.open(path, "r") do |f|
37
+ f.each_line.with_index do |line, _i|
38
+ if @on
39
+ new_line.write("\n" && break) if line.include?("t.index") || line.strip == "end"
40
+ field = '["tag1", "tag2", "tag3"]' if line.include?("array: true")
41
+ type, name = line.split(",")[0].gsub("\"", "").scan(/((?<=t\.).+(?=\s)) (.+)/)[0]
42
+ field ||= Souls.get_test_type(type)
43
+ if type == "bigint" && name.include?("_id")
44
+ id_name = name.gsub("_id", "")
45
+ new_line.write(" association :#{id_name}, factory: :#{id_name}\n")
46
+ else
47
+ new_line.write(" #{name} { #{field} }\n")
34
48
  end
35
- @on = true if Souls.table_check(line: line, class_name: class_name)
36
49
  end
50
+ @on = true if Souls.table_check(line: line, class_name: class_name)
37
51
  end
38
52
  end
39
53
  end
54
+ end
40
55
 
41
- def rspec_factory_end(class_name: "user")
42
- file_path = "./spec/factories/#{class_name.pluralize}.rb"
43
- File.open(file_path, "a") do |f|
44
- f.write(<<~TEXT)
45
- end
56
+ def rspec_factory_end(class_name: "user")
57
+ file_path = "./spec/factories/#{class_name.pluralize}.rb"
58
+ File.open(file_path, "a") do |f|
59
+ f.write(<<~TEXT)
46
60
  end
47
- TEXT
48
- end
49
- file_path
50
- end
51
-
52
- def rspec_factory(class_name: "user")
53
- file_path = "./spec/factories/#{class_name.pluralize}.rb"
54
- return "RspecFactory already exist! #{file_path}" if File.exist?(file_path)
55
-
56
- singularized_class_name = class_name.singularize
57
- rspec_factory_head(class_name: singularized_class_name)
58
- rspec_factory_params(class_name: singularized_class_name)
59
- rspec_factory_end(class_name: singularized_class_name)
60
- puts(Paint % ["Created file! : %{white_text}", :green, { white_text: [file_path.to_s, :white] }])
61
- file_path
62
- rescue StandardError => e
63
- raise(StandardError, e)
61
+ end
62
+ TEXT
64
63
  end
64
+ file_path
65
65
  end
66
66
  end
67
67
  end