Windows, Mac에 Ruby Application 배포

8068 단어 JRubyjrubyfxRubyrawr
여러분이 어렵게 만들어낸 루비 어플라이언스는 어쨌든 다양한 사람들이 사용하길 원하죠?
그렇긴 하지만 루비유저에게 부탁gem install hoge하면 전달이 되지만 프로그램이 아닌 유저에게는 그렇게 하지 않는다. 일반적 유저로는 .exe형태나 .app형태가 아니면 문턱이 높다.
그럼 Rawr를 사용하여 루비애플리케이션.exe.app하세요!
웹에서 ApplicationRawr에 관한 기사가 몇 편 발견됐지만, 젬 리브라리를 패키지화하는 방법에 대해서는 제대로 작동할 수 있는 것을 찾지 못해 기사로 정리하기로 했다.

Requirement

  • JRuby >= 1.7.0
  • javac
  • Rake
  • JRuby가 필요하니까 환경부터 정돈하세요.
    이번에는 사용rbenv을 전제로 진행한다.

    JRuby 가져오기

    $ rbenv --version
    # rbenv 0.4.0-98-g13a474c
    $ rbenv install jruby-1.7.12
    $ rbenv rehash
    

    Rawr 도입

    $ jruby -S gem install rawr --source http://gems.neurogami.com
    
    소스를 지정해야 합니다.

    Hello World Project 제작


    그럼 간단한 서브젝트부터 시작해서 Rawr 작동 여부를 확인합니다.

    Rawr Project 설치

    $ mkdir hello_world
    $ cd hello_world
    $ rbenv local jruby-1.7.12
    $ jruby -S rawr install
    $ ls
    # Rakefile  build_configuration.rb  lib/  src/
    
    이제 프로젝트의 skeleton이 완료되었습니다.
    우선, 이번 실행 절차는 hello_world.rb입니다. 제가 그것을 통지Rawr하겠습니다.
    $ vim build_configuration.rb
    
    편집은 다음과 같습니다.
    이렇게 하면 srcdirectory에 hello_world.rb라고 쓰면 Rawr 라벨을 붙여드릴게요!

    Hello World Program 제작 및 확인

    $ vim src/hello_world.rb
    $ jruby src/hello_world.rb
    # Hello world!
    

    Packaging

    $ jruby -S rake rawr:jar
    $ java -jar package/jar/rawr_test.jar
    # Add 'src/' to $:
    # Hello world!
    
    이때 배포package/jar하면 자바가 실행 가능한 환경에서 HelloWorld Program을 실행할 수 있다.
    .exe.app화는 아래 명령을 통해 집행할 수 있다.
    note: 확인되지 않음
    $ jruby -S rake rawr:bundle:exe
    $ jruby -S rake rawr:bundle:app
    
    이렇게 하면package/window,package/osxdirectory를 나눠주면 Hello World Program은 각 OS에서 간단하게 실행할 수 있다.

    Gem 종속 프로젝트 작성


    이어 제작require 'hoge' 등 젬에 의존하는 프로그램을 시도해 본다.
    이번에는 예로 사용dydx.

    Configuration 및 Program 변경 사항

    $ vim build_configuration.rb
    $ mv src/hello_world.rb src/dydx_test.rb
    $ vim src/dydx_test.rb
    $ jruby -S gem install dydx
    $ jruby src/dydx_test.rb
    # ( 2 + ( 3 * a ) )
    

    Gem 의존 로드


    유감스럽게도 RawrGemGemfile에 의존하는 문제를 해결하지 못하고 그것대로 하지 않을 것이다.
    수동으로 library가 되는 루비 응용 프로그램을 알려야 합니다.
    $ jruby -S gem install -i lib/ruby dydx --no-rdoc --no-ri
    $ vim build_configuration.rb
    
    그리고 아까처럼 포장해 주세요.
    $ jruby -S rake rawr:clean
    $ jruby -S rake rawr:jar
    $ java -jar package/jar/rawr_test.jar
    # Add 'src/' to $:
    # Add 'lib/ruby/gems/dydx-0.1.3141/lib/' to $:
    # ( 2 + ( 3 * a ) )
    

    GUI Application 게시


    그러면 이렇게 나눠줄 수 있지만 일반 사용자들에게는 콘솔 앱이 이상적이지 않다.
    따라서 간단한 GUI Application을 만듭니다.
    루비로 GUI Application을 만드는 방법은 많지만 추천JRubyFX합니다.JRubyFXJavaFX 2.2+의 wrapper로 일하지만 루비method_missing처럼 동적 해결 방법으로 대응JavaFX한다.
    이번엔 안 쓰지만 .fxml 형식에 따라 UI와 근거.css에 따라 레이아웃 등을 변경할 수 있어 쉽게 GUI 애플리케이션을 만들 수 있을 것으로 본다.
    자세한 내용은 Getting StartedSample Code를 보십시오. 또한 JavaFX 자체JavaFX2로 시작하는 GUI 개발가 유용하다고 생각합니다. 이 ITpro의 introduction을 한 번JRubyFX개작하면 GUI Application을 만들 수 있을 것 같습니다.

    JRubyFX 가져오기 및 Program 만들기

    $ jruby -S gem install jrubyfx
    $ jruby -S gem install -i lib/ruby jrubyfx --no-rcod --no-ri
    $ vim build_configuration.rb
    $ mv src/dydx_test.rb src/jrubyfx_test.rb
    $ vim src/jrubyfx_test.rb
    $ jruby src/jrubyfx_test.rb
    
    이렇게, 나는 이런 화면이 나타날 것이라고 생각한다.

    그럼 또 한결같은 Packaging.
    $ jruby -S rake rawr:clean
    $ jruby -S rake rawr:jar
    $ java -jar package/jar/rawr_test.jar
    # Add 'src/' to $:
    # Add 'lib/ruby/gems/jrubyfx-1.1.0-java/lib/' to $:
    # Add 'lib/ruby/gems/jrubyfx-fxmlloader-0.3-java/lib/' to $:
    
    나는 같은 화면을 표시하고 싶다.


    저는 Main PC를 Ubuntu로, Windows는 Media Player로만 사용하지만 Linux에서 제대로 작동하지 않는 트위터 Celient가 고민입니다.
    vim like 조작이 가능한 트위터 클라이언트Hotot가 있지만, 크롬 플러진 개발이 끝나 여의치 않다.
    어쩔 수 없이 루비로 직접 하고 싶었어요. Ruby로 GUI 앱을 만들면 JRuby+JavaFX+Rawr로 결정! 이 글을 발견했어요. 빔의 블로그라서 이 방면에서 하고 싶었어요.
    그러나 rawr 팩킹에 걸려 넘어져 공식적으로 물어볼 수밖에 없었고, 결국 젬에 의존한 해결이 잘 안 풀리는 것 같아 이 같은 방법을 시도했고, 결과가 순조롭게 진행됐기 때문에 어떻게든 기사로 써야 했다.
    또 이 동기가 된 트위터 클라이언트 온 리눅스의 프로젝트가 바로 이것이다Rubbitter
    그나저나 이전 블로그처럼 웹뷰를 표시할 수도 있다는 것도 확인했다.
    $ vim src/jrubyfx_test.rb
    $ jruby -S rake rawr:clean
    $ jruby -S rake rawr:jar
    $ java -jar package/jar/rawr_test.jar
    

    좋은 웹페이지 즐겨찾기