-
-
Notifications
You must be signed in to change notification settings - Fork 156
Open
Labels
Description
Describe the bug
When pattern matching inside a class method an include Dry::Monads[:maybe] is needed, the extend Dry::Monads[:maybe] is not enough and causes a crash.
To Reproduce
Simple script:
class Foo
include Dry::Monads[:maybe]
extend Dry::Monads[:maybe]
def self.foo
case Some(4)
in Some(a)
puts a
in None()
puts 'none'
end
end
endRemoving any include or extend will cause this script to fail:
- Removing
extendcausesSome(4)to raiseNoMethodError: undefined methodSome' for Foo:Class` (makes sense) - Removing
extendcausesSome(a)to raiseNameError: uninitialized constant Foo::Some(?)
Expected behavior
Ideally I'd like to only have to extend Dry::Monads[:maybe] for a class method, not both.
My environment
- Affects my production application: NO
- Ruby version: 3.1.4p223
- OS: Docker (Alpine)