Class: AddStudentController
- Inherits:
-
Object
- Object
- AddStudentController
- Defined in:
- lib/source/add_controller.rb,
lib/source/database/add_controller.rb
Direct Known Subclasses
Instance Method Summary collapse
-
#add_view(view) ⇒ Object
привязка view.
- #execute ⇒ Object
-
#initialize(student_list) ⇒ AddStudentController
constructor
A new instance of AddStudentController.
- #save_student(student) ⇒ Object
- #validate_fields(fields) ⇒ Object
Constructor Details
#initialize(student_list) ⇒ AddStudentController
Returns a new instance of AddStudentController.
6 7 8 9 |
# File 'lib/source/add_controller.rb', line 6 def initialize(student_list) @student_list = student_list @logger = Logger.new('controller_add.log') # Указывает путь и имя файла для логов end |
Instance Method Details
#add_view(view) ⇒ Object
привязка view
12 13 14 |
# File 'lib/source/add_controller.rb', line 12 def add_view(view) @view = view end |
#execute ⇒ Object
16 17 18 19 |
# File 'lib/source/add_controller.rb', line 16 def execute @view.execute @logger.info('Executing add student operation') end |
#save_student(student) ⇒ Object
21 22 23 24 |
# File 'lib/source/add_controller.rb', line 21 def save_student(student) @logger.info('Saving student') @student_list.add_student(student) end |
#validate_fields(fields) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/source/add_controller.rb', line 27 def validate_fields(fields) @logger.info('Validating fields') required_fields = [:first_name, :middle_name, :surname] # список обязательных полей if required_fields.all? { |field| fields.key?(field) } student = Student.new( first_name: fields[:first_name], middle_name: fields[:middle_name], surname: fields[:surname], id: fields[:id] || nil, git: fields[:git] || nil, phone_number: fields[:phone_number] || nil, mail: fields[:mail] || nil, telegram: fields[:telegram] || nil ) puts(student) return student else return nil end rescue ArgumentError => e @logger.error("Error occurred while validating fields: #{e.}") return nil end |