class Lebowski::Foundation::Support::ApplicationContextManager
Application
context manager is used to handle the switching between SproutCore applications and keeping track of what application currently posses the current context that all operations act upon
Attributes
main_app[R]
Public Class Methods
new(main_app)
click to toggle source
# File lib/lebowski/foundation/application.rb, line 498 def initialize(main_app) @main_app = main_app @driver = main_app.driver @current_application_context = { :app => main_app, :app_name => main_app.app_name } end
Public Instance Methods
exec_driver_in_context(app) { |driver| ... }
click to toggle source
# File lib/lebowski/foundation/application.rb, line 535 def exec_driver_in_context(app, &block) previous_app_context = nil if not has_current_application_context?(app) previous_app_context = @current_application_context.clone switch_application_context_to app end yield @driver if not previous_app_context.nil? switch_application_context_to previous_app_context[:app], previous_app_context[:app_name] end end
exec_in_context(app, app_name=nil) { |app| ... }
click to toggle source
# File lib/lebowski/foundation/application.rb, line 528 def exec_in_context(app, app_name=nil, &block) previous_app_context = @current_application_context.clone switch_application_context_to app, app_name yield app switch_application_context_to previous_app_context[:app], previous_app_context[:app_name] end
has_current_application_context?(app)
click to toggle source
# File lib/lebowski/foundation/application.rb, line 524 def has_current_application_context?(app) return app.__eql?(@current_application_context[:app]) end
switch_application_context_to(app, app_name=nil)
click to toggle source
# File lib/lebowski/foundation/application.rb, line 504 def switch_application_context_to(app, app_name=nil) if not app.kind_of? Application raise ArgumentInvalidTypeError.new "app", app, "class < Application" end if not app.__eql? main_app if main_app.path_defined? app_name root = main_app.defined_path app_name app.root_defined_path_part = root else app.root_defined_path_part = main_app.root_defined_path_part end end app.do_acquire_application_context @driver.update_sc_application_context(app_name) if not app_name.nil? @current_application_context = { :app => app, :app_name => app_name } end