Sha256: 75f1c17426af58aabf75e25ef0a80d7fb3c691b948ed80700ee84e43af347470
Contents?: true
Size: 817 Bytes
Versions: 17
Compression:
Stored size: 817 Bytes
Contents
class Cl module Cast TRUE = /^(true|yes|on)$/ FALSE = /^(false|no|off)$/ def cast(value) case type when nil value when :array Array(value).compact.flatten.map { |value| split(value) }.flatten when :string, :str value.to_s unless value.to_s.empty? when :flag, :boolean, :bool return true if value.to_s =~ TRUE return false if value.to_s =~ FALSE !!value when :integer, :int Integer(value) when :float Float(value) else raise ArgumentError, "Unknown type: #{type}" if value end rescue ::ArgumentError => e raise ArgumentError.new(:wrong_type, value.inspect, type) end def split(value) separator ? value.to_s.split(separator) : value end end end
Version data entries
17 entries across 17 versions & 1 rubygems