@@ -76,12 +76,17 @@ def set(*data) #a hash of data key => value
76
76
self
77
77
end
78
78
79
+ def delete
80
+ @request = 'delete'
81
+ self
82
+ end
83
+
79
84
def run
80
85
81
- if File . exist? ( table_name )
86
+ if File . exist? ( @ table_name)
82
87
@hashedDataA = table_to_hashed ( @table_name )
83
88
else
84
- @hashedData = create_csv_file ( @table_name , @dataToInsert ) if !File . exist? ( table_name )
89
+ @hashedDataA = create_csv_file ( @table_name , @dataToInsert ) if !File . exist? ( table_name )
85
90
end
86
91
@selected_hash_array = [ ]
87
92
@filtered_hash_array = [ ]
@@ -144,6 +149,7 @@ def run
144
149
end
145
150
end
146
151
updated_array <<current_csv_row . to_h
152
+
147
153
148
154
end#CSV.foreach
149
155
@@ -154,13 +160,43 @@ def run
154
160
end
155
161
end
156
162
@final=updated_array
163
+
164
+ when 'delete'
165
+
166
+ table = CSV.table(@table_name) #delete_if is available in a tableMode
167
+ header=CSV.read(@table_name,headers:true).headers
168
+
169
+ @where_conditions.each do |current_condition|
170
+ current_condition.each do |key, value|
171
+ # Delete rows that match the condition
172
+ table.delete_if do |row|
173
+ row[key.to_sym] == value
174
+ end
175
+ end
176
+ end
177
+
178
+
179
+ csv_data=table.to_csv
180
+ csv_array = CSV.parse(csv_data, headers: true).map(&:to_h) #convert to an array of hashes
181
+
182
+ CSV.open(@table_name,'w',write_headers:true,headers:header) do |csv|
183
+ csv_array.each do |row|
184
+ csv<<row
185
+ end
186
+ end
187
+
188
+ @final=csv_array
189
+
190
+
191
+
192
+
193
+
157
194
end#case
158
195
159
196
160
197
161
198
162
199
163
- puts '..........................final result'
164
200
puts @final.inspect
165
201
end#of def run
166
202
end#of class
@@ -181,7 +217,7 @@ def create_csv_file(table_name,dataToInsert)
181
217
end
182
218
183
219
def table_to_hashed(table_name)
184
- hashedData=CSV.parse(File.read(table_name),headers:true).map(&:to_h)
220
+ hashedData=CSV.parse(File.read(table_name),headers:true).map(&:to_h).take(10)
185
221
return hashedData
186
222
end
187
223
@@ -269,13 +305,13 @@ def merge(left, right, &block)
269
305
270
306
result
271
307
end
272
-
273
308
request = MySqliteRequest.new
274
- request=request.from('nba_players.csv')
275
- request=request.select('player','height')
276
- request=request.where('height','196')
277
- request=request.run()
309
+ request = request.delete()
310
+ request = request.from('nba_player_data.csv')
311
+ request = request.where('name', 'Paul Zipser')
312
+ request.run
313
+ # request = MySqliteRequest.new
278
314
# request = request.update('nba_player_data.csv')
279
- # request = request.set ('name' => 'Jimmy agabaje2 ')
280
- # request = request.where('name', 'Jimmy agabaje ')
315
+ # request = request.values ('name' => 'Alaa Renamed ')
316
+ # request = request.where('name', 'Matt Zunic ')
281
317
# request.run
0 commit comments