class Guard::DslDescriber
def show
- See: CLI#show -
def show # collect metadata groups = Guard.state.session.groups.all objects = [] empty_plugin = OpenStruct.new empty_plugin.options = [["", nil]] groups.each do |group| plugins = Array(Guard.state.session.plugins.all(group: group.name)) plugins = [empty_plugin] if plugins.empty? plugins.each do |plugin| options = plugin.options options = [["", nil]] if options.empty? options.each do |option, raw_value| value = raw_value.nil? ? "" : raw_value.inspect objects << [group.title, plugin.title, option.to_s, value] end end end # presentation rows = [] prev_group = prev_plugin = prev_option = prev_value = nil objects.each do |group, plugin, option, value| group_changed = prev_group != group plugin_changed = (prev_plugin != plugin || group_changed) rows << :split if group_changed || plugin_changed rows << { Group: group_changed ? group : "", Plugin: plugin_changed ? plugin : "", Option: option, Value: value } prev_group = group prev_plugin = plugin prev_option = option prev_value = value end # render Formatador.display_compact_table( rows.drop(1), [:Group, :Plugin, :Option, :Value] ) end