Module: Assistant::InputBuilder::RequireValidator
- Included in:
- Assistant::InputBuilder
- Defined in:
- lib/assistant/input_builder/require_validator.rb
Overview
Generators for the per-input requirement validators. Canonical names (M9):
#valid_required_required: true
#valid_required_conditional_required: true, if: ...
Pre-M9 names (valid_require_*?, valid_require_conditional_*?) are
kept as deprecated aliases that delegate to the canonical method and
emit a one-shot Kernel.warn per call site. They are scheduled for
removal in assistant 2.0.
Class Method Summary collapse
-
.__reset_deprecation_warnings__ ⇒ void
Test-only hook: clears the per-call-site dedupe set so a single test process can exercise multiple "first warn" scenarios.
-
.warn_deprecated(deprecated_name, canonical_name, caller_location) ⇒ void
Emit the M9 one-shot deprecation warning for a
valid_require_*?call.
Instance Method Summary collapse
-
#input_require_conditional_meth(name:) ⇒ void
Define
#valid_required_conditional_<name>?on the host class plus the deprecated#valid_require_conditional_<name>?alias. -
#input_require_validator_meth(name:) ⇒ void
Define
#valid_required_<name>?on the host class plus the deprecated#valid_require_<name>?alias.
Class Method Details
.__reset_deprecation_warnings__ ⇒ void
This method returns an undefined value.
Test-only hook: clears the per-call-site dedupe set so a single test process can exercise multiple "first warn" scenarios.
41 42 43 |
# File 'lib/assistant/input_builder/require_validator.rb', line 41 def self.__reset_deprecation_warnings__ DEPRECATION_WARNED.clear end |
.warn_deprecated(deprecated_name, canonical_name, caller_location) ⇒ void
This method returns an undefined value.
Emit the M9 one-shot deprecation warning for a valid_require_*?
call. Deduped per [canonical, caller path, caller lineno] so the
same call site never warns twice in one process.
29 30 31 32 33 34 35 |
# File 'lib/assistant/input_builder/require_validator.rb', line 29 def self.warn_deprecated(deprecated_name, canonical_name, caller_location) key = [canonical_name, caller_location.path, caller_location.lineno] return if DEPRECATION_WARNED.include?(key) DEPRECATION_WARNED << key Kernel.warn("assistant: `##{deprecated_name}` is deprecated; use `##{canonical_name}` (removed in assistant 2.0)") end |
Instance Method Details
#input_require_conditional_meth(name:) ⇒ void
This method returns an undefined value.
Define #valid_required_conditional_<name>? on the host class
plus the deprecated #valid_require_conditional_<name>? alias.
61 62 63 64 65 |
# File 'lib/assistant/input_builder/require_validator.rb', line 61 def input_require_conditional_meth(name:, **) canonical = :"valid_required_conditional_#{name}?" define_required_conditional_validator(canonical:, name:, **) define_deprecated_alias(:"valid_require_conditional_#{name}?", canonical) end |
#input_require_validator_meth(name:) ⇒ void
This method returns an undefined value.
Define #valid_required_<name>? on the host class plus the
deprecated #valid_require_<name>? alias.
50 51 52 53 54 |
# File 'lib/assistant/input_builder/require_validator.rb', line 50 def input_require_validator_meth(name:, **) canonical = :"valid_required_#{name}?" define_required_validator(canonical:, name:, **) define_deprecated_alias(:"valid_require_#{name}?", canonical) end |