Sha256: f384b5cf0a91d86366c23ee50f26bbf6a5fd055aba5496933cfae966ae3fdaac

Contents?: true

Size: 631 Bytes

Versions: 2

Compression:

Stored size: 631 Bytes

Contents

# frozen_string_literal: true

module TaintedLove
  module Replacer
    class ReplaceGraphQL < Base
      def should_replace?
        Gem.loaded_specs.has_key?('graphql') # fixme: very bundler specific
      end

      def replace!
        require 'graphql'

        GraphQL::Query::Arguments::ArgumentValue.class_eval do
          def value
            return @value if default_used?

            @tainted_value ||= @value.dup.taint

            TaintedLove.tag(@tainted_value, { source: "GraphQL argument #{key.inspect}", value: @tainted_value })

            @tainted_value
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
tainted_love-0.4.1 lib/tainted_love/replacer/replace_graphql.rb
tainted_love-0.4.0 lib/tainted_love/replacer/replace_graphql.rb