Class: Rbdantic::Validators::ValidatorContext
- Inherits:
-
Object
- Object
- Rbdantic::Validators::ValidatorContext
- Defined in:
- lib/rbdantic/validators/validator_context.rb
Overview
Context object passed to validators during validation
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#field_info ⇒ Object
readonly
Returns the value of attribute field_info.
-
#field_name ⇒ Object
readonly
Returns the value of attribute field_name.
-
#model_class ⇒ Object
readonly
Returns the value of attribute model_class.
-
#model_instance ⇒ Object
readonly
Returns the value of attribute model_instance.
Instance Method Summary collapse
-
#create_error(type:, msg:, input: nil) ⇒ Object
Create an error detail object.
-
#field_value(name) ⇒ Object
Access other field values (for cross-field validation).
-
#initialize(field_name: nil, field_info: nil, model_class: nil, model_instance: nil, data: {}) ⇒ ValidatorContext
constructor
A new instance of ValidatorContext.
Constructor Details
#initialize(field_name: nil, field_info: nil, model_class: nil, model_instance: nil, data: {}) ⇒ ValidatorContext
Returns a new instance of ValidatorContext.
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/rbdantic/validators/validator_context.rb', line 9 def initialize( field_name: nil, field_info: nil, model_class: nil, model_instance: nil, data: {} ) @field_name = field_name @field_info = field_info @model_class = model_class @model_instance = model_instance @data = data end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
7 8 9 |
# File 'lib/rbdantic/validators/validator_context.rb', line 7 def data @data end |
#field_info ⇒ Object (readonly)
Returns the value of attribute field_info.
7 8 9 |
# File 'lib/rbdantic/validators/validator_context.rb', line 7 def field_info @field_info end |
#field_name ⇒ Object (readonly)
Returns the value of attribute field_name.
7 8 9 |
# File 'lib/rbdantic/validators/validator_context.rb', line 7 def field_name @field_name end |
#model_class ⇒ Object (readonly)
Returns the value of attribute model_class.
7 8 9 |
# File 'lib/rbdantic/validators/validator_context.rb', line 7 def model_class @model_class end |
#model_instance ⇒ Object (readonly)
Returns the value of attribute model_instance.
7 8 9 |
# File 'lib/rbdantic/validators/validator_context.rb', line 7 def model_instance @model_instance end |
Instance Method Details
#create_error(type:, msg:, input: nil) ⇒ Object
Create an error detail object
24 25 26 27 28 29 30 31 |
# File 'lib/rbdantic/validators/validator_context.rb', line 24 def create_error(type:, msg:, input: nil) ErrorDetail.new( type: type, loc: [@field_name], msg: msg, input: input ) end |
#field_value(name) ⇒ Object
Access other field values (for cross-field validation)
34 35 36 37 38 39 40 |
# File 'lib/rbdantic/validators/validator_context.rb', line 34 def field_value(name) if @data.key?(name) @data[name] else @model_instance&.instance_variable_get("@#{name}") end end |