Class: DataShifter::Configuration

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

Overview

Global configuration for DataShifter.

Configure via:

DataShifter.configure do |config|
  config.allow_external_requests = ["api.readonly.example.com"]
  config.suppress_repeated_logs = true
end

Or access directly:

DataShifter.config.progress_enabled = false

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



34
35
36
37
38
39
40
# File 'lib/data_shifter/configuration.rb', line 34

def initialize
  @allow_external_requests = []
  @suppress_repeated_logs = true
  @repeated_log_cap = 1000
  @progress_enabled = true
  @status_interval_seconds = nil
end

Instance Attribute Details

#allow_external_requestsObject

Hosts or regexes allowed for HTTP during dry run only (combined with per-shift allow_external_requests). Has no effect in commit mode — HTTP is unrestricted when dry_run is false.



17
18
19
# File 'lib/data_shifter/configuration.rb', line 17

def allow_external_requests
  @allow_external_requests
end

#progress_enabledObject

Global default for progress bar visibility. Default: true. Per-shift ‘progress true/false` overrides this.



29
30
31
# File 'lib/data_shifter/configuration.rb', line 29

def progress_enabled
  @progress_enabled
end

#repeated_log_capObject

Maximum unique log messages to track for deduplication. Default: 1000. When exceeded, entries with count == 1 are cleared first; repeated entries are kept.



25
26
27
# File 'lib/data_shifter/configuration.rb', line 25

def repeated_log_cap
  @repeated_log_cap
end

#status_interval_secondsObject

Default status print interval in seconds when ENV STATUS_INTERVAL is not set. Default: nil.



32
33
34
# File 'lib/data_shifter/configuration.rb', line 32

def status_interval_seconds
  @status_interval_seconds
end

#suppress_repeated_logsObject

Whether to suppress repeated log messages during a shift run. Default: true. Can be overridden per shift with ‘suppress_repeated_logs true/false`.



21
22
23
# File 'lib/data_shifter/configuration.rb', line 21

def suppress_repeated_logs
  @suppress_repeated_logs
end