我有一个带有工厂方法的脚本,我想根据脚本是否从JRuby或Ruby运行,返回某个类的不同实现.有人知道我如何从 playbook 中分辨出不同吗?

我最初的 idea 是:

  • try "包含Java"并在Ruby实现失败时返回.这种方法行不通.鲁比很聪明,不管我的开始/救援/结束都会出错.

  • 用进程ID做些傻事.我宁愿避免这种情况,因为它总是让人感觉像是黑客攻击.

推荐答案

我相信你可以判断RUBY_平台常数.

Ruby相关问答推荐

在 ruby​​ 中访问嵌套哈希的元素

如何在 linux (ubuntu) 上更新 ruby​​?

在文件中搜索字符串的最佳方法是什么?

Rails:Date.today 是 UTC 吗?

Ruby:继承与类变量一起工作的代码

如何通过一组新的给定键更改哈希的所有键

线程安全:Ruby 中的类变量

如何在 ruby​​ net/http 中实现 cookie 支持?

覆盖子类中的 ruby​​ 常量,以便继承的方法使用新常量而不是旧常量?

文字数字中的下划线是什么意思?

无法在 Windows 上安装 Aptana Studio 3.6

在命名包含多个单词的Ruby 时,是否应该使用破折号或下划线?

带有添加和删除参考的 Rails 迁移

如何理解 class_eval() 和 instance_eval() 的区别?

安装 Jekyll 时出错 - 本机扩展构建

为什么 __FILE__ 大写而 __dir__ 小写?

为什么这个 Ruby 对象同时具有 to_s 和 inspect 似乎做同样事情的方法?

如何在 Ruby 中对数组进行分块

Ruby:如何为数组和哈希制作 IRB 打印 struct

你可以在Ruby中使用分号吗?