Hi, I'm interested in using pact-ruby for a projec...
# pact-ruby
w
Hi, I'm interested in using pact-ruby for a project I'm running, however, it looks like for my use case I would require some V3 features. I'm particularly interested in state provider params and I'm wondering if there's a minimum feature set required to contribute at least partial support for V3 Any guidance on implementation also appreciated. Thanks!
y
Hey Wiktor, We created a pact-compatability-suite to help test the implementations, and to check feature parity between implementations. The v3 feature files are here https://github.com/pact-foundation/pact-compatibility-suite/tree/main/features/V3 They are already in use across the Pact-JVM, Rust and PHP (ffi branch) repos. Pact Reference, our new Pact Core in Rust supports v3/v4 specification, and I’ve currently wrapped the shared library in a Ruby FFI wrapper Gem https://github.com/YOU54F/pact-ruby-ffi The preferred path going forward, I think would be to integrate the rust core with ruby, to save having to reimplement features in the Ruby core.
f
Oh, this helps a lot @Yousaf Nabi (pactflow.io) - i was looking into experimenting integrating the rust ffi with a new ruby lib, since the current one is in bad shape I'd like some v3/v4 support for our projects, simce our node projects have moved on with pact-js, but ruby lags behind.
y
hey buddy, pleasure. if you need any support or have any questions about it, just holla. could i ask what you mean when you say bad shape? just not supporting v3/v4 or have you got other issues? oh and btw do you work from contentful? I have a friend who works there
f
bad shape mostly as in lacking setup docs, being a bit cluttered with its tests (and fixtures) and overall using it's own custom implementation for the mock server. Since we're looking into pact more extensively at the moment, i am looking to evaluate if I should just go for creating a clean new gem based on
pact-ffi
instead of trying to transplant it into the existing one - in the end, my understanding is that language specific implementations should move away from having their own implementation anyway. It's all very early, but it is kinda important for us to have v3/v4 compat under ruby 😄