diff --git a/Gemfile.lock b/Gemfile.lock index 758e5de..5b30539 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -4,7 +4,7 @@ PATH datory (2.2.1) activesupport (>= 5.1, < 8.1) i18n (~> 1.14) - servactory (>= 2.9.0) + servactory (>= 2.12) terminal-table (>= 3.0) zeitwerk (~> 2.6) @@ -68,7 +68,7 @@ GEM diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.13.0) rspec-support (3.13.2) - rubocop (1.72.2) + rubocop (1.73.1) json (~> 2.3) language_server-protocol (~> 3.17.0.2) lint_roller (~> 1.1.0) @@ -79,7 +79,7 @@ GEM rubocop-ast (>= 1.38.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 2.4.0, < 4.0) - rubocop-ast (1.38.0) + rubocop-ast (1.38.1) parser (>= 3.3.1.0) rubocop-factory_bot (2.26.1) rubocop (~> 1.61) @@ -87,7 +87,7 @@ GEM lint_roller (~> 1.1) rubocop (>= 1.72.1, < 2.0) rubocop-ast (>= 1.38.0, < 2.0) - rubocop-rails (2.30.1) + rubocop-rails (2.30.3) activesupport (>= 4.2.0) lint_roller (~> 1.1) rack (>= 1.1) @@ -104,14 +104,15 @@ GEM rubocop-rspec (~> 3, >= 3.0.1) ruby-progressbar (1.13.0) securerandom (0.4.1) - servactory (2.11.0) + servactory (2.12.0) activesupport (>= 5.1, < 8.1) - base64 (~> 0.2) - bigdecimal (~> 3.0) - i18n (~> 1.14) - mutex_m (~> 0.2) - zeitwerk (~> 2.6) - servactory-rubocop (0.6.1) + base64 (>= 0.2) + bigdecimal (>= 3.1) + i18n (>= 1.14) + mutex_m (>= 0.3) + zeitwerk (>= 2.6) + servactory-rubocop (0.7.0) + rubocop (>= 1.73) rubocop-factory_bot (>= 2.26) rubocop-performance (>= 1.24) rubocop-rails (>= 2.30) @@ -126,7 +127,7 @@ GEM unicode-display_width (3.1.4) unicode-emoji (~> 4.0, >= 4.0.4) unicode-emoji (4.0.4) - uri (1.0.2) + uri (1.0.3) zeitwerk (2.7.2) PLATFORMS @@ -148,7 +149,7 @@ DEPENDENCIES rake (~> 13.0) rbs (>= 3.1.3) rspec (~> 3.12) - servactory-rubocop (>= 0.5) + servactory-rubocop (>= 0.7) BUNDLED WITH - 2.6.4 + 2.6.5 diff --git a/config/locales/en.yml b/config/locales/en.yml index cf85b5c..652c7dd 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -9,11 +9,9 @@ en: cannot_be_overwritten: "[%{service_class_name}] The following methods cannot be overwritten: %{list_of_methods}" inputs: undefined: - getter: "[%{service_class_name}] Undefined attribute `%{input_name}`" - setter: "[%{service_class_name}] Undefined attribute `%{input_name}`" + for_fetch: "[%{service_class_name}] Undefined attribute `%{input_name}`" + for_assign: "[%{service_class_name}] Undefined attribute `%{input_name}`" validations: - inclusion: - default_error: "[%{service_class_name}] Wrong value in `%{input_name}`, must be one of `%{input_inclusion}`" must: default_error: "[%{service_class_name}] Attribute `%{input_name}` must \"%{code}\"" syntax_error: "[%{service_class_name}] Syntax error inside `%{code}` of `%{input_name}` attribute: %{exception_message}" @@ -26,18 +24,26 @@ en: default: "[%{service_class_name}] Attribute `%{input_name}` does not match `%{format_name}` format" wrong_pattern: "[%{service_class_name}] Attribute `%{input_name}` does not match `%{format_name}` format" unknown: "[%{service_class_name}] Unknown `%{format_name}` format specified for attribute `%{input_name}`" + inclusion: + default: "[%{service_class_name}] Wrong value in `%{input_name}`, must be one of `%{input_inclusion}`, got `%{value}`" min: default: "[%{service_class_name}] Attribute `%{input_name}` received value `%{value}`, which is less than `%{option_value}`" max: default: "[%{service_class_name}] Attribute `%{input_name}` received value `%{value}`, which is greater than `%{option_value}`" + multiple_of: + default: "[%{service_class_name}] Attribute `%{input_name}` has the value `%{value}`, which is not a multiple of `%{option_value}`" + blank: "[%{service_class_name}] Attribute `%{input_name}` has an invalid value `%{option_value}` in option `%{option_name}`" + divided_by_0: "[%{service_class_name}] Attribute `%{input_name}` has an invalid value `%{option_value}` in option `%{option_name}`" + schema: + wrong_type: "[%{service_class_name}] Wrong type of attribute `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`" + wrong_element_type: "[%{service_class_name}] Wrong type in attribute hash `%{input_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`" + wrong_element_value: "[%{service_class_name}] Wrong value in attribute hash `%{input_name}`, expected value of type `%{expected_type}` for `%{key_name}`, got `%{given_type}`" required: default_error: default: "[%{service_class_name}] Required attribute `%{input_name}` is missing" type: default_error: default: "[%{service_class_name}] Wrong type of attribute `%{input_name}`, expected `%{expected_type}`, got `%{given_type}`" - for_hash: - wrong_element_type: "[%{service_class_name}] Wrong type in attribute hash `%{input_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`" tools: find_unnecessary: error: "[%{service_class_name}] Unexpected attributes: `%{unnecessary_attributes}`" @@ -45,11 +51,9 @@ en: error: "[%{service_class_name}] Conflict in `%{input_name}` attribute options: `%{conflict_code}`" internals: undefined: - getter: "[%{service_class_name}] Undefined internal attribute `%{internal_name}`" - setter: "[%{service_class_name}] Undefined internal attribute `%{internal_name}`" + for_fetch: "[%{service_class_name}] Undefined internal attribute `%{internal_name}`" + for_assign: "[%{service_class_name}] Undefined internal attribute `%{internal_name}`" validations: - inclusion: - default_error: "[%{service_class_name}] Wrong value in `%{internal_name}`, must be one of `%{internal_inclusion}`" must: default_error: "[%{service_class_name}] Internal attribute `%{internal_name}` must \"%{code}\"" syntax_error: "[%{service_class_name}] Syntax error inside `%{code}` of `%{internal_name}` internal attribute: %{exception_message}" @@ -62,22 +66,28 @@ en: default: "[%{service_class_name}] Internal attribute `%{internal_name}` does not match `%{format_name}` format" wrong_pattern: "[%{service_class_name}] Internal attribute `%{internal_name}` does not match `%{format_name}` format" unknown: "[%{service_class_name}] Unknown `%{format_name}` format specified for internal attribute `%{internal_name}`" + inclusion: + default: "[%{service_class_name}] Wrong value in `%{internal_name}`, must be one of `%{internal_inclusion}`, got `%{value}`" min: default: "[%{service_class_name}] Internal attribute `%{internal_name}` received value `%{value}`, which is less than `%{option_value}`" max: default: "[%{service_class_name}] Internal attribute `%{internal_name}` received value `%{value}`, which is greater than `%{option_value}`" + multiple_of: + default: "[%{service_class_name}] Internal attribute `%{internal_name}` has the value `%{value}`, which is not a multiple of `%{option_value}`" + blank: "[%{service_class_name}] Internal attribute `%{internal_name}` has an invalid value `%{option_value}` in option `%{option_name}`" + divided_by_0: "[%{service_class_name}] Internal attribute `%{internal_name}` has an invalid value `%{option_value}` in option `%{option_name}`" + schema: + wrong_type: "[%{service_class_name}] Wrong type of internal attribute `%{internal_name}`, expected `%{expected_type}`, got `%{given_type}`" + wrong_element_type: "[%{service_class_name}] Wrong type in internal attribute hash `%{internal_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`" + wrong_element_value: "[%{service_class_name}] Wrong value in internal attribute hash `%{internal_name}`, expected value of type `%{expected_type}` for `%{key_name}`, got `%{given_type}`" type: default_error: default: "[%{service_class_name}] Wrong type of internal attribute `%{internal_name}`, expected `%{expected_type}`, got `%{given_type}`" - for_hash: - wrong_element_type: "[%{service_class_name}] Wrong type in internal attribute hash `%{internal_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`" outputs: undefined: - getter: "[%{service_class_name}] Undefined attribute `%{output_name}`" - setter: "[%{service_class_name}] Undefined attribute `%{output_name}`" + for_fetch: "[%{service_class_name}] Undefined attribute `%{output_name}`" + for_assign: "[%{service_class_name}] Undefined attribute `%{output_name}`" validations: - inclusion: - default_error: "[%{service_class_name}] Wrong value in `%{output_name}`, must be one of `%{output_inclusion}`" must: default_error: "[%{service_class_name}] Attribute `%{output_name}` must \"%{code}\"" syntax_error: "[%{service_class_name}] Syntax error inside `%{code}` of `%{output_name}` attribute: %{exception_message}" @@ -90,12 +100,20 @@ en: default: "[%{service_class_name}] Attribute `%{output_name}` does not match `%{format_name}` format" wrong_pattern: "[%{service_class_name}] Attribute `%{output_name}` does not match `%{format_name}` format" unknown: "[%{service_class_name}] Unknown `%{format_name}` format specified for attribute `%{output_name}`" + inclusion: + default: "[%{service_class_name}] Wrong value in `%{output_name}`, must be one of `%{output_inclusion}`, got `%{value}`" min: default: "[%{service_class_name}] Attribute `%{output_name}` received value `%{value}`, which is less than `%{option_value}`" max: default: "[%{service_class_name}] Attribute `%{output_name}` received value `%{value}`, which is greater than `%{option_value}`" + multiple_of: + default: "[%{service_class_name}] Attribute `%{output_name}` has the value `%{value}`, which is not a multiple of `%{option_value}`" + blank: "[%{service_class_name}] Attribute `%{output_name}` has an invalid value `%{option_value}` in option `%{option_name}`" + divided_by_0: "[%{service_class_name}] Attribute `%{output_name}` has an invalid value `%{option_value}` in option `%{option_name}`" + schema: + wrong_type: "[%{service_class_name}] Wrong type of attribute `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`" + wrong_element_type: "[%{service_class_name}] Wrong type in attribute hash `%{output_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`" + wrong_element_value: "[%{service_class_name}] Wrong value in attribute hash `%{output_name}`, expected value of type `%{expected_type}` for `%{key_name}`, got `%{given_type}`" type: default_error: default: "[%{service_class_name}] Wrong type of attribute `%{output_name}`, expected `%{expected_type}`, got `%{given_type}`" - for_hash: - wrong_element_type: "[%{service_class_name}] Wrong type in attribute hash `%{output_name}`, expected `%{expected_type}` for `%{key_name}`, got `%{given_type}`" diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 8a2c87c..92d1781 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -9,11 +9,9 @@ ru: cannot_be_overwritten: "[%{service_class_name}] Нельзя перезаписать следующие методы: %{list_of_methods}" inputs: undefined: - getter: "[%{service_class_name}] Неизвестный атрибут `%{input_name}`" - setter: "[%{service_class_name}] Неизвестный атрибут `%{input_name}`" + for_fetch: "[%{service_class_name}] Неизвестный атрибут `%{input_name}`" + for_assign: "[%{service_class_name}] Неизвестный атрибут `%{input_name}`" validations: - inclusion: - default_error: "[%{service_class_name}] Неправильное значение в `%{input_name}`, должно быть одним из `%{input_inclusion}`" must: default_error: "[%{service_class_name}] Атрибут `%{input_name}` должен \"%{code}\"" syntax_error: "[%{service_class_name}] Синтаксическая ошибка внутри `%{code}` атрибута `%{input_name}`: %{exception_message}" @@ -26,18 +24,26 @@ ru: default: "[%{service_class_name}] Атрибут `%{input_name}` не соответствует формату `%{format_name}`" wrong_pattern: "[%{service_class_name}] Атрибут `%{input_name}` не соответствует формату `%{format_name}`" unknown: "[%{service_class_name}] Указан неизвестный формат `%{format_name}` у атрибута `%{input_name}`" + inclusion: + default: "[%{service_class_name}] Неправильное значение в `%{input_name}`, должно быть одним из `%{input_inclusion}`, получено `%{value}`" min: default: "[%{service_class_name}] Атрибут `%{input_name}` получил значение `%{value}`, которое меньше `%{option_value}`" max: default: "[%{service_class_name}] Атрибут `%{input_name}` получил значение `%{value}`, которое больше `%{option_value}`" + multiple_of: + default: "[%{service_class_name}] Атрибут `%{input_name}` имеет значение `%{value}`, которое не кратно `%{option_value}`" + blank: "[%{service_class_name}] Атрибут `%{input_name}` имеет недопустимое значение `%{option_value}` в опции `%{option_name}`" + divided_by_0: "[%{service_class_name}] Атрибут `%{input_name}` имеет недопустимое значение `%{option_value}` в опции `%{option_name}`" + schema: + wrong_type: "[%{service_class_name}] Неправильный тип атрибута `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`" + wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута `%{input_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`" + wrong_element_value: "[%{service_class_name}] Неправильное значение в хеше атрибута `%{input_name}`, для `%{key_name}` ожидалось значение с типом `%{expected_type}`, получено `%{given_type}`" required: default_error: default: "[%{service_class_name}] Обязательный атрибут `%{input_name}` отсутствует" type: default_error: default: "[%{service_class_name}] Неправильный тип атрибута `%{input_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`" - for_hash: - wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута `%{input_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`" tools: find_unnecessary: error: "[%{service_class_name}] Неожиданные атрибуты: `%{unnecessary_attributes}`" @@ -45,11 +51,9 @@ ru: error: "[%{service_class_name}] Конфликт в опциях атрибута `%{input_name}`: `%{conflict_code}`" internals: undefined: - getter: "[%{service_class_name}] Неизвестный внутренний атрибут `%{internal_name}`" - setter: "[%{service_class_name}] Неизвестный внутренний атрибут `%{internal_name}`" + for_fetch: "[%{service_class_name}] Неизвестный внутренний атрибут `%{internal_name}`" + for_assign: "[%{service_class_name}] Неизвестный внутренний атрибут `%{internal_name}`" validations: - inclusion: - default_error: "[%{service_class_name}] Неправильное значение в `%{internal_name}`, должно быть одним из `%{internal_inclusion}`" must: default_error: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` должен \"%{code}\"" syntax_error: "[%{service_class_name}] Синтаксическая ошибка внутри `%{code}` внутреннего атрибута `%{internal_name}`: %{exception_message}" @@ -62,22 +66,28 @@ ru: default: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` не соответствует формату `%{format_name}`" wrong_pattern: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` не соответствует формату `%{format_name}`" unknown: "[%{service_class_name}] Указан неизвестный формат `%{format_name}` у внутреннего атрибута `%{internal_name}`" + inclusion: + default: "[%{service_class_name}] Неправильное значение в `%{internal_name}`, должно быть одним из `%{internal_inclusion}`, получено `%{value}`" min: default: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` получил значение `%{value}`, которое меньше `%{option_value}`" max: default: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` получил значение `%{value}`, которое больше `%{option_value}`" + multiple_of: + default: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` имеет значение `%{value}`, которое не кратно `%{option_value}`" + blank: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` имеет недопустимое значение `%{option_value}` в опции `%{option_name}`" + divided_by_0: "[%{service_class_name}] Внутренний атрибут `%{internal_name}` имеет недопустимое значение `%{option_value}` в опции `%{option_name}`" + schema: + wrong_type: "[%{service_class_name}] Неправильный тип внутреннего атрибута `%{internal_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`" + wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше внутреннего атрибута `%{internal_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`" + wrong_element_value: "[%{service_class_name}] Неправильное значение в хеше внутреннего атрибута `%{internal_name}`, для `%{key_name}` ожидалось значение с типом `%{expected_type}`, получено `%{given_type}`" type: default_error: default: "[%{service_class_name}] Неправильный тип внутреннего атрибута `%{internal_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`" - for_hash: - wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше внутреннего атрибута `%{internal_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`" outputs: undefined: - getter: "[%{service_class_name}] Неизвестный атрибут `%{output_name}`" - setter: "[%{service_class_name}] Неизвестный атрибут `%{output_name}`" + for_fetch: "[%{service_class_name}] Неизвестный атрибут `%{output_name}`" + for_assign: "[%{service_class_name}] Неизвестный атрибут `%{output_name}`" validations: - inclusion: - default_error: "[%{service_class_name}] Неправильное значение в `%{output_name}`, должно быть одним из `%{output_inclusion}`" must: default_error: "[%{service_class_name}] Атрибут `%{output_name}` должен \"%{code}\"" syntax_error: "[%{service_class_name}] Синтаксическая ошибка внутри `%{code}` атрибута `%{output_name}`: %{exception_message}" @@ -90,12 +100,20 @@ ru: default: "[%{service_class_name}] Атрибут `%{output_name}` не соответствует формату `%{format_name}`" wrong_pattern: "[%{service_class_name}] Атрибут `%{output_name}` не соответствует формату `%{format_name}`" unknown: "[%{service_class_name}] Указан неизвестный формат `%{format_name}` у атрибута `%{output_name}`" + inclusion: + default: "[%{service_class_name}] Неправильное значение в `%{output_name}`, должно быть одним из `%{output_inclusion}`, получено `%{value}`" min: default: "[%{service_class_name}] Атрибут `%{output_name}` получил значение `%{value}`, которое меньше `%{option_value}`" max: default: "[%{service_class_name}] Атрибут `%{output_name}` получил значение `%{value}`, которое больше `%{option_value}`" + multiple_of: + default: "[%{service_class_name}] Атрибут `%{output_name}` имеет значение `%{value}`, которое не кратно `%{option_value}`" + blank: "[%{service_class_name}] Атрибут `%{output_name}` имеет недопустимое значение `%{option_value}` в опции `%{option_name}`" + divided_by_0: "[%{service_class_name}] Атрибут `%{output_name}` имеет недопустимое значение `%{option_value}` в опции `%{option_name}`" + schema: + wrong_type: "[%{service_class_name}] Неправильный тип атрибута `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`" + wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута `%{output_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`" + wrong_element_value: "[%{service_class_name}] Неправильное значение в хеше атрибута `%{output_name}`, для `%{key_name}` ожидалось значение с типом `%{expected_type}`, получено `%{given_type}`" type: default_error: default: "[%{service_class_name}] Неправильный тип атрибута `%{output_name}`, ожидалось `%{expected_type}`, получено `%{given_type}`" - for_hash: - wrong_element_type: "[%{service_class_name}] Неправильный тип в хеше атрибута `%{output_name}`, для `%{key_name}` ожидалось `%{expected_type}`, получено `%{given_type}`" diff --git a/datory.gemspec b/datory.gemspec index 5ac3b77..2c30afb 100644 --- a/datory.gemspec +++ b/datory.gemspec @@ -31,7 +31,7 @@ Gem::Specification.new do |spec| spec.add_dependency "activesupport", ">= 5.1", "< 8.1" spec.add_dependency "i18n", "~> 1.14" - spec.add_dependency "servactory", ">= 2.9.0" + spec.add_dependency "servactory", ">= 2.12" spec.add_dependency "terminal-table", ">= 3.0" spec.add_dependency "zeitwerk", "~> 2.6" @@ -39,5 +39,5 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rake", "~> 13.0" spec.add_development_dependency "rbs", ">= 3.1.3" spec.add_development_dependency "rspec", "~> 3.12" - spec.add_development_dependency "servactory-rubocop", ">= 0.5" + spec.add_development_dependency "servactory-rubocop", ">= 0.7" end