Header

  1. View current page

    재선아빠님의 노트

Profile_image?t=1224119607&type=big
11

RailsRecipes

  Rails Recipes 읽으면서 기억 할 만한 것들

   41 동적인 텍스트 픽스처 만들기

레일즈 프레임워크에서는 픽스처 파일로 테스트 데이타를 관리할 수 있는 기능을 제공한다. 보통 YAML 형태로 작성하게 되는데, 레일즈 픽스처가 처리되는 과정은 이 파일이 YAML 파서로 전달되기 직전에 ERb 를 거치게 된다. 즉, 픽스처가 ERb를 통해 preprocess 되기 때문에 픽스처 파일 안에 루비 표현식을 사용할 수 있다.

또한 픽스처는 레일즈 애플리케이션의 context 에서 로딩 되므로 모든 모델 클래스와 헬퍼 라이브러리, 레일즈 프레임워크에서 제공하는 것들을 모두 사용할 수 있다.

참고 : http://yaml.org/spec

  47  미처리 예외 통지받기

exception_notification plugin

  50 Edge Rails

svn:externals 속성을 사용해서 레일즈의 서브버젼 저장소를 외부 모듈로 지정하게 되면 서브버젼은 해당 디렉토리를 업데이트 할때 외부의 서브버젼 저장소에서 가져오게 된다. 버젼관리 시스템의 일종의 심볼릭 링크인셈.

      지정 : svn propset svn:externals "rails http://dev.rubyonrails.org/svn/rails/trunk" vendor      (이아스님이 버그수정 !!)

업데이트 : svn up

특정 버젼으로 프리즈 : rake freeze_edge

다시 최신 엣지로 : rake unfreeze_rails

레일즈에 기여하기

cd vendor/rails

svn diff > descriptive_patch_name.diff

위와 같은 diff 파일을 http://dev.rubyonrails.org/newticket 에 체출하면됨. (패치내용이 포함된 경우 티켓의 요약 필드를 [PATCH] 라는 문자열로 시작하면됨)

 52 나만의 고유한 레일즈 플러그인 만들기

monkey_patching :  파이썬 프로그래머들에게서 나온 용어로, 언어의 동적인 측면을 사용하여 언어의 핵심 기능을 런타임에서 패치하는 것을 말한다. 파이썬 커뮤니티에서는 경멸적인 어감으로 사용되던 이 용어가 루비스트들에 와서는 자랑스럽게 사용된다.

참고

레일즈 위키에 나온 플러그인 목록 : http://wiki.rubyonrails.org/rails/pages/Plugins

핵심 개발자들이 만든 플러그인 : http://dev.rubyonrails.org/svn/rails/plugins

60 단일한 디렉터리 구조로 애플리케이션 배포하기

rake freeze_gems 이렇게 freeze_gems 레이크 태스크는 레일즈 젬들을 끌어와서 애플리케이션의 루트에 있는 endor 디렉토리 아래에 풀어놓는다. envoronment.rb 에 버젼을 기록하게 되면 해당 버젼이 내려오게된다.

rake unfreeze_rails 다시 루비젬즈 버젼으로 전환하는 것이다. 이 태스크는 rails 디렉토리를 vendor 에서 제거하는 역할을 한다. 이렇게 하면 다시 시스템에 설치된 젬을 사용하는 것으로 돌아가게 되는 것이다.

라이브러리를 함께 배포하는 경우에는 어떻게 할까? BlueCloth 라이브러리를 추가한다고 가정한경우..

vendor 디렉토리에 다운받은 젬을 풀어놓는다.

gem unpack BlueCloth

Unpacked gem: 'BlueCloth-1.0.0'

이렇게 한뒤 config//environment.rb 파일을 편집해서 그 디렉토리를 루비의 $LOAD_PATH에 추가하면 된다.

$LOAD_PATH.unshift "/home/maruws/www/sabal/current/config/../vendor/BlueCloth-1.0.0/lib"

이것은 BlueCloth 의 lib 디렉토리에 있는 파일들을 루비의 require 메소드로 사용할 수 있게 해준다.

vendor/plugins 디렉토리에서 gem unpack 을 수행하면 environment.rb 를 수정하지 않아도 된다.

#{expr}

Tags

History

Last edited on 04/26/2007 11:15 by JasonPA

Comments (0)

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