summaryrefslogtreecommitdiff
path: root/app/graphql/loaders/base_loader.rb
blob: aad435ea09ba2ed03076ec06b03dbb8df38a90d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Helper methods for all loaders
module Loaders::BaseLoader
  extend ActiveSupport::Concern

  class_methods do
    # Convert a class method into a resolver proc. The method should follow the
    # (obj, args, ctx) calling convention
    def [](sym)
      resolver = method(sym)
      raise ArgumentError.new("#{self}.#{sym} is not a resolver") unless resolver.arity == 3

      resolver
    end
  end
end