No autocompletion on required classes in Rubymine - ruby

I am requiring the date library and I would expect the methods from this library to appear in the code completion list (and hence get the documentation inline). However nothing appears. Why so?

What RubyMine and Ruby version are you using? Please try 4.5 Release Candidate, everything works fine for me in that version

Related

Linting for Ruby < 2.0.0

I have a project with many Ruby files, loaded by external program with embedded Ruby interpreter (and some other libraries). I'm trying to use RubyMine and Rubocop to help with development, but the problem is that the said embedded interpreter is of version 1.9.2 and can't be upgraded in any way. Is it possible to still use the Rubocop or other linter inside RubyMine and at the same time to make sure the code is compatible with old interpreter?
Yes you can, Check this out and then let RuboCop know the oldest version of Ruby which your project supports with updating .rubocop.yml file:
AllCops:
TargetRubyVersion: 1.9
The short answer is that yes, it is possible to change the linter used in RubyMine, there are complete walk-throughs on JetBrains site explaining how. I don't know off the top of my head any linters that specifically work for pre-2.0 versions of Ruby, not to say they don't exist.
The longer answer is that it really won't make much difference if the interpreter is running through another program, and not using a real Ruby installation, and any linter is not going to reliably work for you. There will be plenty of code that a linter will still think is perfectly acceptable, but fail when running in an embedded VM.
# Linter thinks this perfectly fine, part of 1.9.2 standard library
require 'base64'
# Still thinks this perfectly fine. This all fails miserably though
Base64.encode64('My string')
The most obvious examples would be the entire standard library, gems, rake, and anything that is not part of the "core" library. Basic rule of thumb, if you have to require a script (excluding your project's local scripts), it is not going to work.
Another reason it could never be reliable is that you do not know if the embedded Ruby interpreter has been altered, or removed features from Ruby for their purposes, and a linter would have even less way of knowing that. Years ago I dabbled with the RPG Maker series, and discovered the hard way that their were certain built in features of Ruby that were removed (or at least hidden) from their custom build.
If you are familiar with Ruby, then you can obviously steer clear of the major and most common 2.0+ changes that Ruby implemented to the core library, but the only reliable way to know (even with a linter), is testing, which you will need to do anyway ( or at least you should). RubyMine has good support for automating this with Minitest and RSpec.

Swift compilation discrepancy in version 2.1.1 and xcode 7.2

We have latest Xcode(7.2) having Swift(2.1.1) installed in few mac systems. Here developer didn't find any errors in his code which was checked in, but the same code used at other end were observing errors(most of them related unwrapping variables).
verified all settings and version details not able to find any difference. Any help or suggestions will be appreciated. Thanks
Most likely the machine "at the other end" is not running Xcode 7.2. There is a tool for converting Swift 1.x to 2.x, but not the other direction. But without code sample illustrating the problem, we can't help you much. In addition to shifting unwrapping conventions, there is new syntax later versions of Swift (e.g. guard, error throwing, etc.).
But, if you're going to share a Swift project amongst multiple developers, you probably just want to make sure everyone is using the same version of Xcode. And with Swift progressing as quickly as it is, you might want to encourage everyone to use the latest production version of Xcode.

Issue with named arguments being marked as an error in Intellij for Ruby 2.x

Anyone else have a solution to this? IntelliJ freaks out when I use the new named arguments feature for ruby 2 in a method
def initialize(ini_url:, rundeck_url:, environment:, user:)
end
Or when calling a method supplying the named arguments
deploy_from_ini = DeployFromINI.new(ini_url: options[:ini_url],
rundeck_url: options[:rundeck_url],
environment: options[:environment],
user: options[:user])
This doesn't go away even if I set the project level SDK to ruby 2.1.4
I've upgraded to IntelliJ 14.0, upgraded to the latest ruby plugin (version 7.0.0.20141015) and still am getting red lines all over, which is highly irritating.
I've considered RubyMine but I've read that the plugin can lag behind RubyMine. Not sure if this would solve the issue and then I'd be introduced to the workflow of having to flip back and forth between RubyMine and IntelliJ, since the project I'm working on isn't fully ruby, just has ruby spattered across it in various places.
This isn't the answer you want but yes, RubyMine does understand named parameters (including the "required param" bare-colon syntax you showed above).

Rails 1.9.3 Syntax Highlighting in Eclipse

I'm new to Rails and need to get my Eclipse DLTK highlighting working.
It is occasionally giving syntax error, unexpected ':' for hash colon notation. Though the application runs fine.
I'm using Eclipse Indigo and the Ruby Development Tools.
So, unfortunately, this is still an issue in Eclipse, and it's driving me crazy.
Both the Eclipse DLTK project (for both Indigo and Juno) and the Aptana Studio plugin for Eclipse -- all have this issue.
Here's the relevant bugs, still open and unaddressed:
1) https://bugs.eclipse.org/bugs/show_bug.cgi?id=386350
2) http://jira.appcelerator.org/browse/APSTUD-4405
It's enough to make me overcome the usual switching IDE inertia, so I'm currently evaluating RubyMine (it does not have that syntax error problem, as I just tested, and is an excellent Ruby IDE from everything I've been able to read).
[edit] For what it's worth, I also just submitted a patch for this issue on the dltk.ruby github repo.
As of today, I like Idodds answer best: use DLTK 5.0 which appears to be the only option both (modestly) maintained and (modestly) functional. I had to crawl through some nasty internets to find the answer to "how to actually install DLTK 5.0" since all the search results send you to update sites which gives you DLTK 2.0 at best. I finally found this, which was the best I encountered for getting 5.0 on newer eclipse luna (newer than Kepler which Idodds detailed):
http://download.eclipse.org/technology/dltk/updates-dev/5.0/
When I used that update site (and de-selected "show in groups" since they've misconfigured this plugin). Then I just selected the two options I wanted: "Ruby Development Tools" and "Ruby Development Tools SDK" (which in turn required the core plugin). PLEASE NOTE: I also made very sure to confirm the "Version" looked something like "5.*" which it did in this site (and definitely did not in the others).
PostScript: the other two:
RDT: I've been using RDT for almost a year now with ~0 success. it does a modest job of syntax highlighting, but it does a comprehensive job of crash-and-burning on ruby 1.9 syntax. I wish internet/google would flag RDT as deprecated: a plugin which supports ruby 1.8 and prior really should not be listed in current "ruby" search results.
Aptana gets some very good press, and some very bad press. I should try it, since I need Rails not just ruby, but the bad press seems pretty comprehensive, so I've avoided it. I tried a few times and failed, but of course any non-java eclipse plugin will probably take a few days to make work.
This seems to be mostly resolved now. The main problem I encountered was with the new hash key syntax.
With Eclipse Kepler and DLTK 5.0 there are less errors. The syntax checker seems strict, but now works.
Using the Kepler release make sure you add the following as a Repository in "Install New Software":
http://download.eclipse.org/releases/kepler
Then install DLTK 5.0. The repositories that come bundled with Kepler don't seem to refer to the latest DLTK version which is why this issue looks like its not fixed.

How can I get the jruby version at runtime?

I need to get the jruby version for logging & debugging purposes.
I tried looking around JRuby.runtime for a version method, but I didn't find anything useful.
I also thought about using %x{jruby -v}. It works in most cases, except that there is always the possibility that more than one jruby version are installed, and I want to get the version of the currently running interpreter.
Did I miss something? Any suggestion?
You are looking for the global constant JRUBY_VERSION. This is a brother of VERSION, RUBY_ENGINE (not available under 1.8.x), RUBY_PLATFORM, etc.

Resources