小编Rob*_*nes的帖子

如何在Ruby OptionParser中处理缺少的强制参数?

在OptionParser中,我可以强制选择一个选项,但是如果我省略该值,它将使用任何后续选项的名称作为值,从而搞砸了命令行解析的其余部分.这是一个回答选项值的测试用例:

$ ./test_case.rb --input foo --output bar
output  bar
input  foo
Run Code Online (Sandbox Code Playgroud)

现在省略第一个选项的值:

$ ./test_case.rb --input  --output bar
input  --output
Run Code Online (Sandbox Code Playgroud)

有没有办法阻止它将另一个选项名称作为值?谢谢!

这是测试用例代码:

#!/usr/bin/env ruby
require 'optparse'
files = Hash.new

option_parser = OptionParser.new do |opts|
  opts.on('-i', '--input FILENAME', 'Input filename - required') do |filename|
    files[:input] = filename
  end
  opts.on('-o', '--output FILENAME', 'Output filename - required') do |filename|
    files[:output] = filename
  end
end

begin
  option_parser.parse!(ARGV)
rescue OptionParser::ParseError
  $stderr.print "Error: " + $! + "\n"
  exit
end

files.keys.each do |key|
  print "#{key}  #{files[key]}\n"
end
Run Code Online (Sandbox Code Playgroud)

ruby command-line optionparser

17
推荐指数
2
解决办法
7155
查看次数

如何更改RTF文档中特定字符的背景颜色?

我正在尝试从Ruby程序输出RTF(富文本格式) - 我更喜欢直接发出RTF而不使用RTF gem,因为我做的很简单.

我想强调DNA序列比对中的特定字符,从文档中我可以使用\ highlightN ...\highlight0或\ cbN ...\cb1

问题是我不能让\ cb在Word:Mac 2008或Mac TextEdit中工作(\ cf工作正常所以我知道它不是颜色表问题)

\ highlight确实有效,但看似只有两种可能的颜色(黑色和红色)和\ highlight不使用自定义颜色表.

通过在Word中创建带有字符着色的简单文档并保存为RTF,我可以看到大概冗长的RTF代码块,大概可以做我想要的,但它是如此难以理解,我没有看到树木.

部分问题可能是Mac Word没有正确实现RTF.我没有Windows版本的Word方便.

有人知道正确的方法来遮挡文本块吗?

谢谢 - 罗布

ruby rtf

4
推荐指数
2
解决办法
3885
查看次数

为什么我不能在Ruby中调用`history`?

我可以使用Ruby程序或irb使用反引号(和%x(),系统等)运行Bash shell命令.但由于某些原因,这与历史无关.

例如:

jones$ irb --simple-prompt
>> `whoami`
=> "jones\n"
>> `history`
(irb):2: command not found: history
=> ""
Run Code Online (Sandbox Code Playgroud)

在Ruby程序中,它会产生以下错误:

/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31: command not found: history
Run Code Online (Sandbox Code Playgroud)

在bash本身,这些命令工作正常

并不是Ruby调用正在调用一个新shell - 它根本找不到该命令......

谁知道为什么?我很难过......

ruby bash history

3
推荐指数
1
解决办法
643
查看次数

标签 统计

ruby ×3

bash ×1

command-line ×1

history ×1

optionparser ×1

rtf ×1