2015-04-24 83 views
0

我有與內容的.publicancreators.cfg:導入配置與parseconfig在紅寶石

# Global 
name = Sascha Manns 
email_private = [email protected] 

然後,我已經定義了一個方法:

def self.config 
    config = ParseConfig.new(File.join(File.dirname(__FILE__), '.publicancreators.cfg')) 
    name = config['name'] 
    email_private = config['email_private'] 
    return %w(name email) 
end 

對於使用我在裏面運行我的主程序:

a, b = PublicanCreatorsGet.config 
name = "#{a}" 
email = "#{b}" 

的想法來自於數獨:https://mikeyhogarth.wordpress.com/2011/11/21/return-multiple-values-from-a-ruby-method/

如果我運行的代碼我得到:

<class:PublicanCreators>': undefined local variable or method `config' for PublicanCreators:Class (NameError) 

也許任何人都可以幫助嗎?

+0

_Sidenote__通過返回'返回%w(姓名電子郵件)'您返回_strings_''名稱''和'「電子郵件」',而不是它們的值。 'return'關鍵字也是多餘的。最後一行應該是'[name,email_private]'。錯誤是誘發的,它與解析配置無關。 – mudasobwa

+0

非常感謝。 –

回答

1

除了一些代碼毛刺我定的,我有執行的代碼沒有問題:

require 'parseconfig' 
class A 
    def self.config 
    config = ParseConfig.new('/tmp/q.cfg') 
    name = config['name'] 
    email_private = config['email_private'] 
    [name, email_private] 
    end 
end 

a, b = A.config 

puts "name is [#{a}], email is [#{b}]" 
#⇒ name is [Sascha Manns], email is [[email protected]] 

你的問題引起。

+0

非常感謝。這有助於:-) –