Module: Riak::Client::FeatureDetection

Included in:
HTTPBackend, ProtobuffsBackend
Defined in:
lib/riak/client/feature_detection.rb

Overview

Methods that can be used to determine whether certain features are supported by the Riak node to which the client backend is connected.

Backends must implement the "get_server_version" method, returning a string representing the Riak node's version. This is implemented on HTTP using the stats resource, and on Protocol Buffers using the RpbGetServerInfoReq message.

Constant Summary collapse

VERSION =

Constants representing Riak versions

{
  1 => Gem::Version.new("1.0.0"),
  1.1 => Gem::Version.new("1.1.0"),
  1.2 => Gem::Version.new("1.2.0")
}.freeze

Instance Method Summary collapse

Instance Method Details

#get_server_versionString

This method is abstract.

Returns the version of the Riak node.

Raises:

  • (NotImplementedError)


21
22
23
# File 'lib/riak/client/feature_detection.rb', line 21

def get_server_version
  raise NotImplementedError
end

#mapred_phaseless?true, false



33
34
35
# File 'lib/riak/client/feature_detection.rb', line 33

def mapred_phaseless?
  at_least? VERSION[1.1]
end

#pb_conditionals?true, false



51
52
53
# File 'lib/riak/client/feature_detection.rb', line 51

def pb_conditionals?
  at_least? VERSION[1]
end

#pb_head?true, false



70
71
72
# File 'lib/riak/client/feature_detection.rb', line 70

def pb_head?
  at_least? VERSION[1]
end

#pb_indexes?true, false



39
40
41
# File 'lib/riak/client/feature_detection.rb', line 39

def pb_indexes?
  at_least? VERSION[1.2]
end

#pb_search?true, false



45
46
47
# File 'lib/riak/client/feature_detection.rb', line 45

def pb_search?
  at_least? VERSION[1.2]
end

#quorum_controls?true, false



58
59
60
# File 'lib/riak/client/feature_detection.rb', line 58

def quorum_controls?
  at_least? VERSION[1]
end

#server_versionGem::Version



27
28
29
# File 'lib/riak/client/feature_detection.rb', line 27

def server_version
  @server_version ||= Gem::Version.new(get_server_version)
end

#tombstone_vclocks?true, false



64
65
66
# File 'lib/riak/client/feature_detection.rb', line 64

def tombstone_vclocks?
  at_least? VERSION[1]
end