Class: SolidBackup::Configuration
- Inherits:
-
Object
- Object
- SolidBackup::Configuration
- Defined in:
- lib/solid_backup/configuration.rb
Instance Attribute Summary collapse
-
#algorithms ⇒ Object
readonly
Returns the value of attribute algorithms.
-
#enabled ⇒ Object
Returns the value of attribute enabled.
Instance Method Summary collapse
- #backup(name, algorithm_class, **algorithm_arguments) ⇒ Object
- #disabled? ⇒ Boolean
- #enabled? ⇒ Boolean
-
#initialize ⇒ Configuration
constructor
A new instance of Configuration.
- #validate! ⇒ Object
Constructor Details
#initialize ⇒ Configuration
Returns a new instance of Configuration.
6 7 8 9 |
# File 'lib/solid_backup/configuration.rb', line 6 def initialize self.enabled = nil self.algorithms = [] end |
Instance Attribute Details
#algorithms ⇒ Object
Returns the value of attribute algorithms.
4 5 6 |
# File 'lib/solid_backup/configuration.rb', line 4 def algorithms @algorithms end |
#enabled ⇒ Object
Returns the value of attribute enabled.
3 4 5 |
# File 'lib/solid_backup/configuration.rb', line 3 def enabled @enabled end |
Instance Method Details
#backup(name, algorithm_class, **algorithm_arguments) ⇒ Object
11 12 13 14 15 16 17 18 |
# File 'lib/solid_backup/configuration.rb', line 11 def backup(name, algorithm_class, **algorithm_arguments) name = name.to_s if algorithms.find { it.name == name } raise ArgumentError.new("#{name} has had backups configured already") end algorithms << algorithm_class.new(name:, **algorithm_arguments) end |
#disabled? ⇒ Boolean
42 43 44 |
# File 'lib/solid_backup/configuration.rb', line 42 def disabled? !enabled? end |
#enabled? ⇒ Boolean
38 39 40 |
# File 'lib/solid_backup/configuration.rb', line 38 def enabled? enabled end |
#validate! ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/solid_backup/configuration.rb', line 20 def validate! if [true, false].exclude?(enabled) raise TypeError.new("enabled is set to #{enabled.inspect}, but allowed values are true or false") end configured_database_names = algorithms.map(&:name) all_database_names = ActiveRecord::Base.configurations.configs_for(env_name: Rails.env).select do |db_config| db_config.adapter == "sqlite3" end.map(&:name) if (missing_databases = all_database_names - configured_database_names).present? raise "SQLite databases missing from backup configuration: #{missing_databases.join(", ")}" end if (unknown_databases = configured_database_names - all_database_names).present? raise "unknown SQLite databases present in backup configuration: #{unknown_databases.join(", ")}" end end |