标签: ruby

Ruby连接字符串并添加空格

我有4个字符串变量name, quest, favorite_color, speed可能是空的.我想将它们连接在一起,在非空的空格之间放置空格.代码的简单性,即查看和理解的简单程度,比速度更重要.

所以:

name = 'Tim'
quest = 'destroy'
favorite_color = 'red'
speed = 'fast'
Run Code Online (Sandbox Code Playgroud)

'Tim destroy red fast'
Run Code Online (Sandbox Code Playgroud)

name = 'Steve'
quest = ''
favorite_color = ''
speed = 'slow'
Run Code Online (Sandbox Code Playgroud)

变为:

'Steve slow'
Run Code Online (Sandbox Code Playgroud)

请注意,'Steve'和'slow'之间只有1个空格.

我该怎么做(最好是一行)?

ruby string concatenation

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

Ruby和Ruby on Rails脱机API文档

在过去,我使用railsbrain.com提供了一个非常方便的离线api文档.

但他们停在版本2.3.2

有没有最新版本的其他解决方案.

ruby api documentation ruby-on-rails

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

在Ruby中传递多个代码块作为参数

我有一个采用代码块的方法.

def opportunity
  @opportunities += 1
  if yield
    @performances +=1
  end
end
Run Code Online (Sandbox Code Playgroud)

我称之为:

opportunity { @some_array.empty? }

但是我如何传递多个代码块以便我可以使用yield两次,如下所示:

def opportunity
  if yield_1
    @opportunities += 1
  end
  if yield_2
    @performances +=1
  end
end
Run Code Online (Sandbox Code Playgroud)

和:

opportunity {@some_other_array.empty?} { @some_array.empty? }
Run Code Online (Sandbox Code Playgroud)

我知道这个例子可以在没有收益的情况下完成,但这只是为了说明.

ruby yield

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

ruby:将两个或多个数组的相应成员相加

我有两个(或更多)数组,每个数组有12个整数(对应于每个月的值).我想要的就是将它们加在一起,这样我就可以得到一个单独的数组,每个月都有总和值.这是一个有三个值的例子:[1,2,3]和[4,5,6] => [5,7,9]

我能想到的最好的是:

[[1,2,3],[4,5,6]].transpose.map{|arr| arr.inject{|sum, element| sum+element}} #=> [5,7,9]
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法呢?这似乎是一件非常基本的事情.

ruby arrays sum

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

什么是:+和&:+在Ruby中?

我已经看过好几次,但我无法弄清楚如何使用它们.镐说这些是特殊的快捷方式,但我无法找到语法描述.

我在这样的背景下见过他们:

[1,2,3].inject(:+)
Run Code Online (Sandbox Code Playgroud)

以计算总和为例.

ruby

38
推荐指数
1
解决办法
9843
查看次数

如何在Ruby中创建私有类常量

在Ruby中,如何创建私有类常量?(即在课堂内可见但不在课堂外可见的)

class Person
  SECRET='xxx' # How to make class private??

  def show_secret
    puts "Secret: #{SECRET}"
  end
end

Person.new.show_secret
puts Person::SECRET # I'd like this to fail
Run Code Online (Sandbox Code Playgroud)

ruby access-specifier class-constants

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

如何将字符串转换为类方法?

这是如何将字符串转换为Rails/Ruby中的类:

p = "Post"
Kernel.const_get(p)
eval(p)
p.constantize
Run Code Online (Sandbox Code Playgroud)

但是,如果我从数组/活动记录对象中检索方法,如下所示:

Post.description
Run Code Online (Sandbox Code Playgroud)

但它可能是

Post.anything
Run Code Online (Sandbox Code Playgroud)

什么都是字符串之类的anything = "description".

这很有用,因为我想重构一个非常大的类并减少代码和重复行.我怎样才能使它工作?

ruby ruby-on-rails

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

如何使用capybara + cucumber在ruby中断言html表行的数量

我正在尝试使用黄瓜+水豚来处理Ruby中的BDD Web开发,我仍然坚持应该是一个简单的任务 - 只是为了检查表中的行数.我想要实现的目的是:

page.should have_xpath("//table[@id='myTable']")
find("//table[@id='myTable']/tr").length.should == 3
Run Code Online (Sandbox Code Playgroud)

但这不起作用(缺少方法长度),我找不到一种方法来断言表长度.

任何想法任何人(请对我很轻松'我是一个红宝石nooby)

提前致谢

尼尔

ruby cucumber capybara

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

在Ruby中反转一个字符串

你如何在Ruby中反转字符串?我知道字符串#verse.我有兴趣了解如何用纯Ruby编写它,最好是一个就地解决方案.

ruby

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

Ruby on Rails:你能把Ruby代码放在YAML配置文件中吗?

我想在我的amazon_s3.yml配置文件中做类似的事情:

access_key_id: ENV['S3_KEY']
secret_access_key: ENV['S3_SECRET']
Run Code Online (Sandbox Code Playgroud)

......但我知道这不起作用.不确定它是否可行,但是你可以将Ruby代码放在YAML文件中吗?

ruby yaml

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