Class: CassandraModel::BatchReactor::Future

Inherits:
Cassandra::Future
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/cassandra_model/batch_reactor/future.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(ione_future) ⇒ Future

Returns a new instance of Future.



18
19
20
# File 'lib/cassandra_model/batch_reactor/future.rb', line 18

def initialize(ione_future)
  @future = ione_future
end

Class Method Details

.define_handler(internal_name, external_name = internal_name) ⇒ Object



6
7
8
9
10
11
# File 'lib/cassandra_model/batch_reactor/future.rb', line 6

def self.define_handler(internal_name, external_name = internal_name)
  define_method(external_name) do |&block|
    @future.public_send(internal_name, &block)
    self
  end
end

Instance Method Details

#add_listener(listener) ⇒ Object



22
23
24
25
26
27
# File 'lib/cassandra_model/batch_reactor/future.rb', line 22

def add_listener(listener)
  @future.on_complete do |value, error|
    error ? listener.failure(error) :  listener.success(value)
  end
  self
end

#fallback(&_) ⇒ Object

Raises:

  • (NotImplementedError)


33
34
35
# File 'lib/cassandra_model/batch_reactor/future.rb', line 33

def fallback(&_)
  raise NotImplementedError
end

#joinObject



42
43
44
45
# File 'lib/cassandra_model/batch_reactor/future.rb', line 42

def join
  @future.get
  self
end

#promiseObject

Raises:

  • (NotImplementedError)


29
30
31
# File 'lib/cassandra_model/batch_reactor/future.rb', line 29

def promise
  raise NotImplementedError
end

#then(&block) ⇒ Object



37
38
39
40
# File 'lib/cassandra_model/batch_reactor/future.rb', line 37

def then(&block)
  internal_future = @future.then(&block)
  Future.new(internal_future)
end