diff options
Diffstat (limited to 'app/models/backends.rb')
-rw-r--r-- | app/models/backends.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/models/backends.rb b/app/models/backends.rb new file mode 100644 index 0000000..2e11dfe --- /dev/null +++ b/app/models/backends.rb @@ -0,0 +1,30 @@ +module Backends + def self.table_name_prefix + 'backends_' + end + + def self.classes + [ + Backends::TerraformAws, + Backends::TerraformLibvirt + ] + end + + def self.classes_with_backends + classes.select do |backend_class| + backend_class.all.any? + end + end + + def self.all + classes.flat_map { |backend| backend.all } + end + + def self.find_by_type_and_id(type_and_id) + type_name, id = type_and_id.split('=') + + type = classes.find { |c| c.name == type_name } + + type.find(id.to_i) + end +end |