Skip to content

Instantly share code, notes, and snippets.

@juliends
Created November 2, 2017 18:23
Show Gist options
  • Save juliends/4c675d8d03e5f2069fe19ac3a2ddf033 to your computer and use it in GitHub Desktop.
Save juliends/4c675d8d03e5f2069fe19ac3a2ddf033 to your computer and use it in GitHub Desktop.
employees_repo_with_db
require "sqlite3"
require_relative "../models/employee"
class EmployeesRepository
def initialize
@db = SQLite3::Database.new('food_delivery.db')
@db.results_as_hash = true
@employees = []
load_from_db
end
def all
@employees
end
def find(employee_id)
@employees.find { |employee| employee.id == employee_id }
end
private
def load_from_db
results = @db.execute('SELECT * FROM employees')
results.each do |row|
# {"id"=>1, "username"=>"john", "password"=>"1234", "manager"=>"true", 0=>1, 1=>"john", 2=>"1234", 3=>"true"}
symbolized_hash = {}
row.each do |key, value|
symbolized_hash[key.to_sym] = value if key.is_a?(String)
end
@employees << Employee.new(symbolized_hash)
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment