-
-
Notifications
You must be signed in to change notification settings - Fork 45
Open
Labels
Description
Environments
- CRuby 2.7.6
- hanami-validations 1.3.9
Issue detail
When the validator class is defined in the module with name includes Validator, Hanami::Validations::Namespace returns unexpected value.
require 'hanami/validations'
module Validators
class UserValidator
include Hanami::Validations
messages :i18n
validations do
required(:name) { filled? & str? }
end
end
end
puts Validators::UserValidator.namespace.to_s #=> s.user_validatorExpected
puts Validators::UserValidator.namespace.to_s #=> validators.userMotivation
I'd like to define custom error messages for this validator, like below.
# config/locales/errors.en.yml
en:
errors:
rules:
validators:
user:
rules:
name:
filled?: "must be non empty string"
str?: "must be non empty string"How to escape
1. define namespace manually
https://guides.hanamirb.org/v1.3/validations/advanced-usage/#custom-namespace
require 'hanami/validations'
module Validators
class UserValidator
include Hanami::Validations
namespace :'validators/user'
end
end2. apply monkey patch (for Ruby >= 2.5.0)
require 'hanami/validations'
module Hanami
module Validations
class Namespace
private
def name_without_suffix
@name.delete_suffix(SUFFIX)
end
end
end
end
module Validators
class UserValidator
include Hanami::Validations
end
end
puts Validators::UserValidator.namespace.to_s #=> validators.userNow hanami-validations gem supports Ruby >= 2.3.0, so I give up to create pull request :(
Reactions are currently unavailable