module LazyController::Routable
included in Dancefloor
Public Class Methods
included(base)
click to toggle source
# File lib/lazy_controller.rb, line 48 def self.included(base) base.__send__ :use, Rack::Flash base.__send__ :helpers, Sinatra::Partials end
Public Instance Methods
controller(c_name, c_action, params={})
click to toggle source
# File lib/lazy_controller.rb, line 57 def controller(c_name, c_action, params={}) require File.join(CONTROLLERSDIR, "#{c_name}_controller") require File.join(MODELSDIR, c_name[0...-1]) begin controller = self.class.const_get("#{c_name.capitalize}Controller") controller_inst = controller.new result = if params.blank? controller_inst.__send__(c_action) else controller_inst.__send__(c_action, params) end controller_inst.instance_variables.each do |ivar| # establish non block-local scope ivar_value = nil controller_inst.instance_eval do ivar_value = instance_variable_get ivar end # self here is the instance of the application instance_variable_set ivar, ivar_value end ensure Db.conn.disconnect if Db.conn.kind_of? DBI::DatabaseHandle and Db.conn.connected? end result end