简体   繁体   English

获取Ruby模板的字符串?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM