loco-rails 4.1.1 → 5.0.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.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: loco-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.1
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zbigniew Humeniuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-13 00:00:00.000000000 Z
11
+ date: 2020-12-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: loco-rails-core
@@ -44,76 +44,70 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 3.1.12
47
+ version: 3.1.16
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 3.1.12
54
+ version: 3.1.16
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: capybara
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 3.28.0
61
+ version: 3.33.0
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 3.28.0
68
+ version: 3.33.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: database_cleaner
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.7.0
75
+ version: 1.8.5
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.7.0
82
+ version: 1.8.5
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: jbuilder
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.10.0
89
+ version: 2.10.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 2.10.0
96
+ version: 2.10.1
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: listen
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: 3.1.5
104
- - - "<"
101
+ - - "~>"
105
102
  - !ruby/object:Gem::Version
106
- version: '3.2'
103
+ version: 3.2.1
107
104
  type: :development
108
105
  prerelease: false
109
106
  version_requirements: !ruby/object:Gem::Requirement
110
107
  requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: 3.1.5
114
- - - "<"
108
+ - - "~>"
115
109
  - !ruby/object:Gem::Version
116
- version: '3.2'
110
+ version: 3.2.1
117
111
  - !ruby/object:Gem::Dependency
118
112
  name: mysql2
119
113
  requirement: !ruby/object:Gem::Requirement
@@ -134,28 +128,56 @@ dependencies:
134
128
  requirements:
135
129
  - - "~>"
136
130
  - !ruby/object:Gem::Version
137
- version: '4.2'
131
+ version: 4.3.6
138
132
  type: :development
139
133
  prerelease: false
140
134
  version_requirements: !ruby/object:Gem::Requirement
141
135
  requirements:
142
136
  - - "~>"
143
137
  - !ruby/object:Gem::Version
144
- version: '4.2'
138
+ version: 4.3.6
145
139
  - !ruby/object:Gem::Dependency
146
140
  name: redis
147
141
  requirement: !ruby/object:Gem::Requirement
148
142
  requirements:
149
143
  - - "~>"
150
144
  - !ruby/object:Gem::Version
151
- version: 4.1.2
145
+ version: 4.2.2
152
146
  type: :development
153
147
  prerelease: false
154
148
  version_requirements: !ruby/object:Gem::Requirement
155
149
  requirements:
156
150
  - - "~>"
157
151
  - !ruby/object:Gem::Version
158
- version: 4.1.2
152
+ version: 4.2.2
153
+ - !ruby/object:Gem::Dependency
154
+ name: rspec-expectations
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - "~>"
158
+ - !ruby/object:Gem::Version
159
+ version: 3.9.2
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - "~>"
165
+ - !ruby/object:Gem::Version
166
+ version: 3.9.2
167
+ - !ruby/object:Gem::Dependency
168
+ name: rspec-mocks
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - "~>"
172
+ - !ruby/object:Gem::Version
173
+ version: 3.9.1
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - "~>"
179
+ - !ruby/object:Gem::Version
180
+ version: 3.9.1
159
181
  - !ruby/object:Gem::Dependency
160
182
  name: rubocop
161
183
  requirement: !ruby/object:Gem::Requirement
@@ -198,34 +220,20 @@ dependencies:
198
220
  - - "~>"
199
221
  - !ruby/object:Gem::Version
200
222
  version: '3.142'
201
- - !ruby/object:Gem::Dependency
202
- name: source_maps_fixer
203
- requirement: !ruby/object:Gem::Requirement
204
- requirements:
205
- - - ">="
206
- - !ruby/object:Gem::Version
207
- version: '0'
208
- type: :development
209
- prerelease: false
210
- version_requirements: !ruby/object:Gem::Requirement
211
- requirements:
212
- - - ">="
213
- - !ruby/object:Gem::Version
214
- version: '0'
215
223
  - !ruby/object:Gem::Dependency
216
224
  name: will_paginate
217
225
  requirement: !ruby/object:Gem::Requirement
218
226
  requirements:
219
227
  - - "~>"
220
228
  - !ruby/object:Gem::Version
221
- version: 3.1.8
229
+ version: 3.3.0
222
230
  type: :development
223
231
  prerelease: false
224
232
  version_requirements: !ruby/object:Gem::Requirement
225
233
  requirements:
226
234
  - - "~>"
227
235
  - !ruby/object:Gem::Version
