2013-03-24 345 views
1

我有一個寶石nanoc,我想調試。調試寶石紅寶石

它的命令行,nanoc執行以下腳本(在/.rvm/gems/ruby-1.9.2-p290/bin)

#!/usr/bin/env ruby 
# 
# This file was generated by RubyGems. 
# 
# The application 'nanoc' is installed as part of a gem, and 
# this file is here to facilitate running it. 
# 

require 'rubygems' 

version = ">= 0" 

if ARGV.first 
    str = ARGV.first 
    str = str.dup.force_encoding("BINARY") if str.respond_to? :force_encoding 
    if str =~ /\A_(.*)_\z/ 
    version = $1 
    ARGV.shift 
    end 
end 

gem 'nanoc', version 
load Gem.bin_path('nanoc', 'nanoc', version) 

本身負載的最後一行是什麼被解析爲( /.rvm/gems/ruby-1.9.2-p290/gems/nanoc-3.6.2/bin)

#!/usr/bin/env ruby 
# encoding: utf-8 

# Try loading bundler if it's possible 
begin 
    require 'bundler/setup' 
rescue LoadError 
    # no problem 
end 

# Add lib to load path 
$LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + '/../lib')) 

# Load nanoc 
require 'nanoc' 
require 'nanoc/cli' 

# Run base 
Nanoc::CLI.run(ARGV) 

什麼是侵入性最小的選項來調試這些類型的腳本? 如果我只是撬第一個文件,ARGV將是文件名本身..

我是否必須修改文件只運行一個調試器?

回答

2

老實說,我不確定我是否會拒絕這個問題。你可以把你的pry放在nanoc的lib裏面。

或者,你可以只用叉子叉git倉庫,然後克隆它,並運行寶石與它的捆綁和調試這種方式還有:

https://github.com/nanoc/nanoc

克隆回購,添加調試代碼,然後運行bundle exec bin/nanoc,這樣您就可以保持您的本地安裝副本清潔。一旦你弄清楚什麼是錯誤的,你可以創建一個新的gem,安裝它,提交代碼,並提出一個pull request來解決每個人的問題。

+0

我有一個過濾器(一些nanoc概念),在lib中的異常。我很想知道如何輕鬆地設置斷點。 – nicolas 2013-03-24 15:48:29