2017-02-14 60 views
0

我試圖在RubyMotion中使用kindle-highlights寶石。我發現motion-bundler,這應該幫助我將這兩者結合在一起。我可以使用RubyMotion的kindle-highlight寶石

根據來自motion-bundler的FAQ,不是所有的寶石都可以工作。

Can I use every random Ruby gem available?

Unfortunately, no. You can only use Ruby gems which do not require libraries (e.g. psych.bundle) and do not use string evaluation at runtime (for instance using class_eval with a String).

如果我嘗試使用Kindle的-higlights我得到uninitialized constant錯誤:

(main)> 2017-02-14 10:13:41.606 HelloMotion[60710:1987881] app_delegate.rb:26:in `application:didFinishLaunchingWithOptions:': uninitialized constant AppDelegate::KindleHighlights (NameError) 2017-02-14 10:13:41.610 HelloMotion[60710:1987881] *** Terminating app due to uncaught exception 'NameError', reason: 'app_delegate.rb:26:in `application:didFinishLaunchingWithOptions:': uninitialized constant AppDelegate::KindleHighlights (NameError)

所以我想知道的是:

  • 我可以用這個寶石?
  • 這是我應該期待的錯誤,如果它不是爲了?
  • kindle-highlights正在使用的「不需要圖書館」的意思,任何圖書館或只是一些?
  • 關於如何進行的任何建議?

回答

1

幾件事情:

  • 只有支持Ruby 1.9的將工作RubyMotion不支持的Ruby的較新版本的寶石。需要一個C的擴展或取決於寶石
  • 寶石,需要一個C的擴展將無法正常工作
  • 寶石與EVAL將無法正常工作

運動打捆仍然是一個有用的庫和應該有所幫助,但是你想要的寶石說它需要Ruby 2.1.0,所以我認爲它不會起作用。如果你想嘗試使寶石RubyMotion兼容(沒有運動打包機),你可以試試以下教程http://blog.motioninmotion.tv/gems-for-ruby-or-rubymotion/

相關問題