Module: Serega::SeregaConfig::SeregaConfigInstanceMethods

Included in:
Serega::SeregaConfig
Defined in:
lib/serega/config.rb

Overview

SeregaConfig Instance methods

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#optsHash (readonly)

Shows current config as Hash

Returns:

  • (Hash)

    config options



46
47
48
# File 'lib/serega/config.rb', line 46

def opts
  @opts
end

Instance Method Details

#attribute_keysArray<Symbol>

Returns options names allowed in Serega.attribute method

Returns:

  • (Array<Symbol>)

    Allowed options keys for attribute initialization



75
76
77
# File 'lib/serega/config.rb', line 75

def attribute_keys
  opts.fetch(:attribute_keys)
end

#auto_preloadHash

Returns auto_preload option.

Returns:

  • (Hash)

    auto_preload option



142
143
144
# File 'lib/serega/config.rb', line 142

def auto_preload
  opts.fetch(:auto_preload)
end

#auto_preload=(value) ⇒ Hash

Validates and sets auto_preload option

Returns:

  • (Hash)

    New auto_preload option with attributes that trigger auto preload



148
149
150
151
152
153
154
155
156
157
158
159
# File 'lib/serega/config.rb', line 148

def auto_preload=(value)
  opts[:auto_preload] =
    case value
    when true then {has_delegate_option: true, has_serializer_option: true}
    when false then {has_delegate_option: false, has_serializer_option: false}
    when Hash
      SeregaValidations::Utils::CheckAllowedKeys.call(value, %i[has_delegate_option has_serializer_option], "auto_preload")
      {has_delegate_option: !!value[:has_delegate_option], has_serializer_option: !!value[:has_serializer_option]}
    else
      raise SeregaError, "Must have boolean value or Hash, #{value.inspect} provided"
    end
end

#batch_id_optionObject

Returns current batch_id_option



193
194
195
# File 'lib/serega/config.rb', line 193

def batch_id_option
  opts.fetch(:batch_id_option)
end

#batch_id_option=(value) ⇒ Symbol

Sets :batch_id_option config option

Parameters:

  • value (Symbol)

    Set :batch_id_option config option

Returns:

  • (Symbol)

    New :check_attribute_name config option

Raises:



202
203
204
205
# File 'lib/serega/config.rb', line 202

def batch_id_option=(value)
  raise SeregaError, "Must have Symbol value, #{value.inspect} provided" unless value.is_a?(Symbol)
  opts[:batch_id_option] = value
end

#check_attribute_nameObject

Returns whether attributes names check is disabled



178
179
180
# File 'lib/serega/config.rb', line 178

def check_attribute_name
  opts.fetch(:check_attribute_name)
end

#check_attribute_name=(value) ⇒ Boolean

Sets :check_attribute_name config option

Parameters:

  • value (Boolean)

    Set :check_attribute_name config option

Returns:

  • (Boolean)

    New :check_attribute_name config option

Raises:



187
188
189
190
# File 'lib/serega/config.rb', line 187

def check_attribute_name=(value)
  raise SeregaError, "Must have boolean value, #{value.inspect} provided" if (value != true) && (value != false)
  opts[:check_attribute_name] = value
end

#check_initiate_paramsBoolean

Returns :check_initiate_params config option

Returns:

  • (Boolean)

    Current :check_initiate_params config option



87
88
89
# File 'lib/serega/config.rb', line 87

def check_initiate_params
  opts.fetch(:check_initiate_params)
end

#check_initiate_params=(value) ⇒ Boolean

Sets :check_initiate_params config option

Parameters:

  • value (Boolean)

    Set :check_initiate_params config option

Returns:

  • (Boolean)

    :check_initiate_params config option

Raises:



96
97
98
99
# File 'lib/serega/config.rb', line 96

def check_initiate_params=(value)
  raise SeregaError, "Must have boolean value, #{value.inspect} provided" if (value != true) && (value != false)
  opts[:check_initiate_params] = value
end

#delegate_default_allow_nilBoolean

Returns :delegate_default_allow_nil config option

Returns:

  • (Boolean)

    Current :delegate_default_allow_nil config option



103
104
105
# File 'lib/serega/config.rb', line 103

def delegate_default_allow_nil
  opts.fetch(:delegate_default_allow_nil)
end

#delegate_default_allow_nil=(value) ⇒ Boolean

Sets :delegate_default_allow_nil config option

Parameters:

  • value (Boolean)

    Set :delegate_default_allow_nil config option

Returns:

  • (Boolean)

    :delegate_default_allow_nil config option

Raises:



112
113
114
115
# File 'lib/serega/config.rb', line 112

def delegate_default_allow_nil=(value)
  raise SeregaError, "Must have boolean value, #{value.inspect} provided" if (value != true) && (value != false)
  opts[:delegate_default_allow_nil] = value
end

#hide_by_defaultBoolean, Symbol

Returns :hide_by_default config option

Returns:

  • (Boolean, Symbol)

    Current :hide_by_default config option



119
120
121
# File 'lib/serega/config.rb', line 119

def hide_by_default
  opts.fetch(:hide_by_default)
end

#hide_by_default=(value) ⇒ Boolean, Symbol

Sets :hide_by_default config option

Parameters:

  • value (Boolean, Symbol)

    Accepted values:

    • false (default) — nothing is hidden by default
    • true — all attributes are hidden by default
    • :auto — hides attributes that declare :preload or :batch

Returns:

  • (Boolean, Symbol)

    New :hide_by_default config option



131
132
133
134
135
136
137
138
139
# File 'lib/serega/config.rb', line 131

def hide_by_default=(value)
  opts[:hide_by_default] =
    case value
    when true, false, :auto
      value
    else
      raise SeregaError, "Must have true, false, or :auto, #{value.inspect} provided"
    end
end

#initialize(opts = nil) ⇒ Object

Initializes new config instance.

Parameters:

  • opts (Hash) (defaults to: nil)

    Initial config options



53
54
55
56
# File 'lib/serega/config.rb', line 53

def initialize(opts = nil)
  opts ||= DEFAULTS
  @opts = SeregaUtils::EnumDeepDup.call(opts)
end

#initiate_keysArray<Symbol>

Returns options names allowed in Serega#new method

Returns:

  • (Array<Symbol>)

    allowed options keys



69
70
71
# File 'lib/serega/config.rb', line 69

def initiate_keys
  opts.fetch(:initiate_keys)
end

#max_cached_plans_per_serializer_countBoolean

Returns :max_cached_plans_per_serializer_count config option

Returns:

  • (Boolean)

    Current :max_cached_plans_per_serializer_count config option



163
164
165
# File 'lib/serega/config.rb', line 163

def max_cached_plans_per_serializer_count
  opts.fetch(:max_cached_plans_per_serializer_count)
end

#max_cached_plans_per_serializer_count=(value) ⇒ Boolean

Sets :max_cached_plans_per_serializer_count config option

Parameters:

  • value (Boolean)

    Set :check_initiate_params config option

Returns:

  • (Boolean)

    New :max_cached_plans_per_serializer_count config option

Raises:



172
173
174
175
# File 'lib/serega/config.rb', line 172

def max_cached_plans_per_serializer_count=(value)
  raise SeregaError, "Must have Integer value, #{value.inspect} provided" unless value.is_a?(Integer)
  opts[:max_cached_plans_per_serializer_count] = value
end

#pluginsArray

Shows used plugins

Returns:

  • (Array)

    Used plugins



63
64
65
# File 'lib/serega/config.rb', line 63

def plugins
  opts.fetch(:plugins)
end

#serialize_keysArray<Symbol>

Returns options names allowed in call, to_h methods

Returns:

  • (Array<Symbol>)

    Allowed options keys for serialization



81
82
83
# File 'lib/serega/config.rb', line 81

def serialize_keys
  opts.fetch(:serialize_keys)
end