Does anyone know how tempfile.rb is handled in JRuby. It is in Ruby but not in JRuby.
Anyone got anyideas?
Cheers
Eef
You can still "require 'tempfile'" and it will work.
In JRuby, Tempfile is implemented in Java. We were able to improve the performance substantially, and avoid the buggy stdlib version in the process.
Related
I am working on choosing and adopting a static site generator.
My understanding is that Jekyll is the most popular one. I learned that Jekyll is based on Ruby language.
I do not have any experience with Ruby and it is not on my Career path. I am very much a .NET and C# developer.
Do I need to know Ruby in order to use Jekyll efficiently? Or should I compromise and adopt a less popular static site generator that is based on .NET platform?
Update after having good answers here and some research
I think we have good response and answers here. Thank you #2583rk and #deveth0
However, I am discouraged by the fact that Jekyll disregards Windows and does not provide official support for it. Windows is quite a popular desktop OS and ignoring it does not look good for a tool that usually (and practically) runs on a "non-server" or desktop environment (It does generates files run on servers though)
I am going to give Pretzel a try as it has all the benefits of Jekyll plus more.
There is no need for Ruby understanding. Most task just require a basic or deeper knowledge of markdown and liquid, but both are easy to learn.
Only if you want to build plugins, you'll need Ruby.
I switched my blog over to Jekyll earlier this year with no background in Ruby and, for the most part, it hasn't been a problem. Jekyll is a simple and straightforward solution with some good documentation; you can find a lot of examples online on how to setup it up properly and use plugins without knowing too much about Ruby.
I've been using Jekyll on a Windows laptop without any issues. There's a separate set of instructions for getting it up and running on Windows here. You need to install a package manager called Chocolatey, then install ruby using choco install ruby -y and then you can install Jekyll using gem install jekyll. There's some more detailed information on the link for specific things like encoding, auto-generation, etc.
Jekyll works fine on Windows. Half my doc team is using Jekyll with Windows. Here's a tutorial on installing Jekyll on Windows.
I looked everywhere and I can't find any help on how to get JRuby to work on AIX. I tried unpacking the binary package, tried using the jruby-complete.jar but I stumble on the same problems.
All errors seem to occur because JRuby is looking in the wrong directories for lib files.
For instance, I set my GEM_PATH=/home/dev999/install_tmp/gem and then I try to require activerecord-jdbc-adapter, which is installed under ./gem/gems/activerecord-jdbc-adapter-1.3.12, but for some reason JRuby keeps looking for the gem under ./gem/gems/activemodel-4.1.8/lib as shown below.
dev-host:/home/dev999/install_tmp$ jruby -e "require 'activerecord-jdbc-adapter'"
Errno::ENOENT: ENOENT - /home/dev999/install_tmp/gem/gems/activemodel-4.1.8/lib/activerecord-jdbc-adapter
file? at org/jruby/RubyFileTest.java:131
contains_requirable_file? at /usr/local/jruby-1.7.16.1/lib/ruby/shared/rubygems/basic_specification.rb:46
any? at org/jruby/RubyEnumerable.java:1473
contains_requirable_file? at /usr/local/jruby-1.7.16.1/lib/ruby/shared/rubygems/basic_specification.rb:46
any? at org/jruby/RubyEnumerable.java:1473
contains_requirable_file? at /usr/local/jruby-1.7.16.1/lib/ruby/shared/rubygems/basic_specification.rb:44
find_inactive_by_path at /usr/local/jruby-1.7.16.1/lib/ruby/shared/rubygems/specification.rb:898
find at org/jruby/RubyEnumerable.java:592
find_inactive_by_path at /usr/local/jruby-1.7.16.1/lib/ruby/shared/rubygems/specification.rb:897
try_activate at /usr/local/jruby-1.7.16.1/lib/ruby/shared/rubygems.rb:183
require at /usr/local/jruby-1.7.16.1/lib/ruby/shared/rubygems/core_ext/kernel_require.rb:132
(root) at -e:1
Any insights on what may be causing this are greatly appreciated.
EDIT: The server is an AIX 64 bits; we tried Java 1.6 and 1.7 both 64 and 32 bits (IBM custom build for AIX) but we ended up sticking with 1.7 64 bits in the final solution, although the version doesn't seem to affect the issues found in the Ruby 1.7.9 installation, but since we couldn't get JRuby 1.7.16 to work, I can't be sure if the Java builds we used could have played part in the problem.
OK, so the server admin and I spent two days trying to figure these things out and I can finally summarize the solution we ended up with to get JRuby working on AIX_64.
1 . First and most important of all, I had to install JRuby 1.7.9 since the 1.7.16 stable version from the main download page in jruby.org has many (seemingly AIX specific) bugs that we could not figure out; for instance, the wrong gem path resolution shown in my original question. Version 1.7.9 sorts out most of the issues automatically;
2) For some weird reason that I'm still unable to figure out, jirb won't work with the jline-2.11.jar lib that comes with the downloaded JRuby package. At some point I got it to work but then I could not retrace my steps so I gave up. To sort this issue out I downloaded jline-1.0.jar and replaced the jline jar located under <jruby_path>/lib/ruby/shared/readline/jline-2.11.jar; please note that even if we are replacing this with jline-1.0, the jar file name must still be the same i.e. jline-2.11.jar otherwise jirb will complain about a missing lib;
3) Some common steps: add jruby/bin to $PATH; make sure which java shows the correct Java version you want to use; set $JAVA_HOME;
4) (Optional, but very useful) in order to avoid having to grant my user write access to the /usr/<jruby>/<gem_paths> directories but still allow me to install gems without having to ask the admin I added export GEM_PATH=~/.gem to my .profile, then mkdir ~/.gem. To install gems to my home directory I do jgem install <gem_name> -i $GEM_PATH.
Hopefully this helps other users struggling with the same problems.
My main suggestion is to join the jruby mailing list and ask there. I've used jruby just once and managed to get it working. Here is a bit of magic that I don't really understand that I have at the top of one of the first files I require:
# We need the db2j.jar loaded
require 'db2j.jar'
# Some feaking magic Java needs
Java::JavaClass.for_name 'com.ibm.db2j.jdbc.DB2jDriver'
# The connection string is jdbc:db2j:the/path/to/the/file where the
# file is actually a directory.
CloudscapeDriver = 'jdbc:db2j'
You can see the email thread here: http://comments.gmane.org/gmane.comp.lang.jruby.user/17856
good luck
The tags say it all, really. This is a project that used to work on earlier versions, but not now. If you know the answer, just stop reading and tell me how.
An existing project is working fine on older releases of NetBeans and MySQL. I am just trying to get it working on the latest release of everything. Nothing fancy. Just plain vanilla Ruby on Rails on Windows/MySQL.
Clean install of Netbeans 7.4. No problems.
Clean full install of MySQL 5.5. No problems. Includes Java connector.
Clean install of ruby and rails from community: http://plugins.netbeans.org/plugin/38549. No problems.
Everything is working just fine.
Webrick starts and runs. Absolutely no surprises to this point.
I tried to gem install MySQL: it fails, but it is not unexpected. I have no interest in pursuing that line. Ditto for MySQL 2. It's always hard building native libraries on Windows.
I tried to gem install all/any of the following:
* activerecord-jdbc-adapter
* activerecord-jdbcmysql-adapter
* jdbc-mysql
They install just fine, but the end point is always the same:
cannot load com.mysql.jdbc.Driver.
I think I know what this means, but I have no idea how to fix it. Is it a classpath problem? Is it a bug? Is it an incompatibility just about to be fixed? Is it because I'm using Windows? Who knows? I can't think of anything else to try, and the forums are full of these errors with no solutions that seem to fit my problem.
I am not sure, but maybe the blog post Installing MySQL on Windows 7 x64 and using Ruby with it will help.
I'm looking for some build automation tool for JRuby project. Result of this project should be some library that can do stuff. I need to use some Java libraries but I want to work with Ruby. So that's why JRuby.
In this stage, I'm looking for build automation tool that can handle dependencies and download them from remote repository.
I could use Maven for this, but I'm interested in other alternatives that could be more fun to work with.
So yeah, if you are looking for something sexier than Mave, SBT is good option.
Other options are:
Gradle - http://www.gradle.org/ - if you want Groovy rather than scala orientation.
Or Gant - http://gant.codehaus.org/ - for some more in the lines of Ant.
Buildr - http://buildr.apache.org/ - Is another interesting project
I also came across this dead project - http://raven.rubyforge.org/ - But I wonder if something new came to tackle the same item, i.e. using Rake , the ruby build tool, to build java as well.
From a dependency management perspective only, jbundler is a bridge between Maven and bundler that can help you manage your dependencies, whether they are gems or maven artefacts.
I have a blog built with Ruby, but I frequently blog about Objective-C topics.
I thus need a Ruby library that can take Objective-C source code strings and produce syntax-highlighted HTML output.
For Ruby source strings, I am happily using the syntax gem - http://syntax.rubyforge.org/ - but I can't find an Objective-C tokenizer for this library.
Is there an open source tokenizer available, or another library which can do this in Ruby?
If all else fails, all I've found is a PHP library (GeSHi) which claims to have Obj-C support, and I'll have to install PHP on my host, write a janky shell exec based invocation of it. I would love to avoid this. Thanks!
Well, you can just use a command line tool to do this and the best possible solution is surely Pygments, and if you're running on a Linux hosting you probably have Python installed already.
Just call it from the command line and store the output somewhere.
A little digging on Google led me to this gem, Highlight, which supports Objective-C. There are a few other Ruby gems listed here.