module Alki::Support
Constants
- VERSION
Public Class Methods
classify(str)
click to toggle source
# File lib/alki/support.rb, line 32 def self.classify(str) str.split('/').map do |c| c.split('_').map{|n| n.capitalize }.join('') end.join('::') end
constantize(name,parent = nil)
click to toggle source
# File lib/alki/support.rb, line 38 def self.constantize(name,parent = nil) name.split('::').inject(parent || Object) do |obj,el| return nil unless obj.const_defined? el, false obj.const_get el, false end end
create_constant(name, value, parent=nil)
click to toggle source
# File lib/alki/support.rb, line 19 def self.create_constant(name, value, parent=nil) parent ||= Object *ans, ln = name.to_s.split('::') ans.each do |a| unless parent.const_defined? a parent.const_set a, Module.new end parent = parent.const_get a end parent.const_set ln, value end
find_root(path)
click to toggle source
# File lib/alki/support.rb, line 52 def self.find_root(path) old_dir = File.absolute_path(path) dir = File.dirname(old_dir) until dir == old_dir || yield(dir) old_dir = dir dir = File.dirname(old_dir) end if dir != old_dir dir end end
load(name_or_obj)
click to toggle source
# File lib/alki/support.rb, line 8 def self.load(name_or_obj) if name_or_obj.is_a?(String) name = name_or_obj require name obj = constantize classify name else obj = name_or_obj end obj end
path_name(path,root=File.dirname(path))
click to toggle source
# File lib/alki/support.rb, line 45 def self.path_name(path,root=File.dirname(path)) root = File.join(root,'') if path.start_with?(root) && path.end_with?('.rb') path[root.size..-4] end end