将AWS凭据CSV转换为对象

时间:2015-05-22 20:01:21

标签: ruby csv vagrant

我在Ruby中使用以下代码

require 'csv'
CSV.foreach('credentials/sns.csv', :headers => true, :col_sep => ',') do | row |
  SNS.create(:IAM => row['IAM User Name'], :KEY => row['Smtp Username'], :SECRET => row['Smtp Password'])
end

并期望在Vagrant的这一点上我可以使用

config.vm.provision :shell, :path => "scripts/bootstrap.sh", :args => [SNS.KEY, SNS.SECRET]

但最终得到Message: uninitialized constant SNS

这显然不是这样做的方式,所以我做错了什么以及如何解决?

我学到这一点的方式来自This blog post

1 个答案:

答案 0 :(得分:1)

您提供的示例假定Car类具有属性的create method + getters。

如果两个片段都在同一个文件中(vagrant配置),那么解决此问题的方法之一是:

SNS = {}
require 'csv'
CSV.foreach('credentials/sns.csv', :headers => true, :col_sep => ',') do | row |
  SNS[:IAM]=row['IAM User Name']
  SNS[:KEY]=row['Smtp Username']
  SNS[:SECRET]=row['Smtp Password']
end

config.vm.provision :shell, :path => "scripts/bootstrap.sh", :args => [SNS[:KEY], SNS[:SECRET]]