标签: ruby

从ruby脚本运行另一个ruby脚本

在ruby中,是否可以指定使用相同的ruby解释器调用另一个ruby脚本,因为原始脚本正在运行?

例如,如果a.rb运行b.rb几次,是否可以替换

system("ruby", "b.rb", "foo", "bar")
Run Code Online (Sandbox Code Playgroud)

喜欢的东西

run_ruby("b.rb", "foo", "bar")
Run Code Online (Sandbox Code Playgroud)

所以,如果你ruby1.9.1 a.rb在原版ruby1.9.1上使用,将在b.rb上使用,但如果你刚用于ruby a.rb原版,ruby将用于b.rb?

我不想使用shebangs,因为我希望能够在不同的计算机上运行,​​其中一些计算机没有/usr/bin/env.

编辑:我没有意思loadrequire类似,但产生新的进程(所以我可以使用多个CPU).

ruby

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

要求'rubygems'

我已经看到了许多Ruby代码示例(例如,http://www.sinatrarb.com/).这需要什么目的?

# require 'rubygems'
require 'sinatra'
get '/hi' do
  "Hello world!"
end
Run Code Online (Sandbox Code Playgroud)

在所有情况下,代码都可以在没有这一行的情

ruby rubygems require

35
推荐指数
3
解决办法
2万
查看次数

如何使用if..else块的结果分配变量?

我和一位同事讨论了在if..else块中分配变量的最佳方法.他的原始代码是:

@products = if params[:category]
  Category.find(params[:category]).products
else
  Product.all
end
Run Code Online (Sandbox Code Playgroud)

我用这种方式重写了它:

if params[:category]
  @products = Category.find(params[:category]).products
else
  @products = Product.all
end
Run Code Online (Sandbox Code Playgroud)

这也可以使用一个使用ternery操作符(?:)的单行重写,但让我们假装产品分配超过100个字符,并且不能适合一行.

哪两个更清楚你?第一个解决方案占用的空间少一些,但我认为声明一个变量并将其分配给三行后可能更容易出错.我也喜欢看我ifelse排列,方便了我的大脑解析吧!

ruby coding-style

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

Ruby,Rails:mysql2 gem,有人使用这个gem吗?它稳定吗?

我发现 mysql2 gem.它适用于ruby 1.9和utf8编码(与mysql gem相反).

但我怀疑.有人在生产中使用这个宝石吗?性能测试怎么样?它比mysql gem快吗?它稳定吗?

ruby mysql ruby-on-rails

35
推荐指数
3
解决办法
2万
查看次数

如何按长度对Ruby字符串数组进行排序?

我该如何排序:

arr = ["aaa","aa","aaaa","a","aaaaa"];
Run Code Online (Sandbox Code Playgroud)

进入这个?

arr = ["a","aa","aaa","aaaa","aaaaa"];
Run Code Online (Sandbox Code Playgroud)

ruby arrays sorting

35
推荐指数
3
解决办法
2万
查看次数

如何在Ruby中去除字符串中的前导和尾随引用

我想从一个字符串中删除Ruby中的前导和尾随引号.引号字符将出现0或1次.例如,以下所有内容都应转换为foo,bar:

  • "foo,bar"
  • "foo,bar
  • foo,bar"
  • foo,bar

ruby regex string

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

如何让Sinatra通过HTTPS/SSL工作?

正如标题所说,谷歌没有提供任何有用的信息.

如何为Sinatra应用程序设置和配置HTTPS/SSL?

如何创建HTTPS路由?

我以前从来没有为我的应用程序使用HTTPS,也没有调整Rack /的经验,所以我很感激详细的答案.

ruby ssl https sinatra

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

设计登录根路由轨道3

嘿,伙计们.所以我想到了这个酷炫的想法,如果你登录然后你得到某种仪表板,否则你得到一个信息/登录/注册页面..所以我该怎么做..

我主要想在Routes中这样做=不是这样的


def index
  if current_user.present?
    render :action => 'logged_in'
  else
    render :action => 'logged_out'
  end
end
Run Code Online (Sandbox Code Playgroud)

提前致谢!

/ Oluf Nielsen

ruby routes ruby-on-rails devise

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

你从Heroku dynos /工人那里得到了多少表现?

拥有1或2个Dynos的网站可以在www.Heroku.com上处理多少流量,并且会增加工人数量?任何对dynos /工人的帮助将不胜感激.

ruby ruby-on-rails heroku ruby-on-rails-3

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

机架并发 - rack.multithread,async.callback,或两者兼而有之?

我试图完全理解Rack中并发请求处理的选项.我已经使用async_sinatra来构建一个长轮询应用程序,现在正在尝试使用裸机Rack throw :async和/或Thin的--threaded标志.我对这个问题很满意,但有一些我无法理解的事情.(不,我并不误解并发性的并发性,是的,我确实理解GIL施加的限制).

Q1.我的测试表明thin --threaded(即rack.multithread=true)在不同的线程中同时运行请求(我假设使用EM),这意味着长时间运行的请求A不会阻止请求B(IO旁边).这意味着我的应用程序不需要任何特殊编码(例如回调)来实现并发(同样,忽略阻塞DB调用,IO等).这是我相信我观察到的 - 这是正确的吗?

Q2.还有另一种更常见的实现并发的方法,涉及EventMachine.deferthrow :async.严格来说,使用线程处理请求.它们是按顺序处理的,但是将它们的繁重工作和回调传递给EventMachine,后者使用async.callback在稍后发送响应.请求A已将其工作卸载到EM.defer后,请求B开始.它是否正确?

Q3.假设上述方法或多或少是正确的,那么一种方法对另一种方法有什么特别的优势吗?显然--threaded看起来像一个魔术子弹.有什么缺点吗?如果没有,为什么每个人都在谈论async_sinatra/ throw :async/ async.callback?也许前者是"我想让我的Rails应用程序在繁重的负载下变得更加快速",而后者更适合具有许多长时间运行请求的应用程序?或者规模是一个因素?只是在这里猜测.

我在MRI Ruby 1.9.2上运行Thin 1.2.11.(仅供参考,我必须使用该--no-epoll标志,因为EventMachine使用epoll和Ruby 1.9.2 存在一个长期的,据称解决但不是真正的问题.这不是重点,但任何见解都是受欢迎的.)

ruby rack thin

35
推荐指数
1
解决办法
4348
查看次数