Module: Castkit::Core::Config
- Included in:
- Castkit::Contract::Base, DataObject
- Defined in:
- lib/castkit/core/config.rb
Overview
Provides per-class configuration for a Castkit::DataObject, including root key handling, strict mode, and unknown key behavior.
Instance Method Summary collapse
-
#allow_unknown(value = nil) ⇒ Boolean?
Sets or retrieves whether to allow unknown keys when they are encountered.
-
#ignore_unknown(value = nil) ⇒ void
Enables or disables ignoring unknown keys during deserialization.
-
#relaxed(warn_on_unknown: true) ⇒ Class
Returns a relaxed version of the current class with strict mode off.
-
#strict(value = nil) ⇒ Boolean
Sets or retrieves strict mode behavior.
-
#validation_rules ⇒ Hash{Symbol => Boolean}
Returns a hash of config settings used during validation.
-
#warn_on_unknown(value = nil) ⇒ Boolean?
Sets or retrieves whether to emit warnings when unknown keys are encountered.
Instance Method Details
#allow_unknown(value = nil) ⇒ Boolean?
Sets or retrieves whether to allow unknown keys when they are encountered.
45 46 47 |
# File 'lib/castkit/core/config.rb', line 45 def allow_unknown(value = nil) value.nil? ? @allow_unknown : (@allow_unknown = value) end |
#ignore_unknown(value = nil) ⇒ void
This method returns an undefined value.
Enables or disables ignoring unknown keys during deserialization.
This is the inverse of ‘strict`.
29 30 31 |
# File 'lib/castkit/core/config.rb', line 29 def ignore_unknown(value = nil) @strict = !value end |
#relaxed(warn_on_unknown: true) ⇒ Class
Returns a relaxed version of the current class with strict mode off.
Useful for tolerant parsing scenarios.
55 56 57 58 59 60 |
# File 'lib/castkit/core/config.rb', line 55 def relaxed(warn_on_unknown: true) klass = Class.new(self) klass.strict(false) klass.warn_on_unknown(warn_on_unknown) klass end |
#strict(value = nil) ⇒ Boolean
Sets or retrieves strict mode behavior.
In strict mode, unknown keys during deserialization raise errors. If unset, falls back to ‘Castkit.configuration.strict_by_default`.
15 16 17 18 19 20 21 |
# File 'lib/castkit/core/config.rb', line 15 def strict(value = nil) if value.nil? @strict.nil? ? Castkit.configuration.strict_by_default : @strict else @strict = !!value end end |
#validation_rules ⇒ Hash{Symbol => Boolean}
Returns a hash of config settings used during validation.
65 66 67 68 69 70 71 |
# File 'lib/castkit/core/config.rb', line 65 def validation_rules @validation_rules ||= { strict: strict, allow_unknown: allow_unknown, warn_on_unknown: warn_on_unknown } end |
#warn_on_unknown(value = nil) ⇒ Boolean?
Sets or retrieves whether to emit warnings when unknown keys are encountered.
37 38 39 |
# File 'lib/castkit/core/config.rb', line 37 def warn_on_unknown(value = nil) value.nil? ? @warn_on_unknown : (@warn_on_unknown = value) end |