2014-06-19 3 views
4

저는 방금 Jruby 위에 구축 된 TorqueBox 꼭대기에 Ruby 앱을 배치하는쪽으로 관심을 옮기기 시작했습니다. 지금까지 나는 기본적으로 bundle install을 수행하고 jrubydom으로가는 도중에 각 보석들을 다루었지만 많은 부분을 다시 구현해야하기 때문에 해결해야 할 몇 시간이 걸렸습니다.Gemfile에서 네이티브 C 확장이 필요한 보석을 찾으십니까?

bundler 또는 rubygems를 호출하여 모든 보석과 해당 deps를 실행하여 원시 C 확장자가 필요한지 테스트 한 다음 그러한 목록을 반환 할 수있는 방법이 있습니까? 더 사소한 항목 중 일부를 다루거나 jruby로 이동하는 것과 관련하여 프로젝트를 수행하는 것이 가치가 있는지 여부를 알고있는 것이 좋습니다.

답변

4

JRuby Lint을 사용할 수 있습니다. C 확장이 필요한 일부 보석을 확인하고 대안 목록을 나열합니다 (this list 기준).

puts `bundle show --paths`.split("\n").select{|dep| File.directory?("#{dep}/ext") }.map{|dep| dep.split('/').last }.join(', ') 

당신은이 명령과 함께 명령 줄에이 작업을 수행 할 수 있습니다 :

기본 확장자를 가진 보석은 보통/ext 디렉토리를 가지고 있다는 사실을 바탕으로
+1

환상적입니다. 정말 감사드립니다. 정말로 그 자리를 때린다. – ylluminate

5

, 나는이 보석을 발견하는 간단한 oneliner했다
$ bundle show --paths | ruby -e "STDIN.each_line {|dep| puts dep.split('/').last if File.directory?(File.join(dep.chomp, 'ext')) }"