Class: Meibo::Course
Class Method Summary
collapse
Instance Method Summary
collapse
-
#classes ⇒ Object
-
#collection ⇒ Object
-
#initialize(sourced_id:, title:, org_sourced_id:, status: nil, date_last_modified: nil, school_year_sourced_id: nil, course_code: nil, grades: [], subjects: [], subject_codes: [], **extension_fields) ⇒ Course
constructor
A new instance of Course.
-
#organization ⇒ Object
-
#school_year ⇒ Object
Methods included from DataModel
#deconstruct, #deconstruct_keys, included, #lineno, #to_a, #to_csv, #to_h
Constructor Details
#initialize(sourced_id:, title:, org_sourced_id:, status: nil, date_last_modified: nil, school_year_sourced_id: nil, course_code: nil, grades: [], subjects: [], subject_codes: [], **extension_fields) ⇒ Course
Returns a new instance of Course.
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/meibo/course.rb', line 40
def initialize(sourced_id:, title:, org_sourced_id:, status: nil, date_last_modified: nil, school_year_sourced_id: nil,
course_code: nil, grades: [], subjects: [], subject_codes: [], **extension_fields)
raise SubjectsAndSubjectCodesLengthNotMatch unless subjects.is_a?(Array) && subject_codes.is_a?(Array) && subjects.size == subject_codes.size
@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
|
Class Method Details
.parse(csv) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
|
# File 'lib/meibo/course.rb', line 27
def self.parse(csv)
return to_enum(:parse, csv) unless block_given?
_parse(csv).with_index(1) do |row, line|
yield new(**row.to_h)
rescue SubjectsAndSubjectCodesLengthNotMatch
index = attribute_names.index(:subjects)
field = row[index]
field_info = CSV::FieldInfo.new(index, line, :subjects, false)
raise InvalidDataTypeError.new(field: field, field_info: field_info)
end
end
|
Instance Method Details
#classes ⇒ Object
69
70
71
|
# File 'lib/meibo/course.rb', line 69
def classes
Meibo.current_roster.classes.where(course_sourced_id: sourced_id)
end
|
#organization ⇒ Object
61
62
63
|
# File 'lib/meibo/course.rb', line 61
def organization
Meibo.current_roster.organizations.find(org_sourced_id)
end
|
#school_year ⇒ Object
65
66
67
|
# File 'lib/meibo/course.rb', line 65
def school_year
Meibo.current_roster.academic_sessions.find(school_year_sourced_id) if school_year_sourced_id
end
|