我可以在RubyMotion中使用kindle-highlight gem

时间:2017-02-14 10:01:17

标签: ios ruby rubygems rubymotion kindle

我试图在RubyMotion中使用kindle-highlights gem。我找到motion-bundler,这应该可以帮助我将这两者结合在一起。

根据动作捆绑器的常见问题解答,并非每个宝石都能正常工作。

  

我可以使用每个随机的Ruby gem吗?

     

不幸的是,没有。您只能使用不需要库的Ruby gem(例如psych.bundle),并且不要在运行时使用字符串求值(例如使用带字符串的class_eval)。

如果我尝试使用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)

所以我想知道的是:

  • 我可以使用这个宝石吗?
  • 这是我应该期待的错误,如果不是这样的错误吗?
  • 是否"不需要库"是什么意思,任何图书馆或只是一些,那些点亮 - 正在使用?
  • 有关如何进行的任何建议?

1 个答案:

答案 0 :(得分:1)

一些事情:

  • 只有支持Ruby 1.9的Gem才能运行RubyMotion不支持更新版本的Ruby。
  • 需要C-extension或依赖于需要C-extension的Gem的宝石不起作用
  • 带有eval的宝石不起作用

motion-bundler 仍然是一个有用的库,应该有所帮助,但你想要的宝石说它需要Ruby 2.1.0,所以我不认为它会起作用。如果您想尝试使Ruby RubyMotion兼容(没有动作捆绑器),您可以尝试遵循本教程http://blog.motioninmotion.tv/gems-for-ruby-or-rubymotion/