Class: Tableau::Module

Inherits:
Object
  • Object
show all
Defined in:
lib/tableau/module.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id, options = {}) ⇒ Module

Returns a new instance of Module.



6
7
8
9
10
11
# File 'lib/tableau/module.rb', line 6

def initialize(id, options = {})
  @module_id = id

  @name    = options[:name] || ''
  @classes = options[:classes] || Tableau::ClassArray.new
end

Instance Attribute Details

#classesObject (readonly)

Returns the value of attribute classes.



4
5
6
# File 'lib/tableau/module.rb', line 4

def classes
  @classes
end

#module_idObject (readonly)

Returns the value of attribute module_id.



4
5
6
# File 'lib/tableau/module.rb', line 4

def module_id
  @module_id
end

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/tableau/module.rb', line 4

def name
  @name
end

Instance Method Details

#add_class(new_class) ⇒ Object

Add a class to the module



14
15
16
# File 'lib/tableau/module.rb', line 14

def add_class(new_class)
  @classes << new_class
end

#classes_for_day(day) ⇒ Object

Returns an array of all the classes for the day



19
20
21
22
23
# File 'lib/tableau/module.rb', line 19

def classes_for_day(day)
  days_classes = Tableau::ClassArray.new
  @classes.each { |c| days_classes << c if c.day == day }
  days_classes.count > 0 ? days_classes : nil
end

#earliest_classObject

Returns the earliest class in the module



26
27
28
29
30
# File 'lib/tableau/module.rb', line 26

def earliest_class
  earliest = @classes.first
  @classes.each { |c| earliest = c if c.time < earliest.time }
  earliest
end

#latest_classObject

Returns the latest class in the module



33
34
35
36
37
# File 'lib/tableau/module.rb', line 33

def latest_class
  latest = @classes.first
  @classes.each { |c| latest = c if c.time > latest.time }
  latest
end