module Fig::Command::Action::Role::ListFromDataStructure
Requires node_content(package, config_name) and walk_dependency_tree() methods.
Private Instance Methods
include_gather()
click to toggle source
# File lib/fig/command/action/role/list_from_data_structure.rb, line 36 def include_gather visited = Set.new return lambda do |including_package, including_config, included_package, included_config| including_name = including_package.to_s_with_config including_config included_name = included_package.to_s_with_config included_config edge = [including_name, included_name] if ! visited.include? edge visited << edge included_id = package_id included_package including_id = package_id including_package including_hash = @package_configs[including_id][including_config] including_hash['dependencies'] ||= [] including_hash['dependencies'] << @package_configs[included_id][included_config] end end end
new_package_config_hash(package, config_name)
click to toggle source
# File lib/fig/command/action/role/list_from_data_structure.rb, line 78 def new_package_config_hash(package, config_name) hash = {} if package.name hash['name'] = package.name end if package.version hash['version'] = package.version end if package.file_path hash['file'] = package.file_path end if package.description hash['description'] = package.description end hash['config'] = config_name return hash end
package_gather()
click to toggle source
# File lib/fig/command/action/role/list_from_data_structure.rb, line 60 def package_gather visited = Set.new return lambda do |package, config_name, depth| name = package.to_s_with_config config_name if ! visited.include? name visited << name id = package_id package @package_configs[id] ||= {} @package_configs[id][config_name] = node_content package, config_name end end end
package_id(package)
click to toggle source
# File lib/fig/command/action/role/list_from_data_structure.rb, line 98 def package_id(package) if package.name return package.to_s end if file = package.file_path return "file: #{file}" end return "description: #{package.description}" end
set_up_object_to_be_serialized()
click to toggle source
# File lib/fig/command/action/role/list_from_data_structure.rb, line 15 def set_up_object_to_be_serialized @package_configs = {} base_package = @execution_context.base_package base_configs = base_display_config_names walk_dependency_tree( base_package, base_configs, include_gather, &package_gather ) base_id = package_id base_package if base_configs.size > 1 @object_to_be_serialized = @package_configs[base_id].keys.collect do |config_name| @package_configs[base_id][config_name] end else @object_to_be_serialized = @package_configs[base_id][base_configs[0]] end end