Class: PowerAPI::Parser
- Inherits:
-
Object
- Object
- PowerAPI::Parser
- Defined in:
- lib/powerapi/parser.rb
Class Method Summary collapse
- .assignment_categories(raw_assignment_categories) ⇒ Object
- .assignment_scores(raw_assignment_scores) ⇒ Object
- .assignments(raw_assignments, assignment_categories, assignment_scores) ⇒ Object
- .final_grades(raw_final_grades) ⇒ Object
- .reporting_terms(raw_reporting_terms) ⇒ Object
- .sections(raw_sections, assignments, final_grades, reporting_terms, teachers) ⇒ Object
- .teachers(raw_teachers) ⇒ Object
Class Method Details
.assignment_categories(raw_assignment_categories) ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/powerapi/parser.rb', line 21 def self.assignment_categories(raw_assignment_categories) assignment_categories = {} raw_assignment_categories.each do |assignment_category| assignment_categories[assignment_category["id"]] = assignment_category end assignment_categories end |
.assignment_scores(raw_assignment_scores) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/powerapi/parser.rb', line 31 def self.assignment_scores(raw_assignment_scores) assignment_scores = {} raw_assignment_scores.each do |assignment_score| assignment_scores[assignment_score["assignmentId"]] = assignment_score end assignment_scores end |
.assignments(raw_assignments, assignment_categories, assignment_scores) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/powerapi/parser.rb', line 3 def self.assignments(raw_assignments, assignment_categories, assignment_scores) assignments = {} raw_assignments.each do |assignment| if assignments[assignment["sectionid"]] == nil assignments[assignment["sectionid"]] = [] end assignments[assignment["sectionid"]] << PowerAPI::Data::Assignment.new({ :assignment => assignment, :category => assignment_categories[assignment["categoryId"]], :score => assignment_scores[assignment["id"]], }) end assignments end |
.final_grades(raw_final_grades) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/powerapi/parser.rb', line 41 def self.final_grades(raw_final_grades) final_grades = {} raw_final_grades.each do |final_grade| if final_grades[final_grade["sectionid"]] == nil final_grades[final_grade["sectionid"]] = [] end final_grades[final_grade["sectionid"]] << final_grade end final_grades end |
.reporting_terms(raw_reporting_terms) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# File 'lib/powerapi/parser.rb', line 55 def self.reporting_terms(raw_reporting_terms) reporting_terms = {} raw_reporting_terms.each do |reporting_term| reporting_terms[reporting_term["id"]] = reporting_term["abbreviation"] end reporting_terms end |
.sections(raw_sections, assignments, final_grades, reporting_terms, teachers) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/powerapi/parser.rb', line 65 def self.sections(raw_sections, assignments, final_grades, reporting_terms, teachers) sections = [] raw_sections.each do |section| # PowerSchool will return sections that have not started yet. # These are stripped since none of the official channels display them. if DateTime.parse(section["enrollments"]["startDate"]).strftime("%s").to_i > DateTime.now.strftime("%s").to_i next end sections << PowerAPI::Data::Section.new({ :assignments => assignments[section["id"]], :final_grades => final_grades[section["id"]], :reporting_terms => reporting_terms, :section => section, :teacher => teachers[section["teacherID"]] }) end sections = sections.sort_by{|section| [section.expression, section.name]} sections end |
.teachers(raw_teachers) ⇒ Object
89 90 91 92 93 94 95 96 97 |
# File 'lib/powerapi/parser.rb', line 89 def self.teachers(raw_teachers) teachers = {} raw_teachers.each do |teacher| teachers[teacher["id"]] = teacher end teachers end |