Module: ClassX::Pluggable::Util
Public Instance Methods
module2path (mod)
# File lib/classx/pluggable.rb, line 147 147: def module2path mod 148: mod.split(/::/).map { |s| 149: s.gsub(/([A-Z][a-z]+)(?=[A-Z][a-z]*?)/, '\1_').gsub(/([A-Z])(?=[A-Z][a-z]+)/, '\1_').downcase 150: }.join(File::SEPARATOR) 151: end
nested_autoload (mod, path)
# File lib/classx/pluggable.rb, line 162 162: def nested_autoload mod, path 163: name_spaces = mod.split(/::/) 164: target = name_spaces.pop 165: tmp = ::Object 166: name_spaces.each do |const| 167: tmp = tmp.const_get(const) 168: end 169: tmp.autoload(target, path) 170: end
nested_const_get (mod)
# File lib/classx/pluggable.rb, line 153 153: def nested_const_get mod 154: name_spaces = mod.split(/::/) 155: result = ::Object 156: name_spaces.each do |const| 157: result = result.const_get(const) 158: end 159: return result 160: end