class StudentProgress::ProgressImporter
Public Class Methods
create_and_associate_progress(row)
click to toggle source
# File lib/student_progress/progress_importer.rb, line 16 def self.create_and_associate_progress(row) # Example Row: #<CSV::Row # first_name:"Brennan" # last_name:"Fulmer" # deprecated_github_username:"BrennanFulmer" # curriculum_id:"31648" # completed_at:"2018-07-26 19:12:46.353279" # track_id:"31303" # title:"Rails Static Request" # > student = StudentProgress::Student.first(github_username: row[:deprecated_github_username].downcase) lesson = StudentProgress::Lesson.find_by_id(row[:curriculum_id].to_i) if student && lesson if completed = StudentProgress::CompletedLesson.first(student_id: student.id, lesson_id: lesson.id) return else completed = StudentProgress::CompletedLesson.create(student_id: student.id, lesson_id: lesson.id) completed.date = row[:completed_at] completed.save end else binding.pry end end
import(url)
click to toggle source
# File lib/student_progress/progress_importer.rb, line 5 def self.import(url) options = { headers: true, header_converters: :symbol } csv_file = open(url) content = File.new(csv_file) CSV.foreach(content, options, &method(:create_and_associate_progress)) nil end