Git Product home page Git Product logo

gemjar's Introduction

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

gemjar's People

Contributors

akiellor avatar dtsato avatar matthewcopeland avatar rhunter avatar sghill avatar sragu avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.