# File lib/rack/moneta_rest.rb, line 30
    def call(env)
      key = env['PATH_INFO'][1..-1].to_s
      case env['REQUEST_METHOD']
      when 'HEAD'
        if key.empty?
          respond(400, 'Empty key')
        elsif @store.key?(key)
          empty(200)
        else
          empty(404)
        end
      when 'GET'
        if key.empty?
          respond(400, 'Empty key')
        elsif value = @store[key]
          respond(200, value)
        else
          empty(404)
        end
      when 'POST', 'PUT'
        if key.empty?
          respond(400, 'Empty key')
        else
          respond(200, @store[key] = env['rack.input'].read)
        end
      when 'DELETE'
        if key.empty?
          @store.clear
          empty(200)
        else
          respond(200, @store.delete(key))
        end
      else
        respond(400, 'Bad method')
      end
    rescue => ex
      respond(500, "Exception: #{ex.message}")
    end