class EacLauncher::Context::InstanceDiscovery
Attributes
instances[R]
Public Class Methods
new(context)
click to toggle source
# File lib/eac_launcher/context/instance_discovery.rb, line 11 def initialize(context) @context = context @progress = ::ProgressBar.create(title: 'Instance discovery', total: 1) @instances = path_instances(@context.root, nil) ensure @progress&.finish end
Private Instance Methods
on_rescued_path_instances(path) { |r| ... }
click to toggle source
# File lib/eac_launcher/context/instance_discovery.rb, line 34 def on_rescued_path_instances(path) r = [] begin yield(r) if path.included? rescue StandardError => e warn("#{path}: #{e}") end r end
path_instances(path, parent_instance)
click to toggle source
# File lib/eac_launcher/context/instance_discovery.rb, line 21 def path_instances(path, parent_instance) update_progress_format(path) on_rescued_path_instances(path) do |r| if path.project? parent_instance = ::EacLauncher::Instances::Base.instanciate(path, parent_instance) r << path end children = path.children update_progress_count(children) r.concat(children.flat_map { |c| path_instances(c, parent_instance) }) end end
update_progress_count(children)
click to toggle source
# File lib/eac_launcher/context/instance_discovery.rb, line 48 def update_progress_count(children) @progress.total += children.count @progress.increment end
update_progress_format(path)
click to toggle source
# File lib/eac_launcher/context/instance_discovery.rb, line 44 def update_progress_format(path) @progress.format = "%t (Paths: %c/%C, Current: #{path.logical}) |%B| %a" end