Ruby   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了使用来自Clojure的gem中提供的JRuby类大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是一个相当简单的需要在Clojure内使用 Ruby类.复杂的因素是该类是以宝石提供的.最佳方法是按照以下方式设置我的Leiningein项目文件:
(project foo ""
  ...
  :dependencies [[clojure ...]
                 [jruby ...  ]])

同样,我更愿意将gem及其依赖项检查到本地repo目录中.因此,从我的理想用途就是:

(ns bar.baz
  (require [jruby.something :as jruby])

(def obj (jruby/CreateAnInstance "TheGemClass"))

(def result (jruby/CallAMethod obj "method_name" some args))

谢谢.

解决方法

以下是使用JRuby和Clojure获得 hello-world gem运行的几个步骤的简短列表和几个参.实际上,这些步骤只是简要介绍了引用的材料如何组合起来(带有一些project.clj条目).第一个参文献 Haml on Clojure Web App在Yoko Harada(@ yokolet的)博客上,使用了一种稍微不同的方式来调用JRuby,但是包括关于如何编写require(“…”)行的关键说明,用于JRuby和gems类路径.

>将[org.jruby / jruby-complete“1.6.7.2”]添加到您的依赖关系中,并让Leiningen获取依赖关系.
>在项目根目录中创建一个gems目录并将其添加到project.clj中的resource-paths这需要Leiningen 2.请参阅Leiningen source以获取正确的格式.
>说

# see reference 4
GEM_HOME=gems GEM_PATH=gems java -jar ~/.m2/repository/org/jruby/jruby-complete/1.6.7.2/jruby-complete-1.6.7.2.jar -S gem install Hello-world

在项目根.
>按上述设置GEM_HOME和GEM_PATH启动您选择的REPL服务. (我用lein2 swank测试了)
>在REPL说下面的内容:

;;; see reference 2,first snippet
(let [runtime (JavaEmbedUtils/initialize (list))
      evaler  (JavaEmbedUtils/newRuntimeAdapter)]
  (doseq [ruby-expr ["require('rubygems')"
                     "require('gems/Hello-world-1.2.0/lib/Hello-world')"]]
    (.eval evaler runtime ruby-expr)))

看到零返回值,以及打印到终端的几行,REPL服务已经开始.

文献:

> Haml on Clojure Web App on Yoko Harada(@ yokolet’s)博客
Nick Sieger博客上的JRuby 1.1.6: Gems-in-a-jar
> DirectJRubyEmbedding在JRuby Wiki项目Kenai
> consuming gems from jruby-complete在这里SO(注意评论)

大佬总结

以上是大佬教程为你收集整理的使用来自Clojure的gem中提供的JRuby类全部内容,希望文章能够帮你解决使用来自Clojure的gem中提供的JRuby类所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。