Class: StudentShort
- Inherits:
-
Object
- Object
- StudentShort
- Defined in:
- lib/source/models/student_short.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#contact ⇒ Object
readonly
стандартные геттеры для класса.
-
#git ⇒ Object
readonly
стандартные геттеры для класса.
-
#id ⇒ Object
readonly
стандартные геттеры для класса.
-
#initials ⇒ Object
readonly
стандартные геттеры для класса.
-
#last_name ⇒ Object
readonly
стандартные геттеры для класса.
Class Method Summary collapse
-
.from_str(id, str) ⇒ Object
кастомный конструктор, принимающий на вход id и строку, которая содержит всю остальную инф-ю.
Instance Method Summary collapse
-
#contact? ⇒ Boolean
метод проверяющий наличие контакта.
-
#git? ⇒ Boolean
метод проверяющий наличие гита.
-
#initialize(student) ⇒ StudentShort
constructor
стандартный конструктор, принимающий аргументов экземпляр класса student.
-
#last_name_and_initials ⇒ Object
метод возвращающий фамилию и инициалы у объекта.
-
#to_s ⇒ Object
метод возвращающий представление объекта в виде строки.
- #validate ⇒ Object
Constructor Details
#initialize(student) ⇒ StudentShort
стандартный конструктор, принимающий аргументов экземпляр класса student
9 10 11 12 13 14 15 16 |
# File 'lib/source/models/student_short.rb', line 9 def initialize(student) @id = student.id @last_name = student.last_name @initials = "#{student.first_name[0]}. #{student.paternal_name[0]}." @git = student.git unless student.git.nil? @contact = student.set_contacts(phone: student.phone, email: student.email, telegram: student.telegram) end |
Instance Attribute Details
#contact ⇒ Object (readonly)
стандартные геттеры для класса
6 7 8 |
# File 'lib/source/models/student_short.rb', line 6 def contact @contact end |
#git ⇒ Object (readonly)
стандартные геттеры для класса
6 7 8 |
# File 'lib/source/models/student_short.rb', line 6 def git @git end |
#id ⇒ Object (readonly)
стандартные геттеры для класса
6 7 8 |
# File 'lib/source/models/student_short.rb', line 6 def id @id end |
#initials ⇒ Object (readonly)
стандартные геттеры для класса
6 7 8 |
# File 'lib/source/models/student_short.rb', line 6 def initials @initials end |
#last_name ⇒ Object (readonly)
стандартные геттеры для класса
6 7 8 |
# File 'lib/source/models/student_short.rb', line 6 def last_name @last_name end |
Class Method Details
.from_str(id, str) ⇒ Object
кастомный конструктор, принимающий на вход id и строку, которая содержит всю остальную инф-ю
19 20 21 22 23 24 25 26 27 |
# File 'lib/source/models/student_short.rb', line 19 def self.from_str(id, str) result = JSON.parse(str) raise ArgumentError, 'Missing fields: last_name, first_name, paternal_name' unless result.key?('first_name') && result.key?('last_name') && result.key?('paternal_name') StudentShort.new(Student.new(result['last_name'],result['first_name'],result['paternal_name'],id: id, phone: result['phone'], git: result['git'], email: result['email'],telegram: result['telegram'])) end |
Instance Method Details
#contact? ⇒ Boolean
метод проверяющий наличие контакта
48 49 50 |
# File 'lib/source/models/student_short.rb', line 48 def contact? !contact.nil? end |
#git? ⇒ Boolean
метод проверяющий наличие гита
43 44 45 |
# File 'lib/source/models/student_short.rb', line 43 def git? !git.nil? end |
#last_name_and_initials ⇒ Object
метод возвращающий фамилию и инициалы у объекта
30 31 32 |
# File 'lib/source/models/student_short.rb', line 30 def last_name_and_initials "#{@last_name} #{@initials}" end |
#to_s ⇒ Object
метод возвращающий представление объекта в виде строки
35 36 37 38 39 40 |
# File 'lib/source/models/student_short.rb', line 35 def to_s result = last_name_and_initials result += " id= #{id} " unless id.nil? result += contact unless contact.nil? result end |
#validate ⇒ Object
52 53 54 |
# File 'lib/source/models/student_short.rb', line 52 def validate git? && contact? end |