Sha256: 3922df0f49ce7937534f6090d580bd4341ea69d2bf8d7bd0ae44340548366752
Contents?: true
Size: 1.01 KB
Versions: 2
Compression:
Stored size: 1.01 KB
Contents
# frozen_string_literal: true require 'json' require_relative "../../support/meta_code" require_relative "./student_abstract.rb" class StudentShort < AbstractStudent attr_reader :fio private_attr_writer :git, :contact, :id, :fio def initialize(id:, fio:, git:, contact:) self.id = id self.fio = fio self.git = git self.contact = contact end def self.from_student(student) StudentShort.new( id: student.id, fio: "#{student.first_name} #{student.last_name.upcase[0]}. #{student.paternal_name.upcase[0]}.", git: student.git, contact: student.contact ) end def self.from_json(json) result = JSON.parse(json) raise ArgumentError, 'Missing field: fio' unless result.key?('fio') fio = result.delete('fio') StudentShort.new( id: result['id'], fio: fio, git: result['git'], contact: result['contact'] ) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rybish_code-2.0.0 | lib/source/models/student/student_short.rb |
rybish_code-1.1.6 | lib/source/models/student/student_short.rb |