Header

  1. View current page

    RubyOnRails 2.1 - What's New!

08. 래이크 작업

Rake Tasks, 플러그인, 그리고 Scripts

Rake Tasks

rails:update

이제부터 rake rails:freeze:edge 태스크를 수행할 때마다 rails:update 태스크도 수행된다. 그럼으로써 config 파일들과 JavaScripts 를 갱신한다.

 

127.0.0.1에 있는 database

database.rake는 local database에 대해 localhsot 만 인식했다. 이제는 127.0.0.1 역시 인식한다. 이것은 createdrop 태스크 모두에 동작한다. 또한 database.rake 파일은 중복을 줄이기 위해 리팩토링되었다.

 

특정한 Rails의 릴리즈를 얼리기(Freezing).

Rails 2.1 이전에는 특정한 Rails의 릴리즈를 프로젝트에 얼리기가 불가능했다. 다만 Revision을 파라미터로 사용할 수 있었을 뿐이었다. Rails 2.1 에서는 아래와 같이 특정한 릴리즈를 선택해서 얼릴 수 있다.

  1. rake rails:freeze:edge RELEASE=1.2.0

 

시간대(TimeZone)

rake time:zones:all

Rails가 알고 있는 모든 시간대(time zone)들을 오프셋(offset)으로 그룹지어 보여준다. OFFSET 옵션 파라미터를 이용해서 결과를 걸러낼 수 있다.

예를 들면 OFFSET=-6 는 오프셋이 -6:00인 시간대만 보여준다.

 

rake time:zones:us

US 시간대의 목록을 보여준다. OFFSET 옵션을 사용할 수 있다.

 

rake time:zones:local

당신의 OS의 시간대 오프셋과 같은 시간대 목록을 보여준다.

 

Scripts

plugin

script/plugin install 명령에 -e/--export 옵션을 사용할 수 있다. 이 옵션이 설정되어 있으면 svn export를 수행한다.

그리고 GIT 저장소(repository)에 있는 플러그인들에 대한 지원이 추가되었다.

 

dbconsole

이 스크립트는 database에 대해 script/console과 같은 동작을 한다. 즉 database의 명령 수행 클라이언트(command line client)에 접속한다.

코드를 살펴보면, 이 스크립트는 mysql, postgresql 그리고 sqlite(3) 에서만 동작할 것임을 알 수 있다. 다른 database가 database.yml에 설정되어 있다면, 이 스크립트는 "not supported for this database type" 메시지를 보여줄 것이다.

 

Plugins

Gem 도 플러그인이다.

이제, rails/init.rb 를 가지고 있는 모든 gem들은 플러그인처럼 Rails 프로젝트의 vendor 디렉토리 밑에 설치될 수 있다.

 

플러그인에서 generators 사용하기기

Railsvendor/plugin 디렉토리가 아닌 다른 곳에서 플러그인을 찾도록 할 수 있다. environment.rb에 다음과 같은 형식의 코드를 추가하기만 하면 됩다.

  1. config.plugin_paths = ['lib/plugins', 'vendor/plugins']

Rails 2.0에서는 위와 같은 설정애서 플러그인이 generators를 가질 때 나타나는 버그가 있었다. 이 버그 때문에 Rails는 vendor/plugins 디렉토리 안에 있는 plugin에서만 generators를 찾았다.  2.1에서는 이 버그가 해결됬다.

History

Last edited on 07/01/2008 16:07 by 장환

Comments (0)

You must log in to leave a comment. Please sign in.