fix cast logic on ruby 1.8.7