【Ruby】 整数と実数の判定を思いつきで。

書いてみました。スマートさの欠片もありませんがね。
私ならこう書くyp!というのがあればドシドシお願いします。

def check_numerical_value value
  value_class = value.class.to_s
  if 'String' == value_class
    values = value.split '.'
    if 1 < values.length
      begin
        Float(value)
        result = 'float'
      rescue
        result = 'string'
      end
    else
      begin
        Integer(value)
        result = 'integer'
      rescue
        result = 'string'
      end
    end
  elsif 'Fixnum' == value_class
    result = 'integer'
  elsif 'Float' == value_class
    result = 'float'
  end
end


・結果

p check_numerical_value('hoge') => "string"
p check_numerical_value('10')   => "integer"
p check_numerical_value('10.0') => "float"
p check_numerical_value('')     => "string"
p check_numerical_value(10)     => "integer"
p check_numerical_value(10.0)   => "float"