arkaan 0.7.31 → 0.8.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.
- checksums.yaml +4 -4
- data/lib/arkaan.rb +1 -0
- data/lib/arkaan/account.rb +6 -2
- data/lib/arkaan/campaign.rb +35 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99784662e90ac8d01942af0ff731c8ccdaea5ca7
|
4
|
+
data.tar.gz: 24a58fbc83b503391d8e1c2f35fcd9795a18c86c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 26a4d46f772c44d7a0db3a811d15c7dea4054e2ac70d86dae98d9022fece67c69708f9e43411ebfb7a357174ebc918e577b77ab407283388832c1d2eda341413
|
7
|
+
data.tar.gz: 387f9a97be48f491fa70b82a039a257b309778a80caf6f75ac6d06db91c5003ec3b174c2700cfb7c837666066cda1c50cdcedfb67ce1cb30b756cf4a3bdf887e
|
data/lib/arkaan.rb
CHANGED
@@ -8,6 +8,7 @@ require 'sinatra/base'
|
|
8
8
|
module Arkaan
|
9
9
|
autoload :Account , 'arkaan/account'
|
10
10
|
autoload :Authentication, 'arkaan/authentication'
|
11
|
+
autoload :Campaign , 'arkaan/campaign'
|
11
12
|
autoload :Concerns , 'arkaan/concerns'
|
12
13
|
autoload :Monitoring , 'arkaan/monitoring'
|
13
14
|
autoload :OAuth , 'arkaan/oauth'
|
data/lib/arkaan/account.rb
CHANGED
@@ -41,10 +41,14 @@ module Arkaan
|
|
41
41
|
# @return [Array<Arkaan::OAuth::Authorization>] the authorization issued by this account to third-party applications to access its data.
|
42
42
|
has_many :authorizations, class_name: 'Arkaan::OAuth::Authorization', inverse_of: :account
|
43
43
|
# @!attribute [rw] services
|
44
|
-
# @return [Array<Arkaan::Monitoring::Service] the services created by this user.
|
44
|
+
# @return [Array<Arkaan::Monitoring::Service>] the services created by this user.
|
45
45
|
has_many :services, class_name: 'Arkaan::Monitoring::Service', inverse_of: :creator
|
46
|
-
|
46
|
+
# @!attribute [rw] sessions
|
47
|
+
# @return [Array<Arkaan::Authentication::Session>] the sessions on which this account is, or has been logged in.
|
47
48
|
has_many :sessions, class_name: 'Arkaan::Authentication::Session', inverse_of: :account
|
49
|
+
# @!attribute [rw] campaigns
|
50
|
+
# @return [Array<Arkaan::Campaign>] the campaigns this account has created.
|
51
|
+
has_many :campaigns, class_name: 'Arkaan::Campaign', inverse_of: :creator
|
48
52
|
|
49
53
|
attr_readonly :password_digest
|
50
54
|
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Arkaan
|
2
|
+
# A campaign is a gathering of accounts playing on the same interface, and interacting in a common game.
|
3
|
+
# @author Vincent Courtois <courtois.vincent@outlook.com>
|
4
|
+
class Campaign
|
5
|
+
include Mongoid::Document
|
6
|
+
include Mongoid::Timestamps
|
7
|
+
|
8
|
+
# @!attribute [rw] title
|
9
|
+
# @return [String] the title, or name, of the campaign, used to identify it in the list.
|
10
|
+
field :title, type: String
|
11
|
+
# @!attribute [rw] description
|
12
|
+
# @return [String] a more detailed description, used to give further information about the campaign in general.
|
13
|
+
field :description, type: String
|
14
|
+
# @!attribute [rw] is_private
|
15
|
+
# @return [Boolean] TRUE if the campaign can be joined only by being invited by the creator, FALSE if it's publicly displayed and accessible.
|
16
|
+
field :is_private, type: Boolean, default: true
|
17
|
+
|
18
|
+
# @!attribute [rw] creator
|
19
|
+
# @return [Arkaan::Campaign] the account creating the campaign, and considered "game master".
|
20
|
+
belongs_to :creator, class_name: 'Arkaan::Account', inverse_of: :campaigns
|
21
|
+
|
22
|
+
validates :title,
|
23
|
+
presence: {message: 'campaign.title.blank'},
|
24
|
+
length: {minimum: 4, message: 'campaign.title.short', if: :title?}
|
25
|
+
|
26
|
+
validate :title_unicity
|
27
|
+
|
28
|
+
# Adds an error message if the account creating this campaign already has a campaign with the very same name.
|
29
|
+
def title_unicity
|
30
|
+
if title? && creator.campaigns.where(title: title, :id.ne => _id).exists?
|
31
|
+
errors.add(:title, 'campaign.title.uniq')
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: arkaan
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.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: 2018-03-
|
11
|
+
date: 2018-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -188,6 +188,7 @@ files:
|
|
188
188
|
- lib/arkaan/account.rb
|
189
189
|
- lib/arkaan/authentication.rb
|
190
190
|
- lib/arkaan/authentication/session.rb
|
191
|
+
- lib/arkaan/campaign.rb
|
191
192
|
- lib/arkaan/concerns.rb
|
192
193
|
- lib/arkaan/concerns/activable.rb
|
193
194
|
- lib/arkaan/concerns/diagnosticable.rb
|