Awesome
Gem::SpecificInstall
Installation
Add this line to your application's Gemfile:
gem 'specific_install'
And then execute:
$ bundle
Or install it yourself as:
$ gem install specific_install
Usage
A Rubygem plugin that allows you to install an "edge" gem straight from its github repository, or install one from an arbitrary web url:
examples:
$ gem specific_install https://github.com/githubsvnclone/rdoc.git
Or more explicitly:
$ gem specific_install -l http://github.com/githubsvnclone/rdoc.git
Or very tersely:
$ gem specific_install githubsvnclone/rdoc
Or a specific branch
$ gem specific_install http://github.com/githubsvnclone/rdoc.git edge
Or a specific branch in an explicit way
$ gem specific_install -l http://github.com/githubsvnclone/rdoc.git -b edge
Or a specific subdirectory in a repo
$ gem specific_install https://github.com/orlandohill/waxeye -d src/ruby
Or install in the users personal gem directory
$ gem specific_install https://github.com/orlandohill/waxeye -u
Or install in the install directory
$ gem specific_install https://github.com/cxr0715/cocoapods-TSPodfileTimeWatch.git -i /Users/bkdevops/TSPodfileTimeWatch_dir
PS: you should export RUBYLIB=/Users/bkdevops/TSPodfileTimeWatch_dir/cocoapods-TSPodfileTimeWatch-0.0.6/lib:other_plug_path to use -i install plug
The following URI types are accepted:
- http(s)://github.com/rdp/specific_install.git
- http(s)://github.com/rdp/specific_install-current.gem
- http://github.com/rdp/specific_install.git
- http://somewhere_else.com/rdp/specific_install.git
- git@github.com:rdp/specific_install.git
- rdp/specific_install # implies github
Additional Options
-l --location URL of resource
Formats of URL/Resource
* Full URL to HTTP Repo `https://github.com/rdp/specific_install.git`
* Full URL to Git Repo `git@github.com:rdp/specific_install.git`
* URL of Pre-Built Gem `http://example.com/specific_install.gem`
* Github Repo shortcode `rdp/specific_install`
-b --branch BRANCH to use for Gem creation
Branch option does a `git checkout BRANCH` before `gem build GEM`
Example:
`git specific_install -l rdp/specific_install -b pre-release`
Note: This feature is new and may not fail gracefully.
-d --directory DIRECTORY in source
This will change the directory in the downloaded source directory
before building the gem.
-r, --ref COMMIT-ISH to use for Gem creation
Ref option does a `git reset --hard COMMIT-ISH` before `gem build GEM`
-u, --user-install to indicate that the gem should be unpacked into the users personal gem directory.
This will install the gem in the user folder making it possible to use specific_install without root access.
`git_install` is aliased to the behavior of `specific_install`
This alias is shorter and is more intention revealing of the gem's behavior.
-t, --tag to indicate git tag to be checked out.
This will use/install a specific git tag.
Internal Behavior
It runs git clone
, and rake install,
install the gem, then deletes the temp directory.
Compatibility
v0.2.10 is known to work against Rubygems v2.2.2 and has a compatibility issue with Rubygems v1.8.25 (possible other older Rubygems).
Work-arounds: Upgrade Rubygems via rvm rubygems current
or install older version of specific_install
.
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request
Enjoy!
Copyright 2010-2014 Roger Pack - http://github.com/rdp/specific_install