[英]Getting strings for Ruby templates?
In the below script the puts
outputs 在以下脚本中, puts
输出
admin1:secretpw@example.com
where I need to have it split in a username and a password, so I can use it for a template 我需要将其拆分为用户名和密码,以便可以将其用作模板
[admins]
<%= couchdbAdminUri.user %> = <%= couchdbAdminUri.password %>
Question 题
How can I turn couchdbAdminUri
into an object so I can use the template above? 如何将couchdbAdminUri
转换为对象,以便可以使用上面的模板?
#!/usr/bin/ruby
require 'erb'
require 'yaml'
require 'uri'
require 'awesome_print'
data_root = '/vol'
config_root = File.join(data_root, 'config')
couchdb = YAML::load_file(File.join(config_root, 'couchdb.yaml'))
couchdbAdminUri = URI(couchdb['_admin']['db'])
puts couchdbAdminUri
b = binding
tmp = ERB.new File.read("local.ini.erb"), nil, "%"
File.open("local.ini", "w") do |f|
f.write(tmp.result(b))
end
you can create a class 你可以创建一个类
#!/usr/bin/ruby
require 'erb'
require 'yaml'
require 'uri'
require 'awesome_print'
data_root = '/vol'
config_root = File.join(data_root, 'config')
couchdb = YAML::load_file(File.join(config_root, 'couchdb.yaml'))
result = URI(couchdb['_admin']['db']).split(':')
class CredentialURI
attr_reader :user, :password
def initialize(user, pwd)
@user = user
@password = pwd
end
end
user = result.first
password = result.last
couchdbAdminUri = CredentialUri.new(user, password)
b = binding
tmp = ERB.new File.read("local.ini.erb"), nil, "%"
File.open("local.ini", "w") do |f|
f.write(tmp.result(b))
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.