Sha256: 2de4116d1219276fa71ba7ee0df0bdb8136833bb154705348953f0d4a616b5e1

Contents?: true

Size: 905 Bytes

Versions: 3

Compression:

Stored size: 905 Bytes

Contents

require_relative '../model/StudentBase'
class StudentShort < StudentBase

	public_class_method :new

	#У нас уже есть некоторые гет\сет в базе, зачем же ещё?
	private
	attr_writer :fio, :contact, :git, :id

	public
	attr_reader :fio, :contact, :git, :id

	def self.from_student_class(student)
		StudentShort.new(student.id, student.get_info)
	end

	def initialize(id, str)
		info_short = str.split(',')
						.map{|x| x.split(':')}
						.map{|x| [x[0].to_sym, x[1]]}
						.to_h
		raise ArgumentError, 'Missing fields: fio' if info_short[:fio].nil?
		print(info_short)
		self.id=id
		self.fio = info_short[:fio]
		self.git = info_short[:git]
		info_short.delete_if{|k,v| k==:fio||k==:git}
		self.contact = info_short.values.first
	end


	def to_s

		[
			"#{id}, #{fio}, #{git}, #{contact}"
		].compact.join(' ')
	end
	
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
mc_gem-0.0.1 mc_gem/lib/source/model/Student_short.rb
mvcStudentXD-1.1.2 lib/model/Student_short.rb
mvcStudentXD-1.1.1 lib/model/Student_short.rb