Class: Jets::Command::Release
- Inherits:
-
Object
- Object
- Jets::Command::Release
- Includes:
- ApiHelpers
- Defined in:
- lib/jets/commands/releases/releases_command.rb
Instance Method Summary collapse
- #format_time(string) ⇒ Object
- #get(version) ⇒ Object
-
#initialize(options = {}) ⇒ Release
constructor
A new instance of Release.
- #list ⇒ Object
- #show ⇒ Object
- #show_items(items) ⇒ Object
Methods included from ApiHelpers
#check_for_error_message!, #no_token_exit!, #paging_params
Constructor Details
#initialize(options = {}) ⇒ Release
Returns a new instance of Release.
29 30 31 |
# File 'lib/jets/commands/releases/releases_command.rb', line 29 def initialize(={}) @options = end |
Instance Method Details
#format_time(string) ⇒ Object
79 80 81 82 83 84 85 86 |
# File 'lib/jets/commands/releases/releases_command.rb', line 79 def format_time(string) if string.include?("ago") # IE: 5 minutes ago string else time = Time.parse(string) time.in_time_zone(Time.zone) end end |
#get(version) ⇒ Object
88 89 90 91 92 93 |
# File 'lib/jets/commands/releases/releases_command.rb', line 88 def get(version) resp = Jets::Api::Release.retrieve(version) (resp) rescue Jets::Api::RequestError => e puts "ERROR: Unable to get release. #{e.class}: #{e.}" end |
#list ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/jets/commands/releases/releases_command.rb', line 33 def list no_token_exit! resp = Jets::Api::Stack.retrieve(:current) if resp["error"] == "not_found" puts "No release history. Stack not found: #{Jets.project_namespace}" # Return early and avoid calling Jets::Api::Release.list if stack not found # Note: Jets::Api::Release.list also checks for no stack found return end name = "#{resp['name']} #{resp['location']}" resp = Jets::Api::Release.list(@options) (resp) # can also return "Stack not found #{name}" message data = resp["data"] if data.empty? $stderr.puts "No releases found for stack: #{name}" else $stderr.puts "Releases for stack: #{name}" show_items(data) end rescue Jets::Api::RequestError => e puts "ERROR: Unable to list releases. #{e.class}: #{e.}" end |
#show ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/jets/commands/releases/releases_command.rb', line 95 def show release = get(@options[:version]) release_at = release['pretty_created_at'] || release['created_at'] data = [ ["Version", release['version']], ["Status", release['stack_status']], ["Released At", format_time(release_at)], ["Message", release['message']], ["User", release['deploy_user']], ["Jets Env", release['jets_env']], ["Jets Extra", release['jets_extra']], ["Jets Version", release['jets_version']], ["Ruby Version", release['ruby_version']], ["Region", release['region']], ["Git Branch", release['git_branch']], ["Git Sha", release['git_sha']], ["Git Url", release['git_url']], ["Git Message", release['git_message']], ] column1_width = data.map { |row| row[1].nil? ? 0 : row[0].to_s.length }.max column2_width = data.map { |row| row[1].nil? ? 0 : row[1].to_s.length }.max puts Jets.project_namespace.color(:green) data.each do |row| puts "#{row[0].ljust(column1_width)} #{row[1]}" unless row[1].nil? end end |
#show_items(items) ⇒ Object
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'lib/jets/commands/releases/releases_command.rb', line 57 def show_items(items) presenter = CliFormat::Presenter.new header = ["Version", "Status", "Released At", "Message"] header << "Git Sha" if @options[:sha] presenter.header = header items.each do |item| version = item["version"] status = item["stack_status"] released_at = item["pretty_created_at"] || item["created_at"] = item["message"] || "Deployed" = [0..50] row = [version, status, format_time(released_at), ] if @options[:sha] sha = item["git_sha"].to_s[0..7] if item["git_sha"] row << sha end presenter.rows << row end presenter.show end |