# File lib/fig/package.rb, line 144 def primary_config_name() return @applied_config_names.first end
class Fig::Package
The parsed representation of a configuration file for a specific version. Contains the statement objects.
Unique identifier for this object: name and version. A different version of the same package will be a separate instance of this class.
Constants
- DEFAULT_CONFIG
Attributes
backtrace[RW]
description[R]
file_path[R]
include_file_base_directory[R]
name[R]
runtime_directory[R]
statements[R]
unparsed_text[RW]
version[R]
Public Class Methods
new( name, version, file_path, description, runtime_directory, include_file_base_directory, statements, synthetic )
click to toggle source
# File lib/fig/package.rb, line 35 def initialize( name, version, file_path, description, runtime_directory, include_file_base_directory, statements, synthetic ) @name = name @version = version @file_path = file_path @description = description @runtime_directory = runtime_directory @include_file_base_directory = include_file_base_directory @statements = statements @synthetic = synthetic @applied_config_names = [] @backtrace = nil end
Public Instance Methods
<=>(other)
click to toggle source
# File lib/fig/package.rb, line 103 def <=>(other) return if not other compared = compare_components(name, other.name) return compared if compared != 0 return compare_components(version, other.version) end
[](config_name)
click to toggle source
# File lib/fig/package.rb, line 75 def [](config_name) @statements.each do |statement| return statement if statement.is_a?(Fig::Statement::Configuration) \ && statement.name == config_name end descriptor = Fig::PackageDescriptor.new( @name, @version, config_name, :file_path => @file_path, :description => @description ) config_description = nil if @name.nil? and @version.nil? config_description = config_name else config_description = descriptor.to_string(:use_default_config) end message = %Q<There is no "#{config_description}" config.> raise Fig::NoSuchPackageConfigError.new(message, descriptor, self) end
add_applied_config_name(name)
click to toggle source
# File lib/fig/package.rb, line 140 def add_applied_config_name(name) @applied_config_names << name end
applied_config_names()
click to toggle source
# File lib/fig/package.rb, line 136 def applied_config_names() return @applied_config_names.clone end
archive_locations()
click to toggle source
# File lib/fig/package.rb, line 124 def archive_locations return @statements. select{|s| s.is_a?(Fig::Statement::Archive)}. map{|s| s.location} end
base?()
click to toggle source
Is this the base package?
# File lib/fig/package.rb, line 65 def base?() return @base end
config_names()
click to toggle source
# File lib/fig/package.rb, line 116 def config_names return configs.collect { |statement| statement.name } end
configs()
click to toggle source
# File lib/fig/package.rb, line 112 def configs return @statements.select { |statement| statement.is_a?(Fig::Statement::Configuration) } end
name_or_file_or_description()
click to toggle source
# File lib/fig/package.rb, line 181 def name_or_file_or_description return @name if @name if @file_path return "[#{@file_path}]" end return @description end
package_dependencies(config_name, backtrace)
click to toggle source
Returns an array of PackageDescriptors
# File lib/fig/package.rb, line 149 def package_dependencies(config_name, backtrace) descriptors = [] self[config_name || DEFAULT_CONFIG].walk_statements do |statement| if statement.is_a?(Fig::Statement::Include) descriptors << statement.resolved_dependency_descriptor(self, backtrace) elsif statement.is_a?(Fig::Statement::IncludeFile) full_path = statement.full_path_relative_to self descriptors << Fig::PackageDescriptor.new( nil, nil, nil, :file_path => full_path ) elsif statement.is_a?(Fig::Statement::Override) backtrace.add_override(statement) end end return descriptors end
primary_config_name()
click to toggle source
resource_locations()
click to toggle source
# File lib/fig/package.rb, line 130 def resource_locations return @statements. select{|s| s.is_a?(Fig::Statement::Resource)}. map{|s| s.location} end
retrieves()
click to toggle source
# File lib/fig/package.rb, line 120 def retrieves return @statements.select { |statement| statement.is_a?(Fig::Statement::Retrieve) } end
set_base(yea_or_nay)
click to toggle source
# File lib/fig/package.rb, line 69 def set_base(yea_or_nay) @base = yea_or_nay return end
synthetic?()
click to toggle source
Was this package (supposedly) created from something other than usual parsing? (Note that some tests artificially create “non-synthetic” instances.)
# File lib/fig/package.rb, line 60 def synthetic? return @synthetic end
to_descriptive_string_with_config(config_name)
click to toggle source
Useful for debugging; should not be used for regular output.
# File lib/fig/package.rb, line 205 def to_descriptive_string_with_config(config_name) return Fig::PackageDescriptor.format( name, version, config_name, :use_default_config, description ) end
to_s()
click to toggle source
# File lib/fig/package.rb, line 191 def to_s name = name_or_file_or_description version = @version || '<empty>' return Fig::PackageDescriptor.format(name, version, nil) end
to_s_with_config(config_name)
click to toggle source
# File lib/fig/package.rb, line 197 def to_s_with_config(config_name) displayed_config = config_name == DEFAULT_CONFIG ? nil : config_name return Fig::PackageDescriptor.format( name_or_file_or_description, version, displayed_config ) end
walk_statements() { |statement| ... }
click to toggle source
Block will receive a Statement.
# File lib/fig/package.rb, line 172 def walk_statements(&block) @statements.each do |statement| yield statement statement.walk_statements(&block) end return end
Private Instance Methods
compare_components(mine, others)
click to toggle source
# File lib/fig/package.rb, line 214 def compare_components(mine, others) if mine.nil? if others.nil? return 0 end return 1 end if others.nil? return -1 end return mine <=> others end