2014-11-24 73 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