Module: GroupedValidations::InstanceMethods

Defined in:
lib/monkey_forms/vendor/grouped_validations/lib/grouped_validations.rb

Instance Method Summary collapse

Instance Method Details

#_run_group_validation_callbacks(group, context = nil) ⇒ Object



78
79
80
81
82
# File 'lib/monkey_forms/vendor/grouped_validations/lib/grouped_validations.rb', line 78

def _run_group_validation_callbacks(group, context=nil)
  with_validation_context(context) do
    send(:"_run_validate_#{group}_callbacks")
  end
end

#grouped_errors(context = nil) ⇒ Object



58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/monkey_forms/vendor/grouped_validations/lib/grouped_validations.rb', line 58

def grouped_errors(context=nil)
  original_errors = @errors.dup if @errors
  @errors = nil
  grouped = {}

  with_validation_context(context) do
    _run_validate_callbacks
    grouped[nil] = @errors

    validation_groups.each do |group|
      @errors = nil
      send(:"_run_validate_#{group}_callbacks")
      grouped[group] = @errors
    end
  end
  grouped.values.all?(&:empty?) ? {} : grouped
ensure
  @errors = original_errors
end

#groups_valid?(*groups) ⇒ Boolean Also known as: group_valid?

Returns:

  • (Boolean)


47
48
49
50
51
52
53
54
55
# File 'lib/monkey_forms/vendor/grouped_validations/lib/grouped_validations.rb', line 47

def groups_valid?(*groups)
  options = groups.extract_options!
  errors.clear
  groups.each do |group|
    raise "Validation group '#{group}' not defined" unless validation_groups.include?(group)
    _run_group_validation_callbacks(group, options[:context])
  end
  errors.empty?
end

#valid?(context = nil) ⇒ Boolean

Returns:

  • (Boolean)


39
40
41
42
43
44
45
# File 'lib/monkey_forms/vendor/grouped_validations/lib/grouped_validations.rb', line 39

def valid?(context=nil)
  super
  validation_groups.each do |group|
    _run_group_validation_callbacks(group, context)
  end
  errors.empty?
end

#with_validation_context(context) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/monkey_forms/vendor/grouped_validations/lib/grouped_validations.rb', line 84

def with_validation_context(context)
  context ||= (persisted? ? :update : :create)
  current_context, self.validation_context = validation_context, context
  yield
ensure
  self.validation_context = current_context
end