diff --git a/lab2/data_list_student_short.rb b/lab2/data_list_student_short.rb new file mode 100644 index 0000000..4e39671 --- /dev/null +++ b/lab2/data_list_student_short.rb @@ -0,0 +1,21 @@ +require_relative 'data_table' + +class DataListStudentShort < DataList + def get_names + ['№', 'Фамилия и инициалы', 'Телефон', 'Telegram', 'Email'] + end + + def get_data + data = @items.each_with_index.map do |student, index| + [ + index + 1, # id + student.surname_initials, # Фамилия и инициалы + student.phone || '-', # Телефон (или прочерк) + student.telegram || '-', # Telegram (или прочерк) + student.email || '-' # Email (или прочерк) + ] + end + + DataTable.new(data) + end +end \ No newline at end of file diff --git a/lab2/test_data_list_student_short.rb b/lab2/test_data_list_student_short.rb new file mode 100644 index 0000000..6c5923c --- /dev/null +++ b/lab2/test_data_list_student_short.rb @@ -0,0 +1,18 @@ +require_relative 'student_short' +require_relative 'data_list_student_short' + +students = [ + StudentShort.new(id: '1', surname_initials: 'Иванов И.И.', phone: '+79991112233'), + StudentShort.new(id: '2', surname_initials: 'Петров П.П.', telegram: '@petrov'), + StudentShort.new(id: '3', surname_initials: 'Сидоров С.С.', email: 'sidorov@mail.ru') +] + +data_list = DataListStudentShort.new(students) + +puts "Столбцы: #{data_list.get_names.inspect}" + +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 \ No newline at end of file