Class: SynchronisedMigration::Configuration

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Configuration

Returns a new instance of Configuration.

Raises:

  • (OptionParser::InvalidArgument)


14
15
16
17
18
19
20
21
22
23
24
# File 'lib/synchronised_migration/configuration.rb', line 14

def initialize(options = {})
  @application = options.fetch(:application, nil)
  @version = options.fetch(:version, nil)
  @redis_uri = options.fetch(:redis_uri, "redis://127.0.0.1:6379/0")
  @debug = options.fetch(:debug, false)
  @command = options.fetch(:command, "bin/launch/migrate")
  @timeout_milliseconds = options.fetch(:timeout_milliseconds, 3_600_000).to_i
  @retry_delay_milliseconds = options.fetch(:retry_delay_milliseconds, 3000).to_i

  raise OptionParser::InvalidArgument, "Application must be configured" if @application.nil?
end

Instance Attribute Details

#applicationObject

Returns the value of attribute application.



5
6
7
# File 'lib/synchronised_migration/configuration.rb', line 5

def application
  @application
end

#commandObject

Returns the value of attribute command.



4
5
6
# File 'lib/synchronised_migration/configuration.rb', line 4

def command
  @command
end

#debugObject

Returns the value of attribute debug.



6
7
8
# File 'lib/synchronised_migration/configuration.rb', line 6

def debug
  @debug
end

#redis_uriObject

Returns the value of attribute redis_uri.



3
4
5
# File 'lib/synchronised_migration/configuration.rb', line 3

def redis_uri
  @redis_uri
end

#versionObject

Returns the value of attribute version.



7
8
9
# File 'lib/synchronised_migration/configuration.rb', line 7

def version
  @version
end

Class Method Details

.from_cli(options) ⇒ Object



9
10
11
12
# File 'lib/synchronised_migration/configuration.rb', line 9

def self.from_cli(options)
  config_yml = YAML.load_file(options[:config]).transform_keys(&:to_sym).to_h
  new(config_yml.merge(options.compact))
end

Instance Method Details

#debug?Boolean

Returns:

  • (Boolean)


34
35
36
# File 'lib/synchronised_migration/configuration.rb', line 34

def debug?
  debug
end

#fail_keyObject



42
43
44
# File 'lib/synchronised_migration/configuration.rb', line 42

def fail_key
  "migration-failed-#{application}"
end

#lock_keyObject



46
47
48
# File 'lib/synchronised_migration/configuration.rb', line 46

def lock_key
  "migration-lock-#{application}"
end

#retry_delay_millisecondsObject



30
31
32
# File 'lib/synchronised_migration/configuration.rb', line 30

def retry_delay_milliseconds
  @retry_delay_milliseconds.to_i
end

#success_keyObject



38
39
40
# File 'lib/synchronised_migration/configuration.rb', line 38

def success_key
  "migration-success-#{application}-#{version}"
end

#timeout_millisecondsObject



26
27
28
# File 'lib/synchronised_migration/configuration.rb', line 26

def timeout_milliseconds
  @timeout_milliseconds.to_i
end