Module: ProxES::Container::Plugins::Base::ClassMethods
- Included in:
- ProxES::Container
- Defined in:
- lib/proxes/container.rb
Instance Method Summary collapse
- #migrations ⇒ Object
- #nav_items ⇒ Object
-
#plugin(plugin, *args, &block) ⇒ Object
Load a new plugin into the current class.
- #routes ⇒ Object
Instance Method Details
#migrations ⇒ Object
91 92 93 94 95 |
# File 'lib/proxes/container.rb', line 91 def migrations Plugins.plugins.map do |_key, plugin| plugin.migration_folder if plugin.respond_to?(:migration_folder) end end |
#nav_items ⇒ Object
87 88 89 |
# File 'lib/proxes/container.rb', line 87 def nav_items [] # Return an ordered list of navigation items: `[{order:0, link:'/users/' text:'Users'}, {order:1, link:'/roles/', text:'Roles'}] end |
#plugin(plugin, *args, &block) ⇒ Object
Load a new plugin into the current class. A plugin can be a module which is used directly, or a symbol represented a registered plugin which will be required and then used. Returns nil.
Container.plugin PluginModule
Container.plugin :csrf
68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/proxes/container.rb', line 68 def plugin(plugin, *args, &block) raise ContainerError, "Cannot add a plugin to a frozen Container class" if frozen? plugin = Plugins.load_plugin(plugin) if plugin.is_a?(Symbol) plugin.load_dependencies(self, *args, &block) if plugin.respond_to?(:load_dependencies) include(plugin::InstanceMethods) if defined?(plugin::InstanceMethods) extend(plugin::ClassMethods) if defined?(plugin::ClassMethods) plugin.configure(self, *args, &block) if plugin.respond_to?(:configure) # One option is to add controllers / nav on registration: @controllers.merge(plugin.controllers) if plugin.respond_to?(:controllers) << plugin. if plugin.respond_to?(:navigation) nil end |
#routes ⇒ Object
83 84 85 |
# File 'lib/proxes/container.rb', line 83 def routes {} # Return a hash of controllers with their routes as keys: `{ '/users' => ProxES::Controllers::Users }` end |