Skip to content

Instantly share code, notes, and snippets.

@arn-e
Created October 30, 2012 05:05
Show Gist options
  • Save arn-e/3978412 to your computer and use it in GitHub Desktop.
Save arn-e/3978412 to your computer and use it in GitHub Desktop.
sqlite sample
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