lib/riemann/dash.rb in riemann-dash-0.2.1 vs lib/riemann/dash.rb in riemann-dash-0.2.3
- old
+ new
@@ -1,99 +1,5 @@
require 'rubygems'
require 'sinatra/base'
-
-module Riemann
- class Dash < Sinatra::Base
- # A little dashboard sinatra application.
-
- require 'yaml'
- require 'find'
- require 'erubis'
- require 'sass'
-
- def self.config
- @config ||= {
- :controllers => [File.join(File.dirname(__FILE__), 'dash', 'controller')],
- :views => File.join(File.dirname(__FILE__), 'dash', 'views')
- }
- end
-
- def self.load(filename)
- unless load_config(filename || 'config.rb')
- # Configuration failed; load a default view.
- puts "No configuration loaded; using defaults."
- end
-
- config[:controllers].each { |d| load_controllers d }
- set :views, File.expand_path(config[:views])
-
- # Fallback pub dir
- public_dir(File.join(File.dirname(__FILE__), 'dash', 'public'))
- end
-
- # Executes the configuration file.
- def self.load_config(filename)
- begin
- instance_eval File.read(filename)
- true
- rescue Errno::ENOENT
- false
- end
- end
-
- # Load controllers.
- # Controllers can be regular old one-file-per-class, but
- # if you prefer a little more modularity, this method will allow you to
- # define all controller methods in their own files. For example, get
- # "/posts/*/edit" can live in controller/posts/_/edit.rb. The sorting
- # system provided here requires files in the correct order to handle
- # wildcards appropriately.
- def self.load_controllers(dir)
- rbs = []
- Find.find(
- File.expand_path(dir)
- ) do |path|
- rbs << path if path =~ /\.rb$/
- end
-
- # Sort paths with _ last, becase those are wildcards.
- rbs.sort! do |a, b|
- as = a.split File::SEPARATOR
- bs = b.split File::SEPARATOR
-
- # Compare common subpaths
- l = [as.size, bs.size].min
- catch :x do
- (0...l).each do |i|
- a, b = as[i], bs[i]
- if a[/^_/] and not b[/^_/]
- throw :x, 1
- elsif b[/^_/] and not a[/^_/]
- throw :x, -1
- elsif ord = (a <=> b) and ord != 0
- throw :x, ord
- end
- end
-
- # All subpaths are identical; sort longest first
- if as.size > bs.size
- throw :x, -1
- elsif as.size < bs.size
- throw :x, -1
- else
- throw :x, 0
- end
- end
- end
-
- rbs.each do |r|
- require r
- end
- end
-
- # Add an additional public directory.
- def self.public_dir(dir)
- require 'riemann/dash/rack/static'
- use Riemann::Dash::Static, :root => dir
- end
- end
-end
+require 'riemann/dash/version'
+require 'riemann/dash/config'
+require 'riemann/dash/app'