class Bashly::Commands::Doc
Public Instance Methods
run()
click to toggle source
# File lib/bashly/commands/doc.rb, line 17 def run if args['--index'] puts data.keys else show end end
Private Instance Methods
data()
click to toggle source
# File lib/bashly/commands/doc.rb, line 62 def data return raw_data unless args['SEARCH'] result = raw_data.select { |k, _v| k == args['SEARCH'] } return result if result.any? result = raw_data.select { |k, _v| k.include? args['SEARCH'] } return result if result.any? raise Error, 'No match' end
docs_dir()
click to toggle source
# File lib/bashly/commands/doc.rb, line 84 def docs_dir @docs_dir ||= File.expand_path '../docs', __dir__ end
raw_data()
click to toggle source
# File lib/bashly/commands/doc.rb, line 74 def raw_data @raw_data ||= begin result = {} Dir["#{docs_dir}/*.yml"].each do |path| result.merge! YAML.load_file(path) end result end end
show()
click to toggle source
# File lib/bashly/commands/doc.rb, line 27 def show data.each do |key, info| show_key key show_help info['help'] show_example info['example'] if info['example'] show_url info['url'] if info['url'] end end
show_example(example)
click to toggle source
# File lib/bashly/commands/doc.rb, line 46 def show_example(example) example = word_wrap " #{example}" example.gsub!(/^(\s*- )?(\s*\w+):/, '\1b`\2`:') example.gsub!(/^(\s*- )/, 'y`\1`') example.gsub!(/^(\s*#.+)/, 'm`\1`') say example say '' end
show_help(help)
click to toggle source
# File lib/bashly/commands/doc.rb, line 55 def show_help(help) help = word_wrap " #{help}" help.gsub!(/`([^`]+)`/, 'g`\1`') say help say '' end
show_key(key)
click to toggle source
# File lib/bashly/commands/doc.rb, line 36 def show_key(key) say "g`#{key}`" say '' end
show_url(url)
click to toggle source
# File lib/bashly/commands/doc.rb, line 41 def show_url(url) say " See bu`#{url}`" say '' end