草庐IT

脚本开发

全部标签

ruby-on-rails - 为什么我应该只在测试环境而不是开发或生产环境中在我的 Rails 应用程序上运行 rspec 规范?

有人告诉我,除了测试之外,我不应该在rails_env中运行我的rspec规范。在生产或开发中运行规范的潜在问题是什么?我在两者中都运行规范。我通常在开发中运行规范,除非我正在测试使用Assets管道的东西。我为此切换到生产环境并花费15分钟预编译Assets。与我当前的方法相比,使用测试环境有什么优势吗?我搜索了答案,但没有任何内容解释为什么我不应该使用dev或prod。 最佳答案 在test环境中运行测试套件(例如rspec)旨在隔离资源以解决安全问题,尤其是数据库的完整性。测试通常会损坏或完全删除数据库中的数据。这同样适用于所

ruby-on-rails - Rails 开发模式下的日志轮换?

对于Rails3.1(很快将是3.2),我有非常详细的日志,其中包含大量额外的工作人员信息。我通常会得到数GB的development.log文件。我看到过一些关于轮换生产日志的讨论,但是我没有发现任何似乎适用于development.log轮换的内容。您如何在每100.megabytes左右轮换您的development.log?或者我更喜欢实际截断文件头,以便只有最近的项目保留在日志中,最近的条目最多100MB。我已经玩了一点,并且越来越多地认为目前不存在这样的东西,也许我应该实现一些将以某种方式使用ruby​​File.truncate的东西,但是我到目前为止,我还不确定它在文件

ruby - 我应该如何在开发过程中试用我的 gem?

假设我有一个名为foo的gem,其文件结构如下:foo.gemspectest_foo.rblib/foo.rblib/foo/file1.rblib/foo/file2.rbtest_foo.rb文件包含一些我用来试用我的gem的代码。它使用以下行访问gem的代码:require'./lib/foo'然后,lib/foo.rb访问gem所需的其他文件,如下所示:require'./lib/foo/file1'require'./lib/foo/file2'由于test_foo.rb在gem目录的根目录下,所以需要要求lib/foo中的文件从根目录开始的完整路径。一切正常,并且允许我通

ruby-on-rails - PHP 开发人员学习 Ruby 和 Ruby on Rails

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion我对学习Rails很感兴趣已经有一段时间了,我觉得现在正是浸入其中并实际动手实践的好时机。在过去的一周里,我阅读了所有我能找到的关于Ruby和RubyonRails的免费电子书。我刚刚读完RubyEssentials。我也一直在玩htt

ruby - Ruby 脚本中的 Unicode 字符?

我想编写一个将日文字符写入控制台的Ruby脚本。例如:puts"こんにちは・今日は"但是,我在运行时遇到异常:jap.rb:1:Invalidchar`\377'inexpressionjap.rb:1:Invalidchar`\376'inexpression可以吗?我正在使用Ruby1.8.6。 最佳答案 您已将文件保存为UTF-16LE编码,Windows将其误称为“Unicode”。通常最好避免使用这种编码,因为它不是ASCII超集:每个代码单元存储为两个字节,ASCII字符的另一个字节存储为\0。这会让很多软件感到困惑;使

ruby - 我能否编写仅在我的脚本运行时执行但在需要时不执行的 Ruby 代码?

我想写一个像这样的Ruby脚本:classFoo#instancemethodsheredefself.runfoo=Foo.new#dostuffhereendend#Thiscodeshouldonlybeexecutedwhenrunasascript,butnotwhenrequiredintoanotherfileunlessrequired_in?#我希望能够对其进行单元测试,这就是为什么我不希望类外的代码运行,除非我直接执行脚本,即rubyfoo_it_up.rb。我知道我可以简单地将Foo类放在另一个文件中并在我的脚本中require'foo'。事实上,这可能是一种更好

ruby - Crontab 没有运行 ruby​​ 脚本

下面的crontab-l好像没有运行。手动运行的脚本运行良好。这是我看到的错误Dec320:12:01dahlia/USR/SBIN/CRON[13912]:(gigawatt)CMD(/bin/sh-c"(exportPATH=/usr/bin:/bin;/home/gigawatt/drbronnersbot/drbronnersbot.rb)")Dec320:12:01dahlia/USR/SBIN/CRON[13910]:(CRON)error(grandchild#13912failedwithexitstatus1)这是crontab:*****/bin/sh-c"(exp

ruby-on-rails - RVM 的 Rails 脚本段错误

我遇到了段错误。whichruby​​应该返回/usr/local/bin吗?maletor$railsgeneratemailerContactMailer/Users/maletor/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.4/lib/mysql2/mysql2.bundle:[BUG]**Segmentationfault**ruby1.8.7(2009-06-12patchlevel174)[universal-darwin10.0]Aborttrapmaletor$whichrails/usr/bin/railsmaletor$geme

ruby - 在后台运行 Ruby 脚本

我有一个Ruby脚本,我需要在我的Linux机器上一直运行它。我尝试了nohupruby​​ruby​​.rb&但它似乎不起作用。如何让脚本在后台运行? 最佳答案 查看screen,这是一个命令行实用程序。开始它screen您将获得一个分离的新外壳。在那里开始你的脚本rubywhatever.rb然后看着它运行。然后按Ctrl-ACtrl-D,你应该回到原来的shell。您现在可以离开sshsession,脚本将继续运行。稍后,登录到您的盒子并输入screen-r你应该回到分离的shell。如果你多次使用屏幕,你将不得不通过pid选

ruby-on-rails - 如何为有点独立的 Ruby 脚本设置 Rails 环境?

我的Rails应用程序中有一个Ruby脚本,用于从Twitter加载一些数据。将来我会让它成为一个自动后台进程,但现在我手动运行它,如下所示:ruby/lib/twitter/twitterLoad.rb为了使用Rails模型类等,我将以下内容作为脚本的第一行:require"#{File.dirname(__FILE__)}/../../config/environment.rb"默认使用开发环境。但是,我希望能够在某个时候选择生产环境。更新#1:RAILS_ENV常量正在environment.rb文件中设置。所以,我能够将ENV['RAILS_ENV']='production'