class Junctions::Engine
Attributes
core[W]
junction_list[W]
Public Class Methods
activate(base, name)
click to toggle source
# File lib/junctions/engine.rb, line 42 def activate(base, name) junction_classes.each { |junction_class| switch_to_junction(junction_class.classify, base, name) } end
core()
click to toggle source
# File lib/junctions/engine.rb, line 16 def core @core||='core' end
junction_classes()
click to toggle source
# File lib/junctions/engine.rb, line 12 def junction_classes junction_list.reverse end
junction_list()
click to toggle source
# File lib/junctions/engine.rb, line 8 def junction_list @junction_list||=get_initializer_roots('junctions') end
Private Class Methods
get_initializer_roots(*args)
click to toggle source
# File lib/junctions/engine.rb, line 21 def get_initializer_roots(*args) args.map do |arg| root=ENV[arg] root && root.split(',').map(&:squish) or nil end.flatten.compact << core end
switch_to_junction(junction_class, base, base_name)
click to toggle source
# File lib/junctions/engine.rb, line 28 def switch_to_junction(junction_class, base, base_name) name=base_name.gsub("#{core.classify}::", "#{junction_class}::") begin require(name.underscore) base.prepend name.constantize if name.gsub(/::[^:]*$/, '').constantize.const_defined?(name.demodulize) rescue NameError rescue LoadError rescue Exception => e puts(e.message) puts(e.backtrace) end unless base_name==name end