class Omnibus::Library

Used to generate the manifest of all software components with versions

Attributes

components[R]

Public Class Methods

new(project) click to toggle source
# File lib/omnibus/library.rb, line 25
def initialize(project)
  @components = []
  @project = project
end

Public Instance Methods

component_added(component) click to toggle source
# File lib/omnibus/library.rb, line 30
def component_added(component)
  @components << component unless @components.include?(component)
end
select(*args, &block) click to toggle source
# File lib/omnibus/library.rb, line 56
def select(*args, &block)
  @components.select(*args, &block)
end
version_map() click to toggle source
# File lib/omnibus/library.rb, line 34
def version_map
  @components.inject({}) {|map, component|
    map[component.name] = if component.given_version
                            {:version       => component.version,
                             :given_version => component.given_version,
                             :overridden    => component.overridden?,
                             :version_guid  => component.version_guid}
                          else
                            ## Components without a version are
                            ## pieces of the omnibus project
                            ## itself, and so don't really fit
                            ## with the concept of overrides
                            v = {:version => @project.build_version}
                            if @project.build_version.respond_to?(:git_sha)
                              v[:version_guid] = "git:#{@project.build_version.git_sha}"
                            end
                            v
                          end
    map
  }
end