class Validation::Rule::DiasporaIdList
Rule
for validating the number of diaspora* IDs in a string. The evaluated string is split at “;”.
Attributes
params[R]
This rule can have a minimum
or maximum
param. @return [Hash] params
Public Class Methods
new(params={})
click to toggle source
Creates a new rule for a diaspora* ID list validation @param [Hash] params @option params [Integer] :minimum minimum allowed id count @option params [Integer] :maximum maximum allowed id count
# File lib/diaspora_federation/validators/rules/diaspora_id_list.rb, line 16 def initialize(params={}) %i[minimum maximum].each do |param| if params.include?(param) && !params[param].is_a?(Integer) raise ArgumentError, "The :#{param} needs to be an Integer" end end @params = params end
Public Instance Methods
error_key()
click to toggle source
The error key for this rule @return [Symbol] error key
# File lib/diaspora_federation/validators/rules/diaspora_id_list.rb, line 28 def error_key :diaspora_id_list end
valid_value?(value)
click to toggle source
# File lib/diaspora_federation/validators/rules/diaspora_id_list.rb, line 32 def valid_value?(value) ids = value.split(";") return false if params.include?(:maximum) && ids.count > params[:maximum] return false if params.include?(:minimum) && ids.count < params[:minimum] ids.each do |id| return false if DiasporaId::DIASPORA_ID.match(id).nil? end true end