From e7ca0820ff2bfb442de3f549b99d33519bb5aab6 Mon Sep 17 00:00:00 2001 From: Aaron F Stanton Date: Thu, 21 Mar 2024 14:32:26 -0400 Subject: [PATCH] Use MultiJson for performance --- ims-lti.gemspec | 1 + lib/ims/lti.rb | 1 + lib/ims/lti/models/content_items/content_item.rb | 2 +- lib/ims/lti/models/lti_model.rb | 4 ++-- lib/ims/lti/version.rb | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/ims-lti.gemspec b/ims-lti.gemspec index 57d10dd..65285a9 100644 --- a/ims-lti.gemspec +++ b/ims-lti.gemspec @@ -24,6 +24,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'json-jwt', '~> 1.7' spec.add_dependency 'simple_oauth', '~> 0.3.1' spec.add_dependency 'rexml' + spec.add_dependency 'multi_json', '~> 1.0' spec.add_development_dependency 'guard', '~> 2.13' spec.add_development_dependency 'guard-rspec', '~> 4.6' diff --git a/lib/ims/lti.rb b/lib/ims/lti.rb index acbfafa..c9cbc6d 100644 --- a/lib/ims/lti.rb +++ b/lib/ims/lti.rb @@ -6,6 +6,7 @@ require 'rexml/document' require 'securerandom' require 'simple_oauth' +require 'multi_json' module IMS module LTI diff --git a/lib/ims/lti/models/content_items/content_item.rb b/lib/ims/lti/models/content_items/content_item.rb index c5af7c3..ca0bbb4 100644 --- a/lib/ims/lti/models/content_items/content_item.rb +++ b/lib/ims/lti/models/content_items/content_item.rb @@ -17,7 +17,7 @@ def initialize(attributes = {}) end def self.from_json(json) - data = json.is_a?(String) ? JSON.parse(json) : json + data = json.is_a?(String) ? MultiJson.load(json) : json case data['@type'] when 'FileItem' FileItem.new.from_json(data) diff --git a/lib/ims/lti/models/lti_model.rb b/lib/ims/lti/models/lti_model.rb index cd61d3c..e0e07f9 100644 --- a/lib/ims/lti/models/lti_model.rb +++ b/lib/ims/lti/models/lti_model.rb @@ -94,9 +94,9 @@ def to_json def from_json(json) json = json.to_json unless json.is_a?(String) begin - data = JSON.parse(json) + data = MultiJson.load(json) rescue - data = JSON.parse(URI::DEFAULT_PARSER.unescape(json)) + data = MultiJson.load(URI::DEFAULT_PARSER.unescape(json)) end if data.is_a? Array diff --git a/lib/ims/lti/version.rb b/lib/ims/lti/version.rb index 3c4348c..4475ba8 100644 --- a/lib/ims/lti/version.rb +++ b/lib/ims/lti/version.rb @@ -1,5 +1,5 @@ module IMS module LTI - VERSION = "2.3.4" + VERSION = "2.3.5" end end