2014-11-24 90 views
0

对不起,这是一个非常基本的问题。在终端中查看Ruby的输出

系统信息:

  • 语言 - 红宝石
  • 文本编辑 - 崇高2
  • 壳牌 - 终端
  • 操作系统 - Mac的小牛

问题:我写的代码红宝石。如何在终端中查看代码的结果/输出?例如,当我运行下面的代码时,我想看看gsub和squeeze命令如何修改测试文档?

例如:

 require 'tactful_tokenizer' 
     require 'treat'   
     require 'pry'    
     require_relative 'lib/extensions/String' 

     include Treat::Core::DSL   # Gives quick access to named entity 
     tt = TactfulTokenizer::Model.new # Creates an instance of the tokenizer 


     keywordRegexes = [/death/, 
         /died/, 
         /passed \s+ away/xm,] 


     #Open example documents 

     Dir.glob('examples/*.txt'). each do |filename| 
     testdocument = File.open(filename).read 


     testdocument.gsub!(/[\n\r]/," ") 
     testdocument.squeeze!(" ") 

     end 

提前

回答

1

当你正在使用撬,你可以在任何你想要调试的地方在.rb文件中插入“binding.pry”并运行你的ruby文件。这样你可以运行你的脚本并动态地检查这些值。

例如:我在第5行插入了binding.pry。并调试一些值的代码。

RubyTest用户名$红宝石timetest.rb “26/11/2014”

From: /Users/username/Languages/Ruby/RubyTest/timetest.rb @ line 5 : 

    1: require 'pry' 
    2: timenow = (Time.now.utc + 86400).strftime("%d/%m/%Y") 
    3: puts timenow.to_s.inspect 
    4: 
=> 5: binding.pry 
    6: 
    7: option="24/11/2014 - 30/11/2014" 
    8: 
    9: puts option.include? timenow 
    10: 

[1] pry(main)> timenow 
=> "26/11/2014" 
[2] pry(main)> timenow.include?"24/11/2014" 
=> false 
1

每种方法后谢谢您可以使用puts方法看techdocument变量的状态:

testdocument.gsub!(/[\n\r]/," ") 
    puts testdocument 
    testdocument.squeeze!(" ") 
    puts testdocument 
+0

真棒感谢@anthony – wazza2013 2014-11-24 01:12:42

+1

更简洁,你可以使用'tap':'testdocument.gsub(...).tap { | X | p x}'。保证不改变你的方法的返回值,不像额外的'puts'作为最后一个语句。 – Phrogz 2014-11-24 04:57:23