Module: NATS::Service::Validator

Defined in:
lib/nats/service/validator.rb

Constant Summary collapse

REGEX =
{
  name: /[A-Za-z0-9\-_]+$/,
  version: /^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/,
  subject: /^[^ >]*[>]?$/,
  queue: /^[^ >]*[>]?$/
}.freeze

Class Method Summary collapse

Class Method Details

.nil?(values, key) ⇒ Boolean



25
26
27
# File 'lib/nats/service/validator.rb', line 25

def nil?(values, key)
  values.has_key?(key) && values[key].nil?
end

.valid?(values, key) ⇒ Boolean



21
22
23
# File 'lib/nats/service/validator.rb', line 21

def valid?(values, key)
  !values.has_key?(key) || values[key] =~ REGEX[key]
end

.validate(values) ⇒ Object

Raises:



14
15
16
17
18
19
# File 'lib/nats/service/validator.rb', line 14

def validate(values)
  raise InvalidNameError unless valid?(values, :name)
  raise InvalidVersionError unless valid?(values, :version)
  raise InvalidSubjectError unless valid?(values, :subject) || nil?(values, :subject)
  raise InvalidQueueError unless valid?(values, :queue) || nil?(values, :queue)
end