Class: StudentProgress::ProgressImporter
- Inherits:
-
Object
- Object
- StudentProgress::ProgressImporter
- Defined in:
- lib/student_progress/progress_importer.rb
Class Method Summary collapse
Class Method Details
.create_and_associate_progress(row) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# 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) ⇒ Object
5 6 7 8 9 10 11 12 13 14 |
# File 'lib/student_progress/progress_importer.rb', line 5 def self.import(url) = { headers: true, header_converters: :symbol } csv_file = open(url) content = File.new(csv_file) CSV.foreach(content, , &method(:create_and_associate_progress)) nil end |