souls 0.23.2 → 0.23.6

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