class Rory::Application
Main application superclass. Applications should subclass this class, but currently no additional configuration is needed - just run '#spin_up' to connect the database so Sequel can do its magic.
Attributes
root[R]
config_path[RW]
db[R]
db_config[R]
Public Class Methods
inherited(subclass)
click to toggle source
Calls superclass method
# File lib/rory/application.rb, line 25 def inherited(subclass) super Rory.application = subclass.instance end
initializer_default_middleware()
click to toggle source
# File lib/rory/application.rb, line 52 def initializer_default_middleware Rory::Application.initializers.add "rory.request_middleware" do |app| app.request_middleware end end
initializers()
click to toggle source
@return [Rory::Initializers]
# File lib/rory/application.rb, line 35 def initializers @initializers ||= Initializers.new end
instance()
click to toggle source
# File lib/rory/application.rb, line 44 def instance @instance ||= new end
method_missing(*args, &block)
click to toggle source
# File lib/rory/application.rb, line 30 def method_missing(*args, &block) instance.send(*args, &block) end
respond_to?(method, private=false)
click to toggle source
Calls superclass method
# File lib/rory/application.rb, line 39 def respond_to?(method, private=false) return true if instance.respond_to?(method) super end
root=(root_path)
click to toggle source
# File lib/rory/application.rb, line 48 def root=(root_path) $:.unshift @root = Pathname.new(root_path).realpath end
Public Instance Methods
auto_require_paths()
click to toggle source
# File lib/rory/application.rb, line 61 def auto_require_paths @auto_require_paths ||= %w(config/initializers models controllers helpers) end
call(env)
click to toggle source
# File lib/rory/application.rb, line 178 def call(env) stack.call(env) end
configure() { |self| ... }
click to toggle source
# File lib/rory/application.rb, line 98 def configure yield self end
connect_db(environment = ENV['RORY_ENV'])
click to toggle source
# File lib/rory/application.rb, line 112 def connect_db(environment = ENV['RORY_ENV']) @db_config = load_config_data(:database) @db = Sequel.connect(@db_config[environment.to_s]) @db.loggers << logger end
dispatcher()
click to toggle source
# File lib/rory/application.rb, line 126 def dispatcher Rory::Dispatcher.rack_app(self) end
filter_parameters(*params)
click to toggle source
# File lib/rory/application.rb, line 143 def filter_parameters(*params) reset_stack @parameters_to_filter = params end
load_config_data(config_type)
click to toggle source
# File lib/rory/application.rb, line 106 def load_config_data(config_type) YAML.load_file( File.expand_path(File.join(config_path, "#{config_type}.yml")) ) end
log_file()
click to toggle source
# File lib/rory/application.rb, line 182 def log_file Dir.mkdir(log_path) unless File.exists?(log_path) File.open(log_path.join("#{ENV['RORY_ENV']}.log"), 'a').tap { |file| file.sync = true } end
log_path()
click to toggle source
# File lib/rory/application.rb, line 83 def log_path @log_path ||= root_path.join('log') end
logger()
click to toggle source
# File lib/rory/application.rb, line 187 def logger @logger ||= Logger.new(log_file) end
middleware()
click to toggle source
# File lib/rory/application.rb, line 122 def middleware @middleware ||= MiddlewareStack.new end
parameters_to_filter()
click to toggle source
# File lib/rory/application.rb, line 139 def parameters_to_filter @parameters_to_filter || [:password] end
request_logging_on?()
click to toggle source
# File lib/rory/application.rb, line 130 def request_logging_on? @request_logging != false end
request_middleware()
click to toggle source
# File lib/rory/application.rb, line 156 def request_middleware return unless request_logging_on? use_middleware Rory::RequestId, :uuid_prefix => uuid_prefix use_middleware Rack::PostBodyContentTypeParser use_middleware Rack::CommonLogger, logger use_middleware Rory::RequestParameterLogger, logger, :filters => parameters_to_filter end
require_all_files()
click to toggle source
# File lib/rory/application.rb, line 65 def require_all_files auto_require_paths.each do |path| Rory::Support.require_all_files_in_directory root_path.join(path) end end
reset_stack()
click to toggle source
# File lib/rory/application.rb, line 148 def reset_stack @stack = nil end
root()
click to toggle source
# File lib/rory/application.rb, line 71 def root self.class.root end
root_path()
click to toggle source
# File lib/rory/application.rb, line 75 def root_path root || raise(RootNotConfigured, "#{self.class.name} has no root configured") end
routes()
click to toggle source
# File lib/rory/application.rb, line 91 def routes unless @routes load(File.join(config_path, 'routes.rb')) end @routes end
run_initializers()
click to toggle source
# File lib/rory/application.rb, line 164 def run_initializers Rory::Application.initializers.run(self) end
set_routes(&block)
click to toggle source
# File lib/rory/application.rb, line 87 def set_routes(&block) @routes = RouteMapper.set_routes(&block) end
spin_up()
click to toggle source
# File lib/rory/application.rb, line 102 def spin_up connect_db end
stack()
click to toggle source
# File lib/rory/application.rb, line 168 def stack @stack ||= Rack::Builder.new.tap { |builder| run_initializers middleware.each do |m| builder.use m.klass, *m.args, &m.block end builder.run dispatcher } end
turn_off_request_logging!()
click to toggle source
# File lib/rory/application.rb, line 134 def turn_off_request_logging! reset_stack @request_logging = false end
use_middleware(*args, &block)
click to toggle source
# File lib/rory/application.rb, line 118 def use_middleware(*args, &block) middleware.use *args, &block end
uuid_prefix()
click to toggle source
# File lib/rory/application.rb, line 152 def uuid_prefix Support.tokenize(self.class.name.gsub("::Application", "")) end