228
- version: 3.1.8
236
+ version: 3.3.0
229
237
  description: Rails is awesome, but modern web needs Loco-motive.
230
238
  email:
231
239
  - hello@artofcode.co
@@ -239,7 +247,6 @@ files:
239
247
  - app/controllers/loco/application_controller.rb
240
248
  - app/controllers/loco/notification_center_controller.rb
241
249
  - app/jobs/loco/sender_job.rb
242
- - app/jobs/loco/uuid_job.rb
243
250
  - app/models/loco/notification.rb
244
251
  - app/services/loco/notification/fetcher.rb
245
252
  - config/routes.rb
@@ -263,9 +270,12 @@ files:
263
270
  - lib/loco/engine.rb
264
271
  - lib/loco/helpers.rb
265
272
  - lib/loco/hub.rb
273
+ - lib/loco/permissions_presenter.rb
266
274
  - lib/loco/sender.rb
267
275
  - lib/loco/version.rb
268
- - lib/loco/ws_connected_resources_manager.rb
276
+ - lib/loco/ws_connection_checker.rb
277
+ - lib/loco/ws_connection_finder.rb
278
+ - lib/loco/ws_connection_identifier.rb
269
279
  - lib/loco/ws_connection_manager.rb
270
280
  - lib/loco/ws_connection_storage.rb
271
281
  homepage: http://locoframework.org
@@ -1,51 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Loco
4
- class UuidJob < ActiveJob::Base
5
- queue_as :loco
6
-
7
- def perform(serialized_resource, uuid, action)
8
- ws_conn_manager = init_ws_conn_manager serialized_resource
9
- return unless ws_conn_manager
10
-
11
- case action
12
- when 'add'
13
- add ws_conn_manager, uuid
14
- when 'del'
15
- del ws_conn_manager, uuid
16
- when 'update'
17
- update ws_conn_manager, uuid
18
- end
19
- end
20
-
21
- protected
22
-
23
- def add(ws_conn_manager, uuid)
24
- ws_conn_manager.add uuid
25
- WsConnectedResourcesManager.add ws_conn_manager.identifier
26
- end
27
-
28
- def del(ws_conn_manager, uuid)
29
- ws_conn_manager.del uuid
30
- return if ws_conn_manager.connected_uuids.any?
31
-
32
- WsConnectedResourcesManager.del ws_conn_manager.identifier
33
- end
34
-
35
- def update(ws_conn_manager, uuid)
36
- ws_conn_manager.update uuid
37
- WsConnectedResourcesManager.add ws_conn_manager.identifier
38
- end
39
-
40
- def deserialize_resource(hash)
41
- hash['class'].constantize.find_by id: hash['id']
42
- end
43
-
44
- def init_ws_conn_manager(serialized_resource)
45
- resource = deserialize_resource serialized_resource
46
- return unless resource
47
-
48
- WsConnectionManager.new resource
49
- end
50
- end
51
- end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Loco
4
- class WsConnectedResourcesManager
5
- def initialize(resources)
6
- @resources = resources
7
- @connected_resources = nil
8
- end
9
-
10
- class << self
11
- def identifiers
12
- val = WsConnectionStorage.current.get key
13
- return [] if val.blank?
14
-
15
- JSON.parse val
16
- end
17
-
18
- def add(identifier)
19
- ids = identifiers
20
- return if ids.include? identifier
21
-
22
- ids << identifier
23
- WsConnectionStorage.current.set key, ids.to_json
24
- end
25
-
26
- def del(identifier)
27
- ids = identifiers
28
- return unless ids.include? identifier
29
-
30
- ids.delete identifier
31
- WsConnectionStorage.current.set key, ids.to_json
32
- end
33
-
34
- def key
35
- 'loco:conn_ids'
36
- end
37
- end
38
-
39
- def connected_resources
40
- return @connected_resources if @connected_resources
41
-
42
- @resources.each do |resource|
43
- next if WsConnectionManager.new(resource).connected_uuids.empty?
44
-
45
- add resource
46
- end
47
- @connected_resources || []
48
- end
49
-
50
- def connected?(resource)
51
- connected_resources.map do |res|
52
- WsConnectionManager.new(res).identifier
53
- end.include? WsConnectionManager.new(resource).identifier
54
- end
55
-
56
- private
57
-
58
- def add(resource)
59
- @connected_resources ||= []
60
- @connected_resources << resource
61
- @connected_resources.uniq!
62
- end
63
- end
64
- end