Class: RailsQuery::Mutation
- Inherits:
-
Object
- Object
- RailsQuery::Mutation
- 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_targets ⇒ Object
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
27 28 29 |
# File 'lib/rails_query/mutation.rb', line 27 def kwargs? method(:resolve).parameters.any? { |type, _| %i[keyrest opt].include?(type) } end |
#resolve ⇒ Object
31 32 33 |
# File 'lib/rails_query/mutation.rb', line 31 def resolve(*) raise NotImplementedError end |