class Capybara::Apparition::FrameManager
Public Class Methods
new(id)
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 7 def initialize(id) @frames = {} @frames_mutex = Mutex.new add(id).loading(-1) @main_id = @current_id = id end
Public Instance Methods
add(id, frame_params = {})
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 35 def add(id, frame_params = {}) @frames_mutex.synchronize do @frames[id] = Frame.new(nil, frame_params.merge(frameId: id)) end end
current()
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 18 def current get(@current_id) end
delete(id)
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 48 def delete(id) @frames_mutex.synchronize do if @current_id == id @frames[id].obsolete! else @frames.delete(id) end end end
destroy_context(ctx_id)
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 64 def destroy_context(ctx_id) @frames_mutex.synchronize do @frames.each_value do |f| f.context_id = nil if f.context_id == ctx_id end end end
exists?(id)
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 58 def exists?(id) @frames_mutex.synchronize do @frames.key?(id) end end
get(id)
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 41 def get(id) @frames_mutex.synchronize do @frames[id] end end
Also aliased as: []
main()
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 14 def main get(@main_id) end
pop_frame(top:)
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 22 def pop_frame(top:) @current_id = if top @main_id else get(@current_id).parent_id end cleanup_unused_obsolete end
push_frame(id)
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 31 def push_frame(id) @current_id = id end
Private Instance Methods
cleanup_unused_obsolete()
click to toggle source
# File lib/capybara/apparition/page/frame_manager.rb, line 74 def cleanup_unused_obsolete @frames_mutex.synchronize do @frames.delete_if do |_id, f| f.obsolete? && (f.id != @current_id) end end end