标签: ruby

如何设置基本的ruby项目?

我想用10-20个类/文件创建一个小的ruby项目.我需要一些宝石,我想使用rspec作为测试框架.

我可能想稍后建立一个宝石,但这不确定.

是否有一些Howto或Guide向我展示了如何设置项目的基本结构?

我的问题是:

  • 我在哪里放置所有自定义错误/例外
  • 是否存在一些用于命名lib,bin,src等目录的约定?
  • 我在哪里放置测试数据或文档.
  • 我在哪里需要我的所有文件,以便我可以在我的项目中访问它们.

我知道我可以从头做一切,但我想要一些指导.我可以复制一些好的宝石,但我不确定我真正需要什么以及我可以删除什么.

我查看了http://gembundler.com/,但在设置捆绑器后它停止了.

ruby project-structure

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

范围生成中'..'(双点)和'...'(三点)之间的区别?

我刚刚开始学习Ruby和Ruby on Rails,并遇到了使用范围的验证代码:

validates_inclusion_of :age, :in => 21..99
validates_exclusion_of :age, :in => 0...21, :message => "Sorry, you must be over 21"
Run Code Online (Sandbox Code Playgroud)

起初我以为差异的包容端点,但在API文档我进去看了看,它并似乎并不重要,是否是.....:它总是包括端点.

但是,我在irb中进行了一些测试,它似乎表明..包括两个端点,而...只包括下限但不包括上限.它是否正确?

ruby syntax range

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

Hash Rocket被弃用了吗?

引用良好的RIP Hash火箭帖似乎暗示Hash Rocket语法(:foo => "bar")已被弃用foo: "bar",而不支持新的Ruby JSON风格的hash(),但我找不到任何明确的引用来说明Hash Rocket表单实际上从Ruby 1.9开始被弃用/未经过修改.

ruby syntax hash ruby-1.9 hashrocket

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

有没有理由我们不能在ruby中反复"反向范围"?

我尝试使用Range并向后迭代each:

(4..0).each do |i|
  puts i
end
==> 4..0
Run Code Online (Sandbox Code Playgroud)

迭代通过0..4写入数字.在另一个范围r = 4..0似乎没问题r.first == 4,r.last == 0.

我觉得上面的结构不能产生预期的结果似乎很奇怪.这是什么原因?这种行为合理的情况是什么?

ruby iteration range

98
推荐指数
6
解决办法
3万
查看次数

`if __name__ =='__ main __'`相当于Ruby

我是Ruby的新手.我想从包含我想要继续单独使用的工具的模块导入函数.在Python中我会这样做:

def a():
    ...
def b():
    ...
if __name__ == '__main__':
    a()
    b()
Run Code Online (Sandbox Code Playgroud)

这允许我运行程序或将其作为模块导入以使用a()和/或b()单独使用.Ruby中的等效范例是什么?

ruby python program-entry-point

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

如何使用Ruby一步初始化数组?

我这样初始化一个数组:

array = Array.new
array << '1' << '2' << '3'
Run Code Online (Sandbox Code Playgroud)

是否有可能一步到位?如果是这样,怎么样?

ruby arrays initialization

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

在rspec中禁用一组测试?

我有一个测试规范,其中describes一个类和contexts每个类都有各种各样的it块.

有没有办法context暂时禁用?

我尝试pending "temporarily disabled"context我要禁用的最顶层添加一个调用,当我运行规范时,我确实看到了一些关于暂挂的内容,但之后它继续运行其余的测试.

这就是我的方式:

describe Something
  context "some tests" do
    it "should blah" do
      true
    end
  end

  context "some other tests" do
    pending "temporarily disabled"

    it "should do something destructive" do
      blah
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

但就像我说的那样,它继续在待处理的呼叫下运行测试.

搜索引导我进入这个邮件列表线程,其中rspec的创建者(?)表示它可能在我正在运行的rspec 2中.我猜它确实有效,但它没有取消所有以下测试的预期效果,这就是我在看到一个pending电话时的想法.

有替代方案还是我做错了?

ruby rspec

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

如何在ruby中打印没有换行的东西

puts ruby中的语句自动添加一个新行,我该如何避免呢?

ruby

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

Ruby数组:select(),collect()和map()

映射语法:

a = ["a", "b", "c", "d"]      #=> ["a", "b", "c", "d"] 
a.map {|item|"a" == item}     #=> [true, false, false, false] 
a.select {|item|"a" == item}  #=> ["a"]
Run Code Online (Sandbox Code Playgroud)

如果我有问题怎么样:

 irb(main):105:0> details[1]
 => {:sku=>"507772-B21", :desc=>"HP 1TB 3G SATA 7.2K RPM LFF (3 .", :qty=>"", 
 :qty2=>"1", :price=>"5,204.34 P"}
Run Code Online (Sandbox Code Playgroud)

我想删除此数组上具有空qty值的每个条目,或者只选择其中具有某个值的条目.

我试过了:

details.map {|item|"" == item}
Run Code Online (Sandbox Code Playgroud)

只返回很多假,然后当我使用相同的只是更改地图来选择我得到:

[]
Run Code Online (Sandbox Code Playgroud)

ruby arrays

98
推荐指数
3
解决办法
15万
查看次数

Cocoapods设置卡在终端上的pod setup命令上

MacBook-Pro:~ skbc$ pod setup --verbose
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/universal-darwin13/rbconfig.rb:212: warning: Insecure world writable dir /usr/local/bin in PATH, mode 040777

Setting up CocoaPods master repo

Cloning spec repo `master` from `https://github.com/CocoaPods/Specs.git` (branch `master`)
  $ /usr/bin/git clone 'https://github.com/CocoaPods/Specs.git' master
  Cloning into 'master'...
Run Code Online (Sandbox Code Playgroud)

已经浏览了Cocoapods网站提供的资源,SO和一些视频教程.即使在等了几个小时之后也没有发生任何事情,但是仍在试图弄清楚可能存在的问题是什么?我非常感谢您的意见和建议.谢谢!!!

ruby git ios cocoapods xcode5

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