Module: Ezmedium::ControllerExt
- Defined in:
- lib/ezmedium/controller-ext.rb,
lib/ezmedium/controller-ext/version.rb
Defined Under Namespace
Modules: ClassMethods, Version Classes: Railtie
Class Method Summary collapse
-
.[](name) ⇒ Object
Lookup controller extensions.
- .for(name, &blk) ⇒ Object
- .load_default! ⇒ Object
Class Method Details
.[](name) ⇒ Object
Lookup controller extensions.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/ezmedium/controller-ext.rb', line 16 def self.[](name) name = name.to_sym if known_extensions.has_key?(name) return known_extensions[name] else constant_name = "#{name.to_s.classify}Ext" [nil, "Ezmedium::ControllerExt", "Ezmedium", "ControllerExt"].each do |namespace| full = [namespace, constant_name].compact.join("::") begin constant = full.constantize known_extensions[name] = constant return constant rescue NameError end end nil end end |
.for(name, &blk) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/ezmedium/controller-ext.rb', line 35 def self.for(name, &blk) constant_name = "#{name.to_s.classify}Ext" const_set(constant_name, Module.new) unless const_defined?(constant_name) const_get(constant_name).tap do |m| m.module_eval(&blk) if blk.present? end end |
.load_default! ⇒ Object
8 9 10 11 12 13 |
# File 'lib/ezmedium/controller-ext.rb', line 8 def self.load_default! dir = File.("controller-ext", File.dirname(__FILE__)) Dir[File.join(dir, "*.rb")].each do |f| require f end end |