Module: Castkit::DataObjectExtensions::Config::ClassMethods

Defined in:
lib/castkit/data_object_extensions/config.rb

Overview

Class-level configuration methods.

Instance Method Summary collapse

Instance Method Details

#ignore_blank(value = nil) ⇒ Boolean

Sets or retrieves whether to skip blank values (‘[]`, `{}`, `“”`, etc.) in output.

Defaults to true unless explicitly set to false.

Parameters:

  • value (Boolean, nil) (defaults to: nil)

Returns:

  • (Boolean)


40
41
42
# File 'lib/castkit/data_object_extensions/config.rb', line 40

def ignore_blank(value = nil)
  @ignore_blank = value.nil? || value
end

#ignore_nil(value = nil) ⇒ Boolean?

Sets or retrieves whether to skip ‘nil` values in output.

Parameters:

  • value (Boolean, nil) (defaults to: nil)

Returns:

  • (Boolean, nil)


30
31
32
# File 'lib/castkit/data_object_extensions/config.rb', line 30

def ignore_nil(value = nil)
  value.nil? ? @ignore_nil : (@ignore_nil = 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`.

Parameters:

  • value (Boolean) (defaults to: nil)


64
65
66
# File 'lib/castkit/data_object_extensions/config.rb', line 64

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.

Parameters:

  • warn_on_unknown (Boolean) (defaults to: true)

Returns:

  • (Class)

    a subclass with relaxed rules



82
83
84
85
86
87
# File 'lib/castkit/data_object_extensions/config.rb', line 82

def relaxed(warn_on_unknown: true)
  klass = Class.new(self)
  klass.strict(false)
  klass.warn_on_unknown(warn_on_unknown)
  klass
end

#root(value = nil) ⇒ Symbol?

Sets or retrieves the root key to wrap the object under during (de)serialization.

Parameters:

  • value (String, Symbol, nil) (defaults to: nil)

    optional root key

Returns:

  • (Symbol, nil)


21
22
23
24
# File 'lib/castkit/data_object_extensions/config.rb', line 21

def root(value = nil)
  @root = value.to_s.strip.to_sym if value
  @root
end

#strict(value = nil) ⇒ Boolean

Sets or retrieves strict mode behavior.

In strict mode, unknown keys during deserialization raise errors.

Parameters:

  • value (Boolean, nil) (defaults to: nil)

Returns:

  • (Boolean)


50
51
52
53
54
55
56
# File 'lib/castkit/data_object_extensions/config.rb', line 50

def strict(value = nil)
  if value.nil?
    @strict.nil? || @strict
  else
    @strict = value
  end
end

#warn_on_unknown(value = nil) ⇒ Boolean?

Sets or retrieves whether to emit warnings when unknown keys are encountered.

Parameters:

  • value (Boolean, nil) (defaults to: nil)

Returns:

  • (Boolean, nil)


72
73
74
# File 'lib/castkit/data_object_extensions/config.rb', line 72

def warn_on_unknown(value = nil)
  value.nil? ? @warn_unknown_keys : (@warn_unknown_keys = value)
end