Sha256: 4919425448bc0ae63a525fbb3fc7fdd7f74d7b7c4d9d6332ef1f942d86bfb174

Contents?: true

Size: 1.19 KB

Versions: 1

Compression:

Stored size: 1.19 KB

Contents

require 'riak/failed_request'
require 'riak/client/http_backend'
require 'riak/link'

module Riak
  class Client
    class HTTPBackend
      # Riak 0.14 provides a root URL that enumerates all of the
      # HTTP endpoints and their paths.  This module adds methods to
      # auto-discover those endpoints via the root URL.
      module Configuration
        private
        def server_config
          @server_config ||= {}.tap do |hash|
            begin
              response = get(200, "/", {}, {})
              Link.parse(response[:headers]['link'].first).each {|l| hash[l.tag.intern] = l.url }
            rescue Riak::FailedRequest
            end
          end
        end

        def riak_kv_wm_raw
          server_config[:riak_kv_wm_raw] || client.prefix
        end

        def riak_kv_wm_link_walker
          server_config[:riak_kv_wm_link_walker] || client.prefix
        end

        def riak_kv_wm_mapred
          server_config[:riak_kv_wm_mapred] || client.mapred
        end

        def riak_kv_wm_ping
          server_config[:riak_kv_wm_ping] || "/ping"
        end

        def riak_kv_wm_stats
          server_config[:riak_kv_wm_stats] || "/stats"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
seomoz-riak-client-1.0.0.pre lib/riak/client/http_backend/configuration.rb