Sha256: 3bb88ca2ce1b4d120248c4f6c1c783fd4acc8739423600fe0bba06b157f014c9
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
# frozen_string_literal: true module Meibo class Course DataModel.define( self, attribute_name_to_header_field_map: { sourced_id: 'sourcedId', status: 'status', date_last_modified: 'dateLastModified', school_year_sourced_id: 'schoolYearSourcedId', title: 'title', course_code: 'courseCode', grades: 'grades', org_sourced_id: 'orgSourcedId', subjects: 'subjects', subject_codes: 'subjectCodes' }, converters: { datetime: [:date_last_modified], list: [:grades, :subjects, :subject_codes], required: [:sourced_id, :title, :org_sourced_id], status: [:status] } ) def initialize(sourced_id:, status: nil, date_last_modified: nil, school_year_sourced_id: nil, title:, course_code: nil, grades: [], org_sourced_id:, subjects: [], subject_codes: [], **extension_fields) unless subjects.is_a?(Array) && subject_codes.is_a?(Array) && subjects.size == subject_codes.size raise InvalidDataTypeError end @sourced_id = sourced_id @status = status @date_last_modified = date_last_modified @school_year_sourced_id = school_year_sourced_id @title = title @course_code = course_code @grades = grades @org_sourced_id = org_sourced_id @subjects = subjects @subject_codes = subject_codes @extension_fields = extension_fields end def organization Meibo.current_roster.organizations.find(org_sourced_id) end def school_year Meibo.current_roster.academic_sessions.find(school_year_sourced_id) end def classes Meibo.current_roster.classes.where(course_sourced_id: sourced_id) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
meibo-0.14.0 | lib/meibo/course.rb |