Module: NotMonads::Do

Defined in:
lib/not_monads/do.rb

Defined Under Namespace

Modules: MixinInstance Classes: Halt

Class Method Summary collapse

Class Method Details

.[](*methods) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/not_monads/do.rb', line 39

def [](*methods)
  Module.new do
    methods.each do |method|
      define_method(method) do |*args, **kwargs, &block|
        super(*args, **kwargs, &block)
      rescue Halt => e
        e.result
      end
    end

    include MixinInstance
  end
end