标签: jruby

#Hash>的未定义方法`bytesize'

我想将博客标签存储和更新到GAE中的数据存储区.当我运行该代码时,我收到此错误:

javax.servlet.ServletContext log: Application Error
/base/data/home/apps/yet-another-problem/1.334886515480009498/WEB-INF/gems/gems/sinatra-0.9.2/lib/sinatra/base.rb:45:in `each': undefined method `bytesize' for #<Hash:0x86684c> (NoMethodError)
Run Code Online (Sandbox Code Playgroud)

代码

class Labels
   class LabelData
    include Bumble
    ds :blog_element_labels
   end

  def update
    response = URLFetch.get($label_url)
    result = response.to_s
    result_headless = result.gsub("listLabels(",'')
    pure_result = result_headless.gsub(");",'')
    json_to_yaml = YAML::load(pure_result)['entry']['category']

    json_to_yaml.each do |label|
    @label = LabelData.find(:blog_element_labels => label['term'])
    @label = LabelData.create(:blog_element_labels => label['term']) if @label.nil?
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

并由cron job运行'/ job'

get '/job' do
  @labels = Labels.new
  @labels.update
end
Run Code Online (Sandbox Code Playgroud)

问题出在哪儿?请教我.

但是当第一次运行cron作业时,标签数据被存储,甚至发生错误.无法更新数据.

ruby google-app-engine jruby sinatra

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

Duby和Juby有什么区别,为什么我需要其中任何一个?

根据Charles Nutter的说法,Duby

一种使用Ruby语法和Java类型系统的静态类型语言.迪比支持所有Ruby的文字,使用本地类型推断(唯一的参数类型必须声明),并以最快的速度运行,如Java(因为它产生几乎相同的字节码).但随着invokedynamic的出现,Duby需要一个玩伴.

1.什么是invokedynamic,为什么Duby"需要一个玩伴"?

另一方面,朱比

打算基本上像Duby,因为它使用Java的类型和Ruby的语法.但它利用新的invokedynamic操作码是100%动态的.Juby是一个动态的Duby,或者是一个带有Ruby语法的动态Java.理解起来并不难.

实际上很难理解.

有人可以详细说明这种区别是什么吗?

3.为什么我们需要(需要!)另一种与Ruby相关的语言?或者说,还有两种与Ruby相关的语言?

ruby java jruby

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

将哈希数组转换为csv文件

如何将哈希数组转换为.csv文件?

我试过了

    CSV.open("data.csv", "wb") do |csv|
      @data.to_csv
    end
Run Code Online (Sandbox Code Playgroud)

但它是空白的

csv ruby-on-rails jruby

20
推荐指数
4
解决办法
2万
查看次数

JRuby性能

我有一个Rails 3.2.2应用程序,我希望使用JRuby 1.6.7(1.9.2模式)运行.

我有一个在MRI ruby​​ 1.9.3中运行的示例应用程序,一个典型的请求在~40ms内返回:在36ms完成200 OK(浏览次数:27.5ms | ActiveRecord:8.2ms)

在JRuby下使用相同的请求可能会慢3到20倍,具体取决于页面.对于与上述相同的操作,需要~180ms:180ms内完成200 OK(浏览次数:153.0ms | ActiveRecord:24.0ms)

这是正常的性能差异吗?我已经读过JRuby与MRI的速度大致相等.结果保存在我的Mac和Windows服务器上(不幸的是,它需要运行).使用在Tomcat下运行的Warbler将其打包也同样缓慢.

以上时间来自为测试JRuby而创建的基本rails应用程序.在更复杂的应用程序上,时间甚至更远.在该应用程序上,有些页面上运行了更多的ruby代码.似乎页面越依赖于ruby,我观察到的性能差异就越大.我没有对JRuby进行调整,因为我不知道从哪里开始.

所以我的问题是:这是正常的吗?我该怎么做来调整JRuby?

jruby jrubyonrails

18
推荐指数
1
解决办法
6704
查看次数

如何在jRuby中启用C扩展支持?

我想安装一个gem,但是我收到以下错误:

Building native extensions.  This could take a while...
ERROR:  Error installing twitter-login:
        ERROR: Failed to build gem native extension.

        C:/nwcloud/jruby-1.7.2/bin/jruby.exe extconf.rb
NotImplementedError: C extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS or modify .jrubyrc to enable.
Run Code Online (Sandbox Code Playgroud)

我也用同样的问题阅读了这个问题,但我甚至不知道如何使用这三个选项启用支持,因为我不知道如何传递-Xcext.enabled=true给JRuby或设置JRUBY_OPTS或修改.jrubyrc来启用.

任何人都可以帮我解决我的初学者问题吗?

ruby configuration rubygems jruby

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

如何配置JRuby代码?

我想介绍一下我的JRuby应用程序.对于MRI,我总是使用ruby-prof,但我认为这不适用于JRuby.我不想使用Java-profiler,因为它不会给我ruby行号.

有一个jruby教授?

profiling jruby

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

java.lang.OutOfMemoryError:Java堆空间

在使用Jruby的时候,我收到了这条消息.

Complete Java stackTrace
java.lang.OutOfMemoryError: Java heap space
Run Code Online (Sandbox Code Playgroud)

怎么解决?

java jruby

16
推荐指数
4
解决办法
2万
查看次数

使用JRuby加快RSpec速度

我对整个JRuby世界都很陌生.我在一个非常大的测试套件上使用RSpec.我希望能够经常运行规范,但JVM需要很长时间才能启动它,这将成为一个真正的时间流失.

有没有办法让JVM保持运行?或者通过JRuby让规格更快地运行的方法?

rspec ruby-on-rails jruby

16
推荐指数
1
解决办法
4752
查看次数

JRuby on Rails:在类路径中添加一个文件夹

我正在尝试将整个文件夹添加到我的Rails应用程序的JRuby 1.5类路径中.在JRuby的维基提出以下建议:"......添加config目录到JRuby的类路径config/environment.rb:"

$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, 'config'))}/"
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎不起作用.无论我是在Rails::Initializer.run块之前,之后还是之内放置它都没关系.无论如何,我得到:

/home/sean/src/sbruby/seo/config/environment.rb:45:NoMethodError: undefined method `<<' for nil:NilClass
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/rails/backtrace_cleaner.rb:2:NameError: uninitialized constant ActiveSupport::BacktraceCleaner
/home/sean/apps/jruby/jruby-1.5.0/lib/ruby/gems/1.8/gems/rails-2.3.7/lib/console_with_helpers.rb:5:NameError: uninitialized constant ApplicationController
Run Code Online (Sandbox Code Playgroud)

例如,我正在尝试在RAILS_ROOT被调用下添加一个文件夹resources/foobar,因此我将以下内容添加到environment.rb:

$CLASSPATH << "file:///#{File.expand_path(File.join(RAILS_ROOT, "resources", "foobar"))}/"
Run Code Online (Sandbox Code Playgroud)

同样的错误.

使用Rails将文件夹添加到JRuby类路径的正确方法是什么?

ruby-on-rails jruby classpath jrubyonrails

16
推荐指数
1
解决办法
6990
查看次数

为什么在Ruby中将Regexp对象视为“虚假”?

Ruby有“的普遍想法感实性 ”和“ falsiness ”。

Ruby 确实有两个特定的布尔对象类,TrueClassFalseClass,其中单例实例分别由特殊变量true和表示false

但是,真实性虚假性不仅限于这两个类的实例,该概念是通用的,适用于Ruby中的每个对象。每个对象都是真实的虚假的。规则很简单。特别是,只有两个对象是虚假的

每个其他对象都是真实的。这甚至包括在其他编程语言中被认为是虚假的对象,例如

这些规则是语言内置的,并且不是用户定义的。没有to_bool隐式转换或类似的东西。

这是ISO Ruby语言规范的引文:

6.6布尔值

一个对象可以分为真对象假对象

只有falsenil是伪造的对象。false是该类的唯一实例FalseClass(请参见15.2.6),false表达式 …

ruby regex boolean yarv jruby

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