我正在学习Ruby,我想查看一些小型库的源代码,看看它们是如何构建的。我不知道什么是小型图书馆,但希望SO能推荐一些易于理解的图书馆来学习。
因此,如果有人知道一个或两个非常小的图书馆,这是新手Rubyists学习的好例子,请推荐!
我想使用Manveru's Innate lib,因为它试图保持在2000 LOC以下但我还不熟悉在其中使用过的Ruby简写。
也许一些~100 - ~500个LOC库对我来说会更好吗?谢谢。
答案 0 :(得分:5)
Ryan "ZenSpider" Davis的东西总是很有趣。然而,它并不完全适合初学者。一方面,Ryan绝对狂热地保持简单,简洁,干净,这有助于理解。另一方面,他确实使用了Ruby的所有功能来实现这一目标。
他的工作中最令人惊叹的一个例子是MiniTest,这是一个新的测试框架,取代了Ruby 1.9标准库中的Test :: Unit。它包含full xUnit style testing framework in 419 lines,RSpec style BDD framework in 87 lines和full mocking framework in a whopping 28 lines。
但是,例如,BDD框架如此之小的方式是它使用反射元编程从测试框架动态循环断言方法并将它们重命名为BDD样式must_
方法。
另一个很好的例子也是Christian Neukirchen的BDD框架:Bacon has 291 lines。另请查看his other stuff,例如他的 mocking framework in 131 lines,forum software in 488 lines和blog engine in 146 lines。
最后但并非最不重要的是,有格雷戈里布朗的Prawn PDF Generation library。关于Prawn的有趣之处实际上是它故意写不仅作为PDF生成库,而也作为编写良好,设计良好的Ruby代码的示例。同样,his other stuff也很有趣,例如his blogging engine in 184 lines。
说到Greg Brown和编写良好的代码:Greg是本书Ruby Best Practices的作者,该书使用来自现实生活中的Ruby项目的真实代码示例来展示好的,写得好的,好的 - 设计的Ruby代码看起来像。 (另外,它还有一个名为 Ruby Worst Practices 的章节,带有反例。)而且,你甚至不必购买这本书(虽然你真的应该) ,因为all the code samples are on GitHub!
答案 1 :(得分:3)
来自github.com的一些选择:
答案 2 :(得分:1)
您可以查看Github。有很多Ruby项目从“非常小”到“太多”。
答案 3 :(得分:1)
根据作者的说法,rake的第一个版本有78行代码 - 也许有一些旧版本...
更多关于github.com ...