Sha256: 9dd379976b897f1675fbfc5257d524a2a27776d0bdf924f21cddd27493e8f6aa

Contents?: true

Size: 1.75 KB

Versions: 4

Compression:

Stored size: 1.75 KB

Contents

# Copyright 2010 Sean Cribbs, Sonian Inc., and Basho Technologies, Inc.
#
#    Licensed under the Apache License, Version 2.0 (the "License");
#    you may not use this file except in compliance with the License.
#    You may obtain a copy of the License at
#
#        http://www.apache.org/licenses/LICENSE-2.0
#
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS,
#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
#    See the License for the specific language governing permissions and
#    limitations under the License.
require 'riak'

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

4 entries across 4 versions & 1 rubygems

Version Path
riak-client-0.9.1 lib/riak/client/http_backend/configuration.rb
riak-client-0.9.0 lib/riak/client/http_backend/configuration.rb
riak-client-0.9.0.beta2 lib/riak/client/http_backend/configuration.rb
riak-client-0.9.0.beta lib/riak/client/http_backend/configuration.rb