Class: ShnaiderCode::DataList

Inherits:
Object
  • Object
show all
Includes:
DataListNotifier
Defined in:
lib/source/data_list.rb,
lib/source/data_list.rb

Direct Known Subclasses

DataListStudentShort

Instance Attribute Summary collapse

Attributes included from DataListNotifier

#data_list_observers

Instance Method Summary collapse

Constructor Details

#initialize(list:) ⇒ DataList

Returns a new instance of DataList.



19
20
21
22
# File 'lib/source/data_list.rb', line 19

def initialize(list:)
    self.data_list_observers = []
    self.list = list
end

Instance Attribute Details

#listObject

Returns the value of attribute list.



17
18
19
# File 'lib/source/data_list.rb', line 17

def list
  @list
end

Instance Method Details

#add_observer(observer) ⇒ Object



51
52
53
# File 'lib/source/data_list.rb', line 51

def add_observer(observer)
    self.data_list_observers << observer
end

#get_dataObject



37
38
39
# File 'lib/source/data_list.rb', line 37

def get_data
    raise "Метод не реализован"
end

#get_namesObject



33
34
35
# File 'lib/source/data_list.rb', line 33

def get_names
    raise "Метод не реализован"
end

#get_selected_objectsObject



28
29
30
31
# File 'lib/source/data_list.rb', line 28

def get_selected_objects
    (0...list.size)
        .filter { |x| selected_objects.include? x }
end

#notifyObject



45
46
47
48
49
# File 'lib/source/data_list.rb', line 45

def notify
    data_list_observers.each { |observer|
        observer.notify(self.get_data)
    }
end

#remove_observer(observer) ⇒ Object



55
56
57
# File 'lib/source/data_list.rb', line 55

def remove_observer(observer)
    self.data_list_observers.delete(observer) 
end

#select(index) ⇒ Object



24
25
26
# File 'lib/source/data_list.rb', line 24

def select(index)
    selected_objects << index
end