Class: Dr::Package

Inherits:
Object
  • Object
show all
Extended by:
Logger
Includes:
Logger
Defined in:
lib/dr/package.rb

Direct Known Subclasses

DebPackage, GitPackage

Defined Under Namespace

Classes: BuildFailed, UnableToBuild

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from Logger

log, log, set_logfile, set_verbosity, tag

Constructor Details

#initialize(name, repo) ⇒ Package

Returns a new instance of Package.



22
23
24
25
# File 'lib/dr/package.rb', line 22

def initialize(name, repo)
  @name = name
  @repo = repo
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



15
16
17
# File 'lib/dr/package.rb', line 15

def name
  @name
end

Instance Method Details

#<=>(o) ⇒ Object



53
54
55
# File 'lib/dr/package.rb', line 53

def <=>(o)
  self.name <=> o.name
end

#build_exists?(version) ⇒ Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/dr/package.rb', line 36

def build_exists?(version)
  File.directory? "#{@repo.location}/packages/#{@name}/builds/#{version}"
end

#get_configurationObject



45
46
47
# File 'lib/dr/package.rb', line 45

def get_configuration
  {}
end

#historyObject



27
28
29
30
31
32
33
34
# File 'lib/dr/package.rb', line 27

def history
  versions = []
  Dir.foreach "#{@repo.location}/packages/#{name}/builds/" do |v|
    versions.push v unless v =~ /^\./
  end

  versions.sort.reverse
end

#remove_build(version) ⇒ Object



40
41
42
43
# File 'lib/dr/package.rb', line 40

def remove_build(version)
  raise "Build #{version.fg("blue")} not found" unless build_exists? version
  FileUtils.rm_rf "#{@repo.location}/packages/#{@name}/builds/#{version}"
end

#set_configuration(config) ⇒ Object



49
50
51
# File 'lib/dr/package.rb', line 49

def set_configuration(config)
  raise "This package isn't configurable"
end