问题标签 [opalrb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
326 浏览

ruby - 嵌入 ruby​​ gosu 游戏以在浏览器中玩

我玩过一些 gosu 教程来使用我的 mac 创建一个简单的 gosu 游戏。我按照https://www.libgosu.org/ruby.html中的说明进行操作

我的问题是:可以使用诸如https://github.com/opal/opal-browser之类的东西使用宝石“蛋白石”将 gosu 游戏设置为在网站上运行

Opal 编译 game.rb 文件但不添加 gem。所以我得到一个错误,找不到需要文件。

我想设置一个 index.html 页面并在 Web 浏览器中运行游戏,并使用一个运行 bundle exec ruby​​ game.rb 的按钮,而不是从控制台运行文件。

这个问题Ruby: Running Gosu game from a web browser可能问过同样的问题,但我的问题是关于使用 Google Native Client 工具来解决它。

0 投票
1 回答
217 浏览

opalrb - 使用 Opal 编译并随后在 Node 中运行时如何使用 require_relative?

我对蛋白石完全陌生。我只是在测试如何使用它,方法是在本地文件中编写简单的 Ruby 代码,使用 编译它opal -c test.rb > test.js,然后使用node test.js. 当我想要的所有代码都在 test.rb 中时,这可以正常工作。但是,如果第一行有 test.rb,require_relative 'other_file'并且 other_file.rb 与 test.rb 存在于同一目录中,则使用 node 执行时会失败。我收到一条这样开头的错误消息:

表明对我来说 require_relative 应该没有问题。我没有收到任何编译时错误。我也尝试过将 other_file.rb 独立编译为 js,但这并没有帮助。我只能假设我误解了一些事情。我需要做什么才能使其正常工作?

最终,我的目标是尝试使用 Opal 将整个 ruby​​ 库/gem(由很多文件组成)编译为 JavaScript。

0 投票
1 回答
47 浏览

opalrb - 如何编写 opal 库?

我想编写 opal 库来为我必须使用的一些本机 javascript 提供更好的界面。但是,我不知道从哪里开始。我有一些东西包含在我当前的代码中,但不知道如何将它变成单独的“模块”或者什么术语不使用蛋白石。

开始这样的事情的共同蓝图是什么?还是我应该从那里挖掘opal-browser并弄清楚?

0 投票
1 回答
66 浏览

javascript - 如何将 ruby​​ - Rspec 转换为 js 测试 - opal gem

在我的 Ruby on Rails 应用程序中,我使用opal gem将 ruby​​ 代码转换为 JS。如何将 Rspec 测试也转换为 JS 测试 - 蛋白石。以及如何运行那些 JS/opal 测试?

感谢

0 投票
1 回答
60 浏览

ruby - 将 ruby​​ 编译成 js 时出现 JS 错误 Opal.const_get_relative is not a function

我有一个由 Opal 翻译成 JS 的 Ruby 函数,它一直运行良好,但突然它不再工作了。JS 控制台给了我这个错误信息

原始的 Ruby 代码是这样的

翻译成这个

知道出了什么问题吗?

0 投票
1 回答
81 浏览

ruby-on-rails - 模型未保存时在客户端获取错误文本

我正在使用 Hyperstack.org 框架,因此使用 Opal 编译的 Ruby 代码。Hyperstack 与 Rails 的集成在客户端创建了一些模型的表示,我对响应中的错误验证有疑问。

使用验证器保存模型时,当触发其中一个验证器时,我无法在承诺响应中获得完整的错误消息。

在这段代码中:

第一个 puts 返回#ActiveModel::Errors,但我似乎无法使用该模型的方法。

我可以看到这个测试:https://github.com/hyperstack-org/hyperstack/blob/a09bc601b3ad289c9f75156416ed39dff88059c9/ruby/hyper-model/spec/batch1/misc/errors_spec.rb#L340所以我希望这是工作,一定是我!

另外,我注意到对 promise 的 JSON 响应实际上包含错误消息:

任何帮助表示赞赏!

0 投票
2 回答
82 浏览

ruby-on-rails - 将模型传递给组件

使用 hyperstack.org 框架,如何在更改正在渲染的模型时减少渲染周期?

当将正在渲染的模型传递给改变该模型的组件时,渲染该模型的所有组件都会在任何突变时重新渲染。这很好,除非突变是每次按键,因为这意味着所有组件都会在每次按键时重新渲染。

例如,如果我们有这张表:

而这个组件(用于编辑和新建):

基础表(来自第一个代码示例)在每次按键时重新呈现,原因如下:

由于重新渲染的数量,这导致打字看起来很慢。

我应该为每个字段保留一个本地状态变量,然后只在保存时改变模型字段吗?

0 投票
1 回答
35 浏览

ruby-on-rails - 有没有办法断开控制台消息与 Hyperstack 消息队列的连接?

在 Hyperstack 中,每个状态更改都通过 websocket 机制进入消息队列,以通知每个应用程序客户端模型/应用程序状态更改。因此,如果您从我的浏览器会话中更新模型,当时连接的其他所有人都可以在他们的会话中看到它(如果有必要的权限)。

这甚至可以通过控制台“会话”完成。您从 Rails 控制台更改模型,更改会自动传播到所有连接的 Web 客户端。

为此,Web 应用程序部分必须是可操作的(即 Rails 服务器,必须启动并运行)。

问题是在两种情况下您可能不希望控制台更新传播到客户端:

  1. 当 rails 服务器出于任何原因无法运行并且您希望通过其控制台与应用程序交互时(直到 rails 服务器再次启动)

  2. 您希望通过控制台或 rake 任务执行批量更新,并且不希望让客户了解情况的开销。

有没有办法从控制台或某种切换方法快速关闭消息传递?

0 投票
1 回答
57 浏览

ruby - Hyperstack 和 MaterialUI 抽屉切换状态导致抽屉反复打开和关闭

我正在 Hyperstack 项目中使用 MaterialUI 实现标题栏和菜单抽屉。我有两个组件,一个Header组件和一个Menu组件。该Menu组件是可扩展的Drawer。我将状态存储在Header组件中,并将它和一个处理程序传递给Menu组件,以在单击抽屉关闭按钮时切换抽屉状态。出于某种原因,抽屉只是快速而反复地打开和关闭。

在我实现关闭按钮之前,抽屉打开得很好。我尝试将状态向上移动到主应用程序组件并将其一直向下传递,但它会产生相同的结果。我尝试在组件上设置一个类函数并Header从组件内调用它,Menu而不是传入事件处理程序。

Header组件_

Menu组件_

我希望抽屉在打开按钮单击时打开并在单击关闭按钮时关闭,但它只是非常迅速地打开和关闭。

0 投票
1 回答
111 浏览

ruby-on-rails - 我将如何在 Hyperstack 组件中使用 React-Bootstrap?

我有一个基本的 Hyperstack 应用程序,并想对其进行样式设置。

我可以与React-Bootstrap集成吗?这是一种推荐的方法,还是我应该看看其他框架(例如Material UI?)

任何指向文档或示例代码的指针将不胜感激!