class SmartCore::Validator

@api public @since 0.1.0

@api private @since 0.1.0

@api private @since 0.2.0

Constants

Error

@api public @since 0.1.0

IncorrectAttributeNameError

@api public @since 0.1.0

IncorrectErrorCodeError

@api public @since 0.1.0

Attributes

__validation_errors__[R]

@return [SmartCore::Validator::ErrorSet]

@api private @since 0.1.0

Public Class Methods

new(*arguments, **options, &block) click to toggle source

@param arguments [Any] @param options [Hash<Symbol,Object>] @param block [Proc] @return [void]

@api public @since 0.1.0

# File lib/smart_core/validator.rb, line 27
def new(*arguments, **options, &block)
  allocate.tap do |object|
    InstanceBuilder.call(object, self, arguments, options, block)
  end
end
new(*, **, &block) click to toggle source

@return [void]

@api public @since 0.1.0

# File lib/smart_core/validator.rb, line 44
def initialize(*, **, &block); end

Public Instance Methods

__append_errors__(error_set) click to toggle source

@param error_set [SmartCore::Validator::ErrorSet] @return [void]

@api private @since 0.1.0

# File lib/smart_core/validator.rb, line 73
def __append_errors__(error_set)
  __thread_safe_access__ do
    __validation_errors__.concat(error_set)
  end
end
__attributes__() click to toggle source

@return [Hash<Symbol,Object>]

@api private @since 0.1.0

# File lib/smart_core/validator.rb, line 83
def __attributes__
  __thread_safe_access__ do
    self.class.attributes.each_with_object({}) do |attribute, accumulator|
      accumulator[attribute.name] = instance_variable_get("@#{attribute.name}")
    end
  end
end
errors() click to toggle source

@return [Array<Symbol>]

@api public @since 0.1.0

# File lib/smart_core/validator.rb, line 62
def errors
  __thread_safe_access__ do
    __validation_errors__.codes
  end
end
valid?() click to toggle source

@return [Boolean]

@api public @since 0.1.0

# File lib/smart_core/validator.rb, line 50
def valid?
  __thread_safe_invokation__ do
    __validation_errors__.clear
    self.class.commands.each { |command| command.call(self) }
    __validation_errors__.empty?
  end
end

Private Instance Methods

__thread_safe_access__(&block) click to toggle source

@param block [Proc] @return [Any]

@api private @since 0.1.0

# File lib/smart_core/validator.rb, line 107
def __thread_safe_access__(&block)
  @__access_lock__.synchronize(&block)
end
__thread_safe_invokation__(&block) click to toggle source

@param block [Proc] @return [Any]

@api private @since 0.1.0

# File lib/smart_core/validator.rb, line 98
def __thread_safe_invokation__(&block)
  @__invokation_lock__.synchronize(&block)
end