class GraphQL::PersistedQueries::HashGeneratorBuilder

Builds hash generator

Public Class Methods

new(generator) click to toggle source
# File lib/graphql/persisted_queries/hash_generator_builder.rb, line 9
def initialize(generator)
  @generator = generator
end

Public Instance Methods

build() click to toggle source
# File lib/graphql/persisted_queries/hash_generator_builder.rb, line 13
def build
  if @generator.is_a?(Proc)
    build_from_proc
  else
    build_from_name
  end
end

Private Instance Methods

build_from_name() click to toggle source
# File lib/graphql/persisted_queries/hash_generator_builder.rb, line 31
def build_from_name
  upcased_name = @generator.to_s.upcase
  digest_class = Digest.const_get(upcased_name)
  proc { |value| digest_class.hexdigest(value) }
rescue LoadError => e
  raise NameError, "digest class for :#{@generator} haven't been found", e.backtrace
end
build_from_proc() click to toggle source
# File lib/graphql/persisted_queries/hash_generator_builder.rb, line 23
def build_from_proc
  if @generator.arity != 1
    raise ArgumentError, "proc passed to :hash_generator should have exactly one argument"
  end

  @generator
end