Sha256: 1a6ba054f2666e0dde5876e54a32f9ee139b8fe5143d7cc05429957c3fe4f9e1

Contents?: true

Size: 826 Bytes

Versions: 1

Compression:

Stored size: 826 Bytes

Contents

module Lims::Core
  module Helpers
    def self.gem_available?(gem_name)
      begin
        Gem::Specification.find_by_name(gem_name)
      rescue Gem::LoadError
        false
      end
    end

    # Load the available gem for json
    if gem_available?('jrjackson')
      require 'jrjackson'
      def self.to_json(object)
        JrJackson::Json.dump(object)
      end

      def self.load_json(json)
        JrJackson::Json.load(json)
      end
    elsif gem_available?('oj')
      require 'oj'
      def self.to_json(object)
        Oj.dump(object, :mode => :compat)
      end

      def self.load_json(json)
        Oj.load(json)
      end
    else
      require 'json'
      def self.to_json(object)
        object.to_json
      end

      def self.load_json(json)
        JSON.parse(json)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lims-core-3.2.3 lib/lims-core/helpers.rb