Class: StudentShort

Inherits:
Object
  • Object
show all
Defined in:
lib/source/models/student_short.rb

Direct Known Subclasses

Student

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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

#contactObject (readonly)

стандартные геттеры для класса



6
7
8
# File 'lib/source/models/student_short.rb', line 6

def contact
  @contact
end

#gitObject (readonly)

стандартные геттеры для класса



6
7
8
# File 'lib/source/models/student_short.rb', line 6

def git
  @git
end

#idObject (readonly)

стандартные геттеры для класса



6
7
8
# File 'lib/source/models/student_short.rb', line 6

def id
  @id
end

#initialsObject (readonly)

стандартные геттеры для класса



6
7
8
# File 'lib/source/models/student_short.rb', line 6

def initials
  @initials
end

#last_nameObject (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 и строку, которая содержит всю остальную инф-ю

Raises:

  • (ArgumentError)


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

метод проверяющий наличие контакта

Returns:

  • (Boolean)


48
49
50
# File 'lib/source/models/student_short.rb', line 48

def contact?
  !contact.nil?
end

#git?Boolean

метод проверяющий наличие гита

Returns:

  • (Boolean)


43
44
45
# File 'lib/source/models/student_short.rb', line 43

def git?
  !git.nil?
end

#last_name_and_initialsObject

метод возвращающий фамилию и инициалы у объекта



30
31
32
# File 'lib/source/models/student_short.rb', line 30

def last_name_and_initials
  "#{@last_name} #{@initials}"
end

#to_sObject

метод возвращающий представление объекта в виде строки



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

#validateObject



52
53
54
# File 'lib/source/models/student_short.rb', line 52

def validate
  git? && contact?
end