class CItem
Coursegen
Item decorates Nanoc Item
Attributes
assigned[R]
cat[R]
css_class[R]
desc[R]
due[R]
end_time[RW]
homework[R]
hwref[R]
identifier[R]
lectref[R]
lecture_date[RW]
lecture_number[RW]
nitem[R]
order[R]
reading[R]
section[R]
short_name[R]
slides[R]
start_time[RW]
status[R]
subsection[R]
subsection_citem[R]
title[R]
type[R]
Public Class Methods
new(nitem=nil, ident=nil, type=nil, order=nil)
click to toggle source
Callable with nitem=nil to create a mock
# File lib/coursegen/course/data/citem.rb, line 14 def initialize(nitem=nil, ident=nil, type=nil, order=nil) if !nitem.nil? # path to create a real citem fail ArgumentError, "invalid CItem contruction" unless ident.nil? @nitem = nitem defaults_from_nitem parse_identifier @nitem.identifier else # path to create a mock citem fail ArgumentError, "invalid CItem contruction" unless nitem.nil? @nitem = nil @status = nil @type = type @identifier = ident @order = order @title = ident @style = nil parse_identifier(ident) end end
Public Instance Methods
collapsed?()
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 47 def collapsed? @collapsed = @nitem[:collapsed].nil? ? true : @nitem[:collapsed] end
lecture?()
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 43 def lecture? !@lecture_date.nil? end
lecture_date_s()
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 51 def lecture_date_s @lecture_date.strftime('%a %b %-d') unless @lecture_date.nil? end
lecture_number_s()
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 71 def lecture_number_s "#{@section.singularize} #{@lecture_number}" end
schedule_end_date_time()
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 63 def schedule_end_date_time return if @lecture_date.nil? # schedule = Toc.instance.section(@section).schedule # lecture_date + schedule.end_time lecture_date + @end_time end
schedule_start_date_time()
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 55 def schedule_start_date_time return if @lecture_date.nil? # schedule = Toc.instance.section(@section).schedule # lecture_date + schedule.start_time lecture_date + @start_time end
Private Instance Methods
defaults_from_nitem()
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 77 def defaults_from_nitem @type = @nitem[:type] || 'page' fail ArgumentError, 'Invalid page type' unless ["page", "subsection"].include? @type @subsection = nil @status = @nitem[:status] @order = @nitem[:order].to_i unless @nitem[:order].nil? @identifier = @nitem.identifier @section = @nitem[:section] @title = @nitem[:title] @css_class = @nitem[:css_class] @homework = @nitem[:homework] @desc = @nitem[:desc] @cat = @nitem[:cat] @hwref = @nitem[:hwref] @assigned = @nitem[:assigned] @slides = @nitem[:slides] @lectref = @nitem[:lectref] @reading = @nitem[:reading] @due = @nitem[:due] end
parse_identifier(ident)
click to toggle source
# File lib/coursegen/course/data/citem.rb, line 100 def parse_identifier(ident) parts = ident.to_s.split("/") @section ||= parts[2] # parsed_title = parts[-1].match(/^((\d*)_)?([^\/]*)$/) parsed_title = parts[-1].match(/^((\d*)_)?(\w*)/) fail "Invalid item title" if parsed_title.nil? @order ||= parsed_title[2].to_i @short_name = parsed_title[3] @title ||= short_name if @type == "subsection" @subsection = "/#{parts[1..-2].join('/')}/" # @subsection = "/#{parts[1..-1].join('/')}/" elsif @type == "page" @subsection = "/#{parts[1..-2].join('/')}/" end end