Module: RubyReactor::Dsl::ValidationHelpers
- Included in:
- Reactor::ClassMethods, StepBuilder
- Defined in:
- lib/ruby_reactor/dsl/validation_helpers.rb
Instance Method Summary collapse
-
#build_args_validator(inline_rules, validate_input) ⇒ Object
Compose per-argument inline rules with an optional ‘validate_args` block / pre-built schema.
-
#build_inline_validator(name, type, optional, predicates) ⇒ Object
Form 1 / 1b — inline scalar or class type for a single named value.
-
#build_macro_validator(name, optional, &block) ⇒ Object
Form 2 — block bound to the value’s macro (‘required`/`optional`).
-
#build_scalar_validator(type, predicates) ⇒ Object
Scalar-aware single-value validator (used by ‘validate_output`).
-
#build_validation_schema(&block) ⇒ Object
Validation helper methods.
- #create_input_validator(schema_or_block) ⇒ Object
Instance Method Details
#build_args_validator(inline_rules, validate_input) ⇒ Object
Compose per-argument inline rules with an optional ‘validate_args` block / pre-built schema. Returns nil when there is nothing to validate.
41 42 43 44 45 46 47 48 49 |
# File 'lib/ruby_reactor/dsl/validation_helpers.rb', line 41 def build_args_validator(inline_rules, validate_input) return nil if inline_rules.empty? && validate_input.nil? check_dry_validation_available! schema = RubyReactor::Validation::SchemaBuilder.build_args(inline_rules, validate_input) return nil unless schema RubyReactor::Validation::InputValidator.new(schema) end |
#build_inline_validator(name, type, optional, predicates) ⇒ Object
Form 1 / 1b — inline scalar or class type for a single named value.
26 27 28 29 30 |
# File 'lib/ruby_reactor/dsl/validation_helpers.rb', line 26 def build_inline_validator(name, type, optional, predicates) check_dry_validation_available! schema = RubyReactor::Validation::SchemaBuilder.build_inline(name, type, optional, predicates) RubyReactor::Validation::InputValidator.new(schema) end |
#build_macro_validator(name, optional, &block) ⇒ Object
Form 2 — block bound to the value’s macro (‘required`/`optional`).
33 34 35 36 37 |
# File 'lib/ruby_reactor/dsl/validation_helpers.rb', line 33 def build_macro_validator(name, optional, &block) check_dry_validation_available! schema = RubyReactor::Validation::SchemaBuilder.build_macro(name, optional, &block) RubyReactor::Validation::InputValidator.new(schema) end |
#build_scalar_validator(type, predicates) ⇒ Object
Scalar-aware single-value validator (used by ‘validate_output`). The value is wrapped under `:value` before validation.
53 54 55 56 57 |
# File 'lib/ruby_reactor/dsl/validation_helpers.rb', line 53 def build_scalar_validator(type, predicates) check_dry_validation_available! schema = RubyReactor::Validation::SchemaBuilder.build_inline(:value, type, false, predicates) RubyReactor::Validation::InputValidator.new(schema, wrap_key: :value) end |
#build_validation_schema(&block) ⇒ Object
Validation helper methods
7 8 9 10 |
# File 'lib/ruby_reactor/dsl/validation_helpers.rb', line 7 def build_validation_schema(&block) check_dry_validation_available! RubyReactor::Validation::SchemaBuilder.build_from_block(&block) end |
#create_input_validator(schema_or_block) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/ruby_reactor/dsl/validation_helpers.rb', line 12 def create_input_validator(schema_or_block) check_dry_validation_available! schema = case schema_or_block when Proc build_validation_schema(&schema_or_block) else schema_or_block end RubyReactor::Validation::InputValidator.new(schema) end |