Parent

Guard::DslDescriber

The DslDescriber overrides methods to create an internal structure of the Guardfile that is used in some inspection utility methods like the CLI commands `show` and `list`.

@see Guard::Dsl @see Guard::CLI

Public Class Methods

evaluate_guardfile(options = {}) click to toggle source

Evaluate the DSL methods in the `Guardfile`.

@option options [Array<Symbol,String>] groups the groups to evaluate @option options [String] guardfile the path to a valid Guardfile @option options [String] guardfile_contents a string representing the content of a valid Guardfile @raise [ArgumentError] when options are not a Hash

# File lib/guard/dsl_describer.rb, line 25
def evaluate_guardfile(options = {})
  @@guardfile_structure = [{ :guards => [] }]
  super options
end
list(options) click to toggle source

List the Guards that are available for use in your system and marks those that are currently used in your `Guardfile`.

@example Guard list output

Available guards:
  bundler *
  livereload
  ronn
  rspec *
  spork

See also https://github.com/guard/guard/wiki/List-of-available-Guards
* denotes ones already in your Guardfile

@param [Hash] options the Guard options

# File lib/guard/dsl_describer.rb, line 47
def list(options)
  evaluate_guardfile(options)

  installed_guards = guardfile_structure.inject([]) do |installed, group|
    group[:guards].each { |guard| installed << guard[:name].to_s } if group[:guards]
    installed
  end

  UI.info 'Available guards:'

  ::Guard.guard_gem_names.sort.uniq.each do |name|
    UI.info "   #{ name }#{ installed_guards.include?(name) ? '*' : '' }"
  end

  UI.info ''
  UI.info 'See also https://github.com/guard/guard/wiki/List-of-available-Guards'
  UI.info '* denotes ones already in your Guardfile'
end
show(options) click to toggle source

Shows all Guards and their options that are defined in the `Guardfile`.

@example guard show output

(global):
  bundler
  coffeescript: input => "app/assets/javascripts", noop => true
  jasmine
  rspec: cli => "--fail-fast --format Fuubar

@param [Hash] options the Guard options

# File lib/guard/dsl_describer.rb, line 79
def show(options)
  evaluate_guardfile(options)

  guardfile_structure.each do |group|
    unless group[:guards].empty?
      if group[:group]
        UI.info "Group #{ group[:group] }:"
      else
        UI.info '(global):'
      end

      group[:guards].each do |guard|
        line = "  #{ guard[:name] }"

        unless guard[:options].empty?
          line += ": #{ guard[:options].sort.collect { |k, v| "#{ k } => #{ v.inspect }" }.join(', ') }"
        end

        UI.info line
      end
    end
  end

  UI.info ''
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.