From dccad8239996997fd2e6ee174364454cc51aabf2 Mon Sep 17 00:00:00 2001 From: bootleq Date: Tue, 30 Apr 2019 16:05:42 +0800 Subject: [PATCH] Workaround Integer detection for ruby 2.4 onward We used to detect field definition `foo 42` by ask the class name of 42, which was `Fixnum` before ruby 2.4, but now `Integer`. --- lib/dsl/data_types/primitives.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/dsl/data_types/primitives.rb b/lib/dsl/data_types/primitives.rb index cd043a5..f62d5ba 100644 --- a/lib/dsl/data_types/primitives.rb +++ b/lib/dsl/data_types/primitives.rb @@ -67,10 +67,13 @@ def column_defaults {:type => :integer, :limit => ((@value.size > 8)? @value.size : 8) } end end - - class Integer < Bignum + + if 1.class.name == 'Integer' # since ruby 2.4 Integer is the general int type, so inherit our assumed general type (Fixnum) + class Integer < Fixnum; end + else + class Integer < Bignum; end end - + class Float < Base def column_defaults {:type => :float}