Closed
Description
To Reproduce
# example.rb
require "i18n"
require "dry-schema"
I18n.backend.store_translations(
:en,
dry_schema: {
errors: {
key?: {
text: "is missing",
code: "123"
}
}
}
)
schema = Dry::Schema.Params do
config.messages.backend = :i18n
config.messages.load_paths = []
required(:id)
end
schema.call({}).errors[:key?]
$ ruby example.rb
Traceback (most recent call last):
8: from example.rb:23:in `<main>'
7: from /Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message_set.rb:79:in `[]'
6: from /Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message_set.rb:67:in `to_h'
5: from /Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message_set.rb:117:in `messages_map'
4: from /Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message_set.rb:117:in `reduce'
3: from /Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message_set.rb:117:in `each'
2: from /Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message_set.rb:124:in `block in messages_map'
1: from /Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message_set.rb:124:in `map!'
/Users/self/.rvm/gems/ruby-2.6.3/gems/dry-schema-1.4.1/lib/dry/schema/message.rb:55:in `dump': undefined method `empty?' for nil:NilClass (NoMethodError)
Expected behavior
Should not raise an error. Message should include the translated text as well as the metadata.
Your environment
- Affects my production application: NO
- Ruby version: 2.6.3
- OS: macOS 10.14.6
Activity
Merge pull request #212 from robhanlon22/i18n-metadata