Class: SuperclassHash

Inherits:
Object
  • Object
show all
Defined in:
lib/superclass_hash.rb,
lib/superclass_hash/version.rb

Constant Summary collapse

VERSION =
"0.0.2"

Instance Method Summary collapse

Constructor Details

#initializeSuperclassHash

Returns a new instance of SuperclassHash.



2
3
4
5
# File 'lib/superclass_hash.rb', line 2

def initialize()
  @normal_hash = {}
  @classes_hash = {}
end

Instance Method Details

#[](key) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/superclass_hash.rb', line 7

def [](key)
  unless key.is_a? Class
    return @normal_hash[key]
  else
    ancestors = key.ancestors
    ancestors = ancestors[0..ancestors.index(Object)].map { |klass| klass.to_s.to_sym } #Going only as far as you can via superclass method
    ancestors.each do |klass|
      return @classes_hash[klass] if @classes_hash.has_key?(klass)
    end
    return nil
  end
end

#[]=(key, value) ⇒ Object



20
21
22
23
24
25
26
# File 'lib/superclass_hash.rb', line 20

def []=(key, value)
  if key.is_a? Class
    @classes_hash[key.to_s.to_sym] = value
  else
    @normal_hash[key] = value
  end
end