草庐IT

ruby-on-rails - 用于开发的本地 Gem 路径和用于生产的远程 Git repo

我有一个正在本地开发的gem,它被一个项目使用。如果我在中使用path指定gem的位置,我可以进行更改并且项目会选择新代码:gem'example',:path=>"~/path/to/gems/example"但是,当我推送到Heroku时,bundle失败,因为Heroku无法访问我本地计算机上的gem源。所以我可以将gem源推送到远程仓库并将gem源指向那里:gem'example',:github=>'example/example',:branch=>'example_feature'但是我现在需要将更改推送到这个repo,然后更新gem以在我的项目中获取新的更改:$cd~/

ruby - 无法使用 key 与 Ruby 和 net/ssh 连接

我在使用“net-ssh”gem从ruby​​通过ssh连接时遇到问题,得到Net::SSH::AuthenticationFailed。代码如下require'net/ssh'keys=["path_to_private_key"]Net::SSH.start('host','user',:keys=>keys,:verbose=>:debug)do|ssh|#sshcodeend直接从命令行使用ssh是可行的:ssh-iuser@host我的sshAPI有误吗?我已经尝试将“user@host”和“user”作为用户名,结果相同。这是调试输出:D,[2011-07-26T19:42

ruby-on-rails - Ruby 哈希可以包含在 Sass 和 CoffeeScript 中,从而允许共享数据吗?

我想知道是否可以在Sass和CoffeeScript之间轻松共享ruby​​哈希。我四处寻找这个问题的答案,但没有找到任何结论。来源,例如documentation对于Sass,谈论如何链接相同类型的文件以及如何在语言内操作数据结构,但不要触及是否可以从其他地方导入数据,或者是否可以以某种方式解释ruby​​代码——我唯一类似的事情可以想到的是compass使用.rb文件作为它的配置。我的直觉表明这是(或应该)可能的,这两种语言都类似于Ruby,并且能够解释哈希值。因为这是一个实际问题,我遇到过好几次(干掉预处理的前端代码,但也为后端处理提供相同的值,例如在HTML模板中生成SVG)但

ruby - 在 procs、lambdas 和 block 中返回语句

我很难理解return在block、过程和lambda中的工作原理。例如,在下面的例子中,为什么batman_ironman_proc有效,而batman_yield抛出错误?defbatman_ironman_procvictor=Proc.new{return"Batmanwillwin!"}victor.call"IronManwillwin!"enddefbatman_yieldyield"Ironmanwillwin!"endvictor=Proc.new{return"Batmanwillwin!"}putsbatman_ironman_proc#batman_yield(

ruby - gemspec 文件中的 `files` 、 `executables` 、 `test_files` 和 `require_paths` 是什么?

我不清楚.gemspec文件中的某些规范在做什么。具体来说,spec.files=`gitls-files-z`.split("\x0")spec.executables=spec.files.grep(%r{^bin/}){|f|File.basename(f)}spec.test_files=spec.files.grep(%r{^(test|spec|features)/})spec.require_paths=["lib"]谁能解释一下这些与RubyGem的功能有何关系以及为什么需要它们? 最佳答案 executables:

ruby - ruby 模块 self.included 和 self.extended 行为记录在哪里?

我正在查看rubymixin博客文章,它说当一个模块包含在一个类中时,它的self.included()方法被调用。我的问题是,这种行为的正式记录在哪里?我似乎无法在ruby​​-docs.org网站或镐上找到它。 最佳答案 虽然它不在RubyDoc上出于某种原因,included实际上已被记录。在终端中运行riModule.included提供以下内容:included(othermod)Callbackinvokedwheneverthereceiverisincludedinanothermoduleorclass.Thiss

ruby - 使用 Puma 的工作线程、线程和池大小

如果我有一台只有1个核心的服务器,多少个pumaworker、线程和多少数据库池大小才合适?这里的一般拇指是什么? 最佳答案 这不是一个简单的答案。信息的两个主要来源是:Pumagithubrepository(作者的观点)Heroku'swebpage(主要大用户观点)不幸的是,它们不一致主要是因为heroku具有不同的部署指标和术语。所以我最终遵循了puma存储库指南,其中写道:每个核心一个worker要根据RAM可用性和应用程序确定线程线程=连接池所以线程数多半是试探操作。 关于r

ruby-on-rails - 缺少 `secret_token` 和 `secret_key_base` - Rails 4.2.0 with RVM

最近,我从Git中提取了一个存储库。启动服务器后,我收到以下消息:缺少secret_token和secret_key_base。这可能是因为我在我的.gitignore中包含了secrets.yml。我目前的设置Ubuntu14.04ruby2.2.0p0rails4.2.0rvm1.26.11本地服务器(非远程)开发环境许多在线资源指出我必须使用rakesecret生成新key并将其添加到secrets.yml中。将key放在secrets.yml中并重新启动Rails服务器不起作用。Edited:Addedcontentsofsecrets.ymlbelow.-04/30/159:

ruby - 模式匹配时 =~ 和 match() 有什么区别?

我正在使用Ruby1.9.3。我在玩一些模式,发现了一些有趣的东西:示例1:irb(main):001:0>/hay/=~'haystack'=>0irb(main):003:0>/st/=~'haystack'=>3示例2:irb(main):002:0>/hay/.match('haystack')=>#irb(main):004:0>/st/.match('haystack')=>#=~返回其第一个匹配项的第一个位置,而match返回模式。除此之外,=~和match()还有什么区别吗?执行时间差(根据@Casper)irb(main):005:0>quickbm(10000000

ruby - 按升序和降序对多个值进行排序

我正在尝试根据不同的属性对一组对象进行排序。其中一些属性我想按升序排序,一些属性按降序排序。我已经能够按升序或降序进行排序,但无法将两者结合起来。这是我正在使用的简单类:classDogattr_reader:name,:genderDOGS=[]definitialize(name,gender)@name=name@gender=genderDOGS然后我可以实例化一些狗,稍后进行分类。@rover=Dog.new("Rover","Male")@max=Dog.new("Max","Male")@fluffy=Dog.new("Fluffy","Female")@cocoa=Do