module Workflow::StateDependentValidations::StateDependency::Validations

Public Instance Methods

validate(record) click to toggle source
Calls superclass method
# File lib/workflow/state_dependent_validations.rb, line 13
def validate(record)
  if not record.respond_to?(:current_state) or
      perform_validation_for_state?(record.current_state) or
      perform_validation_for_transition?(record.in_transition) or
      perform_validation_for_transition?("#{record.in_exit}_exit") or
      perform_validation_for_transition?("#{record.in_entry}_entry")
    super(record)
  end
end

Protected Instance Methods

if_in_state_option() click to toggle source
# File lib/workflow/state_dependent_validations.rb, line 38
def if_in_state_option
  @if_in_state_option ||= [options[:if_in_state]].flatten.compact.collect(&:to_s)
end
if_in_transition_option() click to toggle source
# File lib/workflow/state_dependent_validations.rb, line 46
def if_in_transition_option
  @if_in_transition_option ||= [options[:if_in_transition]].flatten.compact.collect(&:to_s)
end
perform_validation_for_state?(state) click to toggle source
# File lib/workflow/state_dependent_validations.rb, line 24
def perform_validation_for_state?(state)
  (unless_in_state_option.empty? and if_in_state_option.empty? and
    unless_in_transition_option.empty? and if_in_transition_option.empty?) or
      (if_in_state_option.any? and if_in_state_option.include?(state.to_s)) or
      (unless_in_state_option.any? and not unless_in_state_option.include?(state.to_s))
end
perform_validation_for_transition?(transition) click to toggle source
# File lib/workflow/state_dependent_validations.rb, line 31
def perform_validation_for_transition?(transition)
  (unless_in_state_option.empty? and if_in_state_option.empty? and
    unless_in_transition_option.empty? and if_in_transition_option.empty?) or
      (if_in_transition_option.any? and if_in_transition_option.include?(transition.to_s)) or
      (unless_in_transition_option.any? and not unless_in_transition_option.include?(transition.to_s))
end
unless_in_state_option() click to toggle source
# File lib/workflow/state_dependent_validations.rb, line 42
def unless_in_state_option
  @unless_in_state_option ||= [options[:unless_in_state]].flatten.compact.collect(&:to_s)
end
unless_in_transition_option() click to toggle source
# File lib/workflow/state_dependent_validations.rb, line 50
def unless_in_transition_option
  @unless_in_transition_option ||= [options[:unless_in_transition]].flatten.compact.collect(&:to_s)
end