akiellor / gemjar

[DEPRECATED] RubyGems proxy which transforms Gems into JRuby GemJars.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[DEPRECATED] README Build Status

So what does it do?

It's an Ivy-compatible proxy for RubyGems, which translates gems into JRuby-compatible JARs.

This tool is for people who:

  • Are working with the Java tool chain: good ol' javac, Maven, Ivy, Ant, Buildr and IDEs
  • Want to use some (J)Ruby
  • Want to use gems from RubyGems
  • Don't want to use multiple VMs (JVM and CRuby)
  • Don't want to hand-roll a GemJar everytime their ruby deps change
  • Don't want to use two dependencies management tools (Bundler + Ivy)

I'm hoping thats not just me...

Trying it out -- GemJars.org Hosted

Gradle

  1. Add to your repositories:
repositories {
  maven {
    url 'http://repository.gemjars.org/maven'
  }
}
  1. Add to your dependencies:
dependencies {
  compile 'org.rubygems:rspec:2.11.0'
}
  1. Perform a gradle dependencies and watch it resolve rspec and all its transitive dependencies

Ivy

  1. In your ivysettings.xml, set up the following resolver:
<ivysettings>
  ...
  <url name="gems">
    <ivy pattern="http://repository.gemjars.org/ivys/[organization]/ivy-[module]-[revision].xml" />
    <artifact pattern="http://repository.gemjars.org/jars/[organization]/[module]-[revision].jar" />
  </url>
  ...
  <chain name="default">
    ...
    <resolver ref="gems" />
  </chain>
</ivysettings>
  1. In your ivy.xml, add a dependency from org.rubygems.
<ivy-module version="2.0">
  <dependency org="org.rubygems" name="cucumber" rev="1.0.0" />
</ivy-module>
  1. Perform an ivy resolve and watch Ivy resolve cucumber and all its transitive dependencies.

Trying it out -- DIY

  1. Clone the repo:
$ git clone git://github.com/akiellor/gemjar.git
  1. Get Gradle
$ brew install gradle

OR

Get it from gradle.org.

  1. RUN IT:
$ gradle run 
  1. Hit some urls:
$ curl -i http://localhost:8080/jars/org.rubygems/cucumber-1.0.0.jar
$ curl -i http://localhost:8080/jars/org.rubygems/cucumber-1.0.0.jar.md5
$ curl -i http://localhost:8080/jars/org.rubygems/cucumber-1.0.0.jar.sha1
$ curl -i http://localhost:8080/ivys/org.rubygems/ivy-cucumber-1.0.0.xml
$ curl -i http://localhost:8080/ivys/org.rubygems/ivy-cucumber-1.0.0.xml.md5
$ curl -i http://localhost:8080/ivys/org.rubygems/ivy-cucumber-1.0.0.xml.sha1

Where's it at?

THIS IS A PROTOTYPE

DONE-ISH

  • Construction of jruby compatible gemjars.
  • Construction of ivy modules based on the gemspec.
  • MD5 and SHA1 of all constructed artifacts.
  • Can be built as a war.
  • Maven pom.xml generation.

HOW CAN YOU HELP

  • Try it out.
  • Give me feed back.

License

Apache 2.0

About

[DEPRECATED] RubyGems proxy which transforms Gems into JRuby GemJars.


Languages

Language:Ruby 62.9%Language:Java 15.3%Language:Gherkin 12.5%Language:HTML 5.7%Language:Nginx 2.9%Language:CSS 0.8%