Guest User

Untitled

a guest
Jul 22nd, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.06 KB | None | 0 0
  1. class Lego::Controller
  2.  
  3. require 'lego/controller/routes'
  4. require 'lego/controller/action_context'
  5. require 'lego/controller/plugin_handler'
  6.  
  7. class << self
  8. attr_accessor :routes
  9. attr_accessor :plugin_handler
  10.  
  11. def inherited(subclass)
  12. subclass.setup_inherited_controller(self)
  13. end
  14.  
  15. def setup_controller
  16. @routes = Routes.new
  17. @plugin_handler = PluginHandler.new(self)
  18. end
  19.  
  20. def setup_inherited_controller(parent_controller)
  21. setup_controller
  22. @routes.copy_from parent_controller
  23. self.const_set(:ActionContext, Class.new(parent_controller::ActionContext))
  24. end
  25.  
  26. def use(plugin_mod)
  27. if plugin_mod.respond_to? :register
  28. plugin_mod.register(@plugin_handler)
  29. # elsif plugin_mod.respond_to? :use
  30. # # Handle Rack plugins
  31. # else
  32. # #Handle unkown plugin type
  33. end
  34. end
  35.  
  36. def action_context
  37. self::ActionContext
  38. end
  39. end
  40.  
  41. setup_controller
  42.  
  43. def call(env)
  44. # Handle call....
  45. end
  46.  
  47. end
Add Comment
Please, Sign In to add comment