在我的可执行 Ruby 文件中,我有以下内容:
#!/usr/bin/env ruby
require 'thor'
include Thor::Actions
class UI < Thor
# def self.source_root
# File.dirname(__FILE__)
# end
desc "makecal", "Generates postscript calendar to your desktop"
def makecal
# puts `ls ~`
puts run('ls ~')
# puts run "pcalmakecal -B -b all -d Helvetica/8 -t Helvetica/16 -S #{Time.now.month} #{Time.now.year} > ~/Desktop/#{Time.now.month}-#{Time.now.year}"
end
end
UI.start
在终端中,当我按原样运行文件时,我得到一个空行,因为 Thor 的运行命令返回一个 NilClass。
但是,当我取消注释 puts `ls ~` 并注释掉 Thor 的 run 方法时,我会按预期得到我的主目录的输出。
我无法弄清楚为什么我不能让 Thor 的 run 方法像 Ruby 的滴答声一样工作。
有什么我可能出错的想法吗?
感谢您的关注