Sha256: 948279d3ad3cf246b51539f1092781fdd6e255707e97dc72fede949f0b5511d1

Contents?: true

Size: 1.52 KB

Versions: 2

Compression:

Stored size: 1.52 KB

Contents

require 'date'
require_relative '../../models/student/student.rb'
require_relative './edit_contacts_presenter'

# == Replace_student_presenter
# Презентер для замены информации о студенте.
class Replace_student_presenter < Edit_student_presenter

  # Заполнение полей интерфейса текущими основными данными студента.
  def populate_fields
    self.get_student
    data = {
      "first_name" => self.student.first_name,
      "name" => self.student.name,
      "patronymic" => self.student.patronymic,
      "birthdate" => self.student.birthdate.strftime('%d.%m.%Y'),
    }
    self.view.update_view data
  end

  # Проверка валидности новых данных студента.
  #
  # @param student_data [Hash] Новые данные студента.
  # @return [Boolean] Возвращает true, если данные валидны и отличаются от текущих.
  def valid_data?(student_data)
    data = student_data.transform_values { |value| value.strip }
    self.logger.debug "Проверка валидности данных: #{data.to_s}"
    valid = super(data)
    unchanged = self.student.first_name == data["first_name"] &&
      self.student.name == data["name"] &&
      self.student.patronymic == data["patronymic"] &&
      self.student.birthdate.strftime('%d.%m.%Y') == data["birthdate"]
    res = valid && !unchanged
    self.logger.info "Валидность данных: #{res}"
    res
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
student_mvp-0.1.1 lib/presenters/edit_student/replace_student_presenter.rb
student_mvp-0.1.0 lib/presenters/edit_student/replace_student_presenter.rb