class ValidationProfiler::Rules::Manager
This is the manager class that holds all registered validation rules.
Attributes
instance[RW]
Public Class Methods
new()
click to toggle source
# File lib/validation_profiler/rules/validation_rule_manager.rb, line 12 def initialize @rules = [] ValidationProfiler::Rules::Manager.instance = self load_rules end
Public Instance Methods
add_rule(key, rule)
click to toggle source
This method is called to add a validation rule to the manager for use.
@param key [Symbol] This is the key to register the validation rule for. @param rule [ClassName] This is the class name of the validation rule to register.
# File lib/validation_profiler/rules/validation_rule_manager.rb, line 37 def add_rule(key, rule) instance = rule.new #verify the rule instance inherits ValidationRule if instance == nil || !instance.is_a?(ValidationRule) raise ValidationProfiler::Exceptions::InvalidValidationRuleType.new(instance.class) end #verify the rule name has not already been registered if !@rules.select { |r| r[:key] == key }.empty? raise ValidationProfiler::Exceptions::ValidationRuleAlreadyExists.new(key) end @rules.push({ key: key, instance: instance}) end
get_rule(key)
click to toggle source
This method is called to get a validation rule by it’s registered key.
@params key [Symbol] This is the key of the validation rule you want to request.
@return [ValidationRule] This is the requested ValidationRule
instance.
# File lib/validation_profiler/rules/validation_rule_manager.rb, line 23 def get_rule(key) results = @rules.select { |r| r[:key] == key } if !results.empty? results[0][:instance] else raise ValidationProfiler::Exceptions::ValidationRuleNotFound.new(key) end end
Private Instance Methods
load_rules()
click to toggle source
# File lib/validation_profiler/rules/validation_rule_manager.rb, line 57 def load_rules @rules.push({ key: :required, instance: ValidationProfiler::Rules::RequiredValidationRule.new }) @rules.push({ key: :length, instance: ValidationProfiler::Rules::LengthValidationRule.new }) @rules.push({ key: :min, instance: ValidationProfiler::Rules::MinValidationRule.new }) @rules.push({ key: :max, instance: ValidationProfiler::Rules::MaxValidationRule.new }) @rules.push({ key: :email, instance: ValidationProfiler::Rules::EmailValidationRule.new }) @rules.push({ key: :regex, instance: ValidationProfiler::Rules::RegexValidationRule.new }) @rules.push({ key: :match, instance: ValidationProfiler::Rules::MatchValidationRule.new }) @rules.push({ key: :condition, instance: ValidationProfiler::Rules::ConditionValidationRule.new }) @rules.push({ key: :not_allowed, instance: ValidationProfiler::Rules::NotAllowedValidationRule.new }) @rules.push({ key: :list, instance: ValidationProfiler::Rules::ListValidationRule.new }) @rules.push({ key: :child, instance: ValidationProfiler::Rules::ChildValidationRule.new }) @rules.push({ key: :date, instance: ValidationProfiler::Rules::DateValidationRule.new }) @rules.push({ key: :time, instance: ValidationProfiler::Rules::TimeValidationRule.new }) @rules.push({ key: :int, instance: ValidationProfiler::Rules::IntegerValidationRule.new }) @rules.push({ key: :decimal, instance: ValidationProfiler::Rules::DecimalValidationRule.new }) @rules.push({ key: :guid, instance: ValidationProfiler::Rules::GuidValidationRule.new }) end