Class: Menagerie::Release

Inherits:
Object
  • Object
show all
Defined in:
lib/menagerie/release.rb

Overview

Release object containing artifacts

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Release

Returns a new instance of Release.



10
11
12
13
14
15
# File 'lib/menagerie/release.rb', line 10

def initialize(params = {})
  @options = params
  @logger = @options[:logger] || Menagerie.get_logger
  @path = @options[:path] || create
  parse_path
end

Instance Attribute Details

#baseObject (readonly)

Returns the value of attribute base.



8
9
10
# File 'lib/menagerie/release.rb', line 8

def base
  @base
end

#idObject (readonly)

Returns the value of attribute id.



8
9
10
# File 'lib/menagerie/release.rb', line 8

def id
  @id
end

#pathObject (readonly)

Returns the value of attribute path.



8
9
10
# File 'lib/menagerie/release.rb', line 8

def path
  @path
end

Instance Method Details

#<=>(other) ⇒ Object



23
24
25
26
# File 'lib/menagerie/release.rb', line 23

def <=>(other)
  return nil unless other.is_a? Release
  @id.to_i <=> other.id.to_i
end

#artifactsObject



17
18
19
20
21
# File 'lib/menagerie/release.rb', line 17

def artifacts
  Dir.glob("#{@path}/*").map do |x|
    Artifact.new path: x, paths: @options[:paths], logger: @logger
  end
end

#deleteObject



35
36
37
38
# File 'lib/menagerie/release.rb', line 35

def delete
  @logger.info "Deleting release: #{@path}"
  FileUtils.rm_r @path
end

#rotateObject



28
29
30
31
32
33
# File 'lib/menagerie/release.rb', line 28

def rotate
  old_path = @path
  @path = "#{@base}/#{@id.to_i + 1}"
  FileUtils.mv old_path, @path
  parse_path
end