Sha256: 9247d4958e6f50738c3d8330c00b3e940994beb7c5a179ed5b5b5361e8f3012b

Contents?: true

Size: 1.26 KB

Versions: 13

Compression:

Stored size: 1.26 KB

Contents

require 'appsignal/utils/params_sanitizer'
require 'appsignal/utils/query_params_sanitizer'

module Appsignal
  module Utils
    module ClassMethods
      extend Gem::Deprecate

      def sanitize(params, only_top_level = false, key_sanitizer = nil)
        QueryParamsSanitizer.sanitize(params, only_top_level, key_sanitizer)
      end

      deprecate :sanitize, "AppSignal::Utils::QueryParamsSanitizer.sanitize", 2016, 9
    end
    extend ClassMethods

    def self.json_generate(body)
      JSON.generate(body)
    end

    class JSON
      module ClassMethods
        def generate(body)
          ::JSON.generate(jsonify(body))
        end

        private

        def jsonify(value)
          case value
          when String
            encode_utf8(value)
          when Numeric, NilClass, TrueClass, FalseClass
            value
          when Hash
            Hash[value.map { |k, v| [jsonify(k), jsonify(v)] }]
          when Array
            value.map { |v| jsonify(v) }
          else
            jsonify(value.to_s)
          end
        end

        def encode_utf8(value)
          value.encode(
            'utf-8'.freeze,
            :invalid => :replace,
            :undef   => :replace
          )
        end
      end

      extend ClassMethods
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
appsignal-1.3.6.beta.1 lib/appsignal/utils.rb
appsignal-1.3.5 lib/appsignal/utils.rb
appsignal-1.3.5.beta.1 lib/appsignal/utils.rb
appsignal-1.3.4 lib/appsignal/utils.rb
appsignal-1.3.3 lib/appsignal/utils.rb
appsignal-1.4.0.alpha.2 lib/appsignal/utils.rb
appsignal-1.4.0.alpha.1 lib/appsignal/utils.rb
appsignal-1.3.2 lib/appsignal/utils.rb
appsignal-1.3.1 lib/appsignal/utils.rb
appsignal-1.3.0 lib/appsignal/utils.rb
appsignal-1.3.0.beta.3 lib/appsignal/utils.rb
appsignal-1.3.0.beta.2 lib/appsignal/utils.rb
appsignal-1.3.0.beta.1 lib/appsignal/utils.rb