fluke/devops-service/db/mongo/models/model_with_provider.rb

42 lines
1.3 KiB
Ruby
Raw Normal View History

2015-08-05 14:05:14 +03:00
require "providers/provider_factory"
module Devops
module Model
module ModelWithProvider
2015-11-19 14:09:38 +03:00
# attr_accessor :provider, :provider_account
2015-08-05 14:05:14 +03:00
def ModelWithProvider.included(mod)
2015-11-19 14:09:38 +03:00
mod.set_field_validators :provider, [::Validators::FieldValidator::NotNil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty,
2015-11-19 14:09:38 +03:00
::Validators::FieldValidator::Provider]
mod.set_field_validators :provider_account, [::Validators::FieldValidator::Nil,
::Validators::FieldValidator::FieldType::String,
::Validators::FieldValidator::NotEmpty,
::Validators::FieldValidator::ProviderAccount], order: 1
end
2015-08-05 14:05:14 +03:00
def provider_instance
@provider_instance ||= Provider::ProviderFactory.get(self.provider, self.provider_account)
2015-08-05 14:05:14 +03:00
end
def set_provider hash
self.provider = hash["provider"]
self.provider_account = hash["provider_account"]
end
def provider_hash
{
"provider" => self.provider,
"provider_account" => self.provider_account
}
end
2015-08-05 14:05:14 +03:00
end
end
end