Sha256: 2e48eae8dc7b5925e983acb49940a9dd5ddb52858d5b8ec2206610579fe73dd0
Contents?: true
Size: 1.02 KB
Versions: 6
Compression:
Stored size: 1.02 KB
Contents
module GraphqlDevise module MountMethod module OperationPreparers class DefaultOperationPreparer def initialize(selected_operations:, custom_keys:, mapping_name:, preparer:) @selected_operations = selected_operations @custom_keys = custom_keys @mapping_name = mapping_name @preparer = preparer end def call @selected_operations.except(*@custom_keys).each_with_object({}) do |(action, operation), result| mapped_action = "#{@mapping_name}_#{action}" result[mapped_action.to_sym] = [ OperationPreparers::GqlNameSetter.new(mapped_action), @preparer, OperationPreparers::ResourceNameSetter.new(@mapping_name) ].reduce(child_class(operation)) { |prepared_operation, preparer| preparer.call(prepared_operation) } end end private def child_class(operation) Class.new(operation) end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems