好的,这是一个由三部分组成的问题。一个“threstion”,或者叫 triesti... 其实这个不太合适。那就用“Threstion”吧。
关于Rails的一件事情需要理解:它并不像神奇一样。它是由凡人编写的代码,他们有缺点(例如自负),但也非常聪明。因此,我们可以在研究他们的工作后理解它。
1. Rails环境很可爱
Rails环境管理背后的代码实际上非常简单。你有一个默认环境,它被设置为 development
,具体见这行代码在railties/lib/rails/commands/server.rb
中。你可以在你的应用程序中做类似的事情。运行一些初始化代码,定义 YourAwesomeThing.environment = ENV["AWESOME_ENV"] || "development"
。然后,在需要的地方引入 config/environments/#{YourAwesomeThing.environment}.rb
。接下来,在这些文件中有一些配置,根据环境修改库的工作方式。
我找不到在3-1-stable
中执行该操作的那一行代码(它已经不见了),所以这里有一个我认为是在3-0-stable
分支中执行该操作的代码。
至于诸如 Rails.env.production?
这样的可爱方法,它们由 ActiveSupport::StringInquirer
类提供。
2. Rails控制台是“再来一次”
我认为rails console
非常棒。我不想像在PHP的黑暗年代那样创建一个新文件来手动测试一些代码。我可以进入控制台,在那里尝试并输入exit
来结束测试。太棒了。我认为Rails开发人员没有足够重视控制台。
无论如何,这只是加载了Rails环境的irb
会话!我再次强调:Rails并不是魔法。如果你打开irb
,然后在这个交互式终端中键入require 'config/environment'
,你将得到(至少在我所知道的范围内...)与Rails控制台相同的结果!
这是由于Rails初始化过程中发生的奇妙操作,它几乎是魔法,但不完全如此,并且我已经在初始化指南中解释了这一点,该指南很快就会更新到Rails 3.1版本!
通过阅读那篇看似比乔治·R·R·马丁或罗伯特·乔丹写的书还要长的文本,您可能会学到很多。我肯定学到了很多写它的过程中!
3. 其他实用程序
这就是我犹豫不决的地方。您需要从Rake / Rails中获取哪些其他实用程序?一切都在那里,您只需要挑选出需要的部分,这实际上相当简单...但是,除非您先尝试并具体问题具体分析,否则我无法告诉您如何做。
无论如何,这是一个令我兴奋的问题,感谢您给我带来的娱乐 :)
编辑
我注意到你问题末尾的额外第四个问题。版本控制的目的是什么?为什么不使用像Git这样的版本控制系统来做这件事,并根据需要使用
git tag
标记版本?我认为这将是最合理的做法。
foo generate classname
并创建lib/application/classname.rb
和test/tc_classname.rb
,同时生成一个空的类和一个空的测试用例的东西吗? - Andrew Grimm