ruby(9)
-
Rails) flash 사용법
flash 는 Rails Application에서의 Action과 Action간에 정보를 공유하기 위해 만들어진 기능이다. HTTP Protocol은, 기본적으로 상태가 유지되지 않는 프로토콜인데, 만약 특정 액션에서 에러가 발생하여, Browser가 다른 액션으로 Redirect되는 경우, 이전 액션에서 발생한 Error Message를 확인할 수 있는 방법 이 없게 된다. (여기서 Flash 는, Flash MX 등에서 사용하는 Flash가 아니다) Flash기능은, 이런 경우에 이전 Action에서, 다음 액션으로 정보를 넘겨주는 것을 가능하게 한다. (이상 '웹 개발 2.0 루비온 레이슬' -황대산 지음 에서 발췌) 그러면, 사용법을 알아보자. app/controller/user_controlle..
2008.01.17 -
[Ubuntu] HOWTO: Build a Ruby (Rails) Environment
# 다음 명령들을 수행한다. apt-get install ruby apt-get install rubygems gem update --system gem update apt-get install ruby1.8-dev apt-get install libzlib-ruby apt-get install libyaml-ruby apt-get install libdrb-ruby apt-get install liberb-ruby apt-get install rdoc apt-get install zlib1g-dev apt-get install libopenssl-ruby # Mongrel 설치 gem install daemons gem_plugin mongrel mongrel_cluster --include-depen..
2008.01.06 -
[Ruby] XML Builder 와 REXML
Ruby(Rails)을 통해서, XML Parsing과 Build시 다음 두개의 Class(Or Module)을 사용한다. 1. Builder Ruby Class중에 "Builder"을 통해서, XML 을 만들어 낼 수가 있다. (참고 = XML.com의 "Createing XML with Ruby and Builder") 2. REXML XML Parser중 작고, 빠른편이다. (참고 = Germane Software의 XML소개) 사용법은 위 두개 참고 사이트를 보면 된다. 여기서 언급할 것은, Builder을 통해서 XML을 생성 할 때, 주로 String으로 XML을 담아왔었다. 다음은 이를 파일로 담아오는 방법이다. require 'builder' file = File.new("result.xm..
2007.12.21 -
[Ruby] Sort 방법 (Struct - 구조문 이용)
1. 기본 Hash 정렬 참고] Ordered Hash는 , Hash에 값을 대입시 순서대로 저장을 한다. (여기 참고) require 'ordered_hash' h = OrderedHash.new(0) h["1st"] = 5 h["2nd"] = 3 h["3th"] = 7 #Hash의 Value의 내림차순으로 정리하여 배열로 지정 a = Array.new(0) a = h.sort { |a,b| b[1]a[1] } [결과] a = [["3th",7],["1st",5],["2nd",3] ] 2. Struct Type 정렬 require "ordered_hash" h1 = OrderedHash.new(0) s1 = Struct.new(:name, :zip) h1["2020"] = s1.new("smith", ..
2007.11.16 -
[Ruby] Module 활용
참고] Programming Ruby - 2nd , Chapter 9.Modules ========================================================================== Module 은 여러 Method, Class, Constant들을 그룹핑 해준다. 두가지 이점이 있는데 1. Module은 'Namespace'을 제공하고, 이들간의 충돌을 막는다. 2. Mixin 을 구현할 수 있다. (뒤에 설명) ## Namespaces 큰 Ruby Program이 있을때, 자연스레 재사용코드 단위들을 묶으려 할 것이다. 이를 클래스별로, 파일들에 나눌 것이다. 하지만, 재사용코드라 해서 Class로 구분짓는 행위가 부자연스러울때가 있다. .... Module 메카니..
2007.11.13 -
[Ruby] 유니코드 확장
Ruby의 문자열은 Byte열로 구현되어있어서, 루비 문자열 객체의 메소드는 기본적으로 바이트 단위로 처리한다. 한국어와 같은 Multi-byte 문자를 처리할때 예상치 못한 결과가 발생할 수 있다. "디자인"과 같은 한글 문자열은 3글자로 구성되어있지만, 바이트 단위로는 9 바이트를 차지한다. 따라서, 바이트 기반 메소드인 "length"을 사용하면, 3 대신에 9를 리턴한다. 이때 chars라는 Proxy메소드를 사용하여, 유니코드 기반의 메소드를 지원하고 있다. 다음은 그 예이다. >> puts "디자인" 디자인 >> "디자인".length ==> 9 >> "디자인".chars.length ==> 3
2007.11.12