Module: Interactor::Validation::Validates::ClassMethods

Defined in:
lib/interactor/validation/validates.rb

Instance Method Summary collapse

Instance Method Details

#configure {|config| ... } ⇒ Object

Yields:

  • (config)


66
67
68
69
70
71
72
73
74
75
# File 'lib/interactor/validation/validates.rb', line 66

def configure
  # Ensure we have our own copy of config before modifying
  begin
    self._validation_config = _validation_config.dup if _validation_config.equal?(superclass._validation_config)
  rescue StandardError
    false
  end
  config = ConfigurationProxy.new(_validation_config)
  yield(config)
end

#inherited(subclass) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/interactor/validation/validates.rb', line 46

def inherited(subclass)
  super
  # Ensure child class gets its own copy of config, merging with parent's config
  subclass._validation_config = _validation_config.dup
  # Ensure child class gets its own copy of validations
  subclass._validations = _validations.dup
end

#validates(param_name, **rules) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
# File 'lib/interactor/validation/validates.rb', line 54

def validates(param_name, **rules, &)
  # Ensure we have our own copy of validations when first modifying
  begin
    self._validations = _validations.dup if _validations.equal?(superclass._validations)
  rescue StandardError
    false
  end
  _validations[param_name] ||= {}
  _validations[param_name].merge!(rules)
  _validations[param_name][:_nested] = build_nested_rules(&) if block_given?
end

#validation_halt(value) ⇒ Object



77
78
79
80
81
82
83
84
85
# File 'lib/interactor/validation/validates.rb', line 77

def validation_halt(value)
  # Ensure we have our own copy of config before modifying
  begin
    self._validation_config = _validation_config.dup if _validation_config.equal?(superclass._validation_config)
  rescue StandardError
    false
  end
  _validation_config[:halt] = value
end

#validation_mode(value) ⇒ Object



87
88
89
90
91
92
93
94
95
# File 'lib/interactor/validation/validates.rb', line 87

def validation_mode(value)
  # Ensure we have our own copy of config before modifying
  begin
    self._validation_config = _validation_config.dup if _validation_config.equal?(superclass._validation_config)
  rescue StandardError
    false
  end
  _validation_config[:mode] = value
end