Sha256: ac6631b4552e8db839110aee666091ea59f78f90efb71e0896716927b5d4e383

Contents?: true

Size: 1.13 KB

Versions: 13

Compression:

Stored size: 1.13 KB

Contents

# Refinements
# =======================================================================

using NRSER


# Definitions
# =======================================================================

module QB::CLI
  
  # List available roles.
  # 
  # @example
  #   
  #   qb list --user
  #   qb list -u
  #   qb list --local
  #   qb list -l
  #   qb list --system
  #   qb list -s
  #   qb list --path=:system
  #   qb list --path=./roles
  #   qb list -p ./roles
  #   qb list gem
  # 
  # @todo
  #   We should have more types of help.
  # 
  # @return [1]
  #   Error exit status - we don't want `qb ... && ...` to move on to the
  #   second command when we end up falling back to `help`.
  # 
  def self.list pattern = nil
    roles = if pattern
      QB::Role.matches pattern
    else
      QB::Role.available
    end
    
    name_col_width = roles.map { |r| r.display_name.length }.max + 2
    
    roles.each { |role|
      summary = role.summary.truncate QB::CLI.terminal_width - name_col_width
      
      puts ("%-#{ name_col_width }s" % role.display_name) + summary
    }
    
    puts
    
    return 0
  end # .help
  
end # module QB::CLI

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
qb-0.4.5 lib/qb/cli/list.rb
qb-0.4.4 lib/qb/cli/list.rb
qb-0.4.3 lib/qb/cli/list.rb
qb-0.4.2 lib/qb/cli/list.rb
qb-0.4.1 lib/qb/cli/list.rb
qb-0.4.0 lib/qb/cli/list.rb
qb-0.3.25 lib/qb/cli/list.rb
qb-0.3.24 lib/qb/cli/list.rb
qb-0.3.23 lib/qb/cli/list.rb
qb-0.3.22 lib/qb/cli/list.rb
qb-0.3.21 lib/qb/cli/list.rb
qb-0.3.20 lib/qb/cli/list.rb
qb-0.3.19 lib/qb/cli/list.rb