From 72d760cefa2babf7c9ce58d15aa0ca8b4c962a1c Mon Sep 17 00:00:00 2001 From: Jasmine Ning Date: Tue, 19 May 2026 17:13:43 -0400 Subject: [PATCH] support in operator --- lib/payrix/request_options/search.rb | 5 +++++ lib/payrix/request_options/search/in.rb | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 lib/payrix/request_options/search/in.rb diff --git a/lib/payrix/request_options/search.rb b/lib/payrix/request_options/search.rb index 72e0bea..a20c5b8 100644 --- a/lib/payrix/request_options/search.rb +++ b/lib/payrix/request_options/search.rb @@ -3,6 +3,7 @@ require 'payrix/request_options/search/node' require 'payrix/request_options/search/atom' require 'payrix/request_options/search/equals' +require 'payrix/request_options/search/in' require 'payrix/request_options/search/greater' require 'payrix/request_options/search/less' require 'payrix/request_options/search/compound' @@ -33,6 +34,10 @@ def self.equals(field, value) Equals.new(field, value) end + def self.in(field, value) + In.new(field, value) + end + def self.greater(field, value) Greater.new(field, value) end diff --git a/lib/payrix/request_options/search/in.rb b/lib/payrix/request_options/search/in.rb new file mode 100644 index 0000000..c4c2dc9 --- /dev/null +++ b/lib/payrix/request_options/search/in.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Payrix + module RequestOptions + module Search + # A builder class that constructs a valid 'equals' search filter. + class In < Atom + def initialize(field, value) + value = "''" if ['', nil].include?(value) + + super(field, :in, value.to_s) + end + end + end + end +end