Sha256: cd41f2514588a6cf8ea4c80335fb59d8c37df234227038c4be6e985addec0ae7
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
module Dry module Schema module Messages # Namespaced messages backend # # @api public class Namespaced <Dry::Schema::Messages::Abstract # @api private attr_reader :namespace # @api private attr_reader :messages # @api private attr_reader :root # @api private attr_reader :call_opts # @api private def initialize(namespace, messages) super() @namespace = namespace @messages = messages @root = messages.root @call_opts = { namespace: namespace }.freeze end # Get a message for the given key and its options # # @param [Symbol] key # @param [Hash] options # # @return [String] # # @api public def get(key, options = {}) messages.get(key, options) end # @api public def call(key, options = {}) super(key, options.empty? ? call_opts : options.merge(call_opts)) end alias_method :[], :call # Check if given key is defined # # @return [Boolean] # # @api public def key?(key, *args) messages.key?(key, *args) end # @api private def lookup_paths(tokens) super(tokens.merge(root: "#{tokens[:root]}.#{namespace}")) + super end def rule_lookup_paths(tokens) base_paths = messages.rule_lookup_paths(tokens) base_paths.map { |key| key.gsub("dry_schema", "dry_schema.#{namespace}") } + base_paths end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dry-schema-0.2.0 | lib/dry/schema/messages/namespaced.rb |