class BeerList::CLI

Public Instance Methods

establish(klass) click to toggle source
# File lib/beer_list/cli.rb, line 17
def establish(klass)
  # Support underscore and camelcase
  klass = klass.split('_').map(&:capitalize).join if klass.match(/_/)
  BeerList::EstablishmentGenerator.new(klass, options)
end
list(*establishments) click to toggle source
# File lib/beer_list/cli.rb, line 32
def list(*establishments)
  configure
  add_establishments establishments
  if options[:json]
    puts BeerList.lists_as_json
  else
    BeerList.lists.each do |list|
      puts '*' * (list.establishment.size + 10)
      puts "**** #{list.establishment} ****"
      puts '*' * (list.establishment.size + 10)
      puts
      puts list
      puts
    end
  end
end
send(*establishments) click to toggle source
# File lib/beer_list/cli.rb, line 54
def send(*establishments)
  configure
  add_establishments establishments
  puts "Sent!" if BeerList.send_lists
end

Private Instance Methods

add_establishments(establishments) click to toggle source
# File lib/beer_list/cli.rb, line 62
def add_establishments(establishments)
  BeerList.add_establishments *classify(establishments)
end
classify(establishments) click to toggle source
# File lib/beer_list/cli.rb, line 73
def classify(establishments)
  establishments.map do |est|
    class_name = est.to_s.split('_').map(&:capitalize).join
    instantiate_or_die class_name
  end
end
configure() click to toggle source
# File lib/beer_list/cli.rb, line 66
def configure
  BeerList.configure do |c|
    c.establishments_dir = options[:directory]
    c.default_url        = options[:url]
  end
end
instantiate_or_die(class_name) click to toggle source
# File lib/beer_list/cli.rb, line 80
def instantiate_or_die(class_name)
  if klass = BeerList.send(:get_class_with_namespace, class_name)
    klass.new
  else
    abort "#{class_name} is not recognized. Is it in your BeerList.establishments_dir?"
  end
end