Class: ControllerLoader

Inherits:
Loader
  • Object
show all
Defined in:
lib/shot_mvc/controller_loader.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ ControllerLoader



32
33
34
35
# File 'lib/shot_mvc/controller_loader.rb', line 32

def initialize(client)
	super(client)
	@type = 'controller'
end

Instance Method Details

#get(controller) ⇒ Object



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/shot_mvc/controller_loader.rb', line 37

def get(controller)
	if controller_exists? controller
		if direct_path_to_controller? controller
			load controller

			controller_class_name = get_controller_class_from_path controller
			controller_object = get_controller_object controller_class_name
			controller_instance = controller_object.new @client

			call_setup_method controller_object, controller_instance

			controller_instance

		else
			load "application/controllers/#{controller.underscore}_controller.rb"

			controller_class_name = get_controller_class controller
			controller_object = get_controller_object controller_class_name
			controller_instance = controller_object.new @client

			call_setup_method controller_object, controller_instance

			controller_instance
		end
	else
		raise ControllerLoadException.new "Error loading controller #{controller}. Please verify that it exists at application/controllers/#{controller.underscore}.rb"
	end
end