Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Nicolas McCurdy
2014-01-15 16:57:41 -05:00
6 changed files with 38 additions and 3 deletions

View File

@@ -1,3 +1,4 @@
require 'rbconfig'
source 'https://rubygems.org' source 'https://rubygems.org'
# Add dependencies required to use your gem here. # Add dependencies required to use your gem here.
@@ -16,6 +17,9 @@ group :development do
gem "simplecov", :platforms => :mri_19 gem "simplecov", :platforms => :mri_19
gem "test_construct" gem "test_construct"
gem "capture-output", "~> 1.0.0" gem "capture-output", "~> 1.0.0"
if RbConfig::CONFIG['host_os'] =~ /linux|freebsd|openbsd|sunos|solaris/
gem 'libnotify'
end
if RUBY_VERSION >= '1.9.2' if RUBY_VERSION >= '1.9.2'
gem "rubocop" gem "rubocop"
end end

View File

@@ -1,6 +1,9 @@
# homesick # homesick
[![Gem Version](https://badge.fury.io/rb/homesick.png)](http://badge.fury.io/rb/homesick)
[![Build Status](https://travis-ci.org/technicalpickles/homesick.png?branch=master)](https://travis-ci.org/technicalpickles/homesick) [![Build Status](https://travis-ci.org/technicalpickles/homesick.png?branch=master)](https://travis-ci.org/technicalpickles/homesick)
[![Dependency Status](https://gemnasium.com/technicalpickles/homesick.png)](https://gemnasium.com/technicalpickles/homesick)
[![Code Climate](https://codeclimate.com/github/technicalpickles/homesick.png)](https://codeclimate.com/github/technicalpickles/homesick)
Your home directory is your castle. Don't leave your dotfiles behind. Your home directory is your castle. Don't leave your dotfiles behind.
@@ -31,11 +34,11 @@ You can remove symlinks anytime when you don't need them anymore
homesick unlink pickled-vim homesick unlink pickled-vim
If you need to add further configuration steps you can add these in a file called '.homesickrc' in the root of a castle. Once you've cloned a castle with one of these files apply these steps with: If you need to add further configuration steps you can add these in a file called '.homesickrc' in the root of a castle. Once you've cloned a castle with a .homesickrc run the configuration with:
homesick rc CASTLE homesick rc CASTLE
The contents of the .homesickrc file must be valid Ruby code as the file will be executed with Ruby's eval construct. The contents of the .homesickrc file must be valid Ruby code as the file will be executed with Ruby's eval construct. The .homesickrc is also passed the current homesick object during its execution and this is available within the .homesickrc file as the 'self' variable.
If you're not sure what castles you have around, you can easily list them: If you're not sure what castles you have around, you can easily list them:

View File

@@ -1,5 +1,6 @@
require 'rubygems' require 'rubygems'
require 'bundler' require 'bundler'
require_relative 'lib/homesick/version'
begin begin
Bundler.setup(:default, :development) Bundler.setup(:default, :development)
rescue Bundler::BundlerError => e rescue Bundler::BundlerError => e
@@ -23,7 +24,7 @@ Jeweler::Tasks.new do |gem|
gem.email = ["josh@technicalpickles.com", "info@muratayusuke.com"] gem.email = ["josh@technicalpickles.com", "info@muratayusuke.com"]
gem.homepage = "http://github.com/technicalpickles/homesick" gem.homepage = "http://github.com/technicalpickles/homesick"
gem.authors = ["Joshua Nichols", "Yusuke Murata"] gem.authors = ["Joshua Nichols", "Yusuke Murata"]
gem.version = "0.9.7" gem.version = Homesick::Version::STRING
gem.license = "MIT" gem.license = "MIT"
# Have dependencies? Add them to Gemfile # Have dependencies? Add them to Gemfile

View File

@@ -4,9 +4,11 @@ require 'thor'
class Homesick < Thor class Homesick < Thor
autoload :Shell, 'homesick/shell' autoload :Shell, 'homesick/shell'
autoload :Actions, 'homesick/actions' autoload :Actions, 'homesick/actions'
autoload :Version, 'homesick/version'
include Thor::Actions include Thor::Actions
include Homesick::Actions include Homesick::Actions
include Homesick::Version
add_runtime_options! add_runtime_options!
@@ -15,6 +17,9 @@ class Homesick < Thor
DEFAULT_CASTLE_NAME = 'dotfiles' DEFAULT_CASTLE_NAME = 'dotfiles'
map '-v' => :version
map '--version' => :version
def initialize(args = [], options = {}, config = {}) def initialize(args = [], options = {}, config = {})
super super
self.shell = Homesick::Shell.new self.shell = Homesick::Shell.new
@@ -264,6 +269,11 @@ class Homesick < Thor
end end
end end
desc 'version', 'Display the current version of homesick'
def version
say Homesick::Version::STRING
end
protected protected
def home_dir def home_dir

10
lib/homesick/version.rb Normal file
View File

@@ -0,0 +1,10 @@
# -*- encoding : utf-8 -*-
class Homesick
module Version
MAJOR = 0
MINOR = 9
PATCH = 8
STRING = "#{MAJOR}.#{MINOR}.#{PATCH}"
end
end

View File

@@ -565,4 +565,11 @@ describe 'homesick' do
expect { homesick.open "castle_repo" }.to raise_error(SystemExit) expect { homesick.open "castle_repo" }.to raise_error(SystemExit)
end end
end end
describe 'version' do
it 'should print the current version of homesick' do
text = Capture.stdout { homesick.version }
text.chomp.should =~ /\d+\.\d+\.\d+/
end
end
end end