07. Railties
Railties
config.gem
environment.rb 파일에 있는 config.gem 설정을 이용해서 프로젝트를 실행하는데 필요한 모든 gem들을 설정할 수 있다. 이 설정은 프로젝트가 사용하는 gem들에 대한 의존관계를 명시한다.
- config.gem "bj"
config.gem "hpricot", :version => '0.6',
:source => "http://code.whytheluckystiff.net"
config.gem "aws-s3", :lib => "aws/s3"
의존관계에 있는 gem들을 모두 설치하고 싶으면 다음과 같은 Rake 태스크를 이용할 수 있다.
- # Installs all specified gems
rake gems:install
어떤 gem들이 프로젝트에서 사용되고 있는지 보기 위해서 다음과 같은 Rake 태스크를 이용할 수 있다.
- # Listing all gem dependencies
rake gems
gem 이 rails/init.rb 파일을 가지고 있는 상태에서, 애플리케이션이 gem을 포함하기를 원한다면 다음 Rake 태스크를 이용할 수 있다.
- # 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 파일이 다음과 같은 형식이었다.
- # init.rb of plugin open_id_authentication
require 'yadis'
require 'openid'
ActionController::Base.send :include, OpenIdAuthentication
그러나, Rails 2.1 에서는 init.rb 파일이 다음과 같을 것이다.
- 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들을 컴파일 한다. 문법은 다음과 같다.
- rake gems:build # 모든 gem들에 대해
rake gems:build GEM=mygem # mygem에 대해서만
서버를 시작할때 보여지는 새 메시지
Rails 서버를 시작할 때 약간의 개선사항이 있다. 그것은 실핻되는 Rails의 버전을 보여주는 것이다.
- Rails 2.1 application starting on http://0.0.0.0:3000
Rails.public_path
Rails.public_path 를 통해 프로젝트의 "public" 디렉토리를 알 수 있다.
- Rails.public_path
Rails.logger, Rails.root, Rails.env and Rails.cache
Rails 2.1에서는 RAILS_DEFAULT_LOGGER, RAILS_ROOT, RAILS_ENV, 그리고 RAILS_CACHE 상수들 대신 다음과 같이 사용할 수 있다.
- # RAILS_DEFAULT_LOGGER
Rails.logger
# RAILS_ROOT
Rails.root
# RAILS_ENV
Rails.env
# RAILS_CACHE
Rails.cache
Rails.version
Rails 2.0 까지는 실행 중에 어떤 Rails 버전이 사용되고 있는지 확인하기 위해 다음과 같은 코드가 사용되었다.
- Rails::VERSION::STRING
Rails 2.1에서는 다음과 같이 더 간편해졌다.
- Rails.version
플러그인에 대한 정보 얻기
이것은 Rails 2.0의 새로운 기능 중 하나이다. 아마 잘 사용하지는 않았겠지만.. 하지만 이것은 플러그인의 버젼을 알고 싶은 경우 같은 특수한 상황에서는 유용할 수 있다.
테스트을 위해 다음과 같이 plugin 디렉토리에 about.yml이라는 새 파일을 생성한다.
- author: Carlos Brando
version: 1.2.0
description: A description about the plugin
url: http://www.nomedojogo.com
이 정보를 다음과 같은 코드로 얻을 수 있다.
- 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)