Class: SwalRails::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/swal_rails/configuration.rb

Overview

Holds runtime configuration for the gem.

A default is created on first access; override via an initializer:

SwalRails.configure do |config|
  config.confirm_mode = :turbo_override
  config.flash_map[:notice] = { icon: "success", toast: true }
end

Constant Summary collapse

CONFIRM_MODES =
%i[off data_attribute turbo_override both].freeze
FLASH_ARRAY_MODES =
%i[sequential stacked].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/swal_rails/configuration.rb', line 25

def initialize
  @confirm_mode = :data_attribute
  @flash_keys_as_meta = true
  @respect_reduced_motion = true
  @expose_window_swal = true
  @flash_array_mode = :sequential
  @flash_stack_delay = 500
  @i18n_scope = "swal_rails"
  # `initializer_version` left nil — apps that haven't regenerated
  # their initializer since `SwalRails::INITIALIZER_VERSION` was
  # introduced (0.3.3) get a one-line warning at boot. Setting it
  # explicitly in the initializer template silences it.
  @initializer_version = nil
  @silence_initializer_warning = false
  # `focusConfirm` / `returnFocus` are intentionally omitted: SA2 already
  # defaults both to `true` internally, and passing them explicitly makes
  # SA2 warn on every toast ("incompatible with toasts"). Listing them
  # here would be a no-op behaviorally and a noise generator.
  @default_options = {
    buttonsStyling: true,
    reverseButtons: false
  }
  @flash_map = default_flash_map
end

Instance Attribute Details

#confirm_modeObject

Returns the value of attribute confirm_mode.



23
24
25
# File 'lib/swal_rails/configuration.rb', line 23

def confirm_mode
  @confirm_mode
end

#default_optionsObject

Returns the value of attribute default_options.



16
17
18
# File 'lib/swal_rails/configuration.rb', line 16

def default_options
  @default_options
end

#expose_window_swalObject

Returns the value of attribute expose_window_swal.



16
17
18
# File 'lib/swal_rails/configuration.rb', line 16

def expose_window_swal
  @expose_window_swal
end

#flash_array_modeObject

Returns the value of attribute flash_array_mode.



23
24
25
# File 'lib/swal_rails/configuration.rb', line 23

def flash_array_mode
  @flash_array_mode
end

#flash_keys_as_metaObject

Returns the value of attribute flash_keys_as_meta.



16
17
18
# File 'lib/swal_rails/configuration.rb', line 16

def flash_keys_as_meta
  @flash_keys_as_meta
end

#flash_mapObject

Returns the value of attribute flash_map.



23
24
25
# File 'lib/swal_rails/configuration.rb', line 23

def flash_map
  @flash_map
end

#flash_stack_delayObject

Returns the value of attribute flash_stack_delay.



16
17
18
# File 'lib/swal_rails/configuration.rb', line 16

def flash_stack_delay
  @flash_stack_delay
end

#i18n_scopeObject

Returns the value of attribute i18n_scope.



23
24
25
# File 'lib/swal_rails/configuration.rb', line 23

def i18n_scope
  @i18n_scope
end

#initializer_versionObject

Returns the value of attribute initializer_version.



16
17
18
# File 'lib/swal_rails/configuration.rb', line 16

def initializer_version
  @initializer_version
end

#respect_reduced_motionObject

Returns the value of attribute respect_reduced_motion.



16
17
18
# File 'lib/swal_rails/configuration.rb', line 16

def respect_reduced_motion
  @respect_reduced_motion
end

#silence_initializer_warningObject

Returns the value of attribute silence_initializer_warning.



16
17
18
# File 'lib/swal_rails/configuration.rb', line 16

def silence_initializer_warning
  @silence_initializer_warning
end

Instance Method Details

#to_client_payloadObject

Snapshot safe for serialization into a meta tag / JSON.



78
79
80
81
82
83
84
85
86
87
88
89
# File 'lib/swal_rails/configuration.rb', line 78

def to_client_payload
  {
    confirmMode: confirm_mode,
    respectReducedMotion: respect_reduced_motion,
    exposeWindowSwal: expose_window_swal,
    defaultOptions: default_options,
    flashMap: flash_map,
    flashArrayMode: flash_array_mode,
    flashStackDelay: flash_stack_delay,
    i18n: i18n_payload
  }
end