class Guard::DslDescriber
@see Guard::CLI
@see Guard::Dsl
`show` and ‘list`.
of it that is used in some inspection utility methods like the CLI commands
The DslDescriber evaluates the Guardfile and creates an internal structure
def _evaluate_guardfile
{Guard::Guardfile::Evaluator#evaluate_guardfile}.
Evaluates the `Guardfile` by delegating to
def _evaluate_guardfile ::Guard::Guardfile::Evaluator.new(options).evaluate_guardfile end
def initialize(options = {})
- See: Guard::Guardfile::Evaluator#initialize -
Options Hash:
(**options)-
guardfile_contents(String) -- a string representing the content of a valid Guardfile -
guardfile(String) -- the path to a valid Guardfile
def initialize(options = {}) @options = options ::Guard.reset_groups ::Guard.reset_plugins end
def list
- See: CLI#list -
def list _evaluate_guardfile rows = ::Guard::PluginUtil.plugin_names.sort.uniq.inject([]) do |rows, name| rows << { Plugin: name.capitalize, Guardfile: ::Guard.plugins(name) ? '✔' : '✘' } end Formatador.display_compact_table(rows, [:Plugin, :Guardfile]) end
def notifiers
- See: CLI#show -
def notifiers _evaluate_guardfile rows = ::Guard::Notifier::NOTIFIERS.inject(:merge).inject([]) do |rows, definition| name = definition[0] clazz = definition[1] available = clazz.available?(silent: true) ? '✔' : '✘' notifier = ::Guard::Notifier.notifiers.find { |n| n[:name] == name } used = notifier ? '✔' : '✘' options = notifier ? notifier[:options] : {} defaults = clazz.const_defined?(:DEFAULTS) ? clazz.const_get(:DEFAULTS) : {} options = defaults.merge(options) options.delete(:silent) if options.empty? rows << :split rows << { Name: name, Available: available, Used: used, Option: '', Value: '' } else options.each_with_index do |(option, value), index| if index == 0 rows << :split rows << { Name: name, Available: available, Used: used, Option: option.to_s, Value: value.inspect } else rows << { Name: '', Available: '', Used: '', Option: option.to_s, Value: value.inspect } end end end rows end Formatador.display_compact_table(rows.drop(1), [:Name, :Available, :Used, :Option, :Value]) end
def show
- See: CLI#show -
def show _evaluate_guardfile rows = ::Guard.groups.inject([]) do |rows, group| Array(::Guard.plugins(group: group.name)).each do |plugin| options = plugin.options.inject({}) { |o, (k, v)| o[k.to_s] = v; o }.sort if options.empty? rows << :split rows << { Group: group.title, Plugin: plugin.title, Option: '', Value: '' } else options.each_with_index do |(option, value), index| if index == 0 rows << :split rows << { Group: group.title, Plugin: plugin.title, Option: option.to_s, Value: value.inspect } else rows << { Group: '', Plugin: '', Option: option.to_s, Value: value.inspect } end end end end rows end Formatador.display_compact_table(rows.drop(1), [:Group, :Plugin, :Option, :Value]) end