2017-06-16 21 views
-1

私はRubyが新しく、ルビのキーに対応する値を渡す方法を理解したいと思っています。 私はメソッドにインスタンスごとにshutdown_portstartup_portを渡したいruby​​ハッシュから値を渡す方法

instance1 
shutdown_port: 1234 
startup_port: 1678 
instance2 
shutdown_port: 2234 
startup_port: 2678 

below- ruby​​likeにハッシュを持っていますが、shutdown_port & startup_port値を混在させたくありません。

if keyname = shutdown_portのようなものは、対応する値を渡し、if if keyname = startup_portは、対応する値を渡します。

+0

「私はrubylikeでハッシュを持っている」 - Rubyのハッシュのように見えません、まったく。 –

+0

実際に私はシェフの料理本を書いています。これは私の.kitchen.ymlで渡すものです。私は各インスタンスの "shutdown_port"と "startup_port"を読む必要があります – user6378152

+2

それは有効なyamlでもありません。たとえそうであったとしても、この実装の詳細から私たちを救うべきです。あなたは最終的にそれをハッシュとして解析します。有効なハッシュを投稿してください。 –

答えて

0

Rubyは実際にはkeyword argument as of Ruby 2を許可しています。これはハッシュを解析します。 (。あなたはハッシュを取得するために、正しくYAML.parse(file)を使用提供)

をお使いの場合は、次のような何かをしたい:

# method takes keyword args 
def idk(startup_port:, shutdown_port:) 
    p "#{startup_port}, #{shutdown_port}" 
end 

# which you call like this: 
idk({ startup_port: '22', shutdown_port: '80' }) 
# or without explicit hash 
idk(startup_port: '22', shutdown_port: '80') 
関連する問題