POI Ruby Bindings
글쓴이: atie / 작성시간: 토, 2005/05/14 - 8:32오전
3달쯤 된 이야기긴 하나 새소식? (아니면 나홀로 뒷북...)
오랫만에 POI 프로젝트에 들렸더니 이게 눈에 확 들어오더군요. (이제서야 ruby 보는 재미가 솔솔해서...)
자바로 된 POI 라이브러리를 ruby에서 쓸 수 있도록 바인딩을 제공한다는 이야기인데... ruby에서 Excel 파일을 직접 쓸 수 있다는 것도 매력이겠지만 어떻게 했을까가 궁금해서 조금 찾아 보았습니다.
방법은 gcj를 써서 POI를 native 라이브러리로 컴파일하고, Ruby Wrapper를 만들기 위해 swig을 쓴다는 군요. PyLucene 프로젝트에 영감을 받았다고 하는데, 간단한 것 하나 해 봐야겠다는 생각이 들게 합니다.
재미겠죠?
File attachments:
첨부 | 파일 크기 |
---|---|
![]() | 125.98 KB |
Forums:
오오.. ㅎㅎ
오오.. ㅎㅎ
ㅡ_ㅡ;
[url]http://www.python.org/pycon/2005/pa
http://www.python.org/pycon/2005/papers/27/paper.txt
이것 이상의 자세한 자료를 가지고 계신 분? 또는, 공개된 것이 있나요?
----
I paint objects as I think them, not as I see them.
atie's minipage
역시 소스를 보는게 가장 이해가 빠르게 잘 되는군요.[url]ht
역시 소스를 보는게 가장 이해가 빠르게 잘 되는군요.
http://cvs.apache.org/viewcvs.cgi/jakarta-poi/src/contrib/poi-ruby/
----
I paint objects as I think them, not as I see them.
atie's minipage
PyLucene측 자료의 설명이 잘 되어 있군요. SWIG으로 루비 래퍼
PyLucene측 자료의 설명이 잘 되어 있군요. SWIG으로 루비 래퍼를 만들려면 C/C++ 헤더 파일이 제공되어야 하는데, gcjh라는 것이 C++ 헤더 파일을 만들어주는군요. POI처럼 규모가 큰 프로그램에는 확실히 SWIG 같은 자동화 툴을 쓰는 게 좋겠죠. 규모가 그리 크지 않은 프로그램이라면, 루비 확장 API를 직접 이용하는 것도 좋을 거라 생각합니다. 루비 확장 인터페이스가 상당히 깔끔한데다, C 레벨에서 가비지 컬렉션 고려할 일도 거의 없고 해서 나름대로 재미있었습니다. 굳이 GCJ를 사용해야 할 필요를 못 느낀다면, rjb(Ruby Java Bridge)를 이용해서 루비에서 손쉽게 자바 클래스를 불러올 수 있습니다.
----
http://nohmad.tumblr.com/
[quote="atie"]역시 소스를 보는게 가장 이해가 빠르게 잘 되는
소스를 보고 직접 poi4r.so를 gcj4로 빌드해 보았습니다. poi-2.0으로는 잘 되고, 아쉽게도 poi-2.5.1로는 make 시에 에러가 나는군요.
스샷을 올립니다.
----
I paint objects as I think them, not as I see them.
atie's minipage