codebreaker_marian 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2b3b242300e306bda729a51a8d16b0296f5137b339e257e3a002b00211fc1310
4
- data.tar.gz: 73dc8f96288d1c7e330bfd6e381b2938ba10e6d81e9d572b328e531a38157cfe
3
+ metadata.gz: 1f92281dc09601f55b249c61a7b58813d76e6653a3e96ffc386cc1ebbc4da673
4
+ data.tar.gz: c2a46e70ee048d444865d30b4be1fd647e13339ab0d29c5505b97f1243199528
5
5
  SHA512:
6
- metadata.gz: 714a91a71b00f71e2e017fa3653d31c29dab201c54c027c6023ae084a64bb501207139460c9dc62ad5166a70f4afb10ae50e6c403a69407874996c37ec155ade
7
- data.tar.gz: be2fc1f21d70e40e4c011a5f71c2af1d3d0a4d24c53b1ac85268d3693350e59605db3a114d0719625065a6267075ab8d74ce1b7b0a7a0cbb376b7df7d2a0a968
6
+ metadata.gz: 88f961c9361d2881892c38041b24d3e11465cbd2b6bca92da879d20d5007a58a978b7fb59738c266871c3255c533bf6959b24849f894a39c5ab1a07011ea0650
7
+ data.tar.gz: 07bceb9d7bb90bbd66b265616be8f642c3ee6e370ecfa8028fff4c5663b89031ecc05a14749503d69d6ef49e4ebb74ff6189e3ac6239387654bf994940b3921b
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  AllCops:
3
- TargetRubyVersion: 2.7
3
+ TargetRubyVersion: 2.7.1
4
4
  NewCops: enable
5
5
 
6
6
  Metrics/LineLength:
@@ -1 +1 @@
1
- 2.7
1
+ 2.7.1
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- codebreaker_marian (0.2.3)
4
+ codebreaker_marian (0.2.4)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -2,6 +2,8 @@
2
2
 
3
3
  require 'yaml'
4
4
  require_relative 'lib/codebreaker_marian/entities/game'
5
+ require_relative 'lib/codebreaker_marian/modules/validator'
6
+ require_relative 'lib/codebreaker_marian/entities/user'
5
7
  require_relative 'lib/codebreaker_marian/entities/data_storage'
6
8
  require_relative 'lib/codebreaker_marian/entities/processor'
7
9
  require_relative 'lib/codebreaker_marian/entities/statistics'
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Codebreaker
4
+ module Entities
5
+ class User
6
+ include Validator
7
+ USERNAME_CONSTRAINTS = { min: 3, max: 20 }.freeze
8
+
9
+ attr_reader :name
10
+
11
+ def initialize(name)
12
+ @name = name
13
+ validate
14
+ end
15
+
16
+ private
17
+
18
+ def validate
19
+ check_type(@name, String)
20
+ check_length(@name, USERNAME_CONSTRAINTS)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Codebreaker
4
+ module Validator
5
+ DataValidError = Class.new(StandardError)
6
+
7
+ def check_type(data, check_type)
8
+ raise DataValidError, 'unexpected_type' unless data.instance_of? check_type
9
+ end
10
+
11
+ def check_length(data, check)
12
+ raise DataValidError, 'unexpected_length' unless (check[:min]..check[:max]).cover? data.length
13
+ end
14
+ end
15
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Codebreaker
4
- VERSION = '0.2.3'
4
+ VERSION = '0.2.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: codebreaker_marian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marian Rebeha
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-07-31 00:00:00.000000000 Z
11
+ date: 2020-08-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -178,6 +178,8 @@ files:
178
178
  - lib/codebreaker_marian/entities/game.rb
179
179
  - lib/codebreaker_marian/entities/processor.rb
180
180
  - lib/codebreaker_marian/entities/statistics.rb
181
+ - lib/codebreaker_marian/entities/user.rb
182
+ - lib/codebreaker_marian/modules/validator.rb
181
183
  - lib/codebreaker_marian/version.rb
182
184
  homepage: https://github.com/marikrebega/RubyGarage_2_Codebreaker_gem
183
185
  licenses: []
@@ -198,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
198
200
  - !ruby/object:Gem::Version
199
201
  version: '0'
200
202
  requirements: []
201
- rubygems_version: 3.1.4
203
+ rubygems_version: 3.1.2
202
204
  signing_key:
203
205
  specification_version: 4
204
206
  summary: CodebreakerMarian app