在调查我的Mac上的irb问题时(OS X 10.11.5),我注意到/etc/irbrc
。前几行如下:
# Some default enhancements/settings for IRB, based on
# http://wiki.rubygarden.org/Ruby/page/show/Irb/TipsAndTricks
unless defined? ETC_IRBRC_LOADED
# Require RubyGems by default.
require 'rubygems'
# Activate auto-completion.
require 'irb/completion'
# continued ...
它似乎已经过时了(rubygarden.org已经消失了,这些天rubygems已经出现在标准库中了)并做了我一直认为必须在我自己的~/.irbrc
做的事情(设置完成,历史等。)。
日期为2016年1月31日。我可能会或可能不会在该日期运行Apple系统更新或升级其他内容;我不记得了。从那以后,我肯定已经将OS X升级了一两个主要版本。
我认为除了OS X和安装了rbenv的Ruby 2.3.1(在我自己的帐户中,而不是root用户)之外,我在这台计算机上没有安装任何Rubies。也就是说,我不认为这个文件可能来自OS X以外的任何东西。
Unix shell约定会让我期望当任何用户运行irb时会执行一个名为/etc/irbrc
的文件,如果他们有~/.irbrc
,则会在puts 1
之前执行。但是,OS X安装的irb似乎没有读取此文件:我将/etc/irbrc
置于顶部,并且在运行irb时看不到结果。 (我通常使用rbenv,但在调查此文件时禁用它。)~/.irbrc
似乎无法运行,无论我是否有/usr/bin/irb
。另外,我在/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/irb
或~/.irbrc
中看不到此文件的提及。
我猜是这个文件
~/.irbrc
。有没有人确切知道,或者知道有什么不同?
我不需要或不想要它;我很高兴维持自己的Private Sub CommandButton1_Click()
'Step 1: Declare your variables
Dim MyDatabase As DAO.Database
Dim MyQueryDef As DAO.QueryDef
Dim MyRecordset As DAO.Recordset
'Step 2: Identify the database and query
Set MyDatabase = DBEngine.OpenDatabase _
("\\prd\ZipCode_Tools.accdb")
Set MyQueryDef = MyDatabase.QueryDefs("Query Zip Code & Market Seg")
'Step 3: Define the Parameters
With MyQueryDef
.Parameters("[Enter ZipCode]") = Range("D2").Value
.Parameters("[Enter Market Seg]") = Range("D3").Value
End With
'Step 4: Open the query
Set MyRecordset = MyQueryDef.OpenRecordset
'Step 5: Clear previous contents
Sheets("MySheet").Select
ActiveSheet.Range("A6:F10000").ClearContents
'Step 6: Copy the recordset to Excel
ActiveSheet.Range("A6").CopyFromRecordset MyRecordset
'Step 7: Add column heading names to the spreadsheet
'For i = 1 To MyRecordset.Fields.Count
'ActiveSheet.Cells(5, i).Value = MyRecordset.Fields(i - 1).Name
'Next i
' MsgBox "Your Query has been Run"
End Sub
。我只是想确保它在运行时不会影响irb(特别是我通常使用的rbenv安装的Ruby中的irb),并且未来的OS X升级不会改变irb行为。
答案 0 :(得分:5)
根据Mark Setchell和Jared Beck的评论,/ etc / irbrc与当前(10.13)OS X一起安装,至少已有几个主要版本。
我将/ etc / irbrc复制到〜/ .irbrc,运行irb,退出并出错:undefined method 'nitems' for ["exit"]:Array (NoMethodError)
。这个方法存在于Ruby 1.8中,但已从Ruby 1.9中删除。我通常不会看到这个错误,因此我得出结论,/ etc / irbrc根本没有执行。
总的来说,我总结说在调试〜/ .irbrc问题时我可以忽略/ etc / irbrc,这是我问题的根源。