student_mvp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/README.md +35 -0
- data/Rakefile +4 -0
- data/doc/Add_student_presenter.html +238 -0
- data/doc/App_logger.html +386 -0
- data/doc/Base_presenter.html +265 -0
- data/doc/Binary_tree.html +300 -0
- data/doc/Binary_tree_iterator.html +217 -0
- data/doc/Contact_sort_decorator.html +219 -0
- data/doc/DB_client.html +252 -0
- data/doc/Data_list.html +625 -0
- data/doc/Data_list_student_short.html +148 -0
- data/doc/Data_storage_strategy.html +178 -0
- data/doc/Data_table.html +264 -0
- data/doc/Deep_dup.html +152 -0
- data/doc/Edit_contacts_presenter.html +199 -0
- data/doc/Edit_git_presenter.html +192 -0
- data/doc/Edit_student_presenter.html +464 -0
- data/doc/Field_filter_decorator.html +219 -0
- data/doc/Filter.html +148 -0
- data/doc/Filter_decorator.html +209 -0
- data/doc/Full_name_filter_decorator.html +211 -0
- data/doc/Full_name_sort_decorator.html +217 -0
- data/doc/Gemfile.html +98 -0
- data/doc/Git_sort_decorator.html +220 -0
- data/doc/Has_not_field_filter_decorator.html +209 -0
- data/doc/JSON_storage_strategy.html +183 -0
- data/doc/Person.html +511 -0
- data/doc/README_md.html +147 -0
- data/doc/Rakefile.html +94 -0
- data/doc/Replace_student_presenter.html +204 -0
- data/doc/Sort_decorator.html +214 -0
- data/doc/Student.html +755 -0
- data/doc/StudentMvp/Error.html +105 -0
- data/doc/StudentMvp.html +111 -0
- data/doc/Student_list_presenter.html +667 -0
- data/doc/Student_short.html +398 -0
- data/doc/Students_list.html +341 -0
- data/doc/Students_list_DB.html +361 -0
- data/doc/Students_list_file.html +460 -0
- data/doc/Students_list_file_adapter.html +341 -0
- data/doc/Students_list_interface.html +298 -0
- data/doc/YAML_storage_strategy.html +183 -0
- data/doc/bin/setup.html +96 -0
- data/doc/created.rid +44 -0
- data/doc/css/fonts.css +167 -0
- data/doc/css/rdoc.css +662 -0
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/brick.png +0 -0
- data/doc/images/brick_link.png +0 -0
- data/doc/images/bug.png +0 -0
- data/doc/images/bullet_black.png +0 -0
- data/doc/images/bullet_toggle_minus.png +0 -0
- data/doc/images/bullet_toggle_plus.png +0 -0
- data/doc/images/date.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/find.png +0 -0
- data/doc/images/loadingAnimation.gif +0 -0
- data/doc/images/macFFBgHack.png +0 -0
- data/doc/images/package.png +0 -0
- data/doc/images/page_green.png +0 -0
- data/doc/images/page_white_text.png +0 -0
- data/doc/images/page_white_width.png +0 -0
- data/doc/images/plugin.png +0 -0
- data/doc/images/ruby.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/images/tag_green.png +0 -0
- data/doc/images/transparent.png +0 -0
- data/doc/images/wrench.png +0 -0
- data/doc/images/wrench_orange.png +0 -0
- data/doc/images/zoom.png +0 -0
- data/doc/index.html +174 -0
- data/doc/js/darkfish.js +114 -0
- data/doc/js/navigation.js +105 -0
- data/doc/js/navigation.js.gz +0 -0
- data/doc/js/search.js +110 -0
- data/doc/js/search_index.js +1 -0
- data/doc/js/search_index.js.gz +0 -0
- data/doc/js/searcher.js +229 -0
- data/doc/js/searcher.js.gz +0 -0
- data/doc/table_of_contents.html +1047 -0
- data/lib/data_access/DB_client/DB_client.rb +26 -0
- data/lib/deep_dup/deep_dup.rb +14 -0
- data/lib/logger/logger.rb +64 -0
- data/lib/models/binary_tree/binary_tree.rb +163 -0
- data/lib/models/binary_tree/binary_tree_iterator.rb +36 -0
- data/lib/models/data_list/data_list.rb +97 -0
- data/lib/models/data_list/data_list_student_short.rb +16 -0
- data/lib/models/data_storage_strategy/JSON_storage_strategy.rb +20 -0
- data/lib/models/data_storage_strategy/YAML_storage_strategy.rb +20 -0
- data/lib/models/data_storage_strategy/data_storage_strategy.rb +11 -0
- data/lib/models/data_table/data_table.rb +52 -0
- data/lib/models/filter/filter.rb +5 -0
- data/lib/models/filter/filter_decorator.rb +14 -0
- data/lib/models/filter/sort_decorator.rb +15 -0
- data/lib/models/filter/student_filters/contact_sort_decorator.rb +50 -0
- data/lib/models/filter/student_filters/field_filter_decorator.rb +34 -0
- data/lib/models/filter/student_filters/full_name_filter_decorator.rb +26 -0
- data/lib/models/filter/student_filters/full_name_sort_decorator.rb +32 -0
- data/lib/models/filter/student_filters/git_sort_decorator.rb +35 -0
- data/lib/models/filter/student_filters/has_not_field_filter_decorator.rb +24 -0
- data/lib/models/person/person.rb +72 -0
- data/lib/models/student/student.rb +204 -0
- data/lib/models/student_short/student_short.rb +98 -0
- data/lib/models/students_list/students_list.rb +32 -0
- data/lib/models/students_list/students_list_DB.rb +95 -0
- data/lib/models/students_list/students_list_file.rb +134 -0
- data/lib/models/students_list/students_list_file_adapter.rb +45 -0
- data/lib/models/students_list/students_list_interface.rb +25 -0
- data/lib/presenters/base_presenters/base_presenter.rb +26 -0
- data/lib/presenters/base_presenters/student_list_presenter.rb +273 -0
- data/lib/presenters/edit_student/add_student_presenter.rb +46 -0
- data/lib/presenters/edit_student/edit_contacts_presenter.rb +36 -0
- data/lib/presenters/edit_student/edit_git_presenter.rb +28 -0
- data/lib/presenters/edit_student/edit_student_presenter.rb +109 -0
- data/lib/presenters/edit_student/replace_student_presenter.rb +37 -0
- data/lib/student_mvp/version.rb +5 -0
- data/lib/student_mvp.rb +8 -0
- data/sig/student_mvp.rbs +4 -0
- metadata +253 -0
@@ -0,0 +1,109 @@
|
|
1
|
+
require_relative '../../logger/logger.rb'
|
2
|
+
|
3
|
+
# == Edit_student_presenter
|
4
|
+
# Базовый класс для управления данными студентов.
|
5
|
+
# Предоставляет общие методы для редактирования информации о студентах.
|
6
|
+
class Edit_student_presenter
|
7
|
+
|
8
|
+
# Инициализация презентера для управления данными студентов.
|
9
|
+
#
|
10
|
+
# @param view [Modal_interface] Представление для взаимодействия с пользователем.
|
11
|
+
# @param parent_presenter [Student_list_presenter] Родительский презентер для управления общим контекстом.
|
12
|
+
def initialize(view, parent_presenter)
|
13
|
+
self.view = view
|
14
|
+
self.parent_presenter = parent_presenter
|
15
|
+
self.logger = App_logger.instance
|
16
|
+
end
|
17
|
+
|
18
|
+
# Основная операция редактирования студента.
|
19
|
+
#
|
20
|
+
# @param student_data [Hash] Данные студента.
|
21
|
+
def operation(student_data)
|
22
|
+
begin
|
23
|
+
self.logger.debug "Создание объекта студента: #{student_data.to_s}"
|
24
|
+
new_student(student_data)
|
25
|
+
self.parent_presenter.replace_student(self.student)
|
26
|
+
self.view.close
|
27
|
+
rescue => e
|
28
|
+
error_msg = "Ошибка при изменении студента: #{e.message}"
|
29
|
+
self.logger.error error_msg
|
30
|
+
self.view.show_error_message(error_msg)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
# Создание нового объекта студента из предоставленных данных.
|
35
|
+
#
|
36
|
+
# @param student_data [Hash] Данные студента.
|
37
|
+
def new_student(student_data)
|
38
|
+
data = student_data.transform_values do |value|
|
39
|
+
stripped = value.strip
|
40
|
+
stripped.empty? ? nil : stripped
|
41
|
+
end
|
42
|
+
|
43
|
+
attributes = self.get_attributes
|
44
|
+
data.each do |key, value|
|
45
|
+
attributes[key.to_sym] = value
|
46
|
+
end
|
47
|
+
self.student = Student.new_from_hash(attributes)
|
48
|
+
end
|
49
|
+
|
50
|
+
# Получение данных студента из родительского презентера.
|
51
|
+
# Загружает информацию о выбранном студенте.
|
52
|
+
def get_student
|
53
|
+
id = self.parent_presenter.get_selected[0]
|
54
|
+
begin
|
55
|
+
self.student = self.parent_presenter.get_student(id)
|
56
|
+
rescue => e
|
57
|
+
error_msg = "Ошибка при загрузке данных о студенте: #{e.message}"
|
58
|
+
self.logger.error error_msg
|
59
|
+
self.view.show_error_message(error_msg)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
# Заполнение полей интерфейса данными студента.
|
64
|
+
#
|
65
|
+
# @raise [NotImplementedError] Метод должен быть реализован в подклассе.
|
66
|
+
def populate_fields
|
67
|
+
raise NotImplementedError
|
68
|
+
end
|
69
|
+
|
70
|
+
# Проверка валидности данных студента.
|
71
|
+
#
|
72
|
+
# @param student_data [Hash] Данные студента.
|
73
|
+
# @return [Boolean] Возвращает true, если данные валидны.
|
74
|
+
def valid_data?(student_data)
|
75
|
+
data = student_data.transform_values { |value| value.strip }
|
76
|
+
Student.valid_name?(data["first_name"]) && Student.valid_name?(data["name"]) &&
|
77
|
+
Student.valid_name?(data["patronymic"]) && Student.valid_birthdate?(data["birthdate"])
|
78
|
+
end
|
79
|
+
|
80
|
+
protected
|
81
|
+
# @!attribute [rw] view
|
82
|
+
# @return [Modal_interface] Объект представления.
|
83
|
+
# @!attribute [rw] parent_presenter
|
84
|
+
# @return [Parent_presenter] Родительский презентер.
|
85
|
+
# @!attribute [rw] student
|
86
|
+
# @return [Student, nil] Объект студента.
|
87
|
+
# @!attribute [rw] logger
|
88
|
+
# @return [App_logger] Логгер для записи событий.
|
89
|
+
attr_accessor :view, :parent_presenter, :student, :logger
|
90
|
+
|
91
|
+
private
|
92
|
+
|
93
|
+
# Получение атрибутов из объекта студента.
|
94
|
+
#
|
95
|
+
# @return [Hash] Атрибуты студента.
|
96
|
+
def get_attributes
|
97
|
+
{
|
98
|
+
id: self.student&.id,
|
99
|
+
first_name: self.student&.first_name,
|
100
|
+
name: self.student&.name,
|
101
|
+
patronymic: self.student&.patronymic,
|
102
|
+
birthdate: self.student&.birthdate,
|
103
|
+
git: self.student&.git,
|
104
|
+
telegram: self.student&.telegram,
|
105
|
+
email: self.student&.email,
|
106
|
+
phone_number: self.student&.phone_number
|
107
|
+
}
|
108
|
+
end
|
109
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'date'
|
2
|
+
require_relative '../../models/student/student.rb'
|
3
|
+
require_relative './edit_contacts_presenter'
|
4
|
+
|
5
|
+
# == Replace_student_presenter
|
6
|
+
# Презентер для замены информации о студенте.
|
7
|
+
class Replace_student_presenter < Edit_student_presenter
|
8
|
+
|
9
|
+
# Заполнение полей интерфейса текущими основными данными студента.
|
10
|
+
def populate_fields
|
11
|
+
self.get_student
|
12
|
+
data = {
|
13
|
+
"first_name" => self.student.first_name,
|
14
|
+
"name" => self.student.name,
|
15
|
+
"patronymic" => self.student.patronymic,
|
16
|
+
"birthdate" => self.student.birthdate.strftime('%d.%m.%Y'),
|
17
|
+
}
|
18
|
+
self.view.update_view data
|
19
|
+
end
|
20
|
+
|
21
|
+
# Проверка валидности новых данных студента.
|
22
|
+
#
|
23
|
+
# @param student_data [Hash] Новые данные студента.
|
24
|
+
# @return [Boolean] Возвращает true, если данные валидны и отличаются от текущих.
|
25
|
+
def valid_data?(student_data)
|
26
|
+
data = student_data.transform_values { |value| value.strip }
|
27
|
+
self.logger.debug "Проверка валидности данных: #{data.to_s}"
|
28
|
+
valid = super(data)
|
29
|
+
unchanged = self.student.first_name == data["first_name"] &&
|
30
|
+
self.student.name == data["name"] &&
|
31
|
+
self.student.patronymic == data["patronymic"] &&
|
32
|
+
self.student.birthdate.strftime('%d.%m.%Y') == data["birthdate"]
|
33
|
+
res = valid && !unchanged
|
34
|
+
self.logger.info "Валидность данных: #{res}"
|
35
|
+
res
|
36
|
+
end
|
37
|
+
end
|
data/lib/student_mvp.rb
ADDED
data/sig/student_mvp.rbs
ADDED
metadata
ADDED
@@ -0,0 +1,253 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: student_mvp
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- ZaiiiRan
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-12-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: date
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: logger
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: json
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: yaml
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: mysql2
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: dotenv
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
description: Содержит в себе модели и презентеры, логгер и класс клиента для СУБД
|
98
|
+
MySQL, необходимые для разработки приложения для работы со студентами на основе
|
99
|
+
паттерна MVP.
|
100
|
+
email:
|
101
|
+
- a1b075753@gmail.com
|
102
|
+
executables: []
|
103
|
+
extensions: []
|
104
|
+
extra_rdoc_files: []
|
105
|
+
files:
|
106
|
+
- README.md
|
107
|
+
- Rakefile
|
108
|
+
- doc/Add_student_presenter.html
|
109
|
+
- doc/App_logger.html
|
110
|
+
- doc/Base_presenter.html
|
111
|
+
- doc/Binary_tree.html
|
112
|
+
- doc/Binary_tree_iterator.html
|
113
|
+
- doc/Contact_sort_decorator.html
|
114
|
+
- doc/DB_client.html
|
115
|
+
- doc/Data_list.html
|
116
|
+
- doc/Data_list_student_short.html
|
117
|
+
- doc/Data_storage_strategy.html
|
118
|
+
- doc/Data_table.html
|
119
|
+
- doc/Deep_dup.html
|
120
|
+
- doc/Edit_contacts_presenter.html
|
121
|
+
- doc/Edit_git_presenter.html
|
122
|
+
- doc/Edit_student_presenter.html
|
123
|
+
- doc/Field_filter_decorator.html
|
124
|
+
- doc/Filter.html
|
125
|
+
- doc/Filter_decorator.html
|
126
|
+
- doc/Full_name_filter_decorator.html
|
127
|
+
- doc/Full_name_sort_decorator.html
|
128
|
+
- doc/Gemfile.html
|
129
|
+
- doc/Git_sort_decorator.html
|
130
|
+
- doc/Has_not_field_filter_decorator.html
|
131
|
+
- doc/JSON_storage_strategy.html
|
132
|
+
- doc/Person.html
|
133
|
+
- doc/README_md.html
|
134
|
+
- doc/Rakefile.html
|
135
|
+
- doc/Replace_student_presenter.html
|
136
|
+
- doc/Sort_decorator.html
|
137
|
+
- doc/Student.html
|
138
|
+
- doc/StudentMvp.html
|
139
|
+
- doc/StudentMvp/Error.html
|
140
|
+
- doc/Student_list_presenter.html
|
141
|
+
- doc/Student_short.html
|
142
|
+
- doc/Students_list.html
|
143
|
+
- doc/Students_list_DB.html
|
144
|
+
- doc/Students_list_file.html
|
145
|
+
- doc/Students_list_file_adapter.html
|
146
|
+
- doc/Students_list_interface.html
|
147
|
+
- doc/YAML_storage_strategy.html
|
148
|
+
- doc/bin/setup.html
|
149
|
+
- doc/created.rid
|
150
|
+
- doc/css/fonts.css
|
151
|
+
- doc/css/rdoc.css
|
152
|
+
- doc/fonts/Lato-Light.ttf
|
153
|
+
- doc/fonts/Lato-LightItalic.ttf
|
154
|
+
- doc/fonts/Lato-Regular.ttf
|
155
|
+
- doc/fonts/Lato-RegularItalic.ttf
|
156
|
+
- doc/fonts/SourceCodePro-Bold.ttf
|
157
|
+
- doc/fonts/SourceCodePro-Regular.ttf
|
158
|
+
- doc/images/add.png
|
159
|
+
- doc/images/arrow_up.png
|
160
|
+
- doc/images/brick.png
|
161
|
+
- doc/images/brick_link.png
|
162
|
+
- doc/images/bug.png
|
163
|
+
- doc/images/bullet_black.png
|
164
|
+
- doc/images/bullet_toggle_minus.png
|
165
|
+
- doc/images/bullet_toggle_plus.png
|
166
|
+
- doc/images/date.png
|
167
|
+
- doc/images/delete.png
|
168
|
+
- doc/images/find.png
|
169
|
+
- doc/images/loadingAnimation.gif
|
170
|
+
- doc/images/macFFBgHack.png
|
171
|
+
- doc/images/package.png
|
172
|
+
- doc/images/page_green.png
|
173
|
+
- doc/images/page_white_text.png
|
174
|
+
- doc/images/page_white_width.png
|
175
|
+
- doc/images/plugin.png
|
176
|
+
- doc/images/ruby.png
|
177
|
+
- doc/images/tag_blue.png
|
178
|
+
- doc/images/tag_green.png
|
179
|
+
- doc/images/transparent.png
|
180
|
+
- doc/images/wrench.png
|
181
|
+
- doc/images/wrench_orange.png
|
182
|
+
- doc/images/zoom.png
|
183
|
+
- doc/index.html
|
184
|
+
- doc/js/darkfish.js
|
185
|
+
- doc/js/navigation.js
|
186
|
+
- doc/js/navigation.js.gz
|
187
|
+
- doc/js/search.js
|
188
|
+
- doc/js/search_index.js
|
189
|
+
- doc/js/search_index.js.gz
|
190
|
+
- doc/js/searcher.js
|
191
|
+
- doc/js/searcher.js.gz
|
192
|
+
- doc/table_of_contents.html
|
193
|
+
- lib/data_access/DB_client/DB_client.rb
|
194
|
+
- lib/deep_dup/deep_dup.rb
|
195
|
+
- lib/logger/logger.rb
|
196
|
+
- lib/models/binary_tree/binary_tree.rb
|
197
|
+
- lib/models/binary_tree/binary_tree_iterator.rb
|
198
|
+
- lib/models/data_list/data_list.rb
|
199
|
+
- lib/models/data_list/data_list_student_short.rb
|
200
|
+
- lib/models/data_storage_strategy/JSON_storage_strategy.rb
|
201
|
+
- lib/models/data_storage_strategy/YAML_storage_strategy.rb
|
202
|
+
- lib/models/data_storage_strategy/data_storage_strategy.rb
|
203
|
+
- lib/models/data_table/data_table.rb
|
204
|
+
- lib/models/filter/filter.rb
|
205
|
+
- lib/models/filter/filter_decorator.rb
|
206
|
+
- lib/models/filter/sort_decorator.rb
|
207
|
+
- lib/models/filter/student_filters/contact_sort_decorator.rb
|
208
|
+
- lib/models/filter/student_filters/field_filter_decorator.rb
|
209
|
+
- lib/models/filter/student_filters/full_name_filter_decorator.rb
|
210
|
+
- lib/models/filter/student_filters/full_name_sort_decorator.rb
|
211
|
+
- lib/models/filter/student_filters/git_sort_decorator.rb
|
212
|
+
- lib/models/filter/student_filters/has_not_field_filter_decorator.rb
|
213
|
+
- lib/models/person/person.rb
|
214
|
+
- lib/models/student/student.rb
|
215
|
+
- lib/models/student_short/student_short.rb
|
216
|
+
- lib/models/students_list/students_list.rb
|
217
|
+
- lib/models/students_list/students_list_DB.rb
|
218
|
+
- lib/models/students_list/students_list_file.rb
|
219
|
+
- lib/models/students_list/students_list_file_adapter.rb
|
220
|
+
- lib/models/students_list/students_list_interface.rb
|
221
|
+
- lib/presenters/base_presenters/base_presenter.rb
|
222
|
+
- lib/presenters/base_presenters/student_list_presenter.rb
|
223
|
+
- lib/presenters/edit_student/add_student_presenter.rb
|
224
|
+
- lib/presenters/edit_student/edit_contacts_presenter.rb
|
225
|
+
- lib/presenters/edit_student/edit_git_presenter.rb
|
226
|
+
- lib/presenters/edit_student/edit_student_presenter.rb
|
227
|
+
- lib/presenters/edit_student/replace_student_presenter.rb
|
228
|
+
- lib/student_mvp.rb
|
229
|
+
- lib/student_mvp/version.rb
|
230
|
+
- sig/student_mvp.rbs
|
231
|
+
homepage:
|
232
|
+
licenses: []
|
233
|
+
metadata: {}
|
234
|
+
post_install_message:
|
235
|
+
rdoc_options: []
|
236
|
+
require_paths:
|
237
|
+
- lib
|
238
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
239
|
+
requirements:
|
240
|
+
- - ">="
|
241
|
+
- !ruby/object:Gem::Version
|
242
|
+
version: 3.0.0
|
243
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
244
|
+
requirements:
|
245
|
+
- - ">="
|
246
|
+
- !ruby/object:Gem::Version
|
247
|
+
version: '0'
|
248
|
+
requirements: []
|
249
|
+
rubygems_version: 3.4.1
|
250
|
+
signing_key:
|
251
|
+
specification_version: 4
|
252
|
+
summary: Презентеры и модели для разработки приложения для работы со студентами.
|
253
|
+
test_files: []
|