class Fretboard::Parser

Attributes

args[R]

Public Class Methods

new(args) click to toggle source
# File lib/fretboard/parser.rb, line 19
def initialize(args)
  @args = args
end
parse(args) click to toggle source
# File lib/fretboard/parser.rb, line 15
def self.parse(args)
  new(args).parse
end

Public Instance Methods

parse() click to toggle source
# File lib/fretboard/parser.rb, line 23
def parse
  parser.parse!(args)
rescue StandardError => e
  Fretboard::Console.danger("Ambiguously completable string is encountered\n#{e}")
end

Private Instance Methods

parser() click to toggle source
# File lib/fretboard/parser.rb, line 31
def parser
  OptionParser.new do |opts|
    opts.banner = 'Usage: fretboard [options]'

    opts.on('-v', '--version', 'The current version of the gem') do
      Fretboard::Console.log(Fretboard::VERSION)
      exit
    end

    opts.on('-h', '--help', 'Prints this help') do
      Fretboard::Console.log(opts.to_s)
      exit
    end

    opts.on('--draw-tuning CODE', 'Build a guitar tuning') do |code|
      fretboard = Fretboard::Builder.new(code.to_sym)
      fretboard.build
      fretboard.draw
    end
  end
end