ru.Bee 1.3.1 → 1.3.3
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/bin/rubee +80 -86
- data/lib/config/base_configuration.rb +6 -6
- data/lib/config/routes.rb +1 -1
- data/lib/db/create_accounts.rb +8 -8
- data/lib/db/create_comments.rb +7 -7
- data/lib/db/create_posts.rb +8 -8
- data/lib/db/create_users.rb +8 -8
- data/lib/db/structure.rb +42 -42
- data/lib/inits/print_colors.rb +1 -1
- data/lib/rubee/async/asyncable.rb +2 -2
- data/lib/rubee/async/sidekiq_async.rb +11 -11
- data/lib/rubee/async/thread_async.rb +1 -1
- data/lib/rubee/async/thread_pool.rb +2 -2
- data/lib/rubee/controllers/base_controller.rb +30 -21
- data/lib/rubee/controllers/extensions/auth_tokenable.rb +10 -8
- data/lib/rubee/controllers/extensions/middlewarable.rb +1 -1
- data/lib/rubee/controllers/middlewares/auth_token_middleware.rb +12 -8
- data/lib/rubee/extensions/hookable.rb +3 -6
- data/lib/rubee/extensions/serializable.rb +3 -3
- data/lib/rubee/models/database_objectable.rb +11 -12
- data/lib/rubee/models/sequel_object.rb +31 -24
- data/lib/rubee.rb +54 -42
- data/lib/tests/account_model_test.rb +4 -4
- data/lib/tests/auth_tokenable_test.rb +6 -6
- data/lib/tests/comment_model_test.rb +7 -7
- data/lib/tests/example_models/account.rb +1 -0
- data/lib/tests/example_models/comment.rb +1 -0
- data/lib/tests/example_models/post.rb +1 -0
- data/lib/tests/example_models/user.rb +1 -0
- data/lib/tests/rubeeapp_test.rb +5 -7
- data/lib/tests/test.db +0 -0
- data/lib/tests/test_helper.rb +3 -5
- data/lib/tests/user_model_test.rb +70 -54
- data/readme.md +7 -4
- metadata +2 -2
@@ -1,87 +1,99 @@
|
|
1
1
|
require_relative 'test_helper'
|
2
2
|
|
3
3
|
describe 'User model' do
|
4
|
-
describe
|
4
|
+
describe '.create' do
|
5
5
|
after do
|
6
|
-
User.destroy_all
|
6
|
+
User.destroy_all(cascade: true)
|
7
7
|
end
|
8
8
|
|
9
9
|
describe 'when data is valid' do
|
10
10
|
it 'persists to db' do
|
11
|
-
user = User.create(email:
|
11
|
+
user = User.create(email: 'ok-test@test.com', password: '123')
|
12
12
|
|
13
|
-
|
13
|
+
_(user.persisted?).must_equal(true)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
describe 'when data is invalid' do
|
18
18
|
it 'is not changing users number' do
|
19
19
|
initial_count = User.all.count
|
20
|
-
|
20
|
+
begin
|
21
|
+
User.create(wrong: 'test@test')
|
22
|
+
rescue StandardError
|
23
|
+
nil
|
24
|
+
end
|
21
25
|
|
22
|
-
_(User.all.count).must_equal
|
26
|
+
_(User.all.count).must_equal(initial_count)
|
23
27
|
end
|
24
28
|
end
|
25
29
|
end
|
26
30
|
|
27
31
|
describe '.save' do
|
28
32
|
after do
|
29
|
-
User.destroy_all
|
33
|
+
User.destroy_all(cascade: true)
|
30
34
|
end
|
31
35
|
|
32
36
|
describe 'when data is valid' do
|
33
37
|
it 'persists to db' do
|
34
|
-
user = User.new(email:
|
38
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
35
39
|
user.save
|
36
40
|
|
37
|
-
_(user.persisted?).must_equal
|
41
|
+
_(user.persisted?).must_equal(true)
|
38
42
|
end
|
39
43
|
end
|
40
44
|
|
41
45
|
describe 'when save existing user' do
|
42
46
|
it 'persists to db' do
|
43
|
-
user = User.new(email:
|
47
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
44
48
|
user.save
|
45
49
|
|
46
|
-
_(user.reload.password).must_equal
|
50
|
+
_(user.reload.password).must_equal('123')
|
47
51
|
end
|
48
52
|
end
|
49
53
|
|
50
54
|
describe 'when data is invalid' do
|
51
55
|
it 'is not changing users number' do
|
52
56
|
initial_count = User.all.count
|
53
|
-
user =
|
54
|
-
|
57
|
+
user = begin
|
58
|
+
User.new(wrong: 'test@test')
|
59
|
+
rescue StandardError
|
60
|
+
nil
|
61
|
+
end
|
62
|
+
begin
|
63
|
+
user.save
|
64
|
+
rescue StandardError
|
65
|
+
nil
|
66
|
+
end
|
55
67
|
|
56
|
-
_(User.all.count).must_equal
|
68
|
+
_(User.all.count).must_equal(initial_count)
|
57
69
|
end
|
58
70
|
end
|
59
71
|
end
|
60
72
|
|
61
73
|
describe '.update' do
|
62
74
|
after do
|
63
|
-
User.destroy_all
|
75
|
+
User.destroy_all(cascade: true)
|
64
76
|
end
|
65
77
|
|
66
78
|
describe 'when data is valid' do
|
67
79
|
it 'persists to db' do
|
68
|
-
user = User.new(email:
|
80
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
69
81
|
user.save
|
70
|
-
user.update(password:
|
82
|
+
user.update(password: '1234')
|
71
83
|
|
72
|
-
_(user.reload.password).must_equal
|
84
|
+
_(user.reload.password).must_equal('1234')
|
73
85
|
end
|
74
86
|
end
|
75
87
|
end
|
76
88
|
|
77
89
|
describe '.destroy' do
|
78
90
|
after do
|
79
|
-
User.destroy_all
|
91
|
+
User.destroy_all(cascade: true)
|
80
92
|
end
|
81
93
|
|
82
94
|
describe 'when there is no related recrods' do
|
83
95
|
it 'delete the record' do
|
84
|
-
user = User.new(email:
|
96
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
85
97
|
user.save
|
86
98
|
user.destroy
|
87
99
|
|
@@ -91,21 +103,25 @@ describe 'User model' do
|
|
91
103
|
|
92
104
|
describe 'when there are related recrods' do
|
93
105
|
it 'does not delete the record' do
|
94
|
-
user = User.new(email:
|
106
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
95
107
|
user.save
|
96
|
-
Account.new(user_id: user.id, addres:
|
97
|
-
|
108
|
+
Account.new(user_id: user.id, addres: 'test').save
|
109
|
+
begin
|
110
|
+
user.destroy
|
111
|
+
rescue StandardError
|
112
|
+
nil
|
113
|
+
end
|
98
114
|
|
99
|
-
_(user.reload.id).must_equal
|
115
|
+
_(user.reload.id).must_equal(user.id)
|
100
116
|
end
|
101
117
|
end
|
102
118
|
|
103
119
|
describe 'when there are related recrods but passed cascade=true' do
|
104
120
|
it 'deletes the record' do
|
105
|
-
user = User.new(email:
|
121
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
106
122
|
user.save
|
107
|
-
Account.new(user_id: user.id, addres:
|
108
|
-
user.destroy
|
123
|
+
Account.new(user_id: user.id, addres: 'test').save
|
124
|
+
user.destroy(cascade: true)
|
109
125
|
|
110
126
|
assert_nil user.reload
|
111
127
|
end
|
@@ -114,14 +130,14 @@ describe 'User model' do
|
|
114
130
|
|
115
131
|
describe '.find' do
|
116
132
|
after do
|
117
|
-
User.destroy_all
|
133
|
+
User.destroy_all(cascade: true)
|
118
134
|
end
|
119
135
|
|
120
136
|
describe 'when trhere is a record' do
|
121
137
|
it 'returns a record' do
|
122
|
-
user = User.new(email:
|
138
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
123
139
|
user.save
|
124
|
-
_(User.find(user.id).email).must_equal
|
140
|
+
_(User.find(user.id).email).must_equal(user.email)
|
125
141
|
end
|
126
142
|
end
|
127
143
|
|
@@ -134,96 +150,96 @@ describe 'User model' do
|
|
134
150
|
|
135
151
|
describe '.all' do
|
136
152
|
after do
|
137
|
-
User.destroy_all
|
153
|
+
User.destroy_all(cascade: true)
|
138
154
|
end
|
139
155
|
|
140
156
|
describe 'when there are records' do
|
141
157
|
it 'returns all records' do
|
142
|
-
user = User.new(email:
|
143
|
-
user2 = User.new(email:
|
158
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
159
|
+
user2 = User.new(email: 'ok-test2@test.com', password: '123')
|
144
160
|
user.save
|
145
161
|
user2.save
|
146
|
-
_(User.all.count).must_equal
|
162
|
+
_(User.all.count).must_equal(2)
|
147
163
|
end
|
148
164
|
end
|
149
165
|
end
|
150
166
|
|
151
167
|
describe '.where' do
|
152
168
|
after do
|
153
|
-
User.destroy_all
|
169
|
+
User.destroy_all(cascade: true)
|
154
170
|
end
|
155
171
|
|
156
172
|
describe 'when there are records' do
|
157
173
|
it 'returns all records' do
|
158
|
-
user = User.new(email:
|
159
|
-
user2 = User.new(email:
|
174
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
175
|
+
user2 = User.new(email: 'ok-test2@test.com', password: '123')
|
160
176
|
user.save
|
161
177
|
user2.save
|
162
|
-
_(User.where(email:
|
178
|
+
_(User.where(email: 'ok-test2@test.com').count).must_equal(1)
|
163
179
|
end
|
164
180
|
end
|
165
181
|
end
|
166
182
|
|
167
183
|
describe '.first' do
|
168
184
|
after do
|
169
|
-
User.destroy_all
|
185
|
+
User.destroy_all(cascade: true)
|
170
186
|
end
|
171
187
|
|
172
188
|
describe 'when there are records' do
|
173
189
|
it 'returns first record' do
|
174
|
-
user = User.new(email:
|
175
|
-
user2 = User.new(email:
|
190
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
191
|
+
user2 = User.new(email: 'ok-test2@test.com', password: '123')
|
176
192
|
user.save
|
177
193
|
user2.save
|
178
|
-
_(User.first.email).must_equal
|
194
|
+
_(User.first.email).must_equal(user.email)
|
179
195
|
end
|
180
196
|
end
|
181
197
|
end
|
182
198
|
|
183
199
|
describe '.last' do
|
184
200
|
after do
|
185
|
-
User.destroy_all
|
201
|
+
User.destroy_all(cascade: true)
|
186
202
|
end
|
187
203
|
|
188
204
|
describe 'when there are records' do
|
189
205
|
it 'returns last record' do
|
190
|
-
user = User.new(email:
|
191
|
-
user2 = User.new(email:
|
206
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
207
|
+
user2 = User.new(email: 'ok-test2@test.com', password: '123')
|
192
208
|
user.save
|
193
209
|
user2.save
|
194
|
-
_(User.last.email).must_equal
|
210
|
+
_(User.last.email).must_equal(user2.email)
|
195
211
|
end
|
196
212
|
end
|
197
213
|
end
|
198
214
|
|
199
215
|
describe '.order' do
|
200
216
|
after do
|
201
|
-
User.destroy_all
|
217
|
+
User.destroy_all(cascade: true)
|
202
218
|
end
|
203
219
|
|
204
220
|
describe 'when there are records' do
|
205
221
|
it 'returns ordered records' do
|
206
|
-
user = User.new(email:
|
207
|
-
user2 = User.new(email:
|
222
|
+
user = User.new(email: 'abc@test.com', password: '123')
|
223
|
+
user2 = User.new(email: 'defg@test.com', password: '123')
|
208
224
|
user.save
|
209
225
|
user2.save
|
210
|
-
_(User.order(:email).first.email).must_equal
|
226
|
+
_(User.order(:email).first.email).must_equal(user.email)
|
211
227
|
end
|
212
228
|
end
|
213
229
|
end
|
214
230
|
|
215
231
|
describe 'owns_many' do
|
216
232
|
after do
|
217
|
-
User.destroy_all
|
233
|
+
User.destroy_all(cascade: true)
|
218
234
|
end
|
219
235
|
|
220
236
|
describe 'when there are associated account records' do
|
221
237
|
it 'returns all records' do
|
222
|
-
user = User.new(email:
|
238
|
+
user = User.new(email: 'ok-test@test.com', password: '123')
|
223
239
|
user.save
|
224
|
-
account = Account.new(user_id: user.id, addres:
|
240
|
+
account = Account.new(user_id: user.id, addres: 'test')
|
225
241
|
account.save
|
226
|
-
_(user.accounts.count).must_equal
|
242
|
+
_(user.accounts.count).must_equal(1)
|
227
243
|
end
|
228
244
|
end
|
229
245
|
end
|
data/readme.md
CHANGED
@@ -284,6 +284,9 @@ View in ruBee is just a plain html/erb file that can be rendered from the contro
|
|
284
284
|
|
285
285
|
You can use erb as a template engine in the views.
|
286
286
|
|
287
|
+
layout.erb is the parent template that is rendered first and then the child templates are rendered inside it.
|
288
|
+
Feel free to include you custom css and js files in the this file.
|
289
|
+
|
287
290
|
```ruby
|
288
291
|
# app/controllers/welcome_controller.rb
|
289
292
|
|
@@ -294,18 +297,18 @@ class WelcomeController < Rubee::BaseController
|
|
294
297
|
end
|
295
298
|
```
|
296
299
|
|
297
|
-
```
|
300
|
+
```erb
|
298
301
|
# app/views/welcome_header.erb
|
299
302
|
|
300
303
|
<h1>All set up and running!</h1>
|
301
304
|
```
|
302
305
|
|
303
|
-
```
|
306
|
+
```erb
|
304
307
|
# app/views/welcome_show.erb
|
305
308
|
|
306
309
|
<div class="container">
|
307
|
-
<%= render_template :welcome_header %> # you can easily
|
308
|
-
<p><%= locals[:object][:message] %></p> #
|
310
|
+
<%= render_template :welcome_header %> # you can easily attach erb temlate using render_template method
|
311
|
+
<p><%= locals[:object][:message] %></p> # displaying, passed in the controller object
|
309
312
|
</div>
|
310
313
|
```
|
311
314
|
## Object hooks
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ru.Bee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oleg Saltykov
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date: 2025-04-
|
10
|
+
date: 2025-04-12 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: bundler
|