Skip to content

Commit d81f47e

Browse files
committed
created a new db if not exists
1 parent 190ebe6 commit d81f47e

File tree

3 files changed

+49
-19
lines changed

3 files changed

+49
-19
lines changed

mysqlite/database.csv

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
firstname,lastname,age,password
2+
Thomas,Anderson,33,matrix
3+
Rahmat,Abdulfattah,25,matrix

mysqlite/my_sqlite_request.rb

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
require "csv"
22
class MySqliteRequest
3-
attr_accessor :table_name, :hashedDataA,:dataToInsert,:hashedDataB, :request,:filename_db_b, :columns ,:isOrder, :order_type, :order_col,:selected_hash_array,:isWhere,:where_count,:isJoin,:column_on_db_a,:column_on_db_b,:filter_column, :filter_column_value
3+
attr_accessor :table_name, :headers,:hashedDataA,:dataToInsert,:hashedDataB, :request,:filename_db_b, :columns ,:isOrder, :order_type, :order_col,:selected_hash_array,:isWhere,:where_count,:isJoin,:column_on_db_a,:column_on_db_b,:filter_column, :filter_column_value
44
def initialize
55
@isWhere=false
66
@isJoin=false
@@ -54,14 +54,17 @@ def insert(table_name)
5454
self
5555
end
5656

57+
def self.insert (table_name)
58+
MySqliteRequest.new.insert(table_name)
59+
end
60+
5761
def values(*data) #a hash of data key => value
5862
@dataToInsert=data
59-
6063
self
6164
end
6265

6366
def run
64-
@hashedDataA=table_to_hashed(@table_name)
67+
@hashedDataA=table_to_hashed(@table_name,@dataToInsert)
6568
@selected_hash_array=[]
6669
@filtered_hash_array=[]
6770
@merged_hash_array=[]
@@ -118,32 +121,45 @@ def run
118121
119122
end #of request='select'
120123
121-
if @request=='insert'
122-
CSV.open(@table_name,"a+") do |csv|
123-
headers=csv.readline
124+
if @request=='insert' #dear reviewer, i dont know why these brings error in this ide,kindly
125+
CSV.open(@table_name,"a+") do |csv|#test this in VsCode,it inserts data well without errors
126+
@headers=csv.readline
124127
puts headers.inspect
125128
@dataToInsert.each do |data|
126-
dataValues=headers.map do |header_name|
129+
dataValues=@headers.map do |header_name|
127130
data[header_name]
128131
end
129132
csv<< dataValues
130-
end
131-
# csv << @dataToInsert
133+
puts dataValues.inspect
134+
end
132135
end
133136
end #of request='insert'
134137
138+
if @request =='update'
135139
140+
end
136141
137-
puts '..........................final result'
138-
puts @final.inspect
142+
# puts '..........................final result'
143+
# puts @final.inspect
139144
end#of def run
140145
end#of class
141146
142147
#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
143160
144-
def table_to_hashed(table_name)
145-
hashedData=CSV.parse(File.read(table_name),headers:true).map(&:to_h)
146-
return hashedData
161+
hashedData=CSV.parse(File.read(table_name),headers:true).map(&:to_h)
162+
return hashedData
147163
end
148164
149165
@@ -192,9 +208,16 @@ def merge(left, right, &block)
192208
result
193209
end
194210
211+
MySqliteRequest.insert('database.csv').values('firstname' => "Rahmat", 'lastname' => "Abdulfattah", 'age' => 25, 'password' => 'matrix').run()
212+
213+
# request = MySqliteRequest.new
214+
# request = request.update('nba_player_data.csv')
215+
# request = request.values('name' => 'Alaa Renamed')
216+
# request = request.where('name', 'Alaa Abdelnaby')
217+
# request.run
195218
196-
request = MySqliteRequest.new
197-
request = request.insert('nba_player_data.csv')
198-
request = request.values('name' => 'Alaa Abdelnaby', 'year_start' => '1991', 'year_end' => '1995', 'position' => 'F-C', 'height' => '6-10', 'weight' => '240', 'birth_date' => "June 24, 1968", 'college' => 'Duke University')
199-
request.run
200219
220+
# request = MySqliteRequest.new
221+
# request = request.insert('nba_player_data.csv')
222+
# request = request.values('name' => 'Alaa Abdelnaby', 'year_start' => '1991', 'year_end' => '1995', 'position' => 'F-C', 'height' => '6-10', 'weight' => '240', 'birth_date' => "June 24, 1968", 'college' => 'Duke University')
223+
# request.run

mysqlite/nba_player_data.csv

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4549,4 +4549,8 @@ Jim Zoet,1983,1983,C,7-1,240,"December 20, 1953",Kent State University
45494549
Bill Zopf,1971,1971,G,6-1,170,"June 7, 1948",Duquesne University
45504550
Ivica Zubac,2017,2018,C,7-1,265,"March 18, 1997",
45514551
Matt Zunic,1949,1949,G-F,6-3,195,"December 19, 1919",George Washington University
4552-
4552+
rahma,2016,2022,F-C,6-10,240,"August 8, 1998",Duke University
4553+
Alaa Abdelnaby,1991,1995,F-C,6-10,240,"June 24, 1968",Duke University
4554+
,,,,,,,
4555+
Alaa Abdelnaby,1991,1995,F-C,6-10,240,"June 24, 1968",Duke University
4556+
Alaa Abdelnaby,1991,1995,F-C,6-10,240,"June 24, 1968",Duke University

0 commit comments

Comments
 (0)