module ValidTransitions::InputValidator

Public Instance Methods

validate_options(options) click to toggle source
# File lib/valid_transitions/input_validator.rb, line 7
def validate_options(options)
  transitions = options[:transitions]
  validate_transition_type_and_presence(transitions)
  validate_transition_content(transitions)
end

Private Instance Methods

raise_error(message) click to toggle source
# File lib/valid_transitions/input_validator.rb, line 34
def raise_error(message)
  raise ValidTransitions::InvalidInputError, message
end
validate_transition_content(transitions) click to toggle source
# File lib/valid_transitions/input_validator.rb, line 20
def validate_transition_content(transitions)
  transitions.each do |transition|
    raise_error("transition #{transition} missing key :to")   unless transition.has_key?('to')
    raise_error("transition #{transition} missing key :from") unless transition.has_key?('from')
  end
end
validate_transition_type_and_presence(transitions) click to toggle source
# File lib/valid_transitions/input_validator.rb, line 15
def validate_transition_type_and_presence(transitions)
  raise_error("validates_with called without :transitions")                                         unless transitions
  raise_error("validates_with called with :transitions as an #{transitions.class}, expected Array") unless transitions.is_a?(Array)
end
validate_when(options) click to toggle source
# File lib/valid_transitions/input_validator.rb, line 27
def validate_when(options)
  return true unless options[:when]
  return true if     options[:when].is_a?(Hash)

  raise_error(":when is #{options[:when]}, which should be a Hash")
end