require_relative "stack_base" require_relative "stack_openstack" require_relative "stack_ec2" module Devops module Model class StackFactory def self.create(provider, attrs) get_class(provider).create(attrs) end def self.build_from_bson(provider, attrs) get_class(provider).build_from_bson(attrs) end def self.get_class(provider) case provider when ::Provider::Openstack::PROVIDER StackOpenstack when ::Provider::Ec2::PROVIDER StackEc2 else raise InvalidRecord.new "Invalid provider: '#{provider}'" end end end end end