Class: RailsQuery::Mutation

Inherits:
Object
  • Object
show all
Defined in:
lib/rails_query/mutation.rb

Overview

Base class for mutations

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.call(*args, **opts) ⇒ Object



7
8
9
# File 'lib/rails_query/mutation.rb', line 7

def call(*args, **opts)
  new.call(*args, **opts)
end

.invalidates(*providers) ⇒ Object



11
12
13
# File 'lib/rails_query/mutation.rb', line 11

def invalidates(*providers)
  @invalidates = providers
end

.invalidation_targetsObject



15
16
17
# File 'lib/rails_query/mutation.rb', line 15

def invalidation_targets
  @invalidates || []
end

Instance Method Details

#call(*args, **opts) ⇒ Object



20
21
22
23
24
25
# File 'lib/rails_query/mutation.rb', line 20

def call(*args, **opts)
  result = kwargs? ? resolve(*args, **opts) : resolve(*args)
  invalidate!

  result
end

#kwargs?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/rails_query/mutation.rb', line 27

def kwargs?
  method(:resolve).parameters.any? { |type, _| %i[keyrest opt].include?(type) }
end

#resolveObject

Raises:

  • (NotImplementedError)


31
32
33
# File 'lib/rails_query/mutation.rb', line 31

def resolve(*)
  raise NotImplementedError
end