Singleton in scope of a request in rails [closed] Singleton in scope of a request in rails [closed] ruby ruby

Singleton in scope of a request in rails [closed]


Since a request is tied to a thread, you can use Thread local store:

class RequestSingleton  def self.instance    Thread.current['request-singleton'] ||= RequestSingleton.new  end  def self.clear    Thread.current['request-singleton'] = nil  endend

Usage:

def index  RequestSingleton.instance.do_some_setup  # ...  RequestSingleton.clearend

...and anywhere else simply use RequestSingleton.instance to access it.

Since it is thread local, there are no synchronization issues.