Module: SharedBroker::Validation
- Defined in:
- lib/shared_broker/validation.rb
Defined Under Namespace
Classes: ValidationError
Class Method Summary collapse
Class Method Details
.clear ⇒ Object
28 29 30 |
# File 'lib/shared_broker/validation.rb', line 28 def self.clear @schemas.clear end |
.register(topic, schema) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/shared_broker/validation.rb', line 11 def self.register(topic, schema) unless schema.respond_to?(:call) raise ArgumentError, "Expected schema to respond to :call, got #{schema.class} with value #{schema.inspect}" end @schemas[topic.to_s] = schema end |
.validate!(topic, message) ⇒ Object
18 19 20 21 22 23 24 25 26 |
# File 'lib/shared_broker/validation.rb', line 18 def self.validate!(topic, ) schema = @schemas[topic.to_s] return unless schema result = schema.call() unless result.success? raise ValidationError, "Schema validation failed for topic #{topic.inspect}. Expected keys: #{schema.rules.keys.inspect}, got payload: #{.inspect}. Errors: #{result.errors.to_h.inspect}" end end |