2011-02-07 108 views
1

我從另一個模塊調用模塊中的方法,並得到一個奇怪的錯誤。調用另一個模塊內的模塊

require 'nmap' 
...  
module Enumeration::Hostnames 
    def reverse_dns ip_addrs 
    ... 
    ip_addrs.each do |ip_addr| 
     list = ListScan.test ip_addr #this is the problem 
     ... 
    end 
    ... 

ListScan在nmap文件中。

module ListScan 
    def ListScan.test target 
    target = '-sL ' + target 
    ListScan::parse_results Nmap::Parser.parsescan('nmap',target) 
    end 
    ... 
    end 

該錯誤是`const_missing':就行ListScan.test的ip_addr未初始化常數枚舉::主機名:: ListScan(NameError)。

爲什麼它假定ListScan在Enumeration :: Hostnames模塊中?在ListScan中混入主機名不起作用。

回答

1

Ruby從當前上下文開始搜索常量,在本例中爲Enumeration::Hostnames

使用

::ListScan.test ip_address 
+0

感謝,該工作嘗試。它有點奇怪,從來沒有在Ruby API中使用過這個模塊 – David 2011-02-07 20:01:14

相關問題