Module: Ukiryu::OptionsBuilder::Validator
- Defined in:
- lib/ukiryu/options_builder/validator.rb
Overview
Validation utilities for options classes
This module provides validation methods for dynamically generated options classes, ensuring required arguments are present.
Defined Under Namespace
Classes: ValidationError
Class Method Summary collapse
-
.define_validation_method(klass, command_def) ⇒ Object
Define validation method on an options class.
Class Method Details
.define_validation_method(klass, command_def) ⇒ Object
Define validation method on an options class
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/ukiryu/options_builder/validator.rb', line 14 def self.define_validation_method(klass, command_def) klass.define_method(:validate!) do errors = [] # Check required arguments (command_def.arguments || []).each do |arg_def| attr_name = arg_def.name value = instance_variable_get("@#{attr_name}") # Check if required (no min specified or min > 0) min = arg_def.min || (arg_def.variadic ? 1 : 1) errors << "Missing required argument: #{attr_name}" if min.positive? && (value.nil? || (value.is_a?(Array) && value.empty?)) end raise Ukiryu::Errors::ValidationError, errors.join(', ') if errors.any? end end |