class IocRb::Scopes::SingletonScope

Singleton scope returns the same bean instance on each call

Public Class Methods

new(bean_factory) click to toggle source

Constructon @param bean_factory bean factory

# File lib/ioc_rb/scopes/singleton_scope.rb, line 7
def initialize(bean_factory)
  @beans = {}
  @bean_factory = bean_factory
end

Public Instance Methods

delete_bean(bean_metadata) click to toggle source

Delete bean from scope @param bean_metadata [BeanMetadata] bean metadata

# File lib/ioc_rb/scopes/singleton_scope.rb, line 26
def delete_bean(bean_metadata)
  @beans.delete(bean_metadata.name)
end
get_bean(bean_metadata) click to toggle source

Returns the same bean instance on each call @param bean_metadata [BeanMetadata] bean metadata @returns bean instance

# File lib/ioc_rb/scopes/singleton_scope.rb, line 16
def get_bean(bean_metadata)
  if bean = @beans[bean_metadata.name]
    bean
  else
    @bean_factory.create_bean_and_save(bean_metadata, @beans)
  end
end