class EacLauncher::Context::InstanceManager
Public Class Methods
new(context)
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 10 def initialize(context) @context = context end
Public Instance Methods
pending_instances()
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 22 def pending_instances instances.select { |instance| pending_instance?(instance) } end
publish_state_set(instance, stereotype_name, check_status)
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 14 def publish_state_set(instance, stereotype_name, check_status) data = cached_instances_file_content_uncached data[instance.logical] ||= {} data[instance.logical][:publish_state] ||= {} data[instance.logical][:publish_state][stereotype_name] = check_status write_cache_file(data) end
Private Instance Methods
cache_file_path()
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 59 def cache_file_path ::File.join(@context.cache_root, 'instances.yml') end
cache_instances(instances)
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 50 def cache_instances(instances) write_cache_file(Hash[instances.map { |i| [i.logical, i.to_h] }]) instances end
cached_instances()
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 36 def cached_instances return nil if @context.recache return nil unless cached_instances_file_content CachedInstances.new(cached_instances_file_content).instances end
cached_instances_file_content_uncached()
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 43 def cached_instances_file_content_uncached r = YAML.load_file(cache_file_path) r.is_a?(::Hash) ? r : nil rescue Errno::ENOENT nil end
instances_uncached()
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 28 def instances_uncached (cached_instances || search_instances).select(&:included?) end
pending_instance?(instance)
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 63 def pending_instance?(instance) data = cached_instances_file_content return false unless data[instance.logical] return false unless data[instance.logical][:publish_state].is_a?(Hash) data[instance.logical][:publish_state].any? do |_k, v| ::EacLauncher::Publish::CheckResult.pending_status?(v) end end
search_instances()
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 32 def search_instances cache_instances(::EacLauncher::Context::InstanceDiscovery.new(@context).instances) end
write_cache_file(data)
click to toggle source
# File lib/eac_launcher/context/instance_manager.rb, line 55 def write_cache_file(data) ::File.write(cache_file_path, data.to_yaml) end