Class: DisplayCase::IsAClassComparator::ClassTracker
- Inherits:
-
Object
- Object
- DisplayCase::IsAClassComparator::ClassTracker
- Defined in:
- lib/display_case/is_a_class_comparator.rb
Overview
A simple memoizing class name tracker
Instance Method Summary collapse
- #class_for(class_name) ⇒ Object
- #constantize(class_name) ⇒ Object
-
#initialize ⇒ ClassTracker
constructor
A new instance of ClassTracker.
Constructor Details
#initialize ⇒ ClassTracker
Returns a new instance of ClassTracker.
11 12 13 14 |
# File 'lib/display_case/is_a_class_comparator.rb', line 11 def initialize @context = Object @data = Hash.new {|h, k| h[k] = constantize(k)} end |
Instance Method Details
#class_for(class_name) ⇒ Object
16 17 18 |
# File 'lib/display_case/is_a_class_comparator.rb', line 16 def class_for(class_name) @data[class_name] end |
#constantize(class_name) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/display_case/is_a_class_comparator.rb', line 20 def constantize(class_name) return class_name if Module === class_name class_name.to_s.split('::').inject(@context){|context, name| context.const_get(name) } end |