arkaan 2.7.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/lib/arkaan.rb +18 -16
  3. data/lib/arkaan/account.rb +22 -19
  4. data/lib/arkaan/authentication.rb +3 -1
  5. data/lib/arkaan/authentication/session.rb +10 -7
  6. data/lib/arkaan/campaign.rb +21 -19
  7. data/lib/arkaan/campaigns.rb +4 -2
  8. data/lib/arkaan/campaigns/invitation.rb +2 -2
  9. data/lib/arkaan/chatrooms.rb +7 -5
  10. data/lib/arkaan/chatrooms/base.rb +3 -1
  11. data/lib/arkaan/chatrooms/campaign.rb +3 -1
  12. data/lib/arkaan/chatrooms/conversation.rb +5 -1
  13. data/lib/arkaan/chatrooms/membership.rb +6 -2
  14. data/lib/arkaan/chatrooms/message.rb +5 -3
  15. data/lib/arkaan/concerns.rb +10 -8
  16. data/lib/arkaan/concerns/activable.rb +6 -4
  17. data/lib/arkaan/concerns/diagnosticable.rb +7 -5
  18. data/lib/arkaan/concerns/enumerable.rb +21 -9
  19. data/lib/arkaan/concerns/historizable.rb +7 -5
  20. data/lib/arkaan/concerns/mime_typable.rb +18 -10
  21. data/lib/arkaan/concerns/premiumable.rb +3 -1
  22. data/lib/arkaan/concerns/sluggable.rb +9 -8
  23. data/lib/arkaan/concerns/typable.rb +5 -3
  24. data/lib/arkaan/factories.rb +4 -2
  25. data/lib/arkaan/files.rb +6 -2
  26. data/lib/arkaan/files/document.rb +5 -3
  27. data/lib/arkaan/files/permission.rb +4 -2
  28. data/lib/arkaan/monitoring.rb +4 -2
  29. data/lib/arkaan/monitoring/route.rb +6 -3
  30. data/lib/arkaan/monitoring/service.rb +5 -3
  31. data/lib/arkaan/notification.rb +5 -2
  32. data/lib/arkaan/oauth.rb +6 -4
  33. data/lib/arkaan/oauth/access_token.rb +10 -8
  34. data/lib/arkaan/oauth/application.rb +18 -12
  35. data/lib/arkaan/oauth/authorization.rb +8 -6
  36. data/lib/arkaan/oauth/refresh_token.rb +7 -4
  37. data/lib/arkaan/permissions.rb +5 -3
  38. data/lib/arkaan/permissions/category.rb +4 -2
  39. data/lib/arkaan/permissions/group.rb +4 -2
  40. data/lib/arkaan/permissions/right.rb +8 -4
  41. data/lib/arkaan/ruleset.rb +6 -4
  42. metadata +104 -54
  43. data/lib/arkaan/decorators/errors.rb +0 -9
  44. data/lib/arkaan/decorators/errors/env_variable_missing.rb +0 -14
  45. data/lib/arkaan/decorators/gateway.rb +0 -109
  46. data/lib/arkaan/factories/errors.rb +0 -9
  47. data/lib/arkaan/factories/errors/gateway_not_found.rb +0 -14
  48. data/lib/arkaan/version.rb +0 -3
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Arkaan
2
4
  module OAuth
3
5
  # An OAuth authorization is granted by a user to an application to access its personal data.
@@ -10,8 +12,8 @@ module Arkaan
10
12
  include Mongoid::Timestamps
11
13
 
12
14
  # @!attribute [rw] code
13
- # @return [String] the value corresponding to the authentication code in the RFC of OAuth2.0, kep for historic purpose.
14
- field :code, type: String, default: ->{ SecureRandom.hex }
15
+ # @return [String] the value corresponding to the authentication code in the RFC of OAuth2.0.
16
+ field :code, type: String, default: -> { SecureRandom.hex }
15
17
 
16
18
  # @!attribute [rw] account
17
19
  # @return [Arkaaan::Account] the account granting the authorization to access its data to the application.
@@ -20,12 +22,12 @@ module Arkaan
20
22
  # @return [Arkaan::OAuth::Application] the application asking to access account's data.
21
23
  belongs_to :application, class_name: 'Arkaan::OAuth::Application', inverse_of: :authorizations
22
24
  # @!attribute [rw] token
23
- # @return [Arkaan::OAuth::AccessToken] the access token used further in the application process to access private data of the account.
25
+ # @return [Arkaan::OAuth::AccessToken] the access token used further in the application process to access data.
24
26
  has_many :tokens, class_name: 'Arkaan::OAuth::AccessToken', inverse_of: :authorization
25
27
 
26
28
  validates :code,
27
- presence: {message: 'required'},
28
- uniqueness: {message: 'uniq'}
29
+ presence: { message: 'required' },
30
+ uniqueness: { message: 'uniq' }
29
31
  end
30
32
  end
31
- end
33
+ end
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Arkaan
2
4
  module OAuth
3
- # A refresh token is used when an access token is expired, to get a new one. It is then recreated for the next expiration.
5
+ # A refresh token is used when an access token is expired, to get a new one.
6
+ # It is then recreated for the next expiration.
4
7
  # @author Vincent Courtois <courtois.vincent@outlook.com>
5
8
  class RefreshToken
6
9
  include Mongoid::Document
@@ -8,11 +11,11 @@ module Arkaan
8
11
 
9
12
  # @!attribute [rw] value
10
13
  # @return [String] the value of the token, returned to the application when built.
11
- field :value, type: String, default: ->{ SecureRandom.hex }
14
+ field :value, type: String, default: -> { SecureRandom.hex }
12
15
 
13
16
  # @!attribute [rw] authorization
14
- # @return [Arkaan::OAuth::Authorization] the authorization code that issued this token to the application for this user.
17
+ # @return [Arkaan::OAuth::Authorization] the authorization code that issued this token to the application.
15
18
  belongs_to :authorization, class_name: 'Arkaan::OAuth::Authorization', inverse_of: :refresh_token
16
19
  end
17
20
  end
18
- end
21
+ end
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Arkaan
2
4
  # This module holds the logic for all the classes concerning the permissions abd rights for the user.
3
5
  # A permission is restricting the access to one or several features to the users having it.
4
6
  # @author Vincent Courtois <courtois.vincent@outlook.com>
5
7
  module Permissions
6
- autoload :Right , 'arkaan/permissions/right'
7
- autoload :Group , 'arkaan/permissions/group'
8
+ autoload :Right, 'arkaan/permissions/right'
9
+ autoload :Group, 'arkaan/permissions/group'
8
10
  autoload :Category, 'arkaan/permissions/category'
9
11
  end
10
- end
12
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Arkaan
2
4
  module Permissions
3
5
  # A category of rights regroups one or several rights for convenience purposes.
@@ -9,7 +11,7 @@ module Arkaan
9
11
 
10
12
  has_many :rights, class_name: 'Arkaan::Permissions::Right', inverse_of: :category
11
13
 
12
- make_sluggable 'category'
14
+ make_sluggable
13
15
  end
14
16
  end
15
- end
17
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Arkaan
2
4
  module Permissions
3
5
  # A group gathers one or several users to give them the same rights for conviniency purposes.
@@ -24,7 +26,7 @@ module Arkaan
24
26
  # @return [Array<Arkaan::Monitoring::Route>] the routes this group can access in the API.
25
27
  has_and_belongs_to_many :routes, class_name: 'Arkaan::Monitoring::Route', inverse_of: :groups
26
28
 
27
- make_sluggable 'group'
29
+ make_sluggable
28
30
  end
29
31
  end
30
- end
32
+ end
@@ -1,6 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Arkaan
2
4
  module Permissions
3
- # A right is the access to one or several features in the application. It's applied to a group, and transitively to an account.
5
+ # A right is the access to one or several features in the application.
6
+ # It's applied to a group, and transitively to an account.
4
7
  # @author Vincent Courtois <courtois;vincent@outlook.com>
5
8
  class Right
6
9
  include Mongoid::Document
@@ -8,12 +11,13 @@ module Arkaan
8
11
  include Arkaan::Concerns::Sluggable
9
12
 
10
13
  # @!attribute [rw] groups
11
- # @return [Array<Arkaan::Permissions::Group>] the groups granted with the permission to access features opened by this right.
14
+ # @return [Array<Arkaan::Permissions::Group>] the groups granted with the permission to
15
+ # access features opened by this right.
12
16
  has_and_belongs_to_many :groups, class_name: 'Arkaan::Permissions::Group', inverse_of: :rights
13
17
 
14
18
  belongs_to :category, class_name: 'Arkaan::Permissions::Category', inverse_of: :rights
15
19
 
16
- make_sluggable 'right'
20
+ make_sluggable
17
21
  end
18
22
  end
19
- end
23
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Arkaan
2
4
  # A set of rules is describing how a specific game system works (eg. Dungeons and Dragons 5th Edition, or Fate)
3
5
  # @author Vincent Courtois <courtois.vincent@outlook.com>
@@ -23,8 +25,8 @@ module Arkaan
23
25
  has_many :campaigns, class_name: 'Arkaan::Campaign', inverse_of: :ruleset
24
26
 
25
27
  validates :name,
26
- presence: {message: 'required'},
27
- length: {minimum: 4, message: 'minlength', if: :name?},
28
- uniqueness: {message: 'uniq', if: :name?}
28
+ presence: { message: 'required' },
29
+ length: { minimum: 4, message: 'minlength', if: :name? },
30
+ uniqueness: { message: 'uniq', if: :name? }
29
31
  end
30
- end
32
+ end
metadata CHANGED
@@ -1,253 +1,309 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arkaan
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.7.1
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Courtois
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-05 00:00:00.000000000 Z
11
+ date: 2020-10-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rspec
14
+ name: database_cleaner
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 3.6.0
19
+ version: 1.6.1
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 3.6.0
26
+ version: 1.6.1
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec-json_expectations
28
+ name: factory_bot
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 2.1.0
33
+ version: 6.1.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 2.1.0
40
+ version: 6.1.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: rack-test
42
+ name: factory_girl
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - '='
46
46
  - !ruby/object:Gem::Version
47
- version: 0.7.0
47
+ version: 4.8.1
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: 0.7.0
54
+ version: 4.8.1
55
55
  - !ruby/object:Gem::Dependency
56
- name: factory_girl
56
+ name: faker
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 4.8.1
61
+ version: 2.13.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: 4.8.1
68
+ version: 2.13.0
69
69
  - !ruby/object:Gem::Dependency
70
- name: factory_bot
70
+ name: gems
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '='
74
74
  - !ruby/object:Gem::Version
75
- version: 5.1.1
75
+ version: 1.2.0
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: 5.1.1
82
+ version: 1.2.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: database_cleaner
84
+ name: gitlab
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - '='
88
88
  - !ruby/object:Gem::Version
89
- version: 1.6.1
89
+ version: 4.16.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: 1.6.1
96
+ version: 4.16.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: simplecov
98
+ name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 0.15.1
103
+ version: 0.13.1
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 0.15.1
110
+ version: 0.13.1
111
111
  - !ruby/object:Gem::Dependency
112
- name: yard
112
+ name: rack
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - '='
116
116
  - !ruby/object:Gem::Version
117
- version: 0.9.20
117
+ version: 2.2.3
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - '='
123
123
  - !ruby/object:Gem::Version
124
- version: 0.9.20
124
+ version: 2.2.3
125
125
  - !ruby/object:Gem::Dependency
126
- name: pry
126
+ name: rack-test
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - '='
130
130
  - !ruby/object:Gem::Version
131
- version: 0.11.1
131
+ version: 1.1.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
136
  - - '='
137
137
  - !ruby/object:Gem::Version
138
- version: 0.11.1
138
+ version: 1.1.0
139
139
  - !ruby/object:Gem::Dependency
140
- name: rack
140
+ name: rspec
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - '='
144
144
  - !ruby/object:Gem::Version
145
- version: 2.0.8
145
+ version: 3.9.0
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
150
  - - '='
151
151
  - !ruby/object:Gem::Version
152
- version: 2.0.8
152
+ version: 3.9.0
153
153
  - !ruby/object:Gem::Dependency
154
- name: faker
154
+ name: rspec-json_expectations
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '='
158
+ - !ruby/object:Gem::Version
159
+ version: 2.1.0
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '='
165
+ - !ruby/object:Gem::Version
166
+ version: 2.1.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: rspec_junit_formatter
155
169
  requirement: !ruby/object:Gem::Requirement
156
170
  requirements:
157
171
  - - '='
158
172
  - !ruby/object:Gem::Version
159
- version: 2.10.0
173
+ version: 0.4.1
160
174
  type: :development
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
178
  - - '='
165
179
  - !ruby/object:Gem::Version
166
- version: 2.10.0
180
+ version: 0.4.1
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: rubocop
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - '='
172
186
  - !ruby/object:Gem::Version
173
- version: 0.85.1
187
+ version: 0.90.0
188
+ type: :development
189
+ prerelease: false
190
+ version_requirements: !ruby/object:Gem::Requirement
191
+ requirements:
192
+ - - '='
193
+ - !ruby/object:Gem::Version
194
+ version: 0.90.0
195
+ - !ruby/object:Gem::Dependency
196
+ name: semantic
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - '='
200
+ - !ruby/object:Gem::Version
201
+ version: 1.6.1
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - '='
207
+ - !ruby/object:Gem::Version
208
+ version: 1.6.1
209
+ - !ruby/object:Gem::Dependency
210
+ name: simplecov
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '='
214
+ - !ruby/object:Gem::Version
215
+ version: 0.19.0
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '='
221
+ - !ruby/object:Gem::Version
222
+ version: 0.19.0
223
+ - !ruby/object:Gem::Dependency
224
+ name: yard
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - '='
228
+ - !ruby/object:Gem::Version
229
+ version: 0.9.25
174
230
  type: :development
175
231
  prerelease: false
176
232
  version_requirements: !ruby/object:Gem::Requirement
177
233
  requirements:
178
234
  - - '='
179
235
  - !ruby/object:Gem::Version
180
- version: 0.85.1
236
+ version: 0.9.25
181
237
  - !ruby/object:Gem::Dependency
182
238
  name: mongoid
183
239
  requirement: !ruby/object:Gem::Requirement
184
240
  requirements:
185
241
  - - '='
186
242
  - !ruby/object:Gem::Version
187
- version: 7.0.1
243
+ version: 7.1.0
188
244
  type: :runtime
189
245
  prerelease: false
190
246
  version_requirements: !ruby/object:Gem::Requirement
191
247
  requirements:
192
248
  - - '='
193
249
  - !ruby/object:Gem::Version
194
- version: 7.0.1
250
+ version: 7.1.0
195
251
  - !ruby/object:Gem::Dependency
196
252
  name: activemodel
197
253
  requirement: !ruby/object:Gem::Requirement
198
254
  requirements:
199
255
  - - '='
200
256
  - !ruby/object:Gem::Version
201
- version: 5.2.3
257
+ version: 6.0.3.2
202
258
  type: :runtime
203
259
  prerelease: false
204
260
  version_requirements: !ruby/object:Gem::Requirement
205
261
  requirements:
206
262
  - - '='
207
263
  - !ruby/object:Gem::Version
208
- version: 5.2.3
264
+ version: 6.0.3.2
209
265
  - !ruby/object:Gem::Dependency
210
266
  name: activesupport
211
267
  requirement: !ruby/object:Gem::Requirement
212
268
  requirements:
213
269
  - - '='
214
270
  - !ruby/object:Gem::Version
215
- version: 5.2.3
271
+ version: 6.0.3.2
216
272
  type: :runtime
217
273
  prerelease: false
218
274
  version_requirements: !ruby/object:Gem::Requirement
219
275
  requirements:
220
276
  - - '='
221
277
  - !ruby/object:Gem::Version
222
- version: 5.2.3
278
+ version: 6.0.3.2
223
279
  - !ruby/object:Gem::Dependency
224
280
  name: bcrypt
225
281
  requirement: !ruby/object:Gem::Requirement
226
282
  requirements:
227
283
  - - '='
228
284
  - !ruby/object:Gem::Version
229
- version: 3.1.11
285
+ version: 3.1.13
230
286
  type: :runtime
231
287
  prerelease: false
232
288
  version_requirements: !ruby/object:Gem::Requirement
233
289
  requirements:
234
290
  - - '='
235
291
  - !ruby/object:Gem::Version
236
- version: 3.1.11
292
+ version: 3.1.13
237
293
  - !ruby/object:Gem::Dependency
238
294
  name: dotenv
239
295
  requirement: !ruby/object:Gem::Requirement
240
296
  requirements:
241
297
  - - '='
242
298
  - !ruby/object:Gem::Version
243
- version: 2.7.2
299
+ version: 2.7.6
244
300
  type: :runtime
245
301
  prerelease: false
246
302
  version_requirements: !ruby/object:Gem::Requirement
247
303
  requirements:
248
304
  - - '='
249
305
  - !ruby/object:Gem::Version
250
- version: 2.7.2
306
+ version: 2.7.6
251
307
  description: This gem holds the model layer for my table-top RPG games application.
252
308
  email: courtois.vincent@outlook.com
253
309
  executables: []
@@ -277,13 +333,8 @@ files:
277
333
  - lib/arkaan/concerns/premiumable.rb
278
334
  - lib/arkaan/concerns/sluggable.rb
279
335
  - lib/arkaan/concerns/typable.rb
280
- - lib/arkaan/decorators/errors.rb
281
- - lib/arkaan/decorators/errors/env_variable_missing.rb
282
- - lib/arkaan/decorators/gateway.rb
283
336
  - lib/arkaan/event.rb
284
337
  - lib/arkaan/factories.rb
285
- - lib/arkaan/factories/errors.rb
286
- - lib/arkaan/factories/errors/gateway_not_found.rb
287
338
  - lib/arkaan/files.rb
288
339
  - lib/arkaan/files/document.rb
289
340
  - lib/arkaan/files/permission.rb
@@ -301,7 +352,6 @@ files:
301
352
  - lib/arkaan/permissions/group.rb
302
353
  - lib/arkaan/permissions/right.rb
303
354
  - lib/arkaan/ruleset.rb
304
- - lib/arkaan/version.rb
305
355
  homepage: https://rubygems.org/gems/arkaan
306
356
  licenses:
307
357
  - MIT
@@ -321,7 +371,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
321
371
  - !ruby/object:Gem::Version
322
372
  version: '0'
323
373
  requirements: []
324
- rubygems_version: 3.1.2
374
+ rubygems_version: 3.1.4
325
375
  signing_key:
326
376
  specification_version: 4
327
377
  summary: The model layer for my table-RPG application