小编n8g*_*ard的帖子

使用Ruby解析XML

我是使用XML的新手,但只是需要放弃我的膝盖.我得到了一个通常的(对我来说)XML格式.标签内有冒号.

<THING1:things type="Container">
  <PART1:Id type="Property">1234</PART1:Id>
  <PART1:Name type="Property">The Name</PART1:Name>
</THING1:things>
Run Code Online (Sandbox Code Playgroud)

它是一个大文件,除此之外还有更多内容,但我希望这种格式对某人来说很熟悉.有没有人知道如何处理这种XML文档?

我宁愿不只是写一个解析文本的蛮力方式,但我似乎无法用REXML或Hpricot取得任何进展,我怀疑这是由于这些不寻常的标签.

我的红宝石代码:

    require 'hpricot'
    xml = File.open( "myfile.xml" )

    doc = Hpricot::XML( xml )

   (doc/:things).each do |thg|
     [ 'Id', 'Name' ].each do |el|
       puts "#{el}: #{thg.at(el).innerHTML}"
     end
   end
Run Code Online (Sandbox Code Playgroud)

...刚从...取消:http://railstips.org/blog/archives/2006/12/09/parsing-xml-with-hpricot/

我想我可以从这里找到一些东西,但这段代码什么都没有.它没有错误.它只是回来了.

ruby xml-parsing

41
推荐指数
2
解决办法
7万
查看次数

计算Ruby中的第95百分位数?

这里的这个问题似乎没有帮助:计算百分位数(Ruby)

我想从一组数字中计算出第95百分位数(或者实际上,任何其他所需的百分位数).最终,这将在Rails中应用,以计算针对大量记录的分布.

但是,如果我可以确定如何从一组数字中准确地确定给定的百分位数,我可以从那里开始.

坦率地说,我很惊讶我找不到某种具有这种功能的宝石 - 我还没有找到它.

非常感谢帮助.

ruby algorithm math ruby-on-rails-3

19
推荐指数
3
解决办法
7505
查看次数

如何在AWS VPC w/Terraform中的两个子网之间路由?

更新:除此之外还在进行此项工作.似乎无法获得具有两个子网和SSH堡垒的工作配置.将赏金设置为完整的.tf文件配置:*创建两个私有子网*创建堡垒*在通过堡垒配置的每个子网上旋转ec2实例(通过堡垒运行一些任意shell命令)*已配置互联网网关*具有私有子网*上的主机的nat网关具有相应配置的路由和安全组

原帖:我正在尝试学习Terraform并构建原型.我有通过Terraform配置的AWS VPC.除了DMZ子网外,我还有一个公共子网"web",可以接收来自互联网的流量.我有一个无法从互联网访问的私有子网'app'.我正在尝试配置堡垒主机,以便terraform可以在私有"app"子网上配置实例.我还没有能够让这个工作.

当我进入堡垒时,我无法从堡垒主机SSH到私有子网内的任何实例.我怀疑存在路由问题.我通过几个可用的示例和文档构建了这个原型.许多示例通过aws提供程序使用略有不同的技术和terraform路由定义.

有人可以提供理想或正确的方法来定义这三个子网(公共'网络',公共'dmz'瓦特堡垒和私人'应用程序'),以便"网络"子网上的实例可以访问"应用程序"子网并且DMZ中的堡垒主机可以在私有"app"子网中配置实例?

我的配置片段如下:

resource "aws_subnet" "dmz" {
    vpc_id = "${aws_vpc.vpc-poc.id}"
    cidr_block = "${var.cidr_block_dmz}"
}

resource "aws_route_table" "dmz" {
    vpc_id = "${aws_vpc.vpc-poc.id}"
    route {
        cidr_block = "0.0.0.0/0"
        gateway_id = "${aws_internet_gateway.gateway.id}"
    }
}

resource "aws_route_table_association" "dmz" {
    subnet_id = "${aws_subnet.dmz.id}"
    route_table_id = "${aws_route_table.dmz.id}"
}

resource "aws_subnet" "web" {
    vpc_id = "${aws_vpc.vpc-poc.id}"
    cidr_block = "10.200.2.0/24"
}

resource "aws_route_table" "web" {
    vpc_id = "${aws_vpc.vpc-poc.id}"
    route {
        cidr_block = "0.0.0.0/0"
        instance_id = "${aws_instance.bastion.id}"
    }
}

resource "aws_route_table_association" "web" {
    subnet_id = "${aws_subnet.web.id}" …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services terraform

12
推荐指数
1
解决办法
3559
查看次数

如何在golang CLI中在远程计算机上执行命令?

如何在golang CLI中在远程计算机上执行命令?我需要编写一个golang CLI,它可以通过密钥SSH连接到远程机器并执行shell命令.此外,我需要能够做到这一步.例如,SSH进入机器(如云堡垒),然后SSH到另一台内部机器并执行shell命令.

我还没有找到任何这方面的例子.

ssh command-line-interface go

11
推荐指数
3
解决办法
1万
查看次数

有没有办法让ADODB与Excel for Mac 2011一起使用?

我似乎无法使用我的Excel工作簿(使用ADODB)来使用Excel Mac 2011.我正在使用ADODB代码.是否有可用的插件?即使是来自第三方?有没有人得到这个工作?

macos excel vba ado excel-vba excel-vba-mac

6
推荐指数
2
解决办法
8520
查看次数

为什么不能使用提供的示例将SSH转换为EC2实例?

我正在使用AWS双层示例,我直接复制粘贴整个事情.terraform apply直到它尝试SSH到创建的EC2实例的位置.它会循环几次,在最终失败之前提供此输出.

aws_instance.web (remote-exec): Connecting to remote host via SSH...
aws_instance.web (remote-exec):   Host: 54.174.8.144
aws_instance.web (remote-exec):   User: ubuntu
aws_instance.web (remote-exec):   Password: false
aws_instance.web (remote-exec):   Private key: false
aws_instance.web (remote-exec):   SSH Agent: true
Run Code Online (Sandbox Code Playgroud)

最终,它失败了w /:

Error applying plan:

1 error(s) occurred:

* ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain

Terraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with …
Run Code Online (Sandbox Code Playgroud)

ssh amazon-ec2 amazon-web-services sdn terraform

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

PostgreSQL中简单的类似存储过程的函数?

我想在pgsql中创建一个函数,它将获取三个参数并返回一个值(1行,1列).

我有查询工作但似乎无法找到创建函数来执行此操作的正确示例.

postgresql stored-procedures postgresql-9.1

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

在Rails 3.2中更改为Rake任务和参数结构?

我看过其他帖子但我仍然遇到麻烦.以下是我的代码.我有几个rake任务,我传入零,一个甚至五个参数.我错过了什么?

namespace :my_namespace do
  desc 'shows user accounts within the database for the specified customer.'
  task :show_user_accounts, [:customer_id] => :environment do |t, args|

    cust = Customer.find( args.customer_id.to_i )
    cust.users.each do |user|
      puts "User Name: #{user.name}\tUser ID: #{user.id}\t"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我使用以下命令运行任务:

$ rake my_namespace:show_user_accounts customer_id=110
Run Code Online (Sandbox Code Playgroud)

错误:

rake aborted!
Couldn't find Customer with id=0
Run Code Online (Sandbox Code Playgroud)

rake ruby-on-rails

3
推荐指数
1
解决办法
1411
查看次数

在尝试使用capistrano进行部署时,为什么会出现Psych错误?

我目前正在我的Rails 3.2.13应用程序中设置capistrano.我收到以下错误/详细信息(包括"第1行第1列不允许使用控制字符").我已经做了一些搜索,但没有看到任何与我有关的事情.

我正在使用rvm-capistrano和ruby 2.0.0-p195.我最近将我的应用程序所需的环境变量移动到.bashrc中.

...      
* 2013-06-10 15:18:32 executing `deploy:assets:update_asset_mtimes'
      * executing "[ -e /home/deployer/apps/super_rad_app/shared/assets/manifest* ] && cat /home/deployer/apps/super_rad_app/shared/assets/manifest* || echo"
        servers: ["107.20.249.163"]
        [107.20.249.163] executing command
        command finished in 6238ms
    *** [deploy:update_code] rolling back
      * executing "rm -rf /home/deployer/apps/super_rad_app/releases/20130610221258; true"
        servers: ["107.20.249.163"]
        [107.20.249.163] executing command
     ** [out :: 107.20.249.163] Using /home/deployer/.rvm/gems/ruby-2.0.0-p195
        command finished in 6623ms
    /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:205:in `parse': (<unknown>): control characters are not allowed at line 1 column 1 (Psych::SyntaxError)
        from /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:205:in `parse_stream'
        from /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:153:in `parse'
        from /home/nate/.rvm/rubies/ruby-2.0.0-p195/lib/ruby/2.0.0/psych.rb:129:in `load'
        from /home/nate/.rvm/gems/ruby-2.0.0-p195/gems/capistrano-2.15.4/lib/capistrano/recipes/deploy/assets.rb:26:in …
Run Code Online (Sandbox Code Playgroud)

capistrano ruby-on-rails ruby-on-rails-3 rvm-capistrano

3
推荐指数
1
解决办法
2320
查看次数

Capistrano有多个delayed_jobs角色?

我有一个问题,我没有找到有用的信息.我想知道这是否可能,如果是的话,如何最好地实现它.

我们正在Rails中构建一个应用程序,它通过后台进行大量的数据处理DelayedJob(...它对我们来说效果很好.)

该应用程序在AWS中运行,我们在Capistrano中配置了一些不同的环境.

当我们有大量的处理负载时,我们的DelayedJob队列可以备份 - 这大部分都很好.我确实有一两个队列,我希望有一个单独的节点.因为它会忽略"堵塞"的队列,所以它会保持一两个队列,并保持最新状态.例如,某些单独的工作可能需要一个多小时,我不希望忘记密码 - 电子邮件传递被暂停90分钟,直到下一个工作人员完成任务并检查优先工作.

我想要的是有一个单独的EC2实例,它有一个工作程序启动,往往有两个不同的显式队列.

我可以通过使用'--QUEUES'选项启动一个或两个工作人员在我的开发机器上手动执行此操作.

这是我的问题,如何在capistrano中定义一个新角色并告诉该角色的节点启动不同数量的工作者并倾向于特定队列?同样,我正常的delayed_jobs角色设置为3个worker并运行所有队列.

这可能吗?有没有更好的办法?

目前在Rails 3.2.13上使用PostgreSQL 9.2和delayed_jobgem.

capistrano ruby-on-rails delayed-job rvm-capistrano

3
推荐指数
1
解决办法
731
查看次数