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