Class: DataList

Inherits:
Object
  • Object
show all
Defined in:
lib/source/all_data/data_list.rb

Direct Known Subclasses

DataListStudentShort

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(objects) ⇒ DataList

Returns a new instance of DataList.



5
6
7
8
9
# File 'lib/source/all_data/data_list.rb', line 5

def initialize(objects)
  self.sel_objects = []
  self.list = objects
  @observers = []
end

Instance Attribute Details

#list=(value) ⇒ Object

Sets the attribute list

Parameters:

  • value —

    the value to set the attribute list to.



4
5
6
# File 'lib/source/all_data/data_list.rb', line 4

def list=(value)
  @list = value
end

Instance Method Details

#add_observer(observer) ⇒ Object



11
12
13
# File 'lib/source/all_data/data_list.rb', line 11

def add_observer(observer)
  @observers.append(observer)
end

#clear_select ⇒ Object



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

def clear_select
  self.sel_objects = []
end

#clear_selected ⇒ Object



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

def clear_selected
  self.sel_objects = []
end

#get_data ⇒ Object

def get_selected list_id=[] sel_objects.each do |i| list_id.append(list.id) end list_id end



44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/source/all_data/data_list.rb', line 44

def get_data
  result = []
  id = 0
  list.each do |o|
    elem = []
    elem << id
    # * необходима так как, если нам передадут [1,2,3], то передастся row.push(1,2,3)
    elem.push(*table_fields(o))
    result << elem
    id += 1
  end
  DataTable.new(result)
end

#get_names ⇒ Object



63
64
65
# File 'lib/source/all_data/data_list.rb', line 63

def get_names

end

#get_select ⇒ Object



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

def get_select
  sel_objects.inject([]) {|res, index| res<<list[index].id}
end

#notify ⇒ Object



15
16
17
# File 'lib/source/all_data/data_list.rb', line 15

def notify
  @observers.each { |observer| observer.on_datalist_changed(get_data) }
end

#replace_objects(objects_list) ⇒ Object



58
59
60
61
# File 'lib/source/all_data/data_list.rb', line 58

def replace_objects(objects_list)
  self.list=objects_list.dup
  notify
end

#select(number) ⇒ Object

Raises:

  • (ArgumentError)


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

def select(number)
  raise ArgumentError, "arg 'number' not Integer" if number.class != Integer
  sel_objects.append(number)
end

#table_fields(object) ⇒ Object



67
68
69
# File 'lib/source/all_data/data_list.rb', line 67

def table_fields(object)
  []
end