Module: Pakada::Dispatch::Module

Defined in:
lib/pakada/dispatch/module.rb

Instance Method Summary collapse

Instance Method Details

#controller(name, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
# File 'lib/pakada/dispatch/module.rb', line 14

def controller(name, &block)
  if block
    controllers[name] = Pakada[:dispatch].create_controller(&block).tap {|c|
      c.options[:controller] = name
      c.options[:module] = pakada_name
    }
  else
    controllers[name]
  end
end

#controller_pathObject



6
7
8
# File 'lib/pakada/dispatch/module.rb', line 6

def controller_path
  @controller_path ||= path.join("controllers")
end

#controllersObject



10
11
12
# File 'lib/pakada/dispatch/module.rb', line 10

def controllers
  @controllers ||= {}
end

#load_controllersObject



25
26
27
28
29
30
31
32
33
# File 'lib/pakada/dispatch/module.rb', line 25

def load_controllers
  controller_path.each_entry {|path|
    path = controller_path.join(path)
    next unless path.file?
    controller(path.basename(".rb").to_s.to_sym) {
      class_eval File.read(path), path.to_s, 1
    }
  } if controller_path.exist?
end

#route(name, pattern, &block) ⇒ Object



35
36
37
# File 'lib/pakada/dispatch/module.rb', line 35

def route(name, pattern, &block)
  Pakada[:dispatch].router.add(pattern).name(name).to &block
end