Sha256: 8a987326eb78226223d03c3669af33d9a2f1912840ddbbb0ec1c7a94e333c8d2

Contents?: true

Size: 1.02 KB

Versions: 9

Compression:

Stored size: 1.02 KB

Contents

class StudentListFormat
    attr_private_accessor :students
    attr_accessor :formater

    def initialize(formater)
        self.formater = formater
    end

    def read_from(filename)
        self.students = formater.read_from(filename)
    end

    def write_to(filename)
        formater.write_to(filename, self.students)
    end

    def get_student(id)
        self.students.detect { |x|
            x.id == id .to_s
        }
    end

    def add_student(student)
        self.students << student
    end

    def delete_student(id)
        index = students.index(students.detect { |x| x.id == id.to_s })
        self.students.delete_at(index)
    end

    def replace_student(id, student)
        self.students.map! { |x| x.id == id.to_s ? student : x }
    end

    def get_students_slice(k, count)
        from = [k * count, self.students.count].min
        to = [self.students.count, from + count].min
    end

    def count()
        self.students.count
    end

    def sort()
        self.students.sort_by(&:fio_info)
    end
end

Version data entries

9 entries across 9 versions & 2 rubygems

Version Path
mc_delta-0.4.0 lib/source/student_list_format.rb
mc_delta-0.3.0 lib/source/student_list_format.rb
mc_delta-0.2.0 lib/source/student_list_format.rb
mc_delta-0.1.0 lib/source/student_list_format.rb
model_gem-0.2.0 lib/model_gem_source/student_list_format.rb
model_gem-0.1.9 lib/model_gem_source/student_list_format.rb
model_gem-0.1.8 lib/model_gem_source/student_list_format.rb
model_gem-0.1.7 ./model_gem_source/student_list_format.rb
model_gem-0.1.6 ./model_gem_source/student_list_format.rb