Class: ActiveSupport::Dependencies::ClassCache

Inherits:
Object
  • Object
show all
Defined in:
activesupport/lib/active_support/dependencies.rb

Defined Under Namespace

Classes: Getter

Instance Method Summary collapse

Constructor Details

#initializeClassCache

Returns a new instance of ClassCache.


527
528
529
# File 'activesupport/lib/active_support/dependencies.rb', line 527

def initialize
  @store = Hash.new { |h, k| h[k] = Inflector.constantize(k) }
end

Instance Method Details

#[](key) ⇒ Object Also known as: get


547
548
549
550
551
# File 'activesupport/lib/active_support/dependencies.rb', line 547

def [](key)
  key = key.name if key.respond_to?(:name)

  @store[key]
end

#[]=(key, value) ⇒ Object

Raises:

  • (ArgumentError)

539
540
541
542
543
544
545
# File 'activesupport/lib/active_support/dependencies.rb', line 539

def []=(key, value)
  return unless key.respond_to?(:name)

  raise(ArgumentError, 'anonymous classes cannot be cached') if key.name.blank?

  @store[key.name] = value
end

#clear!Object


576
577
578
# File 'activesupport/lib/active_support/dependencies.rb', line 576

def clear!
  @store.clear
end

#empty?Boolean

Returns:

  • (Boolean)

531
532
533
# File 'activesupport/lib/active_support/dependencies.rb', line 531

def empty?
  @store.empty?
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)

535
536
537
# File 'activesupport/lib/active_support/dependencies.rb', line 535

def key?(key)
  @store.key?(key)
end

#new(name) ⇒ Object


565
566
567
568
# File 'activesupport/lib/active_support/dependencies.rb', line 565

def new(name)
  self[name] = name
  Getter.new(name)
end

#store(name) ⇒ Object


571
572
573
574
# File 'activesupport/lib/active_support/dependencies.rb', line 571

def store(name)
  self[name] = name
  self
end