class Gisha::Commands::Deploy

Attributes

app_name[RW]
key_id[RW]
revision[RW]
url[RW]

Public Class Methods

new(url, key_id, app_name, revision) click to toggle source
# File lib/gisha/commands/deploy.rb, line 7
def initialize(url, key_id, app_name, revision)
  @url = url
  @key_id = key_id
  @app_name = app_name
  @revision = revision
end

Public Instance Methods

exec() click to toggle source
# File lib/gisha/commands/deploy.rb, line 14
def exec
  EM.run do
    source = EventMachine::EventSource.new(deploy_url)

    source.inactivity_timeout = 180

    source.on('start') do |message|
      write(message)
    end

    source.on('chunk') do |message|
      write(message)
    end

    source.on('stop') do |message|
      write(message)
      source.close
      EM.stop
    end

    source.error do |error|
      write(error)
      source.close
      EM.stop
      raise ArgumentError, error
    end

    source.start
  end

end

Private Instance Methods

deploy_url() click to toggle source
# File lib/gisha/commands/deploy.rb, line 48
def deploy_url
  "#{url}?key_id=#{key_id}&app_name=#{app_name}&revision=#{revision}"
end
repo_name() click to toggle source
# File lib/gisha/commands/deploy.rb, line 52
def repo_name
  repo_path.split('/').last
end
write(msg) click to toggle source
# File lib/gisha/commands/deploy.rb, line 56
def write(msg)
  @stdout ||= begin
    $stdout.sync = true
    $stdout
  end
  @stdout.write msg
end