Sha256: 280b9397920aa075eeacc9c27a75655ba5e5a89573fcd490984f55ae7e8df373
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true module CodebrekerManfly class Guess < ValidatableEntity CODE_LENGTH = 4 def initialize(string_code) super() @string_code = string_code end def code @code ||= parse_code end private def parse_code @string_code.chars.map { |number| Integer(number) } end def validate return add_error(:code, I18n.t(:unexpected_class_error)) unless valid_class?(String, @string_code) validate_code_length return add_error(:code, I18n.t(:non_numeric_string_error)) unless valid_only_numeric_string?(@string_code) add_error(:code, I18n.t(:invalid_range)) unless valid_range?( CodebrekerManfly::CodeGenerator::DEFAULT_CODE_RANGE, parse_code ) end def validate_code_length add_error(:code, I18n.t(:string_min_length_error)) unless valid_string_min_length?(@string_code, CODE_LENGTH) add_error(:code, I18n.t(:string_max_length_error)) unless valid_string_max_length?(@string_code, CODE_LENGTH) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
codebreker_manfly-0.1.2 | lib/codebreker_manfly/entities/guess.rb |
codebreker_manfly-0.1.1 | lib/codebreker_manfly/entities/guess.rb |