arkaan 0.9.6 → 0.9.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: de6e70dbddabf869090ee32a2cbdb291bddc58a4
4
- data.tar.gz: '09b28cdf6fbc13c3f5e58426187095ca4a926c9b'
3
+ metadata.gz: 82b48398f8819576417eade7cf5eba42d356d5ce
4
+ data.tar.gz: b2cfd36e16de4b6b4fa50d85e5a17bdc41b3b8aa
5
5
  SHA512:
6
- metadata.gz: 5a18690f1ef9731b8bfe0e9cb500b61fb3e210c8ac9fb50e96fb482d2a4e6f4c826b195ab99668937f114f2ab56f7f60018af8f3f18f090fba4dd8534d5df915
7
- data.tar.gz: 903147c91d3aae1119c739cbdad726853380160850099e4c4785f49d0ab3cecafac8c0bf34592552a6573c5d871ecba29d4c479785cfe4067128bae131e074eb
6
+ metadata.gz: 5f4dcd6b8d2c101495e0fa339deab9c1c063604f9c7e10865084b59506d3b6daa1fbe2735a69e2284e2e52cad63337dce697ae8b8bf8a5017f5565717a68afc6
7
+ data.tar.gz: 2dd59574e0346ab75935889a48d2b56133671b56eaa3c98a900267bb86be60517b42b2e64baf30507e2bab556b1c59c01d6bc11b97917bf50ed67ba919452a09
@@ -17,6 +17,9 @@ module Arkaan
17
17
  # @!attribute [rw] tags
18
18
  # @return [Array<String>] an array of tags describing characteristics of this campaign.
19
19
  field :tags, type: Array, default: []
20
+ # @!attributes [rw] max_players
21
+ # @return [Integer] the maximum number of players allowed in this campaign.
22
+ field :max_players, type: Integer, default: 5
20
23
 
21
24
  # @!attribute [rw] creator
22
25
  # @return [Arkaan::Campaign] the account creating the campaign, and considered "game master".
@@ -10,7 +10,7 @@ module Arkaan
10
10
  module ClassMethods
11
11
 
12
12
  # Creates the field with the given name, set of possible values, and options.
13
- # @param name [String] the name of the enumerated field.
13
+ # @param field_name [String] the name of the enumerated field.
14
14
  # @param values [Array<Symbol>] the possible values of the enumerated field.
15
15
  # @param options [Hash<Symbol, Any>] the possible options for the field.
16
16
  def enum_field(field_name, values, options = {})
@@ -121,6 +121,8 @@ module Arkaan
121
121
  return params.select { |key, value| fields.include?(key) }
122
122
  end
123
123
 
124
+ # Creates a custom error from an existing Arkaan exception class.
125
+ # @param exception {StandardError} the exception to transform in a usable error.
124
126
  def handle_arkaan_exception(exception)
125
127
  custom_error(exception.status, "#{exception.action}.#{exception.field}.#{exception.error}")
126
128
  end
@@ -1,9 +1,12 @@
1
1
  module Arkaan
2
2
  module Utils
3
+ # Module gathering all the exception classes used throughout the utils module, mainly linked to HTTP errors.
4
+ # @author Vincent Courtois <courtois.vincent@outlook.com>
3
5
  module Errors
4
6
  autoload :BadRequest, 'arkaan/utils/errors/bad_request'
5
7
  autoload :Forbidden , 'arkaan/utils/errors/forbidden'
6
8
  autoload :NotFound , 'arkaan/utils/errors/not_found'
9
+ autoload :HTTPError , 'arkaan/utils/errors/http_error'
7
10
  end
8
11
  end
9
12
  end
@@ -1,21 +1,12 @@
1
1
  module Arkaan
2
2
  module Utils
3
3
  module Errors
4
- class BadRequest < StandardError
5
- attr_accessor :field
6
-
7
- attr_accessor :action
8
-
9
- attr_accessor :error
4
+ # A bad request error is raised when the data given to a model makes this model invalid.
5
+ # @author Vincent Courtois <courtois.vincent@outlook.com>
6
+ class BadRequest < Arkaan::Utils::Errors::HTTPError
10
7
 
11
8
  def initialize(action:, field:, error:)
12
- @action = action
13
- @field = field
14
- @error = error
15
- end
16
-
17
- def status
18
- return 400
9
+ super(action, field, error, 400)
19
10
  end
20
11
  end
21
12
  end
@@ -1,21 +1,12 @@
1
1
  module Arkaan
2
2
  module Utils
3
3
  module Errors
4
- class Forbidden < StandardError
5
- attr_accessor :field
4
+ # A forbidden error occurs when a user tries to perform an action he's not allowed to.
5
+ # @author Vincent Courtois <courtois.vincent@outlook.com>
6
+ class Forbidden < Arkaan::Utils::Errors::HTTPError
6
7
 
7
- attr_accessor :action
8
-
9
- attr_accessor :error
10
-
11
- def initialize(action:, field:, error:)
12
- @action = action
13
- @field = field
14
- @error = error
15
- end
16
-
17
- def status
18
- return 403
8
+ def initialize (field:, action:, error:)
9
+ super(action, field, error, 403)
19
10
  end
20
11
  end
21
12
  end
@@ -0,0 +1,30 @@
1
+ module Arkaan
2
+ module Utils
3
+ module Errors
4
+ # Standard class parent to all specialized http errors.
5
+ # @author Vincent Courtois <courtois.vincent@outlook.com>
6
+ class HTTPError < StandardError
7
+
8
+ # @!attribute [rw] field
9
+ # @return [String, Symbol] the name of the field in error in the model.
10
+ attr_accessor :field
11
+ # @!attribute [rw] action
12
+ # @return [String] the name of the action the user was trying to perform on the model (often crate or update).
13
+ attr_accessor :action
14
+ # @attribute [rw] error
15
+ # @return [String] the label of the error returned by the model.
16
+ attr_accessor :error
17
+ # @attribute [rw] status
18
+ # @return [Integer] the HTTP status code as a number (eg: 400, 422 or 500)
19
+ attr_accessor :status
20
+
21
+ def initialize (action, field, error, status)
22
+ @action = action
23
+ @field = field.to_s
24
+ @error = error
25
+ @status = status
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,21 +1,12 @@
1
1
  module Arkaan
2
2
  module Utils
3
3
  module Errors
4
- class NotFound < StandardError
5
- attr_accessor :field
4
+ # A not found error occurs when a user tries to reach a resource that does not exist.
5
+ # @author Vincent Courtois <courtois.vincent@outlook.com>
6
+ class NotFound < Arkaan::Utils::Errors::HTTPError
6
7
 
7
- attr_accessor :action
8
-
9
- attr_accessor :error
10
-
11
- def initialize(action:, field:, error:)
12
- @action = action
13
- @field = field
14
- @error = error
15
- end
16
-
17
- def status
18
- return 404
8
+ def initialize (field:, action:, error:)
9
+ super(action, field, error, 404)
19
10
  end
20
11
  end
21
12
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arkaan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.6
4
+ version: 0.9.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vincent Courtois
@@ -247,6 +247,7 @@ files:
247
247
  - lib/arkaan/utils/errors.rb
248
248
  - lib/arkaan/utils/errors/bad_request.rb
249
249
  - lib/arkaan/utils/errors/forbidden.rb
250
+ - lib/arkaan/utils/errors/http_error.rb
250
251
  - lib/arkaan/utils/errors/not_found.rb
251
252
  - lib/arkaan/utils/micro_service.rb
252
253
  - lib/arkaan/utils/seeder.rb