lab2 merge to main #4

Merged
darius-atlas merged 10 commits from lab2 into main 4 months ago
Owner

dev logs: #2

dev logs: https://git.djft.ru/darius-atlas/kubsu-sm5-ruby/issues/2
darius-atlas added 10 commits 4 months ago
fca36ccd9d
feat: add field validations to Student class and modify constructor
c1ca0ea845
feat: add validation methods for Git link and contact presence
1407d3e6fd
feat: Add contact validation and secure modification for Student class
8858731565
feat: add constructor for Student class to parse object from string representation
611c712b8a
feat: add `get_info` method and protected access to key student info
68ca94d4e9
feat: add StudentShort class with immutable fields and constructors
d387e12d7d
ref: Extract common functionality into Person superclass
acf69c4385
feat: Add read_from_txt method to Student class
darius-atlas merged commit bd196668af into main 4 months ago
Poster
Owner
  • Написать диаграмму классов

  • Реализовать в куске кода

def initialize(args = {})
      @id = args[:id] || nil
      @git = args[:git]
      validate
end

аргументы в {}

  • избавиться от метода validate поскольку он возвращает bool
- [x] Написать диаграмму классов - [x] Реализовать в куске кода ``` def initialize(args = {}) @id = args[:id] || nil @git = args[:git] validate end ``` аргументы в {} - [x] избавиться от метода validate поскольку он возвращает bool
Poster
Owner
  • почитать про attr_accessor
- [x] почитать про attr_accessor
Poster
Owner
> > - [x] почитать про attr_accessor https://medium.com/@rossabaker/what-is-the-purpose-of-attr-accessor-in-ruby-3bf3f423f573 https://www.rubyguides.com/2018/11/attr_accessor/
Poster
Owner
  • переопределение getter & setter

attr_accessor :id, :git: 
  • по диаграмме не видно где метод класса а где метод объекта.
  • contact_info() дублирует getter contact из short students
  • getters and setters не включены в диаграмму
- [ ] переопределение getter & setter ``` attr_accessor :id, :git: ``` - [ ] по диаграмме не видно где метод класса а где метод объекта. - [ ] contact_info() дублирует getter contact из short students - [ ] getters and setters не включены в диаграмму
Poster
Owner
  • есть дублирование:
def self.from_string(id, info_string)
      parts = info_string.split(', ').map(&:strip)
      surname_initials = parts[0]
      git = parts[1].split(': ').last
      contact = parts[2].split(': ').last
  
      new_instance = allocate
      new_instance.send(:initialize_from_data, id, surname_initials, git, contact)
      new_instance
    end

в StudentShort можно использовать конструктор из Student

- [ ] есть дублирование: ```ruby def self.from_string(id, info_string) parts = info_string.split(', ').map(&:strip) surname_initials = parts[0] git = parts[1].split(': ').last contact = parts[2].split(': ').last new_instance = allocate new_instance.send(:initialize_from_data, id, surname_initials, git, contact) new_instance end ``` в StudentShort можно использовать конструктор из Student
Poster
Owner
  • в Person сеттер и геттер на git, id, в инициализации написать вызов сеттера
- в Person сеттер и геттер на git, id, в инициализации написать вызов сеттера
The pull request has been merged as bd196668af.
Sign in to join this conversation.
No reviewers
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date

No due date set.

Dependencies

No dependencies set.

Reference: darius-atlas/kubsu-sm5-ruby#4
Loading…
There is no content yet.