Browse Source

[ruby|sinatra] Use OJ for JSON serialization (#9050)

`oj` is faster than the `json` gem.
Petrik de Heus 1 year ago
parent
commit
b22ef920ea

+ 1 - 1
frameworks/Ruby/sinatra-sequel/Gemfile

@@ -1,6 +1,6 @@
 source 'https://rubygems.org'
 
-gem 'json', '~> 2.0'
+gem 'oj'
 gem 'passenger', '~> 6.0', :platforms=>[:ruby, :mswin], :require=>false
 gem 'puma', '~> 6.4', :require=>false
 gem 'sequel', '~> 5.0'

+ 3 - 0
frameworks/Ruby/sinatra-sequel/boot.rb

@@ -1,6 +1,7 @@
 # frozen_string_literal: true
 require 'bundler/setup'
 require 'time'
+require 'oj'
 
 MAX_PK = 10_000
 ID_RANGE = (1..MAX_PK).freeze
@@ -23,6 +24,8 @@ SERVER_STRING =
 
 Bundler.require(:default) # Load core modules
 
+Oj.mimic_JSON
+
 def connect(dbtype)
   Bundler.require(dbtype) # Load database-specific modules
 

+ 1 - 1
frameworks/Ruby/sinatra/Gemfile

@@ -1,7 +1,7 @@
 source 'https://rubygems.org'
 
 gem 'activerecord', '~> 7.0', :require=>'active_record'
-gem 'json', '~> 2.0'
+gem 'oj'
 gem 'passenger', '~> 6.0', :platforms=>[:ruby, :mswin], :require=>false
 gem 'puma', '~> 6.4', :require=>false
 gem 'sinatra', '~> 3.0', :require=>'sinatra/base'

+ 3 - 0
frameworks/Ruby/sinatra/boot.rb

@@ -1,6 +1,7 @@
 # frozen_string_literal: true
 require 'bundler/setup'
 require 'time'
+require 'oj'
 
 MAX_PK = 10_000
 ID_RANGE = (1..MAX_PK).freeze
@@ -22,6 +23,8 @@ SERVER_STRING =
 
 Bundler.require(:default) # Load core modules
 
+Oj.mimic_JSON
+
 def connect(dbtype)
   Bundler.require(dbtype) # Load database-specific modules