Module: Regressor::Model::Validation

Included in:
ActiveRecordModel
Defined in:
lib/model/active_record/validation.rb,
lib/model/active_record/validation/length.rb,
lib/model/active_record/validation/presence.rb,
lib/model/active_record/validation/numericality.rb

Defined Under Namespace

Modules: Length, Numericality, Presence

Instance Method Summary collapse

Instance Method Details

#if_condition_mock(validator) ⇒ Object



18
19
20
21
22
# File 'lib/model/active_record/validation.rb', line 18

def if_condition_mock validator
  if_condition = validator.options[:if]
  return '' unless if_condition && if_condition.is_a?(Symbol)
  "      allow(subject).to receive(:#{if_condition.to_s}).and_return(true)\n"
end

#unless_condition_mock(validator) ⇒ Object



24
25
26
27
28
# File 'lib/model/active_record/validation.rb', line 24

def unless_condition_mock validator
  unless_condition = validator.options[:unless]
  return '' unless unless_condition && unless_condition.is_a?(Symbol)
  "      allow(subject).to receive(:#{unless_condition.to_s}).and_return(false)\n"
end

#wrap_conditional_validations(validator, specs) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/model/active_record/validation.rb', line 4

def wrap_conditional_validations validator, specs
  if_mock = if_condition_mock validator
  unless_mock = unless_condition_mock validator
  padding = if_mock.blank? && unless_mock.blank? ? '' : '    '
  specs = specs.map do |spec|
    "#{padding}#{spec}"
  end.uniq.join("\n  ")
  if if_mock.blank? && unless_mock.blank?
    specs
  else
    "context \"with conditions\" do\n    before do\n#{if_mock}#{unless_mock}    end\n\n#{specs}\n  end\n"
  end
end