class TaintedLove::Replacer::ReplaceGraphQL

Public Instance Methods

replace!() click to toggle source
# File lib/tainted_love/replacer/replace_graphql.rb, line 10
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
should_replace?() click to toggle source
# File lib/tainted_love/replacer/replace_graphql.rb, line 6
def should_replace?
  Gem.loaded_specs.has_key?('graphql') # fixme: very bundler specific
end
value() click to toggle source
# File lib/tainted_love/replacer/replace_graphql.rb, line 14
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