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

32 lines
756 B
Ruby
Raw Normal View History

2015-08-05 14:05:14 +03:00
module Devops
module Model
module ModelWithProvider
2018-04-04 22:44:39 +03:00
class << self
def included(mod)
mod.field :provider, type: String
2015-11-19 14:09:38 +03:00
2018-04-04 22:44:39 +03:00
mod.validates_presence_of :provider, message: "'provider' is undefined"
end
end
2018-04-04 22:44:39 +03:00
def check_provider_type hash
raise Devops::Exception::ParserError.new("Parameter 'provider' is not a string") unless hash["provider"].is_a?(String)
2015-08-05 14:05:14 +03:00
end
2018-04-04 22:44:39 +03:00
def validate_provider
providers = Provider.providers
errors.add(:provider, "Invalid provider, available values: '#{providers.join("', '")}'") unless providers.include?(self.provider)
end
def provider_hash
{
2018-04-04 22:44:39 +03:00
"provider" => self.provider
}
end
2015-08-05 14:05:14 +03:00
end
end
end