Sha256: 16712b60f25e26d97120c014f8acad52440e5dfaabbd6ec15ce4a2efdc0b34b7
Contents?: true
Size: 1.32 KB
Versions: 10
Compression:
Stored size: 1.32 KB
Contents
require 'faraday' module Moneta module Adapters # Moneta rest client backend which works together with {Rack::MonetaRest} # @api public class RestClient include Defaults attr_reader :backend # @param [Hash] options # @option options [String] :url URL # @option options [Faraday connection] :backend Use existing backend instance def initialize(options = {}) raise ArgumentError, 'Option :url is required' unless url = options[:url] @backend = options[:backend] || ::Faraday.new(:url => url) end # (see Proxy#key?) def key?(key, options = {}) @backend.head(key).status == 200 end # (see Proxy#load) def load(key, options = {}) response = @backend.get(key) response.status == 200 ? response.body : nil end # (see Proxy#store) def store(key, value, options = {}) response = @backend.post(key, value) raise "HTTP error #{response.status}" unless response.status == 200 value end # (see Proxy#delete) def delete(key, options = {}) response = @backend.delete(key) response.status == 200 ? response.body : nil end # (see Proxy#clear) def clear(options = {}) @backend.delete '' self end end end end
Version data entries
10 entries across 10 versions & 1 rubygems