diff --git a/ext/liquid_c/context.h b/ext/liquid_c/context.h index 8cd43d90..bdd77319 100644 --- a/ext/liquid_c/context.h +++ b/ext/liquid_c/context.h @@ -44,6 +44,9 @@ inline static VALUE value_to_liquid_and_set_context(VALUE value, VALUE context_t if (klass == rb_cString || klass == rb_cArray || klass == rb_cHash) return value; + if (rb_respond_to(value, id_set_context)) + rb_funcall(value, id_set_context, 1, context_to_set); + value = rb_funcall(value, id_to_liquid, 0); if (rb_respond_to(value, id_set_context))