class LUSI::API::Course::SyllabusRule

Represents a syllabus rule in the LUSI API

Attributes

level[RW]

@!attribute [rw] level

@return [String, nil] the level this rule applies to ('Module', 'Part II Year 3' etc.)
syllabus_rule_modules[RW]

@!attribute [rw] syllabus_rule_modules

@return [Array<LUSI::API::Course::SyllabusRuleModule>, nil] the list of modules included with this rule
type[RW]

@!attribute [rw] type

@return [LUSI::API::Course::SyllabusRuleType] the rule type

Public Class Methods

new(xml = nil, lookup = nil, level: nil, syllabus_rule_modules: nil, type: nil) click to toggle source

Initialises a new SyllabusRule instance @param xml [Nokogiri::XML::Document, Nokogiri::XML::Node] the parsed XML root of the syllabus rule @param lookup [LUSI::API::Core::Lookup::LookupService, nil] the lookup service for object resolution @param level [String, nil] the default rule level @param type [LUSI::API::Course::SyllabusRuleType, nil] the default rule type @param syllabus_rule_modules [Array<LUSI::API::Course::SyllabusRuleModule>, nil] the default rule modules @return [void]

# File lib/lusi_api/course.rb, line 1100
def initialize(xml = nil, lookup = nil, level: nil, syllabus_rule_modules: nil, type: nil)
  @level = LUSI::API::Core::XML.xml_content_at(xml, 'xmlns:Level', level)
  @syllabus_rule_modules = LUSI::API::Core::XML.xml(xml, 'xmlns:SyllabusRuleModuless/xmlns:SyllabusRuleModule',
                                                    syllabus_rule_modules) { |s| SyllabusRuleModule.new(s, lookup) }
  @type = SyllabusRuleType.new(LUSI::API::Core::XML.xml_at(xml, 'xmlns:Type', type), lookup)
end

Public Instance Methods

to_s() click to toggle source

Returns a string representation of the SyllabusRule instance @return [String] the string representation of the SyllabusRule instance

# File lib/lusi_api/course.rb, line 1109
def to_s
  "#{@level} #{@type}"
end