• Stars
    star
    118
  • Rank 289,414 (Top 6 %)
  • Language
    Shell
  • License
    MIT License
  • Created almost 10 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A tool for changing your $GEM_HOME

gem_home

Build Status

Changes your $GEM_HOME.

Features

  • Updates $GEM_HOME, $GEM_PATH and $PATH.
    • Switches $GEM_HOME by pushing and popping gem directories to $GEM_PATH. This allows the stacking of multiple gem directories.
    • Prepends the new $GEM_HOME/bin to $PATH so it takes precedence.
  • Compartmentalizes gems into .gem/$ruby_engine/$ruby_version.
  • Plays nicely with RVM and chruby.
  • Supports bash and zsh.
  • Small (~90 LOC).
  • Has tests.

Synopsis

Change the $GEM_HOME:

$ gem_home /path/to/project

Revert the $GEM_HOME:

$ gem_home -

Using with bundler:

$ cd padrino-app/
$ gem_home .
$ bundle install
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Using rake 10.3.2
Using i18n 0.6.11
Using json 1.8.1
Using minitest 5.4.0
Using thread_safe 0.3.4
Installing tzinfo 1.2.2
Using activesupport 4.1.4
Using addressable 2.3.6
Installing builder 3.2.2
Using bundler 1.6.2
Using data_objects 0.10.14
Using dm-core 1.2.1
Using dm-aggregates 1.2.0
Using dm-do-adapter 1.2.0
Using dm-migrations 1.2.0
...    
$ padrino console # no `bundle exec` needed
  • Notice how bundler re-used many of the gems from ~/.gem/... but installed missing gems into $PWD/.gem/....

Install

wget -O gem_home-0.1.0.tar.gz https://github.com/postmodern/gem_home/archive/v0.1.0.tar.gz
tar -xzvf gem_home-0.1.0.tar.gz
cd gem_home-0.1.0/
sudo make install

PGP

All releases are PGP signed for security. Instructions on how to import my PGP key can be found on my blog. To verify that a release was not tampered with:

wget https://raw.github.com/postmodern/gem_home/master/pkg/gem_home-0.1.0.tar.gz.asc
gpg --verify gem_home-0.1.0.tar.gz.asc gem_home-0.1.0.tar.gz

Homebrew

gem_home can also be installed with homebrew:

curl https://github.com/postmodern/gem_home/blob/master/homebrew/gem_home.rb
brew install --HEAD -s gem_home.rb

Configuration

Add the following to the ~/.bashrc or ~/.zshrc file:

source /usr/local/share/gem_home/gem_home.sh

System Wide

If you wish to enable gem_home system-wide, add the following to /etc/profile.d/gem_home.sh:

if [ -n "$BASH_VERSION" ] || [ -n "$ZSH_VERSION" ]; then
  source /usr/local/share/gem_home/gem_home.sh
  ...
fi

This will prevent gem_home from accidentally being loaded by /bin/sh, which is not always the same as /bin/bash.

Uninstall

After removing the gem_home configuration:

$ sudo make uninstall

Alternatives

More Repositories

1

chruby

Changes the current Ruby
Shell
2,832
star
2

ruby-install

Installs Ruby, JRuby, Rubinius, TruffleRuby or MRuby
Shell
1,854
star
3

spidr

A versatile Ruby web spidering library that can spider a site, multiple domains, certain links or infinitely. Spidr is designed to be fast and easy to use.
Ruby
763
star
4

ruby-nmap

A Ruby interface to nmap, the exploration tool and security / port scanner. Allows automating nmap and parsing nmap XML files.
Ruby
295
star
5

nokogiri-diff

Calculate the differences between two XML/HTML documents.
Ruby
129
star
6

command_kit.rb

A Ruby toolkit for building complete and robust CLI commands.
Ruby
119
star
7

digest-crc

A Cyclic Redundancy Check (CRC) library for Ruby.
C
89
star
8

chgems

DEPRECATED: use gem_home instead!
Shell
87
star
9

kramdown-man

Allows you to write man pages in pure markdown.
Ruby
87
star
10

hexdump.rb

Fully Featured and Fast hexdumping for Ruby.
Ruby
77
star
11

rubygems-tasks

Simple Rake tasks for managing and releasing Ruby projects.
Ruby
77
star
12

raingrams

A flexible and general-purpose ngrams library written in Ruby. Raingrams supports ngram sizes greater than 1, text/non-text grams, multiple parsing styles and open/closed vocabulary models.
Ruby
70
star
13

ruby-versions

A common repository of ruby version metadata
Shell
69
star
14

net-http-server

A pure Ruby HTTP Server.
Ruby
68
star
15

sketches

A Ruby library for live programming and code reloading.
Ruby
65
star
16

deployml

DeploYML is a simple deployment solution that uses a single YAML file.
Ruby
58
star
17

ruby-cli-boilerplate

Zero-dependency Ruby CLI boilerplate code
Ruby
58
star
18

command_mapper.rb

Maps external commands and options to Ruby classes
Ruby
54
star
19

ffi-hunspell

Ruby FFI bindings for Hunspell.
Ruby
48
star
20

combinatorics.rb

Bringing (more) Combinatorics to Ruby.
Ruby
46
star
21

wordlist.rb

A Ruby library and CLI for generating and working with wordlists.
Ruby
45
star
22

ffi-pcap

Ruby FFI bindings for libpcap.
Ruby
43
star
23

flv-dl

Downloads Flash Video (flv) files from web-pages.
Ruby
33
star
24

gscraper

A web-scraping interface to various Google Services.
Ruby
33
star
25

rprogram

A library for creating wrappers around command-line programs.
Ruby
32
star
26

ffi-libc

Useful Ruby FFI bindings for libc
Ruby
31
star
27

libBERT

A C library for encoding and decoding BERT (Binary ERlang Term)
C
31
star
28

scm

Ruby interface to common SCMs
Ruby
30
star
29

tdiff

Calculates the differences between two tree-like structures.
Ruby
29
star
30

wsoc

The Web Spider Obstacle Course
Ruby
24
star
31

cparser

A pure Ruby ANSI C Parser.
Ruby
23
star
32

npm_scan

Scans npmjs.org for npm packages that can be taken over
Crystal
19
star
33

multi_markdown

multi_markdown allows projects to use a wide variety of Markdown Processors, without having to depend on a specific one.
Ruby
19
star
34

dm-visualizer

Visualizes the Models, Properties and Relationships defined in a DataMapper based Ruby project.
Ruby
18
star
35

ffi-msgpack

Ruby FFI bindings to msgpack
Ruby
16
star
36

uri-query_params

Access the query parameters of a URI, just like $_GET in PHP.
Ruby
16
star
37

mruby-embed

Example project that embeds mruby.
Ruby
15
star
38

ffi-extractor

Ruby FFI bindings for libextractor
Ruby
15
star
39

yard-dm

A YARD plugin for parsing DataMapper syntax.
Ruby
14
star
40

dotfiles

Development Environment Configuration
Vim Script
13
star
41

chars.rb

A Ruby library for working with various character sets, recognizing text and generating random text from specific character sets.
Ruby
13
star
42

example-activerecord-lib

Example usage of ActiveRecord in a Ruby library (not a Rails app or Rails engine)
Ruby
13
star
43

test

A collection of boilerplate code and projects for testing ideas
Ruby
12
star
44

ffi-http-parser

Ruby FFI bindings to the http-parser library.
Ruby
12
star
45

dm-chunked_query

Allows performing chunked queries with DataMapper.
Ruby
12
star
46

yard-spellcheck

Spellcheck your YARD documentation.
Ruby
12
star
47

dm-is-authenticatable

A DataMapper plugin for adding authentication and encrypted passwords to your DataMapper models.
Ruby
12
star
48

object_loader

Load Objects from Ruby files without having to use YAML or define classes named like the file.
Ruby
11
star
49

parameters

Parameters allows you to add annoted variables to your classes which may have configurable default values.
Ruby
10
star
50

shodan-ruby

A Ruby interface to SHODAN, a computer search engine.
Ruby
10
star
51

vim-yard

A VIM plugin to add syntax highlighting to your YARD tags.
Vim Script
10
star
52

jekyll-static-import

[WIP] Import static HTML websites into Jekyll
Ruby
10
star
53

ruby-masscan

A Ruby interface to masscan, an Internet-scale port scanner.
Ruby
9
star
54

v4l2.cr

Crystal bindings for V4L2
Crystal
9
star
55

ffi-ptrace

Ruby FFI bindings for ptrace
Ruby
9
star
56

ffi-udis86

Ruby FFI bindings for udis86
Ruby
8
star
57

env_ext

Provides a Ruby interface to common environment variables
Ruby
8
star
58

pullr

A Ruby library for quickly pulling down or updating any Repository.
Ruby
8
star
59

ffi-bit_masks

FFI plugin which adds support for bit-wise fields (or flags) to FFI.
Ruby
8
star
60

python-pickle.rb

A modern Ruby implementation of the Python Pickle serialization format.
Ruby
8
star
61

ruby-amass

A Ruby interface to amass.
Ruby
8
star
62

pcap-ffi

Ruby FFI bindings for libpcap
Ruby
7
star
63

dm-is-read_only

A DataMapper plugin for making a Model absolutely read-only.
Ruby
7
star
64

gemspec.yml

Write your gemspecs in plain YAML
Ruby
7
star
65

crystal-crc

CRC (Cyclic Redundancy Check) algorithms for Crystal.
Crystal
7
star
66

ruby-ncrack

A Ruby interface to Ncrack.
Ruby
7
star
67

sinatra-json

sinatra/json extracted from sinatra-contrib.
Ruby
7
star
68

chars.cr

A Crystal library for working with various character sets, recognizing text and generating random text from specific character sets.
Crystal
7
star
69

nokogiri-ext

Useful extensions to nokogiri
Ruby
7
star
70

command_mapper-gen.rb

Generates command_mapper Ruby classes for a given command
Ruby
6
star
71

phishing-training-sigs

A crowd sourced list of phishing training simulators and their signatures
6
star
72

donatello

Highly configurable graphs ontop of Raphael.js.
JavaScript
6
star
73

ruby-yasm

A Ruby interface to YASM.
Ruby
5
star
74

fake_io.rb

A mixin module for creating fake IO-like classes.
Ruby
5
star
75

open_namespace

Allows namespaces to load constants on-demand
Ruby
5
star
76

zcow

Manages temporary zram backed COW (Copy On Write) devices.
Shell
5
star
77

postmodern.github.io

website | blog
HTML
5
star
78

dm-is-counter_cacheable

A DataMapper plugin for adding counter-cache properties to related models.
Ruby
5
star
79

ffi-libnet

Ruby FFI bindings for libnet
Ruby
4
star
80

dm-is-predefined

A DataMapper plugin for adding predefined resources to Models.
Ruby
4
star
81

ffi-libelf

Ruby FFI bindings for libelf
Ruby
4
star
82

ffi-bert

FFI bindings to libBERT, a library for encoding and decoding BERT data.
Ruby
4
star
83

badger

A fear-less, robust and portable systems management solution.
Ruby
4
star
84

ffi-cairo

Ruby FFI bindings for Cairo
Ruby
4
star
85

ffi-sundown

Ruby FFI bindings for the libupskirt markdown library.
Ruby
4
star
86

threaded_server

A generic TCP Server with a fixed-size Thread Pool.
Ruby
4
star
87

hunspell.cr

Crystal bindings for libhunspell. Crystal port of the Ruby ffi-hunspell gem.
Crystal
4
star
88

dm-types-legacy

A collection of legacy data types for DataMapper.
Ruby
4
star
89

command_kit-completion

Generate shell completions for command_kit commands
Ruby
4
star
90

netfilter-ffi

Ruby FFI bindings for netfilter libraries
Ruby
3
star
91

data_paths

DataPaths is a library to manage the paths to data/ directories within projects.
Ruby
3
star
92

ffi-llvm

Ruby FFI bindings for LLVM
Ruby
3
star
93

badger-ruby

A Ruby client for communicating with Badger servers.
Ruby
3
star
94

cvelist.rb

A Ruby library for parsing the CVE JSON in the cvelist git repository
Ruby
3
star
95

dm-is-checksumed

Adds checksum properties to DataMapper Models.
Ruby
3
star
96

yard-parameters

yard-parameters is a plugin for YARD for parsing parameters.
Ruby
3
star
97

rtoolchain

RToolchain is a Ruby interface to various toolchains and other compilers or assemblers. Currently RToolchain supports the GNU toolchain and NASM.
Ruby
3
star
98

hoe-yard

A Hoe plugin for generating YARD documentation
Ruby
3
star
99

rtranscoder

A Rubyful interface to various transcoding utilities
Ruby
3
star
100

cinch-commands

Allows defining multiple commands within a Cinch Plugin.
Ruby
3
star