@@ -51,6 +51,7 @@ def order(order, column_name)
51
51
def insert ( table_name )
52
52
@table_name = table_name
53
53
@request = 'insert'
54
+
54
55
self
55
56
end
56
57
@@ -64,7 +65,13 @@ def values(*data) #a hash of data key => value
64
65
end
65
66
66
67
def run
67
- @hashedDataA = table_to_hashed ( @table_name , @dataToInsert )
68
+
69
+
70
+ if File . exist? ( table_name )
71
+ @hashedDataA = table_to_hashed ( @table_name )
72
+ else
73
+ @hashedData = create_csv_file ( @table_name , @dataToInsert ) if !File . exist? ( table_name )
74
+ end
68
75
@selected_hash_array = [ ]
69
76
@filtered_hash_array = [ ]
70
77
@merged_hash_array = [ ]
@@ -122,46 +129,47 @@ def run
122
129
end #of request='select'
123
130
124
131
if @request=='insert' #dear reviewer, i dont know why these brings error in this ide,kindly
132
+
125
133
CSV.open(@table_name,"a+") do |csv|#test this in VsCode,it inserts data well without errors
126
134
@headers=csv.readline
127
- puts headers.inspect
128
135
@dataToInsert.each do |data|
129
136
dataValues=@headers.map do |header_name|
130
137
data[header_name]
131
138
end
132
139
csv<< dataValues
133
- puts dataValues.inspect
134
140
end
135
141
end
136
142
end #of request='insert'
137
143
138
- if @request =='update'
144
+ # if @request =='update'
139
145
140
- end
146
+ # end
141
147
142
- # puts '..........................final result'
143
- # puts @final.inspect
148
+ puts '..........................final result'
149
+ puts @final.inspect
144
150
end#of def run
145
151
end#of class
146
152
147
153
#HELPER FUNCTIONS
148
- def table_to_hashed(table_name,dataToInsert)
149
- if !File.exist?(table_name)
150
- CSV.open(table_name,"w") do |csv|
151
- #extract the headers from the @dataToInsert
152
- dataToInsert.each do |data|
153
- headers= data.map do |key,value| #get the key names as headers into an array,map returns anarray
154
- key
155
- end
156
- csv<<headers
157
- end
158
- end
159
- end
160
-
154
+ def table_to_hashed(table_name)
161
155
hashedData=CSV.parse(File.read(table_name),headers:true).map(&:to_h)
162
156
return hashedData
163
157
end
164
158
159
+ def create_csv_file(table_name,dataToInsert)
160
+ CSV.open(table_name,"w") do |csv|
161
+ #extract the headers from the @dataToInsert
162
+ dataToInsert.each do |data|
163
+ headers= data.map do |key,value| #get the key names as headers into an array,map returns anarray
164
+ key
165
+ end
166
+ csv<<headers
167
+ end
168
+ end
169
+ table_to_hashed(table_name)
170
+ end
171
+
172
+
165
173
166
174
167
175
def process_row(row,result_hash, selected_hash_array,columns)
@@ -208,8 +216,9 @@ def merge(left, right, &block)
208
216
result
209
217
end
210
218
211
- MySqliteRequest.insert('database.csv').values('firstname' => "Rahmat", 'lastname' => "Abdulfattah", 'age' => 25, 'password' => 'matrix').run()
212
-
219
+ # MySqliteRequest.insert('database.csv').values('firstname' => "Rahmat", 'lastname' => "Abdulfattah", 'age' => 25, 'password' => 'matrix').run()
220
+ MySqliteRequest.new.from('database.csv').select('firstname','lastname').where('firstname','Rahmat').run
221
+
213
222
# request = MySqliteRequest.new
214
223
# request = request.update('nba_player_data.csv')
215
224
# request = request.values('name' => 'Alaa Renamed')
0 commit comments