标签: jruby

为什么sqlite 1.2.3 gem正确安装用于MRI但不适用于JRuby?

如果我打电话:

gem install sqlite3-ruby --v 1.2.3
Run Code Online (Sandbox Code Playgroud)

它适用于MRI

但如果我打电话:

jruby -S gem install sqlite3-ruby --v 1.2.3
Run Code Online (Sandbox Code Playgroud)

它说它正在尝试构建一个原生扩展(对于Windows)而且失败了.

为什么JRuby和MRI在处理宝石的方式上有所不同?

ruby windows installation rubygems jruby

2
推荐指数
2
解决办法
2788
查看次数

有选择地沉默JRuby警告

我在JRuby下使用ruby-mysql库并获得以下警告:

/mysql/protocol.rb:530 warning: GC.disable does nothing on JRuby

有没有办法让JRuby停止抱怨这个?

ruby warnings jruby

2
推荐指数
1
解决办法
708
查看次数

Maveryx与FitNesse vs Robot在Mac,Windows和Linux上进行桌面GUI测试

请比较和对比至少两个这些工具在Mac OS X,Windows和Linux上自动测试GUI应用程序的适用性.

被测试的应用程序可能会使用JRuby和Swing编写,以防这是您评估的一个因素.

布朗尼指出在你的答案中讨论所有三个工具:)

testing user-interface automated-tests cross-platform jruby

2
推荐指数
1
解决办法
1620
查看次数

Ruby:Rails:MRI和JRuby

我已经在Ubuntu 11.04上将我的Rails 3.0.10/MRI应用程序移植到Ubuntu 11.04上的JRuby 1.6.4.我的目标是到达一个我必须执行以下操作才能在JRuby下运行应用程序的地方.

railsapp1> rbenv local jruby-1.6.4
railsapp1> rails server
Run Code Online (Sandbox Code Playgroud)

并让应用程序在MRI下工作,

railsapp1> rbenv local 1.9.2-p290
railsapp1> rails server
Run Code Online (Sandbox Code Playgroud)

这个问题的第一部分是解决宝石问题.为了使这个过程在没有代码更改的情况下工作,我在Rails Gemfile中执行了以下操作

platforms :mri do
    gem 'mysql2', '~>0.2.11'
end
platforms :jruby do
    gem 'jruby-openssl'
    gem 'activerecord-jdbcmysql-adapter'
end
Run Code Online (Sandbox Code Playgroud)

这些gem语句是通过使用不同的MRI/JRuby和SQLite/MySQL组合创建虚拟轨道应用程序,然后从生成的Gemfiles中为每个组合获取gem语句而使用暴力方法获得的.

尽管如此,这并不是很好.我的config/database.yml文件如下所示:

development:
    adapter: mysql2
    database: doodad
    username: doodad
    password: doodad
    host: localhost
Run Code Online (Sandbox Code Playgroud)

此config/database.yml文件仅适用于MRI版本.对于JRuby版本,config/database.yml文件如下所示:

development:
    adapter: mysql
    database: doodad
    username: doodad
    password: doodad
    host: localhost
Run Code Online (Sandbox Code Playgroud)

即文件之间的唯一区别是数据库适配器的名称(mysql vs mysql2).有没有办法告诉database.yml文件或系统初始化程序根据Ruby环境是MRI还是JRuby选择适配器?

ruby mysql ruby-on-rails jruby

2
推荐指数
1
解决办法
1164
查看次数

在ruby中编写一个DSL方法,它将创建一个带参数的方法

我正在尝试为后台工作者类写一个DSL,我有点卡住尝试完成某些事情.

理想情况下,我应该能够像以下一样写一个工作者......

job :job_name do |param1, param2|
  puts param1
end
Run Code Online (Sandbox Code Playgroud)

现在,在我的工人超类课程中,我正在做这样的事......

class Worker
  def self.job(job_name, &block)
    define_method job_name do
      # stuck
    end
    # do some additional stuff here
  end
end
Run Code Online (Sandbox Code Playgroud)

想要做的是定义一个方法,该方法可以访问原始作业调用中使用的块参数,因此我可以通过以下方式解除此作业:

Worker.new.job_name(param1, param2)
Run Code Online (Sandbox Code Playgroud)

创建的方法应该在功能上等同于:

def job_name(param1, param2)
  puts param1
end
Run Code Online (Sandbox Code Playgroud)

这有任何意义吗?希望有人能指出我正确的方向.

ruby dsl metaprogramming jruby

2
推荐指数
1
解决办法
431
查看次数

验证方法调用仅适用于创建,而不适用于更新

我在我的模型中有验证方法

def validate
  super    
  if some condition
    errors.add('', 'some text')
  end
end
Run Code Online (Sandbox Code Playgroud)

此方法调用Create和Update.我不想打电话给Update.我怎样才能做到这一点?

我正在使用rails2.3.11和jruby.

更新:我可以使用这个validate :custom_validation, :on => :create,但他们如何调用创建和更新?

我也检查了一下validate_on_create,但是当我打电话的时候我仍然没有想到validate

ruby ruby-on-rails jruby jrubyonrails ruby-on-rails-2

2
推荐指数
1
解决办法
3050
查看次数

JRuby 1.7.0不会在内存充足的情况下安装捆绑器

我安装了jruby

rvm install jruby-1.7.0
Run Code Online (Sandbox Code Playgroud)

当它试图创建gemsets时内存不足所以我开始尝试使用新版本安装bundler这就是我得到的

~>gem install bundler
Error: Your application used more stack memory than the safety cap of 2048K.
Specify -J-Xss####k to increase it (#### = cap size in KB).
Specify -w for full StackOverflowError stack trace
Run Code Online (Sandbox Code Playgroud)

所以我向上移动了内存,我仍然没有任何大量的内存

~>JRUBY_OPTS=-J-Xss1024m gem install bundler
Error: Your application used more stack memory than the safety cap of 1024M.
Specify -J-Xss####k to increase it (#### = cap size in KB).
Specify -w for full StackOverflowError stack trace
Run Code Online (Sandbox Code Playgroud)

怎么可能这还不够我运行应用程序不到那个

jruby jrubyonrails

2
推荐指数
1
解决办法
1398
查看次数

合并特定文件夹中的所有JSON文件

我有一个包含许多JSON文件的文件夹.

我想获取.json文件名结尾的所有文件,_LAST.json并将它们组合成一个JSON文件.要处理的每个文件都命名为:

Bill_LAST.json
Jane_LAST.json
Kitty_LAST.json
Run Code Online (Sandbox Code Playgroud)

Bill_LAST.json 好像:

[{

    "Date": "2012-11-19",
    "Name": "Bill",
    "Age": 54,
    "Sex": "M"

}]
Run Code Online (Sandbox Code Playgroud)

ruby jruby

2
推荐指数
1
解决办法
1924
查看次数

Ruby和JRuby方法链的区别

今天我开始测试JRuby.我是一名Java开发人员,所以我乍看之下就喜欢这种混合物了.
然后编码一点我发现了差异,我想知道这是否正确.
我正在使用jruby 1.7.2和ruby 1.8.7进行测试.

在一个jruby控制台我输入:

c = []
c.class #=> Array
c << 9 << 8 << 0 << 2
c.to_s #=> "[9, 8, 0, 2]"
Run Code Online (Sandbox Code Playgroud)

现在在我输入的ruby控制台中输入:

c = []
c.class #Array
c << 9 << 8 << 0 << 2
c.to_s #=> "9802"
Run Code Online (Sandbox Code Playgroud)

这里可以发生什么,为什么结果在两种情况下都不一样?

ruby jruby

2
推荐指数
1
解决办法
115
查看次数

JRuby安装导致Java路径错误

我已经下载了jruby-bin-ion 1.7.8软件包并将其解压缩到C驱动器中。我已经设置了PATHJRUBY_HOME环境变量。已安装Java,并为Java设置了路径和环境变量。Java程序运行良好。

当我jruby -version从命令提示符运行命令时,它给我以下错误:

Cannot locate Java installation, specified by JAVA_HOME:
C:\Program Files (x86)\Java\jdk1.7.0_25;
Run Code Online (Sandbox Code Playgroud)

jruby

2
推荐指数
1
解决办法
1085
查看次数