42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "providers/provider_factory"
 | |
| 
 | |
| module Devops
 | |
|   module Model
 | |
|     module ModelWithProvider
 | |
| 
 | |
| #      attr_accessor :provider, :provider_account
 | |
| 
 | |
|       def ModelWithProvider.included(mod)
 | |
| 
 | |
|         mod.set_field_validators :provider, [::Validators::FieldValidator::NotNil,
 | |
|                                             ::Validators::FieldValidator::FieldType::String,
 | |
|                                             ::Validators::FieldValidator::NotEmpty,
 | |
|                                             ::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
 | |
| 
 | |
|       def provider_instance
 | |
|         @provider_instance ||= Provider::ProviderFactory.get(self.provider, self.provider_account)
 | |
|       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
 | |
| 
 | |
|     end
 | |
|   end
 | |
| end
 | |
| 
 |