mvcStudentXD 1.2.1 → 1.2.2
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 +4 -4
- data/.rubocop.yml +13 -0
- data/Gemfile +22 -24
- data/README.md +35 -3
- data/{mvcStudentXD/lib → lib}/mvcStudentXD/version.rb +1 -1
- data/mvcStudentXD.gemspec +38 -0
- metadata +40 -92
- data/Gemfile.lock +0 -101
- data/Lab1/arr1_3.txt +0 -1
- data/Lab1/lb1_1.rb +0 -19
- data/Lab1/lb1_2.rb +0 -28
- data/Lab1/lb1_3.rb +0 -46
- data/Lab1/lb1_4.rb +0 -82
- data/Lab2/1Class.jpg +0 -0
- data/Lab2/Web/main.rb +0 -89
- data/Lab2/Web/views/add.html +0 -168
- data/Lab2/Web/views/main.html +0 -233
- data/Lab2/data_storage/students1.txt +0 -1
- data/Lab2/data_storage/studentsRead.json +0 -36
- data/Lab2/data_storage/studentsRead.txt +0 -3
- data/Lab2/data_storage/studentsRead.yaml +0 -26
- data/Lab2/data_storage/studentsWrite.json +0 -42
- data/Lab2/data_storage/studentsWrite.txt +0 -4
- data/Lab2/data_storage/studentsWrite.yaml +0 -31
- data/Lab2/examples/Strategy.rb +0 -38
- data/Lab2/examples/adapter.rb +0 -30
- data/Lab2/examples/database.rb +0 -15
- data/Lab2/examples/observer_example.rb +0 -51
- data/Lab2/examples/pattern_pattern.rb +0 -44
- data/Lab2/examples/site_example.rb +0 -21
- data/Lab2/examples/views/about.erb +0 -11
- data/Lab2/examples/views/contact.erb +0 -15
- data/Lab2/examples/views/index.erb +0 -11
- data/Lab2/main.rb +0 -6
- data/Lab2/main_window.rb +0 -31
- data/Lab2/student_input_form.rb +0 -71
- data/Lab2/tab_students.rb +0 -157
- data/Lab2/test/student_test.rb +0 -91
- data/mvcStudentXD/Gemfile +0 -22
- data/mvcStudentXD/Gemfile.lock +0 -97
- data/mvcStudentXD/README.md +0 -35
- data/mvcStudentXD/bin/console +0 -11
- data/mvcStudentXD/bin/setup +0 -8
- data/mvcStudentXD/mvcStudentXD-1.2.0.gem +0 -0
- data/mvcStudentXD/mvcStudentXD.gemspec +0 -15
- data/mvcStudentXD/pkg/mvcStudentXD-0.1.0.gem +0 -0
- data/mvcStudentXD/pkg/mvcStudentXD-1.0.1.gem +0 -0
- data/mvcStudentXD/pkg/mvcStudentXD-1.1.1.gem +0 -0
- data/mvcStudentXD/test/student_test.rb +0 -91
- data/mvcStudentXD/test/test_helper.rb +0 -6
- data/mvcStudentXD/test/test_mvcStudentXD.rb +0 -13
- /data/{mvcStudentXD/CHANGELOG.md → CHANGELOG.md} +0 -0
- /data/{mvcStudentXD/CODE_OF_CONDUCT.md → CODE_OF_CONDUCT.md} +0 -0
- /data/{mvcStudentXD/Rakefile → Rakefile} +0 -0
- /data/{mvcStudentXD/lib → lib}/mvcStudentXD.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/adapters/student_list_adapter.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/containers/Data_list.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/containers/Data_list_student_short.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/containers/Data_table.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/controllers/student_edit_form_controller.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/controllers/student_input_form_controller.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/controllers/student_list_controller.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter_json.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter_txt.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/converters/Converter_yaml.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/scripts/create_table.sql +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/scripts/insert_data.sql +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/student_list_db.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/database/students_db.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/model/Student.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/model/StudentBase.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/model/Student_short.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/repositories/Student_list.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/repositories/student_list_adv.rb +0 -0
- /data/{mvcStudentXD/lib → lib}/source/util/LoggerHolder.rb +0 -0
- /data/{mvcStudentXD/sig → sig}/mvcStudentXD.rbs +0 -0
data/Lab2/examples/adapter.rb
DELETED
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class Printer
|
4
|
-
def print(text)
|
5
|
-
puts text
|
6
|
-
end
|
7
|
-
end
|
8
|
-
|
9
|
-
class Display
|
10
|
-
def display(text)
|
11
|
-
puts text
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
class DisplayAdapter
|
16
|
-
def initialize(display)
|
17
|
-
@display = display
|
18
|
-
end
|
19
|
-
|
20
|
-
def print(text)
|
21
|
-
@display.display(text)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
printer = Printer.new
|
26
|
-
display = Display.new
|
27
|
-
adapter = DisplayAdapter.new(display)
|
28
|
-
|
29
|
-
printer.print("Hello, world!") # выводит "Hello, world!"
|
30
|
-
adapter.print("Hello, world!") # также выводит "Hello, world!"
|
data/Lab2/examples/database.rb
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Класс Наблюдаемый объект
|
4
|
-
class Subject
|
5
|
-
attr_reader :state, :observers
|
6
|
-
|
7
|
-
def initialize(state)
|
8
|
-
@state = state
|
9
|
-
@observers = []
|
10
|
-
end
|
11
|
-
|
12
|
-
def add_observer(observer)
|
13
|
-
observers << observer
|
14
|
-
end
|
15
|
-
|
16
|
-
def remove_observer(observer)
|
17
|
-
observers.delete(observer)
|
18
|
-
end
|
19
|
-
|
20
|
-
def notify_observers
|
21
|
-
observers.each do |observer|
|
22
|
-
observer.update(self)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
def update_state(state)
|
27
|
-
@state = state
|
28
|
-
notify_observers
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
# Класс Наблюдатель
|
33
|
-
class Observer
|
34
|
-
def update(subject)
|
35
|
-
puts "Subject has updated state to: #{subject.state}"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
# Создаем объекты Наблюдаемый объект и Наблюдатель
|
40
|
-
subject = Subject.new("initial state")
|
41
|
-
observer = Observer.new
|
42
|
-
|
43
|
-
# Добавляем наблюдателя к наблюдаемому объекту
|
44
|
-
subject.add_observer(observer)
|
45
|
-
|
46
|
-
# Обновляем состояние наблюдаемого объекта
|
47
|
-
subject.update_state("new state")
|
48
|
-
|
49
|
-
# Результат выполнения:
|
50
|
-
# Subject has updated state to: new state
|
51
|
-
|
@@ -1,44 +0,0 @@
|
|
1
|
-
class Pat
|
2
|
-
attr_accessor :a, :b
|
3
|
-
|
4
|
-
def initialize(a, b)
|
5
|
-
self.a = a
|
6
|
-
self.b = b
|
7
|
-
end
|
8
|
-
|
9
|
-
def sum_alg
|
10
|
-
a+b
|
11
|
-
end
|
12
|
-
|
13
|
-
def mult_alg
|
14
|
-
a*b
|
15
|
-
end
|
16
|
-
|
17
|
-
def minus_alg
|
18
|
-
a-b
|
19
|
-
end
|
20
|
-
|
21
|
-
def alg
|
22
|
-
sum_alg+mult_alg+minus_alg
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
class PatInhetit1 < Pat
|
27
|
-
def sum_alg
|
28
|
-
a+b+2
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
class PatInhetit2 < Pat
|
33
|
-
def mult_alg
|
34
|
-
a*b*3
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
pat = Pat.new(4, 2)
|
39
|
-
pat1 = PatInhetit1.new(4, 2)
|
40
|
-
pat2 = PatInhetit2.new(4, 2)
|
41
|
-
|
42
|
-
puts(pat.alg)
|
43
|
-
puts(pat1.alg)
|
44
|
-
puts(pat2.alg)
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'sinatra'
|
4
|
-
require_relative '../main_window'
|
5
|
-
|
6
|
-
get '/' do
|
7
|
-
erb :index
|
8
|
-
end
|
9
|
-
|
10
|
-
get '/about' do
|
11
|
-
erb :about
|
12
|
-
end
|
13
|
-
|
14
|
-
get '/contact' do
|
15
|
-
erb :contact
|
16
|
-
end
|
17
|
-
|
18
|
-
get '/uni' do
|
19
|
-
MainWindow.new.create.show
|
20
|
-
end
|
21
|
-
|
@@ -1,15 +0,0 @@
|
|
1
|
-
<!-- contact.erb -->
|
2
|
-
<!DOCTYPE html>
|
3
|
-
<html>
|
4
|
-
<head>
|
5
|
-
<title>Контакты</title>
|
6
|
-
</head>
|
7
|
-
<body>
|
8
|
-
<h1>Связь с нами</h1>
|
9
|
-
<p>Скорее всего, мы сами вас найдём, но если нет:</p>
|
10
|
-
<ul>
|
11
|
-
<li>Почта: info@mywebsite.com</li>
|
12
|
-
<li>Мобильный: 123-456-7890</li>
|
13
|
-
</ul>
|
14
|
-
</body>
|
15
|
-
</html>
|
data/Lab2/main.rb
DELETED
data/Lab2/main_window.rb
DELETED
@@ -1,31 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'mvcStudentXD'
|
4
|
-
require 'sinatra'
|
5
|
-
require 'thin'
|
6
|
-
require 'glimmer-dsl-libui'
|
7
|
-
require_relative 'tab_students'
|
8
|
-
|
9
|
-
class MainWindow
|
10
|
-
include Glimmer
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
@view_tab_students = TabStudents.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def create
|
17
|
-
window('Универ', 600, 300) {
|
18
|
-
tab {
|
19
|
-
tab_item('Студенты') {
|
20
|
-
@view_tab_students.create
|
21
|
-
}
|
22
|
-
|
23
|
-
tab_item('Вкладка 2') { }
|
24
|
-
tab_item('Вкладка 3') { }
|
25
|
-
}
|
26
|
-
}
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
main_window = MainWindow.new.create
|
31
|
-
main_window.show
|
data/Lab2/student_input_form.rb
DELETED
@@ -1,71 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'glimmer-dsl-libui'
|
4
|
-
require_relative '../mvcStudentXD/lib/student_input_form_controller'
|
5
|
-
require_relative 'model/StudentBase'
|
6
|
-
require 'win32api'
|
7
|
-
|
8
|
-
class StudentInputForm
|
9
|
-
include Glimmer
|
10
|
-
|
11
|
-
def initialize(controller,existing_student = nil)
|
12
|
-
@existing_student = existing_student.to_hash unless existing_student.nil?
|
13
|
-
@controller = controller
|
14
|
-
@entries = {}
|
15
|
-
end
|
16
|
-
|
17
|
-
def on_create
|
18
|
-
@controller.on_view_created
|
19
|
-
end
|
20
|
-
|
21
|
-
def create
|
22
|
-
@root_container = window('Универ', 300, 150) {
|
23
|
-
resizable false
|
24
|
-
|
25
|
-
vertical_box {
|
26
|
-
@student_form = form {
|
27
|
-
stretchy false
|
28
|
-
|
29
|
-
fields = [[:last_name, 'Фамилия', false], [:first_name, 'Имя', false], [:parental_name, 'Отчество', false], [:git, 'Гит', true], [:telegram, 'Телеграм', true], [:email, 'Почта', true], [:phone, 'Телефон', true]]
|
30
|
-
|
31
|
-
fields.each do |field|
|
32
|
-
@entries[field[0]] = entry {
|
33
|
-
label field[1]
|
34
|
-
text @existing_student[field[0]] unless @existing_student.nil?
|
35
|
-
|
36
|
-
read_only field[2] unless @existing_student.nil?
|
37
|
-
}
|
38
|
-
end
|
39
|
-
}
|
40
|
-
|
41
|
-
button('Сохранить') {
|
42
|
-
stretchy false
|
43
|
-
|
44
|
-
on_clicked {
|
45
|
-
values = @entries.transform_values { |v| v.text.force_encoding("utf-8").strip }
|
46
|
-
values.transform_values! { |v| v.empty? ? nil : v}
|
47
|
-
@controller.process_fields(values)
|
48
|
-
@controller.refresh
|
49
|
-
}
|
50
|
-
}
|
51
|
-
}
|
52
|
-
}
|
53
|
-
on_create
|
54
|
-
@root_container
|
55
|
-
end
|
56
|
-
|
57
|
-
def set_value(field, value)
|
58
|
-
return unless @entries.include?(field)
|
59
|
-
@entries[field].text = value
|
60
|
-
end
|
61
|
-
|
62
|
-
def make_readonly(*fields)
|
63
|
-
fields.each do |field|
|
64
|
-
@entries[field].read_only = true
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def close
|
69
|
-
@root_container.destroy
|
70
|
-
end
|
71
|
-
end
|
data/Lab2/tab_students.rb
DELETED
@@ -1,157 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# frozen_string_literal: true
|
4
|
-
require 'glimmer-dsl-libui'
|
5
|
-
require_relative '../mvcStudentXD/lib/student_list_controller'
|
6
|
-
require_relative '../mvcStudentXD/lib/b'
|
7
|
-
|
8
|
-
class TabStudents
|
9
|
-
include Glimmer
|
10
|
-
STUDENTS_PER_PAGE = 20
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
@controller = StudentListController.new(self)
|
14
|
-
@current_page = 1
|
15
|
-
@total_count = 0
|
16
|
-
end
|
17
|
-
|
18
|
-
def on_create
|
19
|
-
@controller.on_view_created
|
20
|
-
@controller.refresh_data(@current_page, STUDENTS_PER_PAGE)
|
21
|
-
end
|
22
|
-
|
23
|
-
# Метод наблюдателя datalist
|
24
|
-
def on_datalist_changed(new_table)
|
25
|
-
arr = new_table.to_2d_array
|
26
|
-
@table.model_array = arr
|
27
|
-
end
|
28
|
-
|
29
|
-
def update_student_count(new_cnt)
|
30
|
-
@total_count = new_cnt
|
31
|
-
@page_label.text = "#{@current_page} / #{(@total_count / STUDENTS_PER_PAGE.to_f).ceil}"
|
32
|
-
end
|
33
|
-
|
34
|
-
def create
|
35
|
-
root = horizontal_box {
|
36
|
-
# Секция 1
|
37
|
-
vertical_box {
|
38
|
-
stretchy false
|
39
|
-
|
40
|
-
form {
|
41
|
-
stretchy false
|
42
|
-
|
43
|
-
@filter_last_name_initials = entry {
|
44
|
-
label 'ФИО'
|
45
|
-
}
|
46
|
-
|
47
|
-
@filters = {}
|
48
|
-
fields = [[:git, 'Github'], [:email, 'Почта'], [:phone, 'Телефон'], [:telegram, 'Телеграм']]
|
49
|
-
|
50
|
-
fields.each do |field|
|
51
|
-
@filters[field[0]] = {}
|
52
|
-
|
53
|
-
@filters[field[0]][:combobox] = combobox {
|
54
|
-
label "#{field[1]}?"
|
55
|
-
items ['Не важно', 'Есть', 'Нет']
|
56
|
-
selected 0
|
57
|
-
|
58
|
-
on_selected do
|
59
|
-
if @filters[field[0]][:combobox].selected == 1
|
60
|
-
@filters[field[0]][:entry].read_only = false
|
61
|
-
else
|
62
|
-
@filters[field[0]][:entry].text = ''
|
63
|
-
@filters[field[0]][:entry].read_only = true
|
64
|
-
end
|
65
|
-
end
|
66
|
-
}
|
67
|
-
|
68
|
-
@filters[field[0]][:entry] = entry {
|
69
|
-
label field[1]
|
70
|
-
read_only true
|
71
|
-
}
|
72
|
-
end
|
73
|
-
}
|
74
|
-
}
|
75
|
-
|
76
|
-
# Секция 2
|
77
|
-
vertical_box {
|
78
|
-
@table = refined_table(
|
79
|
-
table_editable: false,
|
80
|
-
filter: lambda do |row_hash, query|
|
81
|
-
utf8_query = query.force_encoding("utf-8")
|
82
|
-
row_hash['Фамилия И. О'].include?(utf8_query)
|
83
|
-
end,
|
84
|
-
table_columns: {
|
85
|
-
'#' => :text,
|
86
|
-
'Фамилия И. О' => :text,
|
87
|
-
'Гит' => :text,
|
88
|
-
'Контакт' => :text,
|
89
|
-
},
|
90
|
-
per_page: STUDENTS_PER_PAGE
|
91
|
-
)
|
92
|
-
|
93
|
-
@pages = horizontal_box {
|
94
|
-
stretchy false
|
95
|
-
|
96
|
-
button("<") { stretchy true }
|
97
|
-
button("<") {
|
98
|
-
stretchy true
|
99
|
-
|
100
|
-
on_clicked do
|
101
|
-
@current_page = [@current_page - 1, 1].max
|
102
|
-
@controller.refresh_data(@current_page, STUDENTS_PER_PAGE)
|
103
|
-
end
|
104
|
-
|
105
|
-
}
|
106
|
-
@page_label = label("...") { stretchy false }
|
107
|
-
button(">") { stretchy true }
|
108
|
-
button(">") {
|
109
|
-
stretchy true
|
110
|
-
|
111
|
-
on_clicked do
|
112
|
-
@current_page = [@current_page + 1, (@total_count / STUDENTS_PER_PAGE.to_f).ceil].min
|
113
|
-
@controller.refresh_data(@current_page, STUDENTS_PER_PAGE)
|
114
|
-
end
|
115
|
-
}
|
116
|
-
}
|
117
|
-
}
|
118
|
-
|
119
|
-
# Секция 3
|
120
|
-
vertical_box {
|
121
|
-
stretchy true
|
122
|
-
|
123
|
-
button('Добавить') {
|
124
|
-
stretchy false
|
125
|
-
|
126
|
-
on_clicked {
|
127
|
-
@controller.show_modal_add()
|
128
|
-
}
|
129
|
-
}
|
130
|
-
button('Изменить') {
|
131
|
-
stretchy false
|
132
|
-
|
133
|
-
on_clicked {
|
134
|
-
@controller.show_modal_edit(@current_page, STUDENTS_PER_PAGE, @table.selection) unless @table.selection.nil?
|
135
|
-
}
|
136
|
-
}
|
137
|
-
button('Удалить') {
|
138
|
-
stretchy false
|
139
|
-
|
140
|
-
on_clicked {
|
141
|
-
@controller.delete_selected(@current_page, STUDENTS_PER_PAGE, @table.selection) unless @table.selection.nil?
|
142
|
-
@controller.refresh_data(@current_page, STUDENTS_PER_PAGE)
|
143
|
-
}
|
144
|
-
}
|
145
|
-
button('Обновить') {
|
146
|
-
stretchy false
|
147
|
-
on_clicked{
|
148
|
-
@controller.refresh_data(@current_page, STUDENTS_PER_PAGE)
|
149
|
-
}
|
150
|
-
}
|
151
|
-
}
|
152
|
-
}
|
153
|
-
on_create
|
154
|
-
root
|
155
|
-
end
|
156
|
-
|
157
|
-
end
|
data/Lab2/test/student_test.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'minitest/autorun'
|
3
|
-
require 'json'
|
4
|
-
require_relative '../../mvcStudentXD/lib/model/Student'
|
5
|
-
|
6
|
-
class StudentTest < Minitest::Test
|
7
|
-
def setup
|
8
|
-
@student = Student.new(
|
9
|
-
'Лукашев',
|
10
|
-
'Алексей',
|
11
|
-
'Андреевич',
|
12
|
-
id: 10,
|
13
|
-
phone: '89099997499',
|
14
|
-
telegram: '@lehadrilla',
|
15
|
-
email: 'leha@gmail.com',
|
16
|
-
git: '@netuOnNeftyanik'
|
17
|
-
)
|
18
|
-
end
|
19
|
-
|
20
|
-
def teardown
|
21
|
-
# Do nothing
|
22
|
-
end
|
23
|
-
|
24
|
-
def test_student_init_all_params_correct
|
25
|
-
assert @student.last_name == 'Лукашев'
|
26
|
-
assert @student.first_name == 'Алексей'
|
27
|
-
assert @student.parental_name == 'Андреевич'
|
28
|
-
assert @student.id == 10
|
29
|
-
assert @student.phone == '89099997499'
|
30
|
-
assert @student.telegram == '@lehadrilla'
|
31
|
-
assert @student.email == 'leha@gmail.com'
|
32
|
-
assert @student.git == '@netuOnNeftyanik'
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_student_empty_options
|
36
|
-
Student.new('Сергеев', 'Сергей', 'Сергеевич')
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_student_short_contact
|
40
|
-
short_contact = @student.get_short_contact
|
41
|
-
|
42
|
-
|
43
|
-
assert short_contact[:type] == :telegram
|
44
|
-
assert short_contact[:val] == '@lehadrilla'
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_student_has_contacts
|
48
|
-
assert @student.valid_cont? == true
|
49
|
-
end
|
50
|
-
|
51
|
-
def test_student_set_contacts
|
52
|
-
stud = Student.new('Орфов', 'Орф', 'Орфович')
|
53
|
-
stud.set_contacts(phone: '89097768999', telegram: '@kasha', email: 'kasha@gmail.com')
|
54
|
-
|
55
|
-
assert stud.phone == '89097768999'
|
56
|
-
assert stud.telegram == '@kasha'
|
57
|
-
assert stud.email == 'kasha@gmail.com'
|
58
|
-
end
|
59
|
-
|
60
|
-
def test_student_get_short_fio
|
61
|
-
assert @student.get_short_fio == 'fio:Лукашев А. А.'
|
62
|
-
end
|
63
|
-
|
64
|
-
|
65
|
-
def test_student_from_and_to_hash
|
66
|
-
test_hash = {
|
67
|
-
last_name: 'Жанов',
|
68
|
-
first_name: 'Жан',
|
69
|
-
parental_name: 'Жанович',
|
70
|
-
id: 5,
|
71
|
-
phone: '87776665544',
|
72
|
-
telegram: '@abv',
|
73
|
-
email: 'abv@mail.ru',
|
74
|
-
git: '@abvG'
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
|
-
stud = Student.from_hash(test_hash)
|
79
|
-
|
80
|
-
assert stud.last_name == 'Жанов'
|
81
|
-
assert stud.first_name == 'Жан'
|
82
|
-
assert stud.parental_name == 'Жанович'
|
83
|
-
assert stud.id == 5
|
84
|
-
assert stud.phone == '87776665544'
|
85
|
-
assert stud.telegram == '@abv'
|
86
|
-
assert stud.email == 'abv@mail.ru'
|
87
|
-
assert stud.git == '@abvG'
|
88
|
-
|
89
|
-
assert stud.to_hash == test_hash
|
90
|
-
end
|
91
|
-
end
|
data/mvcStudentXD/Gemfile
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
source "https://rubygems.org"
|
4
|
-
|
5
|
-
# Specify your gem's dependencies in mvcStudentXD.gemspec
|
6
|
-
gemspec
|
7
|
-
|
8
|
-
gem "rake", "~> 13.0"
|
9
|
-
|
10
|
-
gem "minitest", "~> 5.0"
|
11
|
-
|
12
|
-
gem "rubocop", "~> 1.21"
|
13
|
-
|
14
|
-
gem "mysql2"
|
15
|
-
|
16
|
-
gem "glimmer-dsl-libui", '~> 0.7.4'
|
17
|
-
|
18
|
-
gem 'win32api'
|
19
|
-
|
20
|
-
gem 'sinatra', '~> 3.0', '>= 3.0.6'
|
21
|
-
|
22
|
-
gem 'thin', '~> 1.8', '>= 1.8.2'
|
data/mvcStudentXD/Gemfile.lock
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
mvcStudentXD (1.1.2)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
array_include_methods (1.4.0)
|
10
|
-
ast (2.4.2)
|
11
|
-
chunky_png (1.4.0)
|
12
|
-
color (1.8)
|
13
|
-
daemons (1.4.1)
|
14
|
-
equalizer (0.0.11)
|
15
|
-
eventmachine (1.2.7)
|
16
|
-
facets (3.1.0)
|
17
|
-
glimmer (2.7.3)
|
18
|
-
array_include_methods (~> 1.4.0)
|
19
|
-
facets (>= 3.1.0, < 4.0.0)
|
20
|
-
glimmer-dsl-libui (0.7.5)
|
21
|
-
chunky_png (~> 1.4.0)
|
22
|
-
color (~> 1.8)
|
23
|
-
equalizer (= 0.0.11)
|
24
|
-
glimmer (~> 2.7.3)
|
25
|
-
libui (~> 0.1.2.pre)
|
26
|
-
os (>= 1.0.0, < 2.0.0)
|
27
|
-
perfect-shape (~> 1.0.7)
|
28
|
-
rouge (>= 3.26.0, < 4.0.0)
|
29
|
-
super_module (~> 1.4.1)
|
30
|
-
json (2.6.3)
|
31
|
-
libui (0.1.2.pre-x64-mingw)
|
32
|
-
matrix (0.4.2)
|
33
|
-
method_source (1.0.0)
|
34
|
-
minitest (5.18.0)
|
35
|
-
mustermann (3.0.0)
|
36
|
-
ruby2_keywords (~> 0.0.1)
|
37
|
-
mysql2 (0.5.5)
|
38
|
-
os (1.1.4)
|
39
|
-
parallel (1.23.0)
|
40
|
-
parser (3.2.2.1)
|
41
|
-
ast (~> 2.4.1)
|
42
|
-
perfect-shape (1.0.7)
|
43
|
-
equalizer (>= 0.0.11, < 1.1.0)
|
44
|
-
matrix (>= 0.4.2, < 1.1.0)
|
45
|
-
rack (2.2.7)
|
46
|
-
rack-protection (3.0.6)
|
47
|
-
rack
|
48
|
-
rainbow (3.1.1)
|
49
|
-
rake (13.0.6)
|
50
|
-
regexp_parser (2.8.0)
|
51
|
-
rexml (3.2.5)
|
52
|
-
rouge (3.30.0)
|
53
|
-
rubocop (1.50.2)
|
54
|
-
json (~> 2.3)
|
55
|
-
parallel (~> 1.10)
|
56
|
-
parser (>= 3.2.0.0)
|
57
|
-
rainbow (>= 2.2.2, < 4.0)
|
58
|
-
regexp_parser (>= 1.8, < 3.0)
|
59
|
-
rexml (>= 3.2.5, < 4.0)
|
60
|
-
rubocop-ast (>= 1.28.0, < 2.0)
|
61
|
-
ruby-progressbar (~> 1.7)
|
62
|
-
unicode-display_width (>= 2.4.0, < 3.0)
|
63
|
-
rubocop-ast (1.28.1)
|
64
|
-
parser (>= 3.2.1.0)
|
65
|
-
ruby-progressbar (1.13.0)
|
66
|
-
ruby2_keywords (0.0.5)
|
67
|
-
sinatra (3.0.6)
|
68
|
-
mustermann (~> 3.0)
|
69
|
-
rack (~> 2.2, >= 2.2.4)
|
70
|
-
rack-protection (= 3.0.6)
|
71
|
-
tilt (~> 2.0)
|
72
|
-
super_module (1.4.1)
|
73
|
-
method_source (>= 0.8.2, < 1.1.0)
|
74
|
-
thin (1.8.2)
|
75
|
-
daemons (~> 1.0, >= 1.0.9)
|
76
|
-
eventmachine (~> 1.0, >= 1.0.4)
|
77
|
-
rack (>= 1, < 3)
|
78
|
-
tilt (2.1.0)
|
79
|
-
unicode-display_width (2.4.2)
|
80
|
-
win32api (0.1.0)
|
81
|
-
|
82
|
-
PLATFORMS
|
83
|
-
x64-mingw-ucrt
|
84
|
-
|
85
|
-
DEPENDENCIES
|
86
|
-
glimmer-dsl-libui (~> 0.7.4)
|
87
|
-
minitest (~> 5.0)
|
88
|
-
mvcStudentXD!
|
89
|
-
mysql2
|
90
|
-
rake (~> 13.0)
|
91
|
-
rubocop (~> 1.21)
|
92
|
-
sinatra (~> 3.0, >= 3.0.6)
|
93
|
-
thin (~> 1.8, >= 1.8.2)
|
94
|
-
win32api
|
95
|
-
|
96
|
-
BUNDLED WITH
|
97
|
-
2.4.12
|