Sha256: c91580f717b4b940e707fc1bd78ee427cac9a9104dd7c84f2f0749fe9222e6f5
Contents?: true
Size: 1.62 KB
Versions: 6
Compression:
Stored size: 1.62 KB
Contents
require "sfn" module Sfn class Command # List command class List < Command include Sfn::CommandModule::Base # Run the list command def execute! ui.table(self) do table(:border => false) do stacks = api_action! { get_stacks } row(:header => true) do allowed_attributes.each do |attr| width_val = stacks.map { |e| e[attr].to_s.length }.push(attr.length).max + 2 width_val = width_val > 70 ? 70 : width_val < 20 ? 20 : width_val column attr.split("_").map(&:capitalize).join(" "), :width => width_val end end get_stacks.each do |stack| row do allowed_attributes.each do |attr| column stack[attr] end end end end end.display end # Get the list of stacks to display # # @return [Array<Hash>] def get_stacks provider.stacks.all.map do |stack| Smash.new(stack.attributes) end.sort do |x, y| if y[:created].to_s.empty? -1 elsif x[:created].to_s.empty? 1 else Time.parse(x[:created].to_s) <=> Time.parse(y[:created].to_s) end end end # @return [Array<String>] default attributes to display def default_attributes if provider.connection.provider == :aws %w(name created updated status template_description) else %w(name created updated status description) end end end end end
Version data entries
6 entries across 6 versions & 1 rubygems