lib/dry/schema/namespaced_rule.rb in dry-schema-0.6.0 vs lib/dry/schema/namespaced_rule.rb in dry-schema-1.0.0
- old
+ new
@@ -1,23 +1,35 @@
# frozen_string_literal: true
module Dry
module Schema
+ # A special rule type that is configured under a specified namespace
+ #
+ # This is used internally to create rules that can be properly handled
+ # by the message compiler in situations where a schema reuses another schema
+ # but it is configured to use a message namespace
+ #
+ # @api private
class NamespacedRule
+ # @api private
attr_reader :rule
+ # @api private
attr_reader :namespace
+ # @api private
def initialize(namespace, rule)
@namespace = namespace
@rule = rule
end
+ # @api private
def call(input)
result = rule.call(input)
Logic::Result.new(result.success?) { [:namespace, [namespace, result.to_ast]] }
end
+ # @api private
def ast(input=Undefined)
[:namespace, [namespace, rule.ast(input)]]
end
end
end