diff --git a/temporalio/.yardopts b/temporalio/.yardopts index 93196d0c..b14d0a3a 100644 --- a/temporalio/.yardopts +++ b/temporalio/.yardopts @@ -1,2 +1,3 @@ --readme README.md --protected +--exclude sig/ diff --git a/temporalio/lib/temporalio/internal/bridge.rb b/temporalio/lib/temporalio/internal/bridge.rb index b4fe5063..e2c70621 100644 --- a/temporalio/lib/temporalio/internal/bridge.rb +++ b/temporalio/lib/temporalio/internal/bridge.rb @@ -25,11 +25,11 @@ def self.assert_fiber_compatibility! 'see https://github.com/temporalio/sdk-ruby/issues/162' end - def self.fibers_supported # rubocop:disable Naming/PredicateMethod + def self.fibers_supported # We do not allow fibers on < 3.3 due to a bug we still need to dig # into: https://github.com/temporalio/sdk-ruby/issues/162 major, minor = RUBY_VERSION.split('.').take(2).map(&:to_i) - !major.nil? && major >= 3 && !minor.nil? && minor >= 3 + !major.nil? && !minor.nil? && (major > 3 || (major == 3 && minor >= 3)) end end end diff --git a/temporalio/test/worker_activity_test.rb b/temporalio/test/worker_activity_test.rb index 9f2a3a68..e0ccaaa5 100644 --- a/temporalio/test/worker_activity_test.rb +++ b/temporalio/test/worker_activity_test.rb @@ -41,6 +41,21 @@ def test_block assert_equal 'Greetings, Block!', execute_activity(activity, 'Block') end + class SimpleFiberActivity < Temporalio::Activity::Definition + activity_executor :fiber + + def execute(name) + "Hello, #{name}!" + end + end + + # Unconditionally assert fiber executor works for all supported Ruby versions support fibers + def test_simple_fiber_activity + Async do + assert_equal 'Hello, Fiber!', execute_activity(SimpleFiberActivity, 'Fiber') + end + end + class FiberActivity < Temporalio::Activity::Definition attr_reader :waiting_notification, :result_notification