Sha256: c73014ae41c52b6373822a53bf3672e14d63ff2e14d2fce6e1701046fe982c52

Contents?: true

Size: 613 Bytes

Versions: 12

Compression:

Stored size: 613 Bytes

Contents

module EY
  module Serverside
    class Future
      def self.map(blocks)
        blocks.map { |block| new(&block) }
      end

      def self.success?(futures)
        futures.empty? || futures.all? {|f| f.success?}
      end

      def initialize(&block)
        @block = block
      end

      def result
        @result ||= call
      end

      def success?
        result.success?
      end

      def error?
        !success?
      end
    end

    if defined?(Fiber)
      require 'engineyard-serverside/futures/celluloid'
    else
      require 'engineyard-serverside/futures/dataflow'
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
engineyard-serverside-2.0.4 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.3 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.2 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.1 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.0 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.0.rc1 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.0.pre5 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.0.pre4 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.0.pre3 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.0.pre2 lib/engineyard-serverside/future.rb
engineyard-serverside-2.0.0.pre1 lib/engineyard-serverside/future.rb
engineyard-serverside-1.7.0.pre2 lib/engineyard-serverside/future.rb