32 lines
756 B
Ruby
32 lines
756 B
Ruby
module Devops
|
|
module Model
|
|
module ModelWithProvider
|
|
|
|
class << self
|
|
def included(mod)
|
|
mod.field :provider, type: String
|
|
|
|
mod.validates_presence_of :provider, message: "'provider' is undefined"
|
|
end
|
|
end
|
|
|
|
def check_provider_type hash
|
|
raise Devops::Exception::ParserError.new("Parameter 'provider' is not a string") unless hash["provider"].is_a?(String)
|
|
end
|
|
|
|
def validate_provider
|
|
providers = Provider.providers
|
|
errors.add(:provider, "Invalid provider, available values: '#{providers.join("', '")}'") unless providers.include?(self.provider)
|
|
end
|
|
|
|
def provider_hash
|
|
{
|
|
"provider" => self.provider
|
|
}
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|