Class: Menu::Runner

Inherits:
Object
  • Object
show all
Defined in:
lib/menu/runner.rb

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Runner

Returns a new instance of Runner.



3
4
5
# File 'lib/menu/runner.rb', line 3

def initialize options
  @options = options
end

Instance Method Details

#log(str) ⇒ Object



53
54
55
# File 'lib/menu/runner.rb', line 53

def log str
  puts str if @options.verbose
end

#next_version(releases) ⇒ Object



44
45
46
47
48
49
50
51
# File 'lib/menu/runner.rb', line 44

def next_version releases
  version = 0
  releases.each do |r|
    version = r.version if r.version > version
  end
  version += 1
  version
end

#releaseObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/menu/runner.rb', line 7

def release
  releases = Menu::Releases.do @options.component
  version = next_version(releases)

  if @options.release && @options.release < version
    puts "Version number already exists, are you sure you want to overwrite? [y/N]"
    exit 1 unless gets.chomp == 'y'
  end
  version = @options.release if @options.release
  releases.delete_if {|r| r.version == version }

  log "Release ##{version} for #{@options.component}..."
  log "Beta release" if @options.beta

  r = Release.new
  r.options = @options
  r.version = version
  r.payload_file = @options.payload
  r.beta = @options.beta
  r.upload_payload

  releases << r

  s3 = Aws::S3::Client.new(region: 'us-east-1')
  log "Uploading JSON..."
  log releases.to_json
  s3.put_object(
    acl: "public-read",
    body: releases.to_json,
    bucket: @options.bucket,
    key: "#{@options.component}.json",
    content_type: "application/json",
    cache_control: "public, s-maxage=7200, max-age=120"
  )
  log "JSON uploaded"
end