Class: VMC::App::Push

Inherits:
Base show all
Includes:
Create, Sync
Defined in:
lib/vmc/cli/app/push.rb

Constant Summary

Constants inherited from Mothership

Mothership::VERSION

Instance Attribute Summary

Attributes included from Create

#input, #path

Attributes inherited from Mothership

#input

Instance Method Summary collapse

Methods included from Create

#bind_services, #create_app, #create_services, #determine_framework, #determine_runtime, #get_inputs, #map_route, #start_app

Methods included from Sync

#apply_changes, #commit_changes, #display_changes

Methods inherited from Base

#app_status, #human_mb, #human_size, #megabytes, #memory_choices, #state_color

Methods inherited from V2CheckCLI

#fail_on_v2, #precondition

Methods inherited from CLI

#check_logged_in, #check_target, #client, client, client=, #client_target, #color_enabled?, #debug?, #default_action, #ensure_config_dir, #err, #execute, #fail, #fail_unknown, #force?, #invalidate_client, #log_error, #name_list, #no_v2, #normalize_targets_info, #one_of, #precondition, #quiet?, #remove_target_info, #sane_target_url, #save_target_info, #save_targets, #save_token_if_it_changes, #set_target, #table, #target_file, #target_info, #targets_info, #tokens_file, #user_colors, #v2?, #verbose?, #wrap_errors

Methods included from Spacing

#indented, #justify, #line, #lines, #quiet?, #spaced, #start_line, #tabular, #text_width, #trim_escapes

Methods included from Interactive

#ask, #handler, #input_state, #list_choices, #prompt, #show_default

Methods inherited from Mothership

add_input, after, alias_command, around, before, change_argument, commands, #default_action, desc, #execute, #exit_status, #filter, filter, global_option, group, #help, #initialize, input, #interact, interactions, #invoke, method_added, option, #run, start, #unknown_command, #with_filters

Constructor Details

This class inherits a constructor from Mothership

Instance Method Details

#pushObject



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/vmc/cli/app/push.rb', line 44

def push
  name = input[:name]
  path = File.expand_path(input[:path])
  app = client.app_by_name(name)

  if app
    sync_app(app, path)
  else
    setup_new_app(path)
  end
end

#setup_new_app(path) ⇒ Object



63
64
65
66
67
68
69
70
71
# File 'lib/vmc/cli/app/push.rb', line 63

def setup_new_app(path)
  self.path = path
  app = create_app(get_inputs)
  map_route(app)
  create_services(app)
  bind_services(app)
  upload_app(app, path)
  start_app(app)
end

#sync_app(app, path) ⇒ Object



56
57
58
59
60
61
# File 'lib/vmc/cli/app/push.rb', line 56

def sync_app(app, path)
  upload_app(app, path)
  apply_changes(app)
  display_changes(app)
  commit_changes(app)
end