lib/sugar-high/class_ext.rb in sugar-high-0.5.5 vs lib/sugar-high/class_ext.rb in sugar-high-0.6.0
- old
+ new
@@ -1,134 +1,3 @@
-require 'sugar-high/kind_of'
-require 'sugar-high/array'
+puts "Please use the new 'sweetloader' gem"
-class Module
- def include_and_extend(the_module, options={})
- options[:instance_methods] ||= :InstanceMethods
- options[:class_methods] ||= :ClassMethods
- # Mainly include but be flexible
- main_module = const_get(the_module.to_s.to_sym)
- include main_module # for an extend_and_include method, change this to extend main_module
- include main_module.const_get(options[:instance_methods]) if main_module.const_defined?(options[:instance_methods])
- extend main_module.const_get(options[:class_methods]) if main_module.const_defined?(options[:class_methods])
- end
-
- def autoload_modules *args
-
- options = args.extract_options!
- root = options[:root] || AutoLoader.root || ''
- path = root.strip.empty? ? self.name.to_s.underscore : [root, self.name.to_s.underscore].join('/')
- from = options[:from] || path
-
- # Here also could be adding of the file in top of load_paths like: $:.unshift File.dirname(__FILE__)
- # It is very useful for situations of having not load_paths built Rails or Gems way.
- args.each do |req_name|
- ruby_file = req_name.to_s.underscore
-
- send :autoload, req_name, AutoLoader.translate("#{from}/#{ruby_file}")
- end
- end
-
-end
-
-module AutoLoader
- @@root = ''
- @@namespaces = {}
-
- def self.root
- @@root
- end
-
- def self.namespaces
- @@namespaces
- end
-
- def self.root= root
- @@root = root
- end
-
- def self.namespaces= namespaces
- @@namespaces = namespaces
- end
-
- def self.translate name
- names = name.split('/')
- names.map do |name|
- clazz_name = name.to_s.camelize
- namespaces[clazz_name.to_sym] ? namespaces[clazz_name.to_sym] : name
- end.join('/')
- end
-end
-
-module ClassExt
- def get_module name
- # Module.const_get(name)
- name.to_s.camelize.constantize
- rescue
- nil
- end
-
- def is_class?(clazz)
- clazz.is_a?(Class) && (clazz.respond_to? :new)
- end
-
- def is_module?(clazz)
- clazz.is_a?(Module) && !(clazz.respond_to? :new)
- end
-
- def class_exists?(name)
- is_class? get_module(name)
- rescue
- return false
- end
-
- def module_exists?(name)
- is_module? get_module(name)
- rescue NameError
- return false
- end
-
- def try_class name
- return name if name.kind_of?(Class)
- found = get_module(name) if name.kind_of_label?
- return found if found.is_a?(Class)
- rescue
- false
- end
-
- def try_module name
- return name if name.kind_of?(Module)
- found = get_module(name) if name.kind_of_label?
- return found if found.is_a?(Module)
- rescue
- false
- end
-
- def try_module_only name
- return name if is_module?(name)
- found = get_module(name) if name.kind_of_label?
- return found if is_module?(found)
- rescue
- false
- end
-
-
- def find_first_class *names
- classes = names.flatten.compact.uniq.inject([]) do |res, class_name|
- found_class = try_class(class_name.to_s.camelize)
- res << found_class if found_class
- res
- end
- raise "Not one Class for any of: #{names} is currently loaded" if classes.empty?
- classes.first
- end
-
- def find_first_module *names
- modules = names.flatten.compact.uniq.inject([]) do |res, class_name|
- found_class = try_module(class_name.to_s.camelize)
- res << found_class if found_class
- res
- end
- raise "Not one Module for any of: #{names} is currently loaded" if modules.empty?
- modules.first
- end
-end
+require 'sweetloader'