Created
October 30, 2012 05:05
-
-
Save arn-e/3978412 to your computer and use it in GitHub Desktop.
sqlite sample
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'csv' | |
require 'sqlite3' | |
class CongressMembers | |
def initialize | |
@list = [] | |
@db = SQLite3::Database.new "test.db" | |
CSV.foreach("politicians.csv", :headers => :first_row, :header_converters => :symbol) do |row| | |
@list << Politician.new(row[:name], row[:party], row[:location], row[:grade_level_since_1996], row[:grade_level_112th_congress], row[:years_in_congress], row[:dw1_score]) | |
end | |
end | |
def create_database | |
rows = @db.execute <<-SQL | |
create table congress_members ( | |
id INTEGER PRIMARY KEY AUTOINCREMENT, | |
name varchar(60), | |
party varchar(20), | |
location varchar(50), | |
grade_level_since_1996 varchar(50), | |
grade_level_112th_congress varchar(50), | |
years_in_congress int, | |
dw1_score double | |
); | |
SQL | |
end | |
def write_to_db | |
@list.each do |row| | |
@db.execute("insert into congress_members (name, party, location, grade_level_since_1996, grade_level_112th_congress, years_in_congress, dw1_score) values (?,?,?,?,?,?,?)", [row.name, row.party, row.location, row.grade_level_since_1996, row.grade_level_112th_congress, row.years_in_congress, row.dw1_score]) | |
end | |
end | |
def select_from_db | |
p @db.execute("select * from congress_members limit 5;") | |
end | |
end | |
class Politician | |
attr_reader :name, :party, :location, :grade_level_since_1996, :grade_level_112th_congress, :years_in_congress, :dw1_score | |
def initialize(name,party,location,grade_level_since_1996,grade_level_112th_congress,years_in_congress,dw1_score) | |
@name = name | |
@party = party | |
@location = location | |
@grade_level_since_1996 = grade_level_since_1996 | |
@grade_level_112th_congress = grade_level_112th_congress | |
@years_in_congress = years_in_congress | |
@dw1_score = dw1_score | |
end | |
end | |
c = CongressMembers.new | |
c.select_from_db |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment