Support ruby 2.2.0
diff --git a/src/ruby/ext/grpc/extconf.rb b/src/ruby/ext/grpc/extconf.rb
index 483a31f..f15f85b 100644
--- a/src/ruby/ext/grpc/extconf.rb
+++ b/src/ruby/ext/grpc/extconf.rb
@@ -77,7 +77,6 @@
 
 dir_config('grpc', HEADER_DIRS, LIB_DIRS)
 
-$CFLAGS << ' -std=c89 '
 $CFLAGS << ' -Wno-implicit-function-declaration '
 $CFLAGS << ' -Wno-pointer-sign '
 $CFLAGS << ' -Wno-return-type '
diff --git a/src/ruby/ext/grpc/rb_grpc.c b/src/ruby/ext/grpc/rb_grpc.c
index c7671c8..400efd0 100644
--- a/src/ruby/ext/grpc/rb_grpc.c
+++ b/src/ruby/ext/grpc/rb_grpc.c
@@ -119,12 +119,12 @@
       break;
 
     case T_FLOAT:
-      if (interval && RFLOAT(time)->float_value < 0.0)
+      if (interval && RFLOAT_VALUE(time) < 0.0)
         rb_raise(rb_eArgError, "%s must be positive", tstr);
       else {
         double f, d;
 
-        d = modf(RFLOAT(time)->float_value, &f);
+        d = modf(RFLOAT_VALUE(time), &f);
         if (d < 0) {
           d += 1;
           f -= 1;
@@ -132,7 +132,7 @@
         t.tv_sec = (time_t)f;
         if (f != t.tv_sec) {
           rb_raise(rb_eRangeError, "%f out of Time range",
-                   RFLOAT(time)->float_value);
+                   RFLOAT_VALUE(time));
         }
         t.tv_nsec = (time_t)(d * 1e9 + 0.5);
       }