module

ImageProcessing::ChainableMacros

Crystal's method_missing hook never fires for class/module-level calls, so the module-function form of the chainable interface (e.g. ImageProcessing::Vips.resize_to_limit(400, 400)) has to be generated explicitly from the processor's public operations. This helper lives outside the generic Chainable module because macros of generic modules cannot be resolved via extend.

Macros

def_chainable_methods(processor, acc)
Source
def_module_operations(ops, acc)

Generates module-function forms for accumulator operations that are not defined as processor methods (e.g. raw vips operations like "invert" or ImageMagick CLI options like "flip"). On the builder level these go through method_missing; module-level calls need explicit definitions.

Source
def_raising_predicates(names)

Mirrors the Ruby version's method_missing behavior of rejecting predicate methods on the chainable interface.

Source