mvcStudentXD 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|