diff --git a/lib/reactive-ruby/serializers.rb b/lib/reactive-ruby/serializers.rb index b79c759..0ba2fc4 100644 --- a/lib/reactive-ruby/serializers.rb +++ b/lib/reactive-ruby/serializers.rb @@ -1,7 +1,13 @@ -[Bignum, FalseClass, Fixnum, Float, Integer, NilClass, String, Symbol, Time, TrueClass].each do |klass| - klass.send(:define_method, :react_serializer) do - as_json - end +[TrueClass, FalseClass, NilClass, Float, String, Symbol, Time].each do |klass| + klass.send(:define_method, :react_serializer) { as_json } +end +# Ruby 2.4 unifies Fixnum and Bignum into Integer +# and prints a warning if the old constants are accessed. +if 0.class == Integer + Integer.send(:define_method, :react_serializer) { as_json } +else + Fixnum.send(:define_method, :react_serializer) { as_json } + Bignum.send(:define_method, :react_serializer) { as_json } end BigDecimal.send(:define_method, :react_serializer) { as_json } rescue nil