1. Ruby
Ruby,一種為簡(jiǎn)單快捷的面向?qū)ο缶幊蹋嫦驅(qū)ο蟪绦蛟O(shè)計(jì))而創(chuàng)的腳本語(yǔ)言,在20世紀(jì)90年代由日本人松本行弘(Yukihiro Matsumoto)開(kāi)發(fā),遵守GPL協(xié)議和Ruby License。它的靈感與特性來(lái)自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 語(yǔ)言。由 Ruby 語(yǔ)言本身還發(fā)展出了JRuby(Java平臺(tái))、IronRuby(.NET平臺(tái))等其他平臺(tái)的 Ruby 語(yǔ)言替代品。Ruby的作者于1993年2月24日開(kāi)始編寫Ruby,直至1995年12月才正式公開(kāi)發(fā)布于fj(新聞組)。因?yàn)镻erl發(fā)音與6月誕生石pearl(珍珠)相同,因此Ruby以7月誕生石ruby(紅寶石)命名。
2. RVM
用于幫你安裝Ruby環(huán)境,幫你管理多個(gè)Ruby環(huán)境,幫你管理你開(kāi)發(fā)的每個(gè)Ruby應(yīng)用使用機(jī)器上哪個(gè)Ruby環(huán)境。
Ruby 環(huán)境不僅僅是Ruby本身,還包括依賴的第三方Ruby插件。都由RVM管理。
3. RubyGems
RubyGems 是一個(gè)方便而強(qiáng)大的Ruby程序包管理器(package
manager),類似Redhat的RPM。它講一個(gè)Ruby應(yīng)用程序打包到一個(gè)gem
里,作為一個(gè)安裝單元。無(wú)需安裝,最新的Ruby版本已經(jīng)包含RubyGems了。
4. Gem
Gem是封裝起來(lái)的Ruby應(yīng)用程序或代碼庫(kù)。
注:在終端使用的gem命令,是指通過(guò)RubyGems管理Gem包。
5. Gemfile
定義你的應(yīng)用依賴哪些第三方包,bundle根據(jù)該配置去尋找這些包。
6. Rake
Rake是一門構(gòu)建語(yǔ)言,和make類型。Rake是用Ruby寫的,它支持自己的DSL用來(lái)處理和維護(hù)Ruby
程序。Rails用rake擴(kuò)展來(lái)完成多種不同任務(wù),如數(shù)據(jù)庫(kù)初始化、更新等。
Rake is a Make-like program implemented in Ruby. Tasks and dependencies are specified in standard Ruby syntax.
7. Bundle
相等于多個(gè)RubyGems批處理運(yùn)行。在配置文件gemfile里說(shuō)明你的應(yīng)用依賴哪些第三方包,他自動(dòng)幫你
下載安裝多個(gè)包,并且會(huì)下載這些包依賴的包。
Bundler provides a consistent environment for Ruby projects by
tracking and installing the exact gems and versions that are needed.
Bundler is an exit from dependency hell, and ensures that the gems
you needed are present in development, staging, and production.
Starting work on a project is as simple as `bundle install`
8. Rack
以Ruby為語(yǔ)言編寫的輕量級(jí)的服務(wù)。
Rack provides a minimal interface between webservers that support Ruby and Ruby frameworks.
# my_rack_app.rb
require 'rack'
app = Proc.new do |env|
['200', {'Content-Type' => 'text/html'}, ['A barebones rack app.']]
end
Rack::Handler::WEBrick.run app
> ruby my_rack_app.rb
[2015-12-14 23:27:19] INFO WEBrick 1.3.1
[2015-12-14 23:27:19] INFO ruby 2.2.2 (2015-04-13) [x86_64-darwin14]
[2015-12-14 23:27:19] INFO WEBrick::HTTPServer#start: pid=84264 port=8080
localhost - - [14/Dec/2015:23:27:43 CST] "GET / HTTP/1.1" 200 21