ReactiveX/RxRuby

View on GitHub
lib/rx/linq/observable/if.rb

Summary

Maintainability
A
0 mins
Test Coverage
module Rx
  class << Observable
    def if(condition, then_source, else_source_or_scheduler = nil)
      case else_source_or_scheduler
      when Scheduler
        scheduler = else_source_or_scheduler
        else_source = Observable.empty(scheduler)
      when Observable
        else_source = else_source_or_scheduler
      when nil
        else_source = Observable.empty
      end

      return condition.call ? then_source : else_source
    end
  end
end