Class: MSPRelease::Project::Debian::BuildResult

Inherits:
Object
  • Object
show all
Defined in:
lib/msp_release/project/debian.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dir, project) ⇒ BuildResult

Returns a new instance of BuildResult.



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/msp_release/project/debian.rb', line 8

def initialize(dir, project)
  @dir = dir
  @project = project

  looking_for = project.changelog.version.to_s
  changes_file = find_changes_file(looking_for)
  if changes_file && File.exists?(changes_file)
    @changes_file = changes_file
  else
    raise NoChangesFileError, looking_for
  end
end

Instance Attribute Details

#changes_fileObject (readonly) Also known as: package

Returns the value of attribute changes_file.



21
22
23
# File 'lib/msp_release/project/debian.rb', line 21

def changes_file
  @changes_file
end

Instance Method Details

#available_changes_filesObject



33
34
35
# File 'lib/msp_release/project/debian.rb', line 33

def available_changes_files
  Dir["#{@dir}/*.changes"]
end

#changes_patternObject



37
38
39
# File 'lib/msp_release/project/debian.rb', line 37

def changes_pattern
  /#{@project.source_package_name}_([^_]+)_([^\.]+)\.changes/
end

#filesObject



25
26
27
28
29
30
31
# File 'lib/msp_release/project/debian.rb', line 25

def files
  dir = File.dirname(changes_file)
  changes = File.read(changes_file).split("\n")
  files_start = changes.index {|l| /^Files: $/.match(l) } + 1
  changes[files_start..-1].map {|l| File.join(dir, l.split(" ").last) } +
    [changes_file]
end

#find_changes_file(version_string) ⇒ Object



41
42
43
44
45
# File 'lib/msp_release/project/debian.rb', line 41

def find_changes_file(version_string)
  available_changes_files.find { |fname|
    (m = changes_pattern.match(File.basename(fname))) && m && (m[1] == version_string)
  }
end