class Maril::Generator

Public Class Methods

new(options={}) click to toggle source
# File lib/maril/generator.rb, line 3
def initialize(options={})
  @host = options[:host] || options['host']
  @id = options[:id] || options['id']
end

Public Instance Methods

generate() click to toggle source
# File lib/maril/generator.rb, line 8
def generate
  app = fetch_app
  cmd = [ 'docker run --rm -it' ]
  app['env'].each do |k, v|
    cmd << "--env #{k}=#{v}"
  end
  app['container']['docker']['parameters'].each do |parameter|
    cmd << "--#{parameter['key']} #{parameter['value']}"
  end
  app['container']['docker']['portMappings'].each do |mapping|
    cmd << "-p #{mapping['containerPort']}:#{mapping['containerPort']}"
  end
  cmd << app['container']['docker']['image']
  cmd << app['cmd'] if app['cmd']
  cmd.join(" \\\n")
end

Private Instance Methods

fetch_app() click to toggle source
# File lib/maril/generator.rb, line 27
def fetch_app
  res = RestClient.get("#{@host}/v2/apps#{@id}")
  JSON.parse(res.body)['app']
end