module ContainerConfig::Coercer
Contains classes and methods for type coercion
Public Class Methods
coerce_value(value, value_type = nil, options = {})
click to toggle source
Coerces a given value into a requested type
@param [Object] value value to coerce @param [Symbol] value_type requested type such as :boolean, :integer, :string, :symbol,
:ssl_verify_mode, :ssl_certificate, or :ssl_key
@param [Hash] options Options Hash @option options [Boolean] :coerce_nil where to coerce nil values (defaults to true)
@return [Object] coerced value
# File lib/container_config/coercer.rb, line 28 def self.coerce_value(value, value_type = nil, options = {}) return value unless value_type return value if options[:coerce_nil] == false && value.nil? value_type = value_type.to_sym ContainerConfig.coercers.each do |coercer| return coercer.coerce(value) if coercer.type == value_type end ContainerConfig.logger.warn { "Could not find valid coercion type for #{value_type}" } value end
default_coercers()
click to toggle source
Array of default coercers
@return [Array<ContainerConfig::Coercer::Base>] default coercers
# File lib/container_config/coercer.rb, line 48 def self.default_coercers [ ContainerConfig::Coercer::Boolean.new, ContainerConfig::Coercer::Float.new, ContainerConfig::Coercer::Integer.new, ContainerConfig::Coercer::SslCertificate.new, ContainerConfig::Coercer::SslKey.new, ContainerConfig::Coercer::SslVerifyMode.new, ContainerConfig::Coercer::String.new, ContainerConfig::Coercer::Symbol.new ] end