class EzPaaS::CLI::Commands::Apps
Public Instance Methods
create()
click to toggle source
# File lib/ezpaas/cli/commands/apps.rb, line 47 def create app_name = options[:name] unless app_name prompt = TTY::Prompt.new default = loop do default = "#{RandomWord.adjs(not_longer_than: 10).next}-#{RandomWord.nouns(not_longer_than: 10).next}" break default unless default.include?('_') end app_name = prompt.ask('What would you like to call your new app?', required: true, default: default) end pastel = Pastel.new app = client.create_app(app_name)['app'] app_name = pastel.blue(app['name']) puts puts "App #{app_name} created successfully!" end
destroy()
click to toggle source
# File lib/ezpaas/cli/commands/apps.rb, line 72 def destroy pastel = Pastel.new puts puts '🚨 🚨 🚨 ' + pastel.red('WARNING: Destroying an app is ') + pastel.red.bold.underline('not') + pastel.red(' reversible!') + ' 🚨 🚨 🚨' puts app_name = options[:app] prompt = TTY::Prompt.new unless app_name apps = client.apps app_names = apps.map { |e| e['name'] } app_name = prompt.select('Which app would you like to destroy?', app_names) end if prompt.yes?('Are you sure?', default: false) client.destroy_app(app_name) puts puts "App #{app_name} destroyed successfully!" else puts puts pastel.blue('Phew!') + ' App deletion aborted.' end end
list()
click to toggle source
# File lib/ezpaas/cli/commands/apps.rb, line 14 def list apps = client.apps pastel = Pastel.new not_deployed = pastel.red('(not deployed)') table = TTY::Table.new(header: ['Name', 'Slug', 'Scale', 'URL']) do |t| apps.each do |app| app_name = app['name'] app_slug = app['slug'] url_string = app_slug ? URI::join(options[:server], "proxy/#{app_name}/") : not_deployed slug_string = app_slug || not_deployed if scale = app['scale'] scale_string = app['scale'].map{ |k, v| "#{k}=#{v}" }.join('\n') else scale_string = not_deployed end t << [app_name, slug_string, scale_string, url_string] end end puts puts table.render(:unicode, multiline: true) end