Sha256: 6bc1ad1bcb8e7179715fb755a6fab269d1f13c40b0a68693376bbce3226a6fed
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
require 'sinatra/base' require 'slim' require 'sprockets' module RReDisServer class SprocketsMiddleware def initialize(app, options={}) @app = app @root = options[:root] path = options[:path] || 'assets' @matcher = /^\/#{path}\/*/ @environment = ::Sprockets::Environment.new(@root) @environment.append_path 'assets/javascripts' @environment.append_path 'assets/javascripts/vendor' @environment.append_path 'assets/stylesheets' @environment.append_path 'assets/stylesheets/vendor' @environment.append_path 'assets/images' end def call(env) return [301, { 'Location' => "#{env['SCRIPT_NAME']}/" }, []] if env['SCRIPT_NAME'] == env['REQUEST_PATH'] return @app.call(env) unless @matcher =~ env["PATH_INFO"] env['PATH_INFO'].sub!(@matcher,'') @environment.call(env) end end class Web < Sinatra::Base dir = File.expand_path(File.dirname(__FILE__) + "/web") set :views, "#{dir}/views" set :root, "#{dir}/assets" set :slim, :pretty => true use SprocketsMiddleware, :root => dir helpers do def root_path "#{env['SCRIPT_NAME']}/" end end def initialize super @r = Redis.new @rrd = RReDis.new end get "/" do @metrics = @r.smembers("rrd_metrics_set") slim :index end get "/get" do data = {} params['aggregations'].split(',').each do |method| data[method] = @rrd.get(params['metric'], Time.now-params['timespan'].to_i, Time.now, method) end JSON.dump(data) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rredis-0.1.0 | lib/rredis/server.rb |