Header

  1. View current page

    RubyOnRails 2.1 - What's New!

07. Railties

Railties

config.gem

environment.rb 파일에 있는 config.gem 설정을 이용해서 프로젝트를 실행하는데 필요한 모든 gem들을 설정할 수 있다. 이 설정은 프로젝트가 사용하는 gem들에 대한 의존관계를 명시한다.

  1. config.gem "bj"

    config.gem "hpricot", :version => '0.6',
    :source => "http://code.whytheluckystiff.net"

    config.gem "aws-s3", :lib => "aws/s3"

의존관계에 있는 gem들을 모두 설치하고 싶으면 다음과 같은 Rake 태스크를 이용할 수 있다.

  1. # Installs all specified gems
    rake gems:install

어떤 gem들이 프로젝트에서 사용되고 있는지 보기 위해서 다음과 같은 Rake 태스크를 이용할 수 있다.

  1. # Listing all gem dependencies
    rake gems

gem 이 rails/init.rb 파일을 가지고 있는 상태에서, 애플리케이션이 gem을 포함하기를 원한다면 다음 Rake 태스크를 이용할 수 있다.

  1. # Copy the specified gem to vendor/gems/nome_do_gem-x.x.x
    rake gems:unpack GEM=gem_name

그러면 gem_name의 gem은 vendor/gems/gem_name-xxx 디렉토리에 복사될 것이다. gem_name 을 사용하지 않는 경우에는 vendor/gem 디렉토리에 모든 gem들을 복사할 것이다.

 

플러그인에서의 config.gem 

config.gem 설정은 플러그인에서도 역시 사용 가능하다.

Rails 2.0 까지는 플러그인의 init.rb 파일이 다음과 같은 형식이었다.

  1. # init.rb of plugin open_id_authentication
    require 'yadis'
    require 'openid'
    ActionController::Base.send :include, OpenIdAuthentication

 

그러나, Rails 2.1 에서는 init.rb 파일이 다음과 같을 것이다.

  1. config.gem "ruby-openid", :lib => "openid", :version => "1.1.4"
    config.gem "ruby-yadis", :lib => "yadis", :version => "0.3.4"

    config.after_initialize do
    ActionController::Base.send :include, OpenIdAuthentication
    end

모든 필요한 gem들을 설치하는 태스크(rake gems:install)를 수행할 때, 이 gem들 역시 설치될 것이다.

 

gems:build

gems:build 태스크는 gems:unpack을 통해 설치된 gem들의 native extension들을 컴파일 한다. 문법은 다음과 같다.

  1. rake gems:build # 모든 gem들에 대해
    rake gems:build GEM=mygem # mygem에 대해서만

 

서버를 시작할때 보여지는 새 메시지

Rails 서버를 시작할 때 약간의 개선사항이 있다. 그것은 실핻되는 Rails의 버전을 보여주는 것이다.

  1. Rails 2.1 application starting on http://0.0.0.0:3000

 

Rails.public_path

Rails.public_path 를 통해 프로젝트의 "public" 디렉토리를 알 수 있다.

  1. Rails.public_path

 

Rails.logger, Rails.root, Rails.env and Rails.cache

Rails 2.1에서는 RAILS_DEFAULT_LOGGER, RAILS_ROOT, RAILS_ENV, 그리고 RAILS_CACHE 상수들 대신 다음과 같이 사용할 수 있다.

  1. # RAILS_DEFAULT_LOGGER
    Rails.logger

    # RAILS_ROOT
    Rails.root

    # RAILS_ENV
    Rails.env

    # RAILS_CACHE
    Rails.cache

 

Rails.version

Rails 2.0 까지는 실행 중에 어떤 Rails 버전이 사용되고 있는지 확인하기 위해 다음과 같은 코드가 사용되었다.

  1. Rails::VERSION::STRING

Rails 2.1에서는 다음과 같이 더 간편해졌다.

  1. Rails.version

 

플러그인에 대한 정보 얻기

이것은 Rails 2.0의 새로운 기능 중 하나이다. 아마 잘 사용하지는 않았겠지만.. 하지만 이것은 플러그인의 버젼을 알고 싶은 경우 같은 특수한 상황에서는 유용할 수 있다.

테스트을 위해 다음과 같이 plugin 디렉토리에 about.yml이라는 새 파일을 생성한다.

  1. author: Carlos Brando
    version: 1.2.0
    description: A description about the plugin
    url: http://www.nomedojogo.com

이 정보를 다음과 같은 코드로 얻을 수 있다.

  1. plugin = Rails::Plugin.new(plugin_directory)
    plugin.about["author"] # => “Carlos Brando”
    plugin.about["url"] # => “http://www.nomedojogo.com”

이 기능에 대해 유용한 사용방법을 알고 있고, 그것을 공유하고 싶으면 알려주세요.

History

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

Comments (0)

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