class TkInspect::ClassBrowser::ClassNamespaceDataSource
Attributes
class_filter[RW]
Public Instance Methods
items_for_path(path)
click to toggle source
# File lib/tk_inspect/class_browser/class_namespace_data_source.rb, line 6 def items_for_path(path) path = [] if path.blank? namespace = path.join('::') classes = classes_in_namespace(namespace) class_names = classes .map { |k| name_for_class(k).gsub(/^#{namespace}(::)?/, '').gsub(/::.*/, '') } .reject { |class_name| class_name.blank? } .uniq .sort class_names end
title_for_path(path, items)
click to toggle source
# File lib/tk_inspect/class_browser/class_namespace_data_source.rb, line 18 def title_for_path(path, items) "#{items.count} #{'class'.pluralize(items.count)}" end
Private Instance Methods
black_list?(k)
click to toggle source
# File lib/tk_inspect/class_browser/class_namespace_data_source.rb, line 49 def black_list?(k) k.to_s.blank? || k.to_s.match(/^#<Class/) || !k.to_s.match(/^[A-Z]/) end
classes_in_namespace(namespace)
click to toggle source
# File lib/tk_inspect/class_browser/class_namespace_data_source.rb, line 24 def classes_in_namespace(namespace) filtered_classes.select do |k| name_for_class(k).match(/^#{namespace}/) end end
filtered_classes()
click to toggle source
# File lib/tk_inspect/class_browser/class_namespace_data_source.rb, line 30 def filtered_classes list = ObjectSpace.each_object(Class).select do |k| k.is_a?(Class) && !black_list?(k) end return list if @class_filter.blank? list.select! do |k| name_for_class(k).match(/#{@class_filter}/i) end ancestors = list.reduce(Set.new) do |acum, k| acum += name_for_class(k).split('::') acum end (list.to_set + ancestors).to_a end
name_for_class(klass)
click to toggle source
# File lib/tk_inspect/class_browser/class_namespace_data_source.rb, line 45 def name_for_class(klass) klass.to_s end