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