小编Fel*_*xHJ的帖子

Ruby加载配置(yaml)文件在与源相同的目录中

在HOME/path_test /我有:

load_test.rb:

require 'yaml'
cnf = YAML::load(File.open('config.yml'))
puts cnf['Hello']
Run Code Online (Sandbox Code Playgroud)

config.yml:

Hello: world!!!
Run Code Online (Sandbox Code Playgroud)

当在HOME/path_test /我按预期得到:

-bash-3.2$ ruby load_test.rb 
world!!!
Run Code Online (Sandbox Code Playgroud)

在HOME /(cd ..)我得到

-bash-3.2$ ruby path_test/load_test.rb 
path_test/load_test.rb:3:in `initialize': No such file or directory - config.yml     (Errno::ENOENT)
    from path_test/load_test.rb:3:in `open'
    from path_test/load_test.rb:3:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这是正确的行为,但不是我所希望的:)

有没有办法相对于源文件加载.yml文件,而不是相对于当前工作的DIR?

解决方案(load_Test.rb):

require 'yaml'
fn = File.dirname(File.expand_path(__FILE__)) + '/config.yml'
cnf = YAML::load(File.open(fn))
puts cnf['Hello']
Run Code Online (Sandbox Code Playgroud)

ruby yaml path configuration-files

39
推荐指数
1
解决办法
5万
查看次数

在powershell控制台中插入空行

在unix上我可以做一个

tail -f file
Run Code Online (Sandbox Code Playgroud)

等效的powershell命令是

gc file -Wait
Run Code Online (Sandbox Code Playgroud)

但是在unix上我可以按Enter键在控制台输出行时添加一些空白行(为了便于阅读),但不在powershell中.任何解决方法?


使用案例:在unix上运行tail -f /some/webserver/log/file,它输出日志的最后一部分.然后,我做了一些http请求,日志相应地滚动.我然后输入几次以在控制台中获得一些空白,然后一个请求然后该一个请求的日志突出(因为上面的空白行)

powershell tail

5
推荐指数
3
解决办法
4万
查看次数

生成字母数字字符串

我需要一些测试公司名称,如"rnd_company_blah23haf9","rnd_company_g356fhg57"等.

是否有可能做类似的事情

import scala.util.Random
val company = s"rnd_company_${Random.alphanumeric take 10 ?????}"
Run Code Online (Sandbox Code Playgroud)

如果有人可以填写????? 当然.

random scala

5
推荐指数
1
解决办法
8954
查看次数

使用API​​获取所有VirtualMachines(rbvmomi)

我想查看我的vcenter中所有虚拟机的一些信息,现在我有:

require 'rbvmomi'

vim1 = RbVmomi::VIM.connect host: 'vcenter.foo.tld', ssl: true, insecure: true, user: 'keith', password: 'NSABACKDOOR' 
dc1 = vim1.serviceInstance.find_datacenter("Datacenter Name") or fail "datacenter not found"

def list_vms(dc,vim)
  dc.vmFolder.children.each do |vm| 
    if vm.is_a? RbVmomi::VIM::VirtualMachine
      puts vm.name
    end
  end
end

list_vms(dc1,vim1)
Run Code Online (Sandbox Code Playgroud)

但是,这只会将主机(即放置主机名)返回到一个数据中心,而只返回位于文件夹层次结构中顶层的主机.无论在哪里,我都需要它们.

ruby vmware-server vsphere rbvmomi

2
推荐指数
1
解决办法
4304
查看次数