{ "cells": [ { "cell_type": "markdown", "metadata": { "toc": "true" }, "source": [ "# Table of Contents\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# repl\n", "read execute print loop\n", "\n", "```ruby\n", "require 'optparse'\n", "\n", "opt = OptionParser.new\n", "opt.on('-a', '--add', 'add an item') { puts 'Added' }\n", "opt.on('-d', '--del', 'delete an item') { puts 'Deleted' }\n", "opt.parse(ARGV)\n", "```\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#!/usr/bin/ruby \n", "require 'optparse'\n", "\n", "options = {:name => nil}\n", "\n", "parser = OptionParser.new do|opts|\n", " opts.on('-n', '--name name', 'Give your own name') do |name|\n", " options[:name] = name;\n", " end\n", "\n", " opts.on('-h', '--help', 'Displays Help') do\n", " puts opts\n", " exit\n", " end\n", "end\n", "\n", "parser.parse!\n", "\n", "sayHello = 'Hello ' + options[:name]\n", "\n", "puts sayHello" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "Could not find command \"kernel\".\n" ] } ], "source": [ "require 'thor'\n", "\n", "class MyCLI < Thor\n", " desc \"hello NAME\", \"say hello to NAME\"\n", " def hello(name)\n", " puts \"Hello #{name}\"\n", " end\n", "end\n", "\n", "\n", "MyCLI.start(ARGV)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "ename": "LoadError", "evalue": "cannot load such file -- hanami/cli", "output_type": "error", "traceback": [ "\u001b[31mLoadError\u001b[0m: cannot load such file -- hanami/cli", "\u001b[37m/usr/local/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'\u001b[0m", "\u001b[37m/usr/local/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:55:in `require'\u001b[0m", "\u001b[37m(pry):28:in `