module Database

Public Instance Methods

connect_db() click to toggle source
# File lib/lector/database.rb, line 2
def connect_db
  puts "Connecting to MySQL DB at #{@config[:db_host]}"
  ActiveRecord::Base.establish_connection(
    adapter: 'mysql2',
    host: @config[:db_host],
    database: @config[:db_database],
    username: @config[:db_username],
    password: @config[:db_password]
  )
end
save_course(info) click to toggle source
# File lib/lector/database.rb, line 36
def save_course(info)
  info.delete(:type)

  # DB throws error if doesn't exist so resort to nil if throws
  course = Course.find(info[:id]) rescue nil

  if course.nil?  
    course = Course.create(info)
  else
    course.update(info)
  end

  course.save!
  course
end
save_person(info) click to toggle source

Determine staff or student

# File lib/lector/database.rb, line 27
def save_person(info)
  return case info[:type]
    when :student
      save_student(info)
    else
      save_staff(info)
    end
end
save_staff(info) click to toggle source
# File lib/lector/database.rb, line 52
def save_staff(info)
  info.delete(:type)

  # DB throws error if doesn't exist so resort to nil if throws
  staff = Staff.find(info[:id]) rescue nil

  course_ids = info.delete(:course_ids)

  if staff.nil?
    staff = Staff.create(info)
  else
    staff.update(info)
  end

  staff.courses = Course.where(id: course_ids)  # Throws error if courses don't exist

  staff.save!
  staff
end
save_student(info) click to toggle source
# File lib/lector/database.rb, line 72
def save_student(info)
  info.delete(:type)

  # DB throws error if doesn't exist so resort to nil if throws
  student = Student.find(info[:id]) rescue nil

  course_ids = info.delete(:course_ids)

  if student.nil?
    student = Student.create(info)
  else
    student.update(info)
  end

  student.courses = Course.where(id: course_ids) # Throws error if courses don't exist

  student.save!
  student
end