feat: enhance DataListStudentShort to filter items and add setter method for items

lab4
Artem-Darius Weber 3 months ago
parent 16b81a879f
commit 67e0c0561e

@ -2,7 +2,14 @@ require_relative './data_table'
class DataListStudentShort < DataList class DataListStudentShort < DataList
def initialize(items) def initialize(items)
super(items.select { |item| item.is_a?(StudentShort) }) filtered = items.select { |item| item.is_a?(StudentShort) }
super(filtered)
@items = filtered.dup
end
def items=(new_items)
filtered = new_items.select { |item| item.is_a?(StudentShort) }
@items = filtered.dup
end end
def get_names def get_names

@ -9,10 +9,22 @@ students = [
data_list = DataListStudentShort.new(students) data_list = DataListStudentShort.new(students)
puts "Столбцы: #{data_list.get_names.inspect}" puts "Столбцы: #{data_list.get_names.inspect}"
table = data_list.get_data table = data_list.get_data
(0...table.rows_count).each do |row|
puts (0...table.columns_count).map { |col| table.item(row, col) }.join(' | ')
end
new_students = [
StudentShort.new(id: '4', surname_initials: 'Новиков Н.Н.', phone: '+79994445566'),
StudentShort.new(id: '5', surname_initials: 'Кузнецов К.К.', email: 'kuznetsov@example.com')
]
data_list.items = new_students
puts "\nПосле замены:"
table = data_list.get_data
(0...table.rows_count).each do |row| (0...table.rows_count).each do |row|
puts (0...table.columns_count).map { |col| table.item(row, col) }.join(' | ') puts (0...table.columns_count).map { |col| table.item(row, col) }.join(' | ')
end end
Loading…
Cancel
Save