学习有一段时间了,今天尝试看看 gem 的源码,但是感觉好复杂,新手如何去学习 gem 的源码?我感觉如果能慢慢看懂 gem 的话,对于自己的技术水平应该会有很大的提升。所以请教各位大侠是如何去学习 gem 的。
找到了一个比较新的关于创建 gem 的文章: http://www.smashingmagazine.com/2014/04/08/how-to-build-a-ruby-gem-with-bundler-test-driven-development-travis-ci-and-coveralls-oh-my/
根据具体需求去看吧,这样会更快,比如弄清楚 carrierwave 是如何实现文件上传的,又是如何支持不同 Storage 的。写 gem 的话没有所谓的时间问题,只是看你自己想写的东西有多复杂了。
两分钟就写完一个 gem 了:
bundle gem(1) :Create a simple gem, suitable for development with bundler
module YourGemName
def hello_gem
"Hello Gem."
end
end
接着在你的项目里调用:
YourGemName.hello_gem
然后再 release: https://gist.github.com/lanrion/9417f47caf8f206b0db8
最后是 push 你的 gem 到 rubygems:
gem build foo.gemspec
gem push your_gem_name-1.0.0.gem
完事。
写出代码来分分钟,难点在测试。没测试的 gem 很少人敢用。
本来写测试就比写代码难。gem 里面要尽量简化、独立,要求更高。什么时候用 demo app,什么时候用 unit,都挺费脑筋。