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

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.expand_path("controller-ext", File.dirname(__FILE__))
  Dir[File.join(dir, "*.rb")].each do |f|
    require f
  end
end