souls 0.51.0 → 0.52.1

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 +5 -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,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