ruby的optparse使用小记
#自定义转换器 1 opts.accept(Hash) do |string| 2 hash = {} 3 string.split(',').each do |pair| 4 key,value = pair.split(/:/) 5 hash[key] = value 6 end 7 hash 8 end 9 opts.on('--custom ATTRS',Hash) do |hash| 10 custom_attributes = hash 11 end 12 A command like foo --custom foo:bar,baz:quux will result in custom_attributes getting the value 13 { 'foo' => 'bar', 'baz' => 'quux' } .
使用小记
1 #!/usr/bin/env ruby 2 require 'optparse' 3 options = {} 4 option_parser = OptionParser.new do |opts| 5 # 创建option -switch 6 #Option 作为switch,不带argument,用于将 switch 设置成 true 或 false 7 opts.on("-i", "--iteration") { options[:iteration] = true } 8 9 10 # 创建optin -flag 11 opts.on("-u USER", /^(.+)\.(.+)$/) do |user| 12 options[:user] = user 13 end 14 opts.on("-p PASSWORD", "--uname ppp") do |password, ppp| 15 16 options[:uname] = ppp 17 options[:password] = password 18 end 19 20 #hash 21 servers = {dev: '127.0.0.1', 22 qa: 'qa001.example.com', 23 prod: 'www.example.com'} 24 opts.on('--server SERVER', servers) do |address| 25 options[:address]=address 26 end 27 28 #default true or false 29 opts.on('--[no-]verbose') do |flg| 30 options[:flg]=flg 31 end 32 # Option 作为 flag,带一组用逗号分割的arguments,用于将arguments作为数组解析 33 opts.on('-a A,B', '--array A,B', Array, 'List of arguments') do |value| 34 options[:array] = value 35 end 36 end 37 38 option_parser.parse! 39 puts options.inspect
转载于:https://www.cnblogs.com/or2-/p/5291809.html
ruby的optparse使用小记相关推荐
- Ruby 学习笔记(和 Python3 语法进行对比)
我是先接触 Python3 的,如果我自己主动来选择,可能不会再去学 Ruby(可能先入为主的思想太根深蒂固了,不过最主要的还是太懒了),然鹅由于种种原因,我还是要来看一下Ruby(真是天理难容,/大 ...
- thrift使用小记_CUDev-ChinaUnix博客
thrift使用小记_CUDev-ChinaUnix博客 thrift使用小记 (2011-09-19 21:28) 标签: 客户端 接口 Facebook transport protoc ...
- 【笔记】golang开发android app小记
golang开发android app小记 Google和Oracle打过Java的官司以后就开始慢慢转kotlin了.从JVM虚拟机打官司,改成android用JVM从堆栈平衡转寄存器模式,再到语言 ...
- Ruby: Ruby脚本在测试中的使用
如果存在以下的场景: 1. 放置在公司的读报机服务器,每天都是开启的: 2. 读报机每天下载报纸,一旦成功/失败,就会有相应的记录生成在某个xml文件中: 3. 现在有过去一年的读报机下载xml,大约 ...
- Ruby 之 Block, Proc, Lambda 联系--区别,转载
Ruby 之 Block, Proc, Lambda Block Block 不是对象,是Ruby的语言特性,近似于闭包(Closure). 范例: def meth res= yield ...
- Ubuntu14.04 LTS中安装Ruby 2.4源码操作步骤
(1).查看是否已安装ruby,执行命令,如下图,可见机子上还没有安装ruby,即使通过apt-get install命令安装也只能安装1.8版本: (2).从 http://www.ruby-la ...
- Windows Ruby使用Mysql环境配置
windows下Ruby使用mysql时候报错: Incorrect MySQL client library version! This gem was compile d for 6.0.0 bu ...
- [翻译] Ruby Golf
原文地址:http://rubysource.com/ruby-golf/ Ruby golf is the art of writing code that uses as few characte ...
- Ruby DSL介绍及其在测试数据构造中的使用(2)
在(1)中介绍了DSL和普通的函数定义之间的区别.在(1)的最后提到,DSL分为内部DSL和外部DSL,我们再看一遍他们的定义:1. External DSLs 用不同于host语言的语言来编写,通过 ...
最新文章
- infer的用法_typescript高级用法之infer的理解与使用
- 获取eclipse 运行时,bundle的相对路径
- log4j配置_是时候了解一下log4j2各种配置的含义了!
- BZOJ3570 : DZY Loves Physics I
- DI是实现面向切面和面向抽象的前提
- listview添加item动画
- github上预览Demo网页最简单的方法
- 制图综合:河流水系提取简化
- SQL Server 2005“错误1706。安装程序找不到需要的文件。请检查……”的处理办法
- 51单片机间接寻址C语言,51单片机的寻址方式
- 算法训练 4-2找公倍数
- 从战略到执行:业务领先模型 BLM 战略篇「战略意图」
- 计算机考试怎么调整字号,WPS文字如何调节字体大小突破字号72的限制实现大小随意调...
- [保研直硕直博经验分享-2019] (上海交大计算机系夏令营+九推)
- SurroundDepth:自监督多摄像头环视深度估计
- 数据分析 | 岭回归与LASSO回归
- 计算机学硕调剂分数,计算机考研调剂的一些经验
- Android拍照扫描识别身份证信息SDK
- CodeForces - 3A Shortest path of the king【水题】
- CSS奇思妙想—这里是CSS创造的世界!
热门文章
- Pro Silverlight 5 in C# 分享
- python的requests库
- PHP反射原理的实现
- 【设计模式】2.工厂设计模式(生产者消费者问题)
- iphone怎么检测屏幕是否被点亮 (用UIApplication的Delegate)
- Xcode 4 with External Static Library for iPhone Development
- 一对多的两个表,查询主表的信息和主表在子表中的记录条数
- [jQuery基础] jQuery案例 -- 狂拍灰太狼
- 现在比较流行的一种新的清除浮动的方法
- 基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)