Commit Graph

34 Commits

Author SHA1 Message Date
R. Tyler Croy 0f7c0c94e4
Add support for a GemInstallEvent callback
Fixes #6
2015-09-19 16:12:49 -07:00
R. Tyler Croy b149a654e7
Clean up some javadocs to ameliorate failuresi n travis
Somehow the version of the JDK in travis errors with some of these but not
locally :(
2015-09-18 15:31:15 -07:00
R. Tyler Croy 774cd380b2
oraclejdk7 is EoLed as far as I'm concerned 2015-09-18 15:03:47 -07:00
R. Tyler Croy 172557e0be
Allow passing overwrite behavior through the GemInstaller 2015-08-21 18:32:52 -07:00
R. Tyler Croy 53d6dfed39
Properly delete directories while on test teardown 2015-08-21 18:04:12 -07:00
R. Tyler Croy 963ed7c59e
Avoid caching gem files unnecessarily
Fixes #5
2015-08-21 17:53:07 -07:00
Christian Meier f1641a3a18 added a JemClassLoader which can "add" jem on the fly 2015-08-15 20:23:03 +02:00
R. Tyler Croy f4bec5e5c8
Move everything into src/main/java 2015-08-13 17:33:47 -07:00
R. Tyler Croy 65fd115fa3
Convert the nascent Jem code into Java
Fixes #1
2015-08-13 17:31:40 -07:00
Aslak Knutsen 5e216e23ba Export complete data.tar.gz file via ShrinkWrap ExplodedExporter 2015-08-12 23:55:17 +02:00
R. Tyler Croy bbbbd5b968
Add gzipped resources 2015-08-11 21:25:14 -07:00
R. Tyler Croy 4d54c1b3dd
Move things to the jem namespace and switch to using 100% shrinkwrap 2015-08-11 21:24:39 -07:00
R. Tyler Croy cf994df37f
Refactor the directory naming code inside GemInstaller into a single method 2015-08-10 06:39:25 -07:00
R. Tyler Croy 9cf391298c
Move all Gem::Specification creation through the sanitize() method for stringies 2015-08-10 06:25:38 -07:00
R. Tyler Croy b996ac73fc
Properly support gems which have a specific platform associated with them
e.g. thread_safe
2015-08-10 06:07:35 -07:00
R. Tyler Croy 767161e069
Only attempt to copy the bindir if it actually exists in our data.tar.gz
In commons-vfs 2.1-SNAPSHOT it appears that .getChild() is returning null
instead of raising a FileNotFoundException when the bindir isn't present. I
might be referring to outdated docs, but this resolves the issue and makes sure
there are not NPEs raised
2015-08-10 06:07:35 -07:00
R. Tyler Croy b4bfafcb45
Make sure we're closing and deleting our file objects when we're done with them
I saw some odd behavior with redundant `data.tar.gz` file objects being created
for the same filesystem manager in consecutive iterations. The two ways we
avoid this, now, is by namespacing the data.tar.gz VFS but also by closing and
deleting after we're done.

An alternative would be to create a new FileSystemManager for each gem, but I'm
not sure if that's useful/worth it.
2015-08-10 06:07:35 -07:00
R. Tyler Croy bdbb118c78
Wire the internal GemInstaller implementation into the public API 2015-08-10 06:07:35 -07:00
R. Tyler Croy 016272f240
If a description has quotes in it we need to escape it
Otherwise we might generate some invalid specifications!
2015-08-10 06:07:35 -07:00
R. Tyler Croy e9b017db2c
Email in some specifications can be an array apparently
There might be a better way to fix this with jackson and specify a collection
of valid types, but as of right now I'm not aware of how to accomplish that
2015-08-10 05:37:21 -07:00
R. Tyler Croy 34b6e0c2e6
Extract specifications and executables from the gem package 2015-08-09 17:25:34 -07:00
R. Tyler Croy 9eb78bba76
Implement toRuby() which will generate a .gemspec file just like a gem install 2015-08-09 17:24:48 -07:00
R. Tyler Croy 2a8d3d1ad0
Avoid extracting data.tar.gz to /tmp on the filesystem
commons-vfs2 has a ram:// protocol, let's just use that!
2015-08-09 17:04:00 -07:00
R. Tyler Croy 19eba647ee
Use a snapshot version of commons-vfs and extract the gemspec from the gem properly 2015-08-09 15:49:43 -07:00
R. Tyler Croy 5cef41e08f
Starting to implement install() by plopping the gem into the cache/ directory 2015-08-09 13:00:47 -07:00
R. Tyler Croy acdf4b78e5
Implementing internal.GemInstaller which handles the actual installation work 2015-08-09 10:31:34 -07:00
R. Tyler Croy 6892f12f0a
Starting to flesh out the GemInstaller class 2015-08-08 19:26:17 -07:00
R. Tyler Croy f7c756839c
Clean up some minor codenarc complaints 2015-08-08 18:35:17 -07:00
R. Tyler Croy 14cc95fa9e
Add the raw thor gem 2015-08-08 18:34:43 -07:00
R. Tyler Croy 1f2b39695a
Properly process a metadata.gz into a Gem instance 2015-08-08 18:04:06 -07:00
R. Tyler Croy 1db06dc70f
Add some gzipped versions of test fixtures, which are inside the gem tar 2015-08-08 18:02:47 -07:00
R. Tyler Croy 8b1d453484
Starting to implement POGO for Gem::Specification and co 2015-08-08 16:13:55 -07:00
R. Tyler Croy e2f245881a
Add unpacked thor gem as a test fixture 2015-08-08 15:16:22 -07:00
R. Tyler Croy 019f0da204
Start adding some code, basics to make codenarc/groovy/spock work together 2015-08-08 14:24:19 -07:00