lib/dry/schema/message_set.rb in dry-schema-0.3.0 vs lib/dry/schema/message_set.rb in dry-schema-0.4.0
- old
+ new
@@ -1,16 +1,19 @@
# frozen_string_literal: true
+require 'dry/equalizer'
+
module Dry
module Schema
# A set of messages used to generate errors
#
# @see Result#message_set
#
# @api public
class MessageSet
include Enumerable
+ include Dry::Equalizer(:messages, :options)
attr_reader :messages, :placeholders, :options
# @api private
def self.[](messages, options = EMPTY_HASH)
@@ -33,10 +36,19 @@
# @api public
def to_h
messages_map
end
alias_method :to_hash, :to_h
- alias_method :dump, :to_h
+
+ # @api public
+ def [](key)
+ to_h[key]
+ end
+
+ # @api public
+ def fetch(key)
+ self[key] || raise(KeyError, "+#{key}+ message was not found")
+ end
# @api private
def empty?
messages.empty?
end