New Upstream Release - ruby-jeweler

Ready changes

Summary

Merged new upstream version: 2.3.9 (was: 2.0.1).

Resulting package

Built on 2023-01-06T11:55 (took 16m59s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-releases ruby-jeweler

Diff

diff --git a/.semver b/.semver
new file mode 100644
index 0000000..47de24d
--- /dev/null
+++ b/.semver
@@ -0,0 +1,6 @@
+---
+:major: 2
+:minor: 3
+:patch: 9
+:special: ''
+:metadata: ''
diff --git a/.travis.yml b/.travis.yml
index 3c063cd..e195437 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,7 +1,9 @@
 language: ruby
+before_install: 'gem update bundler'
+install: 'bundle install --jobs=3 --retry=3' # Suppress the --deployment flag'
 rvm:
-  - 1.9.2
-  - 1.9.3
-  - 2.0.0
+  - 2.2.2
+  - 2.3.0
+  - 2.3.1
 notifications:
   irc: "irc.freenode.org#jeweler"
diff --git a/ChangeLog.markdown b/ChangeLog.markdown
index 6e8a8aa..85d058e 100644
--- a/ChangeLog.markdown
+++ b/ChangeLog.markdown
@@ -1,3 +1,10 @@
+# jeweler 2.2.1
+	* Added a patch for a potential psych problem that hit juwelier.
+				
+# jeweler 2.1.2, 2016-10-22
+  * Merged pull requests to support breaking changes to the Bundler API (thanks julik)
+  * Updated gem dependencies		
+				
 # jeweler 2.0.0, 2014-01-05
 
  * Ruby 1.8 is not supported anymore.
diff --git a/Gemfile b/Gemfile
index 7ce1b86..00b6161 100644
--- a/Gemfile
+++ b/Gemfile
@@ -1,42 +1,42 @@
-source "http://rubygems.org"
-source "http://gems.github.com"
+source 'https://rubygems.org'
 
-
-gem "rake"
-gem "git", ">= 1.2.5"
-gem "nokogiri", ">= 1.5.10"
-gem "github_api"
-gem "highline", ">= 1.6.15"
-gem "bundler", ">= 1.0"
-gem "rdoc"
-gem "builder"
+gem 'rake'
+gem 'git', '>= 1.2.5'
+gem 'nokogiri', '>= 1.5.10'
+gem 'github_api', '~> 0.16.0'
+gem 'highline', '>= 1.6.15'
+gem 'bundler'
+gem 'rdoc'
+gem 'builder'
+gem "semver2"
+gem "psych"
 
 group :development do
-  gem "yard", ">= 0.8.5"
-  gem "bluecloth"
-  gem "cucumber", ">= 1.1.4"
-  gem "simplecov"
+  gem 'yard', '>= 0.8.5'
+  gem 'bluecloth'
+  gem 'cucumber', '>= 1.1.4'
+  gem 'simplecov'
 end
 
 group :test do
-  gem "timecop"
-  gem "activesupport", "~> 3.2.16"
-  gem "shoulda"
-  gem "mhennemeyer-output_catcher"
-  gem "rr", ">= 1.0.4"
-  gem "mocha"
-  gem "redgreen"
-  gem "test-construct"
-  gem 'coveralls', :require => false
+  gem 'timecop'
+  gem 'activesupport', '~> 3.2.16'
+  gem 'shoulda', require: false
+  gem 'mhennemeyer-output_catcher'
+  gem 'mocha', require: false
+  gem 'redgreen'
+  gem 'test_construct'
+  gem 'coveralls', require: false
+  gem 'test-unit-rr', require: false
 end
 
 # yo dawg, i herd u lieked jeweler
 group :xzibit do
   # steal a page from bundler's gemspec:
   # add this directory as jeweler, in order to bundle exec jeweler and use the current working directory
-  gem 'jeweler', :path => '.'
+  gem 'jeweler', path: '.'
 end
 
-
 group :debug do
+  gem 'test-unit'
 end
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..5ec097b
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,152 @@
+PATH
+  remote: .
+  specs:
+    jeweler (2.3.9)
+      builder
+      bundler
+      git (>= 1.2.5)
+      github_api (~> 0.16.0)
+      highline (>= 1.6.15)
+      nokogiri (>= 1.5.10)
+      psych
+      rake
+      rdoc
+      semver2
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activesupport (3.2.22.5)
+      i18n (~> 0.6, >= 0.6.4)
+      multi_json (~> 1.0)
+    addressable (2.4.0)
+    backports (3.11.0)
+    bluecloth (2.2.0)
+    builder (3.2.3)
+    concurrent-ruby (1.0.5)
+    coveralls (0.8.21)
+      json (>= 1.8, < 3)
+      simplecov (~> 0.14.1)
+      term-ansicolor (~> 1.3)
+      thor (~> 0.19.4)
+      tins (~> 1.6)
+    cucumber (3.1.0)
+      builder (>= 2.1.2)
+      cucumber-core (~> 3.1.0)
+      cucumber-expressions (~> 5.0.4)
+      cucumber-wire (~> 0.0.1)
+      diff-lcs (~> 1.3)
+      gherkin (~> 5.0)
+      multi_json (>= 1.7.5, < 2.0)
+      multi_test (>= 0.1.2)
+    cucumber-core (3.1.0)
+      backports (>= 3.8.0)
+      cucumber-tag_expressions (~> 1.1.0)
+      gherkin (>= 5.0.0)
+    cucumber-expressions (5.0.7)
+    cucumber-tag_expressions (1.1.1)
+    cucumber-wire (0.0.1)
+    descendants_tracker (0.0.4)
+      thread_safe (~> 0.3, >= 0.3.1)
+    diff-lcs (1.3)
+    docile (1.1.5)
+    faraday (0.9.2)
+      multipart-post (>= 1.2, < 3)
+    gherkin (5.0.0)
+    git (1.3.0)
+    github_api (0.16.0)
+      addressable (~> 2.4.0)
+      descendants_tracker (~> 0.0.4)
+      faraday (~> 0.8, < 0.10)
+      hashie (>= 3.4)
+      mime-types (>= 1.16, < 3.0)
+      oauth2 (~> 1.0)
+    hashie (3.5.7)
+    highline (1.7.10)
+    i18n (0.9.1)
+      concurrent-ruby (~> 1.0)
+    json (2.1.0)
+    jwt (1.5.6)
+    metaclass (0.0.4)
+    mhennemeyer-output_catcher (1.0.1)
+    mime-types (2.99.3)
+    mini_portile2 (2.3.0)
+    mocha (1.3.0)
+      metaclass (~> 0.0.1)
+    multi_json (1.13.1)
+    multi_test (0.1.2)
+    multi_xml (0.6.0)
+    multipart-post (2.0.0)
+    nokogiri (1.8.1)
+      mini_portile2 (~> 2.3.0)
+    oauth2 (1.4.0)
+      faraday (>= 0.8, < 0.13)
+      jwt (~> 1.0)
+      multi_json (~> 1.3)
+      multi_xml (~> 0.5)
+      rack (>= 1.2, < 3)
+    power_assert (1.1.1)
+    psych (3.0.2)
+    rack (2.0.3)
+    rake (12.3.0)
+    rdoc (6.0.1)
+    redgreen (1.2.2)
+    rr (1.2.1)
+    semver2 (3.4.2)
+    shoulda (3.5.0)
+      shoulda-context (~> 1.0, >= 1.0.1)
+      shoulda-matchers (>= 1.4.1, < 3.0)
+    shoulda-context (1.2.2)
+    shoulda-matchers (2.8.0)
+      activesupport (>= 3.0.0)
+    simplecov (0.14.1)
+      docile (~> 1.1.0)
+      json (>= 1.8, < 3)
+      simplecov-html (~> 0.10.0)
+    simplecov-html (0.10.2)
+    term-ansicolor (1.6.0)
+      tins (~> 1.0)
+    test-unit (3.2.7)
+      power_assert
+    test-unit-rr (1.0.5)
+      rr (>= 1.1.1)
+      test-unit (>= 2.5.2)
+    test_construct (2.0.1)
+    thor (0.19.4)
+    thread_safe (0.3.6)
+    timecop (0.9.1)
+    tins (1.16.3)
+    yard (0.9.12)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  activesupport (~> 3.2.16)
+  bluecloth
+  builder
+  bundler
+  coveralls
+  cucumber (>= 1.1.4)
+  git (>= 1.2.5)
+  github_api (~> 0.16.0)
+  highline (>= 1.6.15)
+  jeweler!
+  mhennemeyer-output_catcher
+  mocha
+  nokogiri (>= 1.5.10)
+  psych
+  rake
+  rdoc
+  redgreen
+  semver2
+  shoulda
+  simplecov
+  test-unit
+  test-unit-rr
+  test_construct
+  timecop
+  yard (>= 0.8.5)
+
+BUNDLED WITH
+   1.14.6
diff --git a/README.markdown b/README.markdown
index 4886961..0c230db 100644
--- a/README.markdown
+++ b/README.markdown
@@ -1,13 +1,23 @@
+*Jeweler maintenance has now shifted to Fred Mitchell*. I am now maintaining both Jeweler and its fork, juwelier. I will keep Jeweler at least functional with the latest Ruby releases, but put new features in Juwelier. Your input on this is more than welcome.
+
 # Jeweler: Craft the perfect RubyGem
 
+[![Join the chat at https://gitter.im/technicalpickles/jeweler](https://badges.gitter.im/technicalpickles/jeweler.svg)](https://gitter.im/technicalpickles/jeweler?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
+
 Jeweler provides the noble ruby developer with two primary features:
 
  * a library for managing and releasing RubyGem projects
  * a scaffold generator for starting new RubyGem projects
 
+PLEASE NOTE that if you are starting afresh, please use the successor [Juwelier](https://github.com/flajann2/juwelier)
+I (Fred Mitchell, flajann2) will be maintaining both Jeweler and Juwelier, but will be adding new features to
+Juwelier, and eventually "merge" this one into Juwelier after some namespace issues
+are dealt with.
+
 [![Build Status](https://travis-ci.org/technicalpickles/jeweler.png)](https://travis-ci.org/technicalpickles/jeweler)
 [![Coverage Status](https://coveralls.io/repos/technicalpickles/jeweler/badge.png)](https://coveralls.io/r/technicalpickles/jeweler)
 [![Dependency Status](https://www.versioneye.com/ruby/jeweler/2.0.0/badge.png)](https://www.versioneye.com/ruby/jeweler/2.0.0)
+[![Code Climate](https://codeclimate.com/github/technicalpickles/jeweler/badges/gpa.svg)](https://codeclimate.com/github/technicalpickles/jeweler)
 
 ## Hello, world
 
@@ -108,7 +118,7 @@ You can customize your gem by updating your `Rakefile`. With a newly generated p
 
     require 'jeweler'
     Jeweler::Tasks.new do |gem|
-      # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
+      # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
       gem.name = "whatwhatwhat"
       gem.summary = %Q{TODO: one-line summary of your gem}
       gem.description = %Q{TODO: longer description of your gem}
@@ -118,13 +128,13 @@ You can customize your gem by updating your `Rakefile`. With a newly generated p
     end
     Jeweler::RubygemsDotOrgTasks.new
 
-It's crucial to understand the `gem` object is just a Gem::Specification. You can read up about it at [docs.rubygems.org/read/chapter/20](http://docs.rubygems.org/read/chapter/20). This is the most basic way of specifying a gem, Jeweler-managed or not. Jeweler just exposes this to you, in addition to providing some reasonable defaults, which we'll explore now.
+It's crucial to understand the `gem` object is just a Gem::Specification. You can read up about it at [guides.rubygems.org/specification-reference](http://guides.rubygems.org/specification-reference/). This is the most basic way of specifying a gem, Jeweler-managed or not. Jeweler just exposes this to you, in addition to providing some reasonable defaults, which we'll explore now.
 
 ### Project information
 
     gem.name = "whatwhatwhat"
 
-Every gem has a name. Among other things, the gem name is how you are able to `gem install` it. [Reference](http://docs.rubygems.org/read/chapter/20#name)
+Every gem has a name. Among other things, the gem name is how you are able to `gem install` it. [Reference](http://guides.rubygems.org/specification-reference/#name)
 
     gem.summary = %Q{TODO: one-line summary of your gem}
 
@@ -161,7 +171,7 @@ If that's not enough, you can just set `gem.files` outright
 
 ### Dependencies
 
-Dependencies let you define other gems that your gem needs to function. `gem install your-gem` will install your-gem's dependencies along with it, and when you use your-gem in an application, the dependencies will be made available. Use `gem.add_dependency` to register them. [Reference](http://docs.rubygems.org/read/chapter/20#dependencies)
+Dependencies let you define other gems that your gem needs to function. `gem install your-gem` will install your-gem's dependencies along with it, and when you use your-gem in an application, the dependencies will be made available. Use `gem.add_dependency` to register them. [Reference](http://guides.rubygems.org/specification-reference/#add_development_dependency)
 
     gem.add_dependency 'nokogiri'
 
@@ -231,4 +241,5 @@ That means you can define your own namespaces, tasks, or use third party Rake li
 
 ## Copyright
 
-Copyright (c) 2008-2010 Josh Nichols. See LICENSE for details.
+Copyright (c) 2008-2010 Josh Nichols.
+Copyright (c) 2016 Fred Mitchell. See LICENSE for details.
diff --git a/README.org b/README.org
new file mode 100644
index 0000000..db7eb2b
--- /dev/null
+++ b/README.org
@@ -0,0 +1,374 @@
+/Jeweler maintenance has now shifted to Fred Mitchell/. I am now
+maintaining both Jeweler and its fork, juwelier. I will keep Jeweler at
+least functional with the latest Ruby releases, but put new features in
+Juwelier. Your input on this is more than welcome.
+
+* Jeweler: Craft the perfect RubyGem
+
+[[https://gitter.im/technicalpickles/jeweler?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge][[[https://badges.gitter.im/technicalpickles/jeweler.svg]]]]
+
+Jeweler provides the noble ruby developer with two primary features:
+
+-  a library for managing and releasing RubyGem projects
+-  a scaffold generator for starting new RubyGem projects
+
+PLEASE NOTE that if you are starting afresh, please use the successor
+[[https://github.com/flajann2/juwelier][Juwelier]] I (Fred Mitchell, flajann2) will be maintaining both Jeweler and Juwelier, but will be
+adding new features to Juwelier, and eventually "merge" this one into
+Juwelier after some namespace issues are dealt with.
+
+[[https://travis-ci.org/technicalpickles/jeweler][[[https://travis-ci.org/technicalpickles/jeweler.png]]]]
+[[https://coveralls.io/r/technicalpickles/jeweler][[[https://coveralls.io/repos/technicalpickles/jeweler/badge.png]]]]
+[[https://www.versioneye.com/ruby/jeweler/2.0.0][[[https://www.versioneye.com/ruby/jeweler/2.0.0/badge.png]]]]
+[[https://codeclimate.com/github/technicalpickles/jeweler][[[https://codeclimate.com/github/technicalpickles/jeweler/badges/gpa.svg]]]]
+
+** Hello, world
+
+Use RubyGems to install the heck out of jeweler to get started:
+
+#+BEGIN_EXAMPLE
+    $ gem install jeweler
+#+END_EXAMPLE
+
+With jeweler installed, you can use the =jeweler= command to generate a
+new project. For the most basic use, just give it a name:
+
+#+BEGIN_EXAMPLE
+    $ jeweler hello-gem
+#+END_EXAMPLE
+
+This requires some Git configuration (like name, email, GitHub account,
+etc), but =jeweler= will prompt along the way.
+
+Your new =hello-gem= gem is ready in the =hello-gem= directory. Take a
+peek, and you'll see several files and directories
+
+-  =Rakefile= setup for jeweler, running tests, generating
+   documentation, and releasing to
+   [[http://rubygems.org/][rubygems.org]]
+-  =README.rdoc= with contribution guidelines and copyright info
+   crediting you
+-  =LICENSE= with the MIT licensed crediting you
+-  =Gemfile= with development dependencies filled in
+-  =lib/hello-gem.rb= waiting for you to code
+-  =test/= containing a (failing) shoulda test suite
+   [[http://github.com/thoughtbot/shoulda][shoulda]]
+
+*** More =jeweler= options
+
+The =jeweler= command supports a lot of options. Mostly, they are for
+generating baked in support for this test framework, or that.
+
+Check out =jeweler --help= for the most up to date options.
+
+** Hello, rake tasks
+
+Beyond just editing source code, you'll be interacting with your gem
+using =rake= a lot. To see all the tasks available with a brief
+description, you can run:
+
+#+BEGIN_EXAMPLE
+    $ rake -T
+#+END_EXAMPLE
+
+You'll need a version before you can start installing your gem locally.
+The easiest way is with the =version:write= Rake task. Let's imagine you
+start with 0.1.0
+
+#+BEGIN_EXAMPLE
+    $ rake version:write MAJOR=0 MINOR=1 PATCH=0
+#+END_EXAMPLE
+
+You can now go forth and develop, now that there's an initial version
+defined. Eventually, you should install and test the gem:
+
+#+BEGIN_EXAMPLE
+    $ rake install
+#+END_EXAMPLE
+
+The =install= rake task builds the gem and =gem install=s it. You're all
+set if you're using [[http://rvm.beginrescueend.com/][RVM]], but you may
+need to run it with sudo if you have a system-installed ruby:
+
+#+BEGIN_EXAMPLE
+    $ sudo rake install
+#+END_EXAMPLE
+
+*** Releasing
+
+At last, it's time to [[http://shipitsquirrel.github.com/][ship it]]!
+Make sure you have everything committed and pushed, then go wild:
+
+#+BEGIN_EXAMPLE
+    $ rake release
+#+END_EXAMPLE
+
+This will automatically:
+
+-  Generate =hello-gem.gemspec= and commit it
+-  Use =git= to tag =v0.1.0= and push it
+-  Build =hello-gem-0.1.0.gem= and push it to
+   [[http://rubygems.org/gems/][rubygems.org]]
+
+=rake release= accepts REMOTE(default: =origin=), LOCAL\_BRANCH(default:
+=master=), REMOTE\_BRANCH(default: =master=) and BRANCH(default:
+master)as options.
+
+#+BEGIN_EXAMPLE
+    $ rake release REMOTE=upstream LOCAL_BRANCH=critical-security-fix REMOTE_BRANCH=v3
+#+END_EXAMPLE
+
+This will tag and push the commits on your local branch named
+=critical-security-fix= to branch named =v3= in remote named =upstream=
+(if you have commit rights on =upstream=) and release the gem.
+
+#+BEGIN_EXAMPLE
+    $ rake release BRANCH=v3
+#+END_EXAMPLE
+
+If both remote and local branches are the same, use =BRANCH= option to
+simplify. This will tag and push the commits on your local branch named
+=v3= to branch named =v3= in remote named =origin= (if you have commit
+rights on =origin=) and release the gem.
+
+*** Version bumping
+
+It feels good to release code. Do it, do it often. But before that, bump
+the version. Then release it. There's a few ways to update the version:
+
+#+BEGIN_EXAMPLE
+    # version:write like before
+    $ rake version:write MAJOR=0 MINOR=3 PATCH=0
+
+    # bump just major, ie 0.1.0 -> 1.0.0
+    $ rake version:bump:major
+
+    # bump just minor, ie 0.1.0 -> 0.2.0
+    $ rake version:bump:minor
+
+    # bump just patch, ie 0.1.0 -> 0.1.1
+    $ rake version:bump:patch
+#+END_EXAMPLE
+
+Then it's the same =release= we used before:
+
+#+BEGIN_EXAMPLE
+    $ rake release
+#+END_EXAMPLE
+
+** Customizing your gem
+
+If you've been following along so far, your gem is just a blank slate.
+You're going to need to make it colorful and full of metadata.
+
+You can customize your gem by updating your =Rakefile=. With a newly
+generated project, it will look something like this:
+
+#+BEGIN_EXAMPLE
+    require 'jeweler'
+    Jeweler::Tasks.new do |gem|
+      # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options
+      gem.name = "whatwhatwhat"
+      gem.summary = %Q{TODO: one-line summary of your gem}
+      gem.description = %Q{TODO: longer description of your gem}
+      gem.email = "josh@technicalpickles.com"
+      gem.homepage = "http://github.com/technicalpickles/whatwhatwhat"
+      gem.authors = ["Joshua Nichols"]
+    end
+    Jeweler::RubygemsDotOrgTasks.new
+#+END_EXAMPLE
+
+It's crucial to understand the =gem= object is just a
+Gem::Specification. You can read up about it at
+[[http://guides.rubygems.org/specification-reference/][guides.rubygems.org/specification-reference]].
+This is the most basic way of specifying a gem, Jeweler-managed or not.
+Jeweler just exposes this to you, in addition to providing some
+reasonable defaults, which we'll explore now.
+
+*** Project information
+
+#+BEGIN_EXAMPLE
+    gem.name = "whatwhatwhat"
+#+END_EXAMPLE
+
+Every gem has a name. Among other things, the gem name is how you are
+able to =gem install= it.
+[[http://guides.rubygems.org/specification-reference/#name][Reference]]
+
+#+BEGIN_EXAMPLE
+    gem.summary = %Q{TODO: one-line summary of your gem}
+#+END_EXAMPLE
+
+This is a one line summary of your gem. This is displayed, for example,
+when you use =gem list --details= or view it on
+[[http://rubygems.org/gems/][rubygems.org]].
+
+#+BEGIN_EXAMPLE
+    gem.description = %Q{TODO: longer description of your gem}
+#+END_EXAMPLE
+
+Description is a longer description. Scholars ascertain that knowledge
+of where the description is used was lost centuries ago.
+
+#+BEGIN_EXAMPLE
+    gem.email = "josh@technicalpickles.com"
+#+END_EXAMPLE
+
+This should be a way to get a hold of you regarding the gem.
+
+#+BEGIN_EXAMPLE
+    gem.homepage = "http://github.com/technicalpickles/whatwhatwhat"
+#+END_EXAMPLE
+
+The homepage should have more information about your gem. The jeweler
+generator guesses this based on the assumption your code lives on
+[[http://github.com/][GitHub]], using your Git configuration to find
+your GitHub username. This is displayed by =gem list --details= and on
+rubygems.org.
+
+#+BEGIN_EXAMPLE
+    gem.authors = ["Joshua Nichols"]
+#+END_EXAMPLE
+
+Hey, this is you, the author (or me in this case). The =jeweler=
+generator also guesses this from your Git configuration. This is
+displayed by =gem list --details= and on rubygems.org.
+
+*** Files
+
+The quickest way to add more files is to =git add= them. Jeweler uses
+your Git repository to populate your gem's files by including added and
+committed and excluding =.gitignore=d. In most cases, this is reasonable
+enough.
+
+If you need to tweak the files, that's cool. Jeweler populates
+=gem.files= as a =Rake::FileList=. It's like a normal array, except you
+can =include= and =exclude= file globs:
+
+#+BEGIN_EXAMPLE
+    gem.files.exclude 'tmp' # exclude temporary directory
+    gem.files.include 'lib/foo/bar.rb' # explicitly include lib/foo/bar.rb
+#+END_EXAMPLE
+
+If that's not enough, you can just set =gem.files= outright
+
+#+BEGIN_EXAMPLE
+    gem.files = Dir.glob('lib/**/*.rb')
+#+END_EXAMPLE
+
+*** Dependencies
+
+Dependencies let you define other gems that your gem needs to function.
+=gem install your-gem= will install your-gem's dependencies along with
+it, and when you use your-gem in an application, the dependencies will
+be made available. Use =gem.add_dependency= to register them.
+[[http://guides.rubygems.org/specification-reference/#add_development_dependency][Reference]]
+
+#+BEGIN_EXAMPLE
+    gem.add_dependency 'nokogiri'
+#+END_EXAMPLE
+
+This will ensure a version of =nokogiri= is installed, but it doesn't
+require anything more than that. You can provide extra args to be more
+specific:
+
+#+BEGIN_EXAMPLE
+    gem.add_dependency 'nokogiri', '= 1.2.1' # exactly version 1.2.1
+    gem.add_dependency 'nokogiri', '>= 1.2.1' # greater than or equal to 1.2.1, ie, 1.2.1, 1.2.2, 1.3.0, 2.0.0, etc
+    gem.add_dependency 'nokogiri', '>= 1.2.1', '< 1.3.0' # greater than or equal to 1.2.1, but less than 1.3.0
+    gem.add_dependency 'nokogiri', '~> 1.2.1' # same thing, but more concise
+#+END_EXAMPLE
+
+When specifying which version is required, there's a bit of the
+condunrum. You want to allow the most versions possible, but you want to
+be sure they are compatible. Using =>= 1.2.1= is fine most of the time,
+except until the point that 2.0.0 comes out and totally breaks backwards
+the API. That's when it's good to use =~> 1.2.1=, which requires any
+version in the =1.2= family, starting with =1.2.1=.
+
+*** Executables
+
+Executables let your gem install shell commands. Just put any executable
+scripts in the =bin/= directory, make sure they are added using =git=,
+and Jeweler will take care of the rest.
+
+When you need more finely grained control over it, you can set it
+yourself:
+
+#+BEGIN_EXAMPLE
+    gem.executables = ['foo'] # note, it's the file name relative to `bin/`, not the project root
+#+END_EXAMPLE
+
+*** Versioning
+
+We discussed earlier how to bump the version. The rake tasks are really
+just convience methods for manipulating the =VERSION= file. It just
+contains a version string, like =1.2.3=.
+
+=VERSION= is a convention used by Jeweler, and is used to populate
+=gem.version=. You can actually set this yourself, and Jeweler won't try
+to override it:
+
+#+BEGIN_EXAMPLE
+    gem.version = '1.2.3'
+#+END_EXAMPLE
+
+A common pattern is to have this in a version constant in your library.
+This is convenient, because users of the library can query the version
+they are using at runtime.
+
+#+BEGIN_EXAMPLE
+    # in lib/foo/version.rb
+    class Foo
+      module Version
+        MAJOR = 1
+        MINOR = 2
+        PATCH = 3
+        BUILD = 'pre3'
+
+        STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.')
+      end
+    end
+
+    # in Rakefile
+    require 'jeweler'
+    require './lib/foo/version.rb'
+    Jeweler::Tasks.new do |gem|
+      # snip
+      gem.version = Foo::Version::STRING
+    end
+#+END_EXAMPLE
+
+*** Rake tasks
+
+Jeweler lives inside of Rake. As a result, they are dear friends. But,
+that friendship doesn't interfere with typical Rake operations.
+
+That means you can define your own namespaces, tasks, or use third party
+Rake libraries without cause for concern.
+
+** Contributing to Jeweler
+
+-  Check out the latest master to make sure the feature hasn't been
+   implemented or the bug hasn't been fixed yet
+-  Ask on the [[http://groups.google.com/group/jeweler-rb][mailing
+   list]] for feedback on your proposal, to see if somebody else has
+   done it.
+-  Check out the
+   [[http://github.com/technicalpickles/jeweler/issues][issue tracker]]
+   to make sure someone already hasn't requested it and/or contributed
+   it
+-  Fork the project
+-  Start a feature/bugfix branch
+-  Commit and push until you are happy with your contribution
+-  Make sure to add tests for the feature/bugfix. This is important so I
+   don't break it in a future version unintentionally.
+-  Please try not to mess with the Rakefile, version, or history. If you
+   want to have your own version, or is otherwise necessary, that is
+   fine, but please isolate it to its own commit so I can cherry-pick
+   around it.
+
+** Copyright
+
+Copyright (c) 2008-2010 Josh Nichols. Copyright (c) 2016 Fred Mitchell.
+See LICENSE for details.
diff --git a/Rakefile b/Rakefile
index 5f26ffe..62bdb42 100644
--- a/Rakefile
+++ b/Rakefile
@@ -2,12 +2,17 @@
 
 require 'rubygems'
 require 'bundler'
+require 'semver'
+
+def s_version
+  SemVer.find.format "%M.%m.%p%s"
+end
 
 begin
   Bundler.setup(:default, :xzibit, :development)
 rescue Bundler::BundlerError => e
   $stderr.puts e.message
-  $stderr.puts "Run `bundle install` to install missing gems"
+  $stderr.puts 'Run `bundle install` to install missing gems'
   exit e.status_code
 end
 
@@ -15,17 +20,16 @@ require 'rake'
 require 'jeweler'
 
 Jeweler::Tasks.new do |gem|
-  gem.name = "jeweler"
-  gem.version = Jeweler::Version::STRING
-  gem.homepage = "http://github.com/technicalpickles/jeweler"
-  gem.summary = "Opinionated tool for creating and managing RubyGem projects"
-  gem.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
-  gem.license = "MIT"
-  gem.authors = ["Josh Nichols", "Yusuke Murata"]
-  gem.email = ["josh@technicalpickles.com", "info@muratayusuke.com"]
+  gem.name = 'jeweler'
+  gem.version = s_version
+  gem.homepage = 'http://github.com/technicalpickles/jeweler'
+  gem.summary = 'Opinionated tool for creating and managing RubyGem projects'
+  gem.description = 'Simple and opinionated helper for creating Rubygem projects on GitHub'
+  gem.required_ruby_version = '>= 2.2.0'
+  gem.license = 'MIT'
+  gem.authors = ["Fred Mitchell", "Josh Nichols", "Yusuke Murata"]
+  gem.email = ["fred.mitchell@gmx.de", "fred.mitchell@gmx.com", "info@muratayusuke.com"]
   gem.files.include %w(lib/jeweler/templates/.document lib/jeweler/templates/.gitignore)
-
-  # dependencies defined in Gemfile
 end
 
 Jeweler::RubygemsDotOrgTasks.new
@@ -44,7 +48,7 @@ namespace :test do
   task :gemspec_dup do
     gemspec = Rake.application.jeweler.gemspec
     dupped_gemspec = gemspec.dup
-    cloned_gemspec = gemspec.clone
+    _cloned_gemspec = gemspec.clone
     puts gemspec.to_ruby
     puts dupped_gemspec.to_ruby
   end
@@ -52,22 +56,21 @@ end
 
 require 'yard'
 YARD::Rake::YardocTask.new do |t|
-  t.files   = FileList['lib/**/*.rb'].exclude('lib/jeweler/templates/**/*.rb')
+  t.files = FileList['lib/**/*.rb'].exclude('lib/jeweler/templates/**/*.rb')
 end
 
 require 'cucumber/rake/task'
 Cucumber::Rake::Task.new(:features) do |features|
-  features.cucumber_opts = "features --format progress"
+  features.cucumber_opts = 'features --format progress'
 end
 namespace :features do
   Cucumber::Rake::Task.new(:pretty) do |features|
-    features.cucumber_opts = "features --format progress"
+    features.cucumber_opts = 'features --format progress'
   end
 end
 
-if ENV["RUN_CODE_RUN"] == "true"
-  task :default => [:test, :features]
+if ENV['RUN_CODE_RUN'] == 'true'
+  task default: [:test, :features]
 else
-  task :default => :test
+  task default: :test
 end
-
diff --git a/debian/changelog b/debian/changelog
index 60efe51..a565b1d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-ruby-jeweler (2.0.1-4) UNRELEASED; urgency=medium
+ruby-jeweler (2.3.9-1) UNRELEASED; urgency=medium
 
   [ Utkarsh Gupta ]
   * Add salsa-ci.yml
@@ -21,8 +21,9 @@ ruby-jeweler (2.0.1-4) UNRELEASED; urgency=medium
   * Update lintian override info format in d/ruby-jeweler.lintian-overrides on
     line 2.
   * Bump debhelper from old 12 to 13.
+  * New upstream release.
 
- -- Utkarsh Gupta <guptautkarsh2102@gmail.com>  Tue, 13 Aug 2019 05:48:52 +0530
+ -- Utkarsh Gupta <guptautkarsh2102@gmail.com>  Fri, 06 Jan 2023 11:39:31 -0000
 
 ruby-jeweler (2.0.1-3) unstable; urgency=medium
 
diff --git a/features/generator/test.feature b/features/generator/test.feature
index 48dc27a..01b39f3 100644
--- a/features/generator/test.feature
+++ b/features/generator/test.feature
@@ -13,7 +13,7 @@ Feature: generated test or spec
     Given a working directory
     And I have configured git sanely
     When I generate a minitest project named 'the-perfect-gem' that is 'zomg, so good'
-    Then 'test/test_the-perfect-gem.rb' should define 'TestThePerfectGem' as a subclass of 'MiniTest::Unit::TestCase'
+    Then 'test/test_the-perfect-gem.rb' should define 'TestThePerfectGem' as a subclass of 'MiniTest::Test'
 
   Scenario: rspec
     Given a working directory
@@ -51,4 +51,4 @@ Feature: generated test or spec
     Given a working directory
     And I have configured git sanely
     When I generate a shindo project named 'the-perfect-gem' that is 'zomg, so good'
-    Then 'tests/the-perfect-gem_tests.rb' should have tests for 'ThePerfectGem'
\ No newline at end of file
+    Then 'tests/the-perfect-gem_tests.rb' should have tests for 'ThePerfectGem'
diff --git a/features/step_definitions/debug_steps.rb b/features/step_definitions/debug_steps.rb
index 514bc5c..a89da4b 100644
--- a/features/step_definitions/debug_steps.rb
+++ b/features/step_definitions/debug_steps.rb
@@ -3,4 +3,3 @@ Then /^I debug$/ do
   breakpoint
   0
 end
-
diff --git a/features/step_definitions/filesystem_steps.rb b/features/step_definitions/filesystem_steps.rb
index 5d1862e..50d9d4b 100644
--- a/features/step_definitions/filesystem_steps.rb
+++ b/features/step_definitions/filesystem_steps.rb
@@ -21,7 +21,7 @@ Given /^I use the jeweler command to generate the "([^"]+)" project in the worki
 end
 
 Given /^"([^"]+)" does not exist$/ do |file|
-  assert ! File.exists?(File.join(@working_dir, file))
+  assert !File.exist?(File.join(@working_dir, file))
 end
 
 When /^I run "([^"]+)" in "([^"]+)"$/ do |command, directory|
@@ -33,7 +33,7 @@ When /^I run "([^"]+)" in "([^"]+)"$/ do |command, directory|
   assert File.directory?(full_path), "#{full_path} is not a directory"
 
   @stdout = `cd #{full_path} && #{command}`
-  @exited_cleanly = $?.exited?
+  @exited_cleanly = $CHILD_STATUS.exited?
 end
 
 Then /^the updated version, (.*), is displayed$/ do |version|
@@ -67,4 +67,3 @@ Given /^"VERSION" contains "([^\"]*)"$/ do |expected|
   version = File.read(File.join(@working_dir, @name, 'VERSION')).chomp
   assert_equal expected, version
 end
-
diff --git a/features/step_definitions/generator_steps.rb b/features/step_definitions/generator_steps.rb
index e0e01dd..9f61a46 100644
--- a/features/step_definitions/generator_steps.rb
+++ b/features/step_definitions/generator_steps.rb
@@ -18,7 +18,6 @@ Given /^I do not want bundler$/ do
   @use_bundler = false
 end
 
-
 Given /^I want bundler$/ do
   @use_bundler = true
 end
@@ -40,14 +39,13 @@ And /^I want rubyforge setup$/ do
 end
 
 Given /^I want to use yard instead of rdoc$/ do
-  @documentation_framework = "yard"
+  @documentation_framework = 'yard'
 end
 
 Given /^I want to use rdoc instead of yard$/ do
-  @documentation_framework = "rdoc"
+  @documentation_framework = 'rdoc'
 end
 
-
 Given /^I intend to test with (\w+)$/ do |testing_framework|
   @testing_framework = testing_framework.to_sym
 end
@@ -58,11 +56,10 @@ Given /^I have configured git sanely$/ do
   @github_user = 'technicalpickles'
 
   require 'git'
-  Git.stubs(:global_config).
-        returns({
-          'user.name' => @user_name,
-          'user.email' => @user_email,
-          'github.user' => @github_user})
+  Git.stubs(:global_config)
+     .returns('user.name' => @user_name,
+              'user.email' => @user_email,
+              'github.user' => @github_user)
 end
 
 Given /^I set JEWELER_OPTS env variable to "(.*)"$/ do |val|
@@ -79,26 +76,21 @@ When /^I generate a (.*)project named '((?:\w|-|_)+)' that is '([^']*)' and desc
   @description = description
 
   testing_framework = testing_framework.squeeze.strip
-  unless testing_framework.blank?
-    @testing_framework = testing_framework.to_sym
-  end
+  @testing_framework = testing_framework.to_sym unless testing_framework.blank?
 
-
-  arguments = [ '--summary', @summary,
+  arguments = ['--summary', @summary,
                '--description', @description,
-                @use_cucumber ? '--cucumber' : nil,
-                @testing_framework ? "--#{@testing_framework}" : nil,
-                @use_rubyforge ? '--rubyforge' : nil,
-                @use_roodi ? '--roodi' : nil,
-                @use_reek ? '--reek' : nil,
-                case @use_bundler
-                when true then '--bundler'
-                when false then '--no-bundler'
-                else nil
-                end,
-                @documentation_framework ? "--#{@documentation_framework}" : nil,
-                "#{@working_dir}/#{@name}"].compact
-
+               @use_cucumber ? '--cucumber' : nil,
+               @testing_framework ? "--#{@testing_framework}" : nil,
+               @use_rubyforge ? '--rubyforge' : nil,
+               @use_roodi ? '--roodi' : nil,
+               @use_reek ? '--reek' : nil,
+               case @use_bundler
+               when true then '--bundler'
+               when false then '--no-bundler'
+               end,
+               @documentation_framework ? "--#{@documentation_framework}" : nil,
+               "#{@working_dir}/#{@name}"].compact
 
   @stdout = OutputCatcher.catch_out do
     Jeweler::Generator::Application.run! *arguments
@@ -110,28 +102,27 @@ end
 Then /^a directory named '(.*)' is created$/ do |directory|
   directory = File.join(@working_dir, directory)
 
-  assert File.exists?(directory), "#{directory} did not exist"
+  assert File.exist?(directory), "#{directory} did not exist"
   assert File.directory?(directory), "#{directory} is not a directory"
 end
 
-Then "cucumber directories are created" do
+Then 'cucumber directories are created' do
   step "a directory named 'the-perfect-gem/features' is created"
   step "a directory named 'the-perfect-gem/features/support' is created"
   step "a directory named 'the-perfect-gem/features/step_definitions' is created"
 end
 
-
 Then /^a file named '(.*)' is created$/ do |file|
   file = File.join(@working_dir, file)
 
-  assert File.exists?(file), "#{file} expected to exist, but did not"
+  assert File.exist?(file), "#{file} expected to exist, but did not"
   assert File.file?(file), "#{file} expected to be a file, but is not"
 end
 
 Then /^a file named '(.*)' is not created$/ do |file|
   file = File.join(@working_dir, file)
 
-  assert ! File.exists?(file), "#{file} expected to not exist, but did"
+  assert !File.exist?(file), "#{file} expected to not exist, but did"
 end
 
 Then /^a sane '.gitignore' is created$/ do
@@ -153,21 +144,21 @@ end
 Then /^Rakefile has '(.*)' for the (.*) (.*)$/ do |value, task_class, field|
   @rakefile_content ||= File.read(File.join(@working_dir, @name, 'Rakefile'))
   block_variable, task_block = yank_task_info(@rakefile_content, task_class)
-  #raise "Found in #{task_class}: #{block_variable.inspect}: #{task_block.inspect}"
+  # raise "Found in #{task_class}: #{block_variable.inspect}: #{task_block.inspect}"
 
   assert_match /#{block_variable}\.#{field} = (%Q\{|"|')#{Regexp.escape(value)}(\}|"|')/, task_block
 end
 
 Then /^Rakefile adds '(.*)' as a development dependency to Jeweler::Tasks$/ do |dependency|
   @rakefile_content ||= File.read(File.join(@working_dir, @name, 'Rakefile'))
-  block_variable, task_block = yank_task_info(@rakefile_content, "Jeweler::Tasks")
+  block_variable, task_block = yank_task_info(@rakefile_content, 'Jeweler::Tasks')
 
   assert_match /#{block_variable}\.add_development_dependency "#{dependency}"/, task_block
 end
 
 Then /^Rakefile does not add '(.*)' as a development dependency to Jeweler::Tasks$/ do |dependency|
   @rakefile_content ||= File.read(File.join(@working_dir, @name, 'Rakefile'))
-  block_variable, task_block = yank_task_info(@rakefile_content, "Jeweler::Tasks")
+  block_variable, task_block = yank_task_info(@rakefile_content, 'Jeweler::Tasks')
 
   assert_no_match /#{block_variable}\.add_development_dependency "#{dependency}"/, task_block
 end
@@ -186,7 +177,6 @@ Then /^Rakefile has '(.*)' in the Rcov::RcovTask rcov_opts$/ do |rcov_opts|
   assert_match "#{block_variable}.rcov_opts << '#{rcov_opts}'", @rakefile_content
 end
 
-
 Then /^'(.*)' contains '(.*)'$/ do |file, expected_string|
   contents = File.read(File.join(@working_dir, @name, file))
   assert_match expected_string, contents
@@ -202,7 +192,6 @@ Then /^'(.*)' mentions copyright belonging to me in the current year$/ do |file|
   step "'#{file}' mentions copyright belonging to me in #{current_year}"
 end
 
-
 Then /^LICENSE\.txt credits '(.*)'$/ do |copyright_holder|
   step "a file named 'the-perfect-gem/LICENSE.txt' is created"
   @license_content ||= File.read(File.join(@working_dir, @name, 'LICENSE.txt'))
@@ -214,36 +203,34 @@ Given /^it is the year (\d+)$/ do |year|
   Timecop.travel(time)
 end
 
-
 Then /^LICENSE\.txt has a copyright in the year (\d+)$/ do |year|
   step "a file named 'the-perfect-gem/LICENSE.txt' is created"
   @license_content ||= File.read(File.join(@working_dir, @name, 'LICENSE.txt'))
   assert_match year, @license_content
 end
 
-
 Then /^'(.*)' should define '(.*)' as a subclass of '(.*)'$/ do |file, class_name, superclass_name|
-  @test_content = File.read((File.join(@working_dir, @name, file)))
+  @test_content = File.read(File.join(@working_dir, @name, file))
 
   assert_match "class #{class_name} < #{superclass_name}", @test_content
 end
 
 Then /^'(.*)' should describe '(.*)'$/ do |file, describe_name|
-  @spec_content ||= File.read((File.join(@working_dir, @name, file)))
+  @spec_content ||= File.read(File.join(@working_dir, @name, file))
 
-  assert_match %Q{describe "#{describe_name}" do}, @spec_content
+  assert_match %(describe "#{describe_name}" do), @spec_content
 end
 
 Then /^'(.*)' should contextualize '(.*)'$/ do |file, describe_name|
-  @spec_content ||= File.read((File.join(@working_dir, @name, file)))
+  @spec_content ||= File.read(File.join(@working_dir, @name, file))
 
-  assert_match %Q{context "#{describe_name}" do}, @spec_content
+  assert_match %(context "#{describe_name}" do), @spec_content
 end
 
 Then /^'(.*)' should have tests for '(.*)'$/ do |file, describe_name|
-  @tests_content ||= File.read((File.join(@working_dir, @name, file)))
+  @tests_content ||= File.read(File.join(@working_dir, @name, file))
 
-  assert_match %Q{Shindo.tests("#{describe_name}") do}, @tests_content
+  assert_match %{Shindo.tests("#{describe_name}") do}, @tests_content
 end
 
 Then /^'(.*)' requires '(.*)'$/ do |file, lib|
@@ -276,11 +263,10 @@ Then /^Rakefile instantiates a (.*)$/ do |task_name|
   assert_match /#{task_name}/, content
 end
 
-
 Then /^'(.+?)' should autorun tests$/ do |test_helper|
   content = File.read(File.join(@working_dir, @name, test_helper))
 
-  assert_match "MiniTest::Unit.autorun", content
+  assert_match "require 'minitest/autorun'", content
 end
 
 Then /^cucumber world extends "(.*)"$/ do |module_to_extend|
@@ -288,15 +274,13 @@ Then /^cucumber world extends "(.*)"$/ do |module_to_extend|
   assert_match "World(#{module_to_extend})", content
 end
 
-
 Then /^'features\/support\/env\.rb' sets up features to use test\/unit assertions$/ do
-
 end
 
 Then /^'features\/support\/env\.rb' sets up features to use minitest assertions$/ do
   content = File.read(File.join(@working_dir, @name, 'features', 'support', 'env.rb'))
 
-  assert_match "world.extend(Mini::Test::Assertions)", content
+  assert_match 'world.extend(Mini::Test::Assertions)', content
 end
 
 Then /^git repository has '(.*)' remote$/ do |remote|
@@ -305,7 +289,7 @@ Then /^git repository has '(.*)' remote$/ do |remote|
   assert_equal 'origin', remote.name
 end
 
-Then /^git repository '(.*)' remote should be '(.*)'/ do |remote, remote_url|
+Then /^git repository '(.*)' remote should be '(.*)'/ do |remote, _remote_url|
   remote = @repo.remotes.first
 
   assert_equal 'git@github.com:technicalpickles/the-perfect-gem.git', remote.url
@@ -319,7 +303,7 @@ Then /^'(.*)' was checked in$/ do |file|
   status = @repo.status[file]
 
   assert_not_nil status, "wasn't able to get status for #{file}"
-  assert ! status.untracked, "#{file} was untracked"
+  assert !status.untracked, "#{file} was untracked"
   assert_nil status.type, "#{file} had a type. it should have been nil"
 end
 
@@ -332,7 +316,6 @@ Then /^Rakefile has "(.*)" as the default task$/ do |task|
   assert_match "task :default => :#{task}", @rakefile_content
 end
 
-
 After do
   ENV['JEWELER_OPTS'] = nil
 end
@@ -356,15 +339,14 @@ end
 Then /^'Gemfile' has a development dependency on the current version of jeweler$/ do
   @gemfile_content ||= File.read(File.join(@working_dir, @name, 'Gemfile'))
   group_block = yank_group_info(@gemfile_content, 'development')
-  
-  assert_match %Q{gem "jeweler", "~> #{Jeweler::Version::STRING}"}, group_block
-end
 
+  assert_match %(gem "jeweler", "~> #{Jeweler::Version::STRING}"), group_block
+end
 
 Then /^'(.*)' sets up bundler using the default and development groups$/ do |file|
   content = File.read(File.join(@working_dir, @name, file))
 
-  assert_match "Bundler.setup(:default, :development)", content
+  assert_match 'Bundler.setup(:default, :development)', content
 end
 
 Then /^'(.*)' does not setup bundler$/ do |file|
@@ -373,15 +355,13 @@ Then /^'(.*)' does not setup bundler$/ do |file|
   assert_no_match /Bundler\.setup/, content
 end
 
-Then /^'Gemfile' uses the (.*) source$/ do |source|
+Then /^'Gemfile' uses the (.*) source$/ do |_source|
   content = File.read(File.join(@working_dir, @name, 'Gemfile'))
 
-  assert_match %Q{source "http://rubygems.org"}, content
+  assert_match %(source "https://rubygems.org"), content
 end
 
-
-Then /^Rakefile has a magic comment for UTF\-(\d+)$/ do |arg1|
+Then /^Rakefile has a magic comment for UTF\-(\d+)$/ do |_arg1|
   content = File.read(File.join(@working_dir, @name, 'Rakefile'))
-  assert_match "# encoding: utf-8", content
+  assert_match '# encoding: utf-8', content
 end
-
diff --git a/features/step_definitions/task_steps.rb b/features/step_definitions/task_steps.rb
index 76ec3d3..e90fc1c 100644
--- a/features/step_definitions/task_steps.rb
+++ b/features/step_definitions/task_steps.rb
@@ -1,6 +1,5 @@
 Then /^I can gem install "([^"]+)"$/ do |gem_path|
   @stdout = `cd #{@working_dir}; gem install --install-dir #{@working_dir}/gem-install-dir --no-ri --no-rdoc #{gem_path} 2>&1`
   assert_no_match /ERROR/, @stdout
-  assert $?.exited?
+  assert $CHILD_STATUS.exited?
 end
-
diff --git a/features/support/env.rb b/features/support/env.rb
index 25f13ec..08d30c3 100644
--- a/features/support/env.rb
+++ b/features/support/env.rb
@@ -1,24 +1,40 @@
+ENV.delete_if { |name, _| name.start_with?('GIT') }
 require 'bundler'
 begin
   Bundler.setup(:default, :xzibit, :test)
 rescue Bundler::BundlerError => e
   $stderr.puts e.message
-  $stderr.puts "Run `bundle install` to install missing gems"
+  $stderr.puts 'Run `bundle install` to install missing gems'
   exit e.status_code
 end
 
 require 'jeweler'
 require 'mocha'
+require 'mocha/api'
+World(Mocha::API)
+
+Before do
+  mocha_setup
+end
+
+After do
+  begin
+    mocha_verify
+  ensure
+    mocha_teardown
+  end
+end
+
 require 'output_catcher'
 require 'timecop'
-require 'ruby-debug'
 require 'active_support'
+require 'active_support/core_ext/object/blank'
 
 require 'test/unit/assertions'
 World(Test::Unit::Assertions)
 
-require 'construct'
-World(Construct::Helpers)
+require 'test_construct'
+World(TestConstruct::Helpers)
 
 def yank_task_info(content, task)
   if content =~ /#{Regexp.escape(task)}.new(\(.*\))? do \|(.*?)\|(.*?)^end$/m
@@ -27,9 +43,7 @@ def yank_task_info(content, task)
 end
 
 def yank_group_info(content, group)
-  if content =~ /group :#{group} do(.*?)end/m
-    $1
-  end
+  $1 if content =~ /group :#{group} do(.*?)end/m
 end
 
 def fixture_dir
diff --git a/jeweler.gemspec b/jeweler.gemspec
index 9eeac7b..f964059 100644
--- a/jeweler.gemspec
+++ b/jeweler.gemspec
@@ -2,31 +2,37 @@
 # DO NOT EDIT THIS FILE DIRECTLY
 # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
 # -*- encoding: utf-8 -*-
+# stub: jeweler 2.3.9 ruby lib
 
 Gem::Specification.new do |s|
-  s.name = "jeweler"
-  s.version = "2.0.1"
+  s.name = "jeweler".freeze
+  s.version = "2.3.9"
 
-  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
-  s.authors = ["Josh Nichols", "Yusuke Murata"]
-  s.date = "2014-01-29"
-  s.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
-  s.email = ["josh@technicalpickles.com", "info@muratayusuke.com"]
-  s.executables = ["jeweler"]
+  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
+  s.require_paths = ["lib".freeze]
+  s.authors = ["Fred Mitchell".freeze, "Josh Nichols".freeze, "Yusuke Murata".freeze]
+  s.date = "2018-01-18"
+  s.description = "Simple and opinionated helper for creating Rubygem projects on GitHub".freeze
+  s.email = ["fred.mitchell@gmx.de".freeze, "fred.mitchell@gmx.com".freeze, "info@muratayusuke.com".freeze]
+  s.executables = ["jeweler".freeze]
   s.extra_rdoc_files = [
     "ChangeLog.markdown",
     "LICENSE.txt",
-    "README.markdown"
+    "README.markdown",
+    "README.org"
   ]
   s.files = [
     ".coveralls.yml",
     ".document",
+    ".semver",
     ".travis.yml",
     ".yardopts",
     "ChangeLog.markdown",
     "Gemfile",
+    "Gemfile.lock",
     "LICENSE.txt",
     "README.markdown",
+    "README.org",
     "Rakefile",
     "bin/jeweler",
     "features/generator/cucumber.feature",
@@ -181,55 +187,61 @@ Gem::Specification.new do |s|
     "test/test_helper.rb",
     "test/test_jeweler.rb"
   ]
-  s.homepage = "http://github.com/technicalpickles/jeweler"
-  s.licenses = ["MIT"]
-  s.require_paths = ["lib"]
-  s.rubygems_version = "2.0.3"
-  s.summary = "Opinionated tool for creating and managing RubyGem projects"
+  s.homepage = "http://github.com/technicalpickles/jeweler".freeze
+  s.licenses = ["MIT".freeze]
+  s.required_ruby_version = Gem::Requirement.new(">= 2.2.0".freeze)
+  s.rubygems_version = "2.6.11".freeze
+  s.summary = "Opinionated tool for creating and managing RubyGem projects".freeze
 
   if s.respond_to? :specification_version then
     s.specification_version = 4
 
     if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
-      s.add_runtime_dependency(%q<rake>, [">= 0"])
-      s.add_runtime_dependency(%q<git>, [">= 1.2.5"])
-      s.add_runtime_dependency(%q<nokogiri>, [">= 1.5.10"])
-      s.add_runtime_dependency(%q<github_api>, [">= 0"])
-      s.add_runtime_dependency(%q<highline>, [">= 1.6.15"])
-      s.add_runtime_dependency(%q<bundler>, [">= 1.0"])
-      s.add_runtime_dependency(%q<rdoc>, [">= 0"])
-      s.add_runtime_dependency(%q<builder>, [">= 0"])
-      s.add_development_dependency(%q<yard>, [">= 0.8.5"])
-      s.add_development_dependency(%q<bluecloth>, [">= 0"])
-      s.add_development_dependency(%q<cucumber>, [">= 1.1.4"])
-      s.add_development_dependency(%q<simplecov>, [">= 0"])
+      s.add_runtime_dependency(%q<rake>.freeze, [">= 0"])
+      s.add_runtime_dependency(%q<git>.freeze, [">= 1.2.5"])
+      s.add_runtime_dependency(%q<nokogiri>.freeze, [">= 1.5.10"])
+      s.add_runtime_dependency(%q<github_api>.freeze, ["~> 0.16.0"])
+      s.add_runtime_dependency(%q<highline>.freeze, [">= 1.6.15"])
+      s.add_runtime_dependency(%q<bundler>.freeze, [">= 0"])
+      s.add_runtime_dependency(%q<rdoc>.freeze, [">= 0"])
+      s.add_runtime_dependency(%q<builder>.freeze, [">= 0"])
+      s.add_runtime_dependency(%q<semver2>.freeze, [">= 0"])
+      s.add_runtime_dependency(%q<psych>.freeze, [">= 0"])
+      s.add_development_dependency(%q<yard>.freeze, [">= 0.8.5"])
+      s.add_development_dependency(%q<bluecloth>.freeze, [">= 0"])
+      s.add_development_dependency(%q<cucumber>.freeze, [">= 1.1.4"])
+      s.add_development_dependency(%q<simplecov>.freeze, [">= 0"])
     else
-      s.add_dependency(%q<rake>, [">= 0"])
-      s.add_dependency(%q<git>, [">= 1.2.5"])
-      s.add_dependency(%q<nokogiri>, [">= 1.5.10"])
-      s.add_dependency(%q<github_api>, [">= 0"])
-      s.add_dependency(%q<highline>, [">= 1.6.15"])
-      s.add_dependency(%q<bundler>, [">= 1.0"])
-      s.add_dependency(%q<rdoc>, [">= 0"])
-      s.add_dependency(%q<builder>, [">= 0"])
-      s.add_dependency(%q<yard>, [">= 0.8.5"])
-      s.add_dependency(%q<bluecloth>, [">= 0"])
-      s.add_dependency(%q<cucumber>, [">= 1.1.4"])
-      s.add_dependency(%q<simplecov>, [">= 0"])
+      s.add_dependency(%q<rake>.freeze, [">= 0"])
+      s.add_dependency(%q<git>.freeze, [">= 1.2.5"])
+      s.add_dependency(%q<nokogiri>.freeze, [">= 1.5.10"])
+      s.add_dependency(%q<github_api>.freeze, ["~> 0.16.0"])
+      s.add_dependency(%q<highline>.freeze, [">= 1.6.15"])
+      s.add_dependency(%q<bundler>.freeze, [">= 0"])
+      s.add_dependency(%q<rdoc>.freeze, [">= 0"])
+      s.add_dependency(%q<builder>.freeze, [">= 0"])
+      s.add_dependency(%q<semver2>.freeze, [">= 0"])
+      s.add_dependency(%q<psych>.freeze, [">= 0"])
+      s.add_dependency(%q<yard>.freeze, [">= 0.8.5"])
+      s.add_dependency(%q<bluecloth>.freeze, [">= 0"])
+      s.add_dependency(%q<cucumber>.freeze, [">= 1.1.4"])
+      s.add_dependency(%q<simplecov>.freeze, [">= 0"])
     end
   else
-    s.add_dependency(%q<rake>, [">= 0"])
-    s.add_dependency(%q<git>, [">= 1.2.5"])
-    s.add_dependency(%q<nokogiri>, [">= 1.5.10"])
-    s.add_dependency(%q<github_api>, [">= 0"])
-    s.add_dependency(%q<highline>, [">= 1.6.15"])
-    s.add_dependency(%q<bundler>, [">= 1.0"])
-    s.add_dependency(%q<rdoc>, [">= 0"])
-    s.add_dependency(%q<builder>, [">= 0"])
-    s.add_dependency(%q<yard>, [">= 0.8.5"])
-    s.add_dependency(%q<bluecloth>, [">= 0"])
-    s.add_dependency(%q<cucumber>, [">= 1.1.4"])
-    s.add_dependency(%q<simplecov>, [">= 0"])
+    s.add_dependency(%q<rake>.freeze, [">= 0"])
+    s.add_dependency(%q<git>.freeze, [">= 1.2.5"])
+    s.add_dependency(%q<nokogiri>.freeze, [">= 1.5.10"])
+    s.add_dependency(%q<github_api>.freeze, ["~> 0.16.0"])
+    s.add_dependency(%q<highline>.freeze, [">= 1.6.15"])
+    s.add_dependency(%q<bundler>.freeze, [">= 0"])
+    s.add_dependency(%q<rdoc>.freeze, [">= 0"])
+    s.add_dependency(%q<builder>.freeze, [">= 0"])
+    s.add_dependency(%q<semver2>.freeze, [">= 0"])
+    s.add_dependency(%q<psych>.freeze, [">= 0"])
+    s.add_dependency(%q<yard>.freeze, [">= 0.8.5"])
+    s.add_dependency(%q<bluecloth>.freeze, [">= 0"])
+    s.add_dependency(%q<cucumber>.freeze, [">= 1.1.4"])
+    s.add_dependency(%q<simplecov>.freeze, [">= 0"])
   end
 end
 
diff --git a/lib/jeweler.rb b/lib/jeweler.rb
index 599e21f..d6b0ac2 100644
--- a/lib/jeweler.rb
+++ b/lib/jeweler.rb
@@ -16,12 +16,12 @@ class Jeweler
   autoload :Generator,      'jeweler/generator'
 
   autoload :Commands,       'jeweler/commands'
-  
+
   autoload :VersionHelper,  'jeweler/version_helper'
   autoload :GemSpecHelper,  'jeweler/gemspec_helper'
 
   autoload :Tasks,          'jeweler/tasks'
-  autoload :RubygemsDotOrgTasks,  'jeweler/rubygems_dot_org_tasks'
+  autoload :RubygemsDotOrgTasks, 'jeweler/rubygems_dot_org_tasks'
   autoload :GemcutterTasks, 'jeweler/gemcutter_tasks'
   autoload :RubyforgeTasks, 'jeweler/rubyforge_tasks'
   autoload :Specification,  'jeweler/specification'
@@ -72,7 +72,7 @@ class Jeweler
     Jeweler::Commands::WriteGemspec.build_for(self).run
   end
 
-  # Validates the project's gemspec from disk in an environment similar to how 
+  # Validates the project's gemspec from disk in an environment similar to how
   # GitHub would build from it. See http://gist.github.com/16215
   def validate_gemspec
     Jeweler::Commands::ValidateGemspec.build_for(self).run
@@ -96,26 +96,26 @@ class Jeweler
   # Bumps the patch version.
   #
   # 1.5.1 -> 1.5.2
-  def bump_patch_version()
+  def bump_patch_version
     Jeweler::Commands::Version::BumpPatch.build_for(self).run
   end
 
   # Bumps the minor version.
   #
   # 1.5.1 -> 1.6.0
-  def bump_minor_version()
+  def bump_minor_version
     Jeweler::Commands::Version::BumpMinor.build_for(self).run
   end
 
   # Bumps the major version.
   #
   # 1.5.1 -> 2.0.0
-  def bump_major_version()
+  def bump_major_version
     Jeweler::Commands::Version::BumpMajor.build_for(self).run
   end
 
   # Bumps the version, to the specific major/minor/patch version, writing out the appropriate version.rb, and then reloads it.
-  def write_version(major, minor, patch, build, options = {})
+  def write_version(major, minor, patch, build, _options = {})
     command = Jeweler::Commands::Version::Write.build_for(self)
     command.major = major
     command.minor = minor
@@ -153,26 +153,25 @@ class Jeweler
   end
 
   def git_base_dir(base_dir = nil)
-    if base_dir
-      base_dir = File.dirname(base_dir)
-    else
-      base_dir = File.expand_path(self.base_dir || ".")
-    end
-    return nil if base_dir==File.dirname("/")
-    return base_dir if File.exists?(File.join(base_dir, '.git'))
-    return git_base_dir(base_dir)
-  end    
+    base_dir = if base_dir
+                 File.dirname(base_dir)
+               else
+                 File.expand_path(self.base_dir || '.')
+               end
+    return nil if base_dir == File.dirname('/')
+    return base_dir if File.exist?(File.join(base_dir, '.git'))
+    git_base_dir(base_dir)
+  end
 
   def in_git_repo?
     git_base_dir
   end
 
-  def version_file_exists?
-    File.exists?(@version_helper.plaintext_path) || File.exists?(@version_helper.yaml_path)
+  def version_file_exist?
+    File.exist?(@version_helper.plaintext_path) || File.exist?(@version_helper.yaml_path)
   end
 
   def expects_version_file?
     gemspec.version.nil?
   end
-
 end
diff --git a/lib/jeweler/commands/build_gem.rb b/lib/jeweler/commands/build_gem.rb
index 255c8e7..b5bd034 100644
--- a/lib/jeweler/commands/build_gem.rb
+++ b/lib/jeweler/commands/build_gem.rb
@@ -12,10 +12,10 @@ class Jeweler
 
         gemspec = gemspec_helper.parse
 
-        if Gem::Version.new(`gem -v`) >= Gem::Version.new("2.0.0.a")
+        if Gem::Version.new(`gem -v`) >= Gem::Version.new('2.0.0.a')
           gem_file_name = Gem::Package.build(gemspec)
         else
-          require "rubygems/builder"
+          require 'rubygems/builder'
           gem_file_name = Gem::Builder.new(gemspec).build
         end
 
diff --git a/lib/jeweler/commands/check_dependencies.rb b/lib/jeweler/commands/check_dependencies.rb
index 2bbad1a..af6034f 100644
--- a/lib/jeweler/commands/check_dependencies.rb
+++ b/lib/jeweler/commands/check_dependencies.rb
@@ -13,12 +13,12 @@ class Jeweler
         if missing_dependencies.empty?
           puts "#{type || 'All'} dependencies seem to be installed."
         else
-          puts "Missing some dependencies. Install them with the following commands:"
+          puts 'Missing some dependencies. Install them with the following commands:'
           missing_dependencies.each do |dependency|
-            puts %Q{\tgem install #{dependency.name} --version "#{dependency.requirement.to_s}"}
+            puts %(\tgem install #{dependency.name} --version "#{dependency.requirement}")
           end
 
-          abort "Run the specified gem commands before trying to run this again: #{$0} #{ARGV.join(' ')}"
+          abort "Run the specified gem commands before trying to run this again: {$PROGRAM_NAME} #{ARGV.join(' ')}"
         end
       end
 
diff --git a/lib/jeweler/commands/install_gem.rb b/lib/jeweler/commands/install_gem.rb
index 11cda2c..54b1a10 100644
--- a/lib/jeweler/commands/install_gem.rb
+++ b/lib/jeweler/commands/install_gem.rb
@@ -13,7 +13,7 @@ class Jeweler
         command = "#{gem_command} install #{gemspec_helper.gem_path}"
         output.puts "Executing #{command.inspect}:"
 
-        sh command # TODO where does sh actually come from!? - rake, apparently
+        sh command # TODO: where does sh actually come from!? - rake, apparently
       end
 
       def gem_command
diff --git a/lib/jeweler/commands/release_gemspec.rb b/lib/jeweler/commands/release_gemspec.rb
index cf852cf..7804c3d 100644
--- a/lib/jeweler/commands/release_gemspec.rb
+++ b/lib/jeweler/commands/release_gemspec.rb
@@ -3,7 +3,8 @@ require 'pathname'
 class Jeweler
   module Commands
     class ReleaseGemspec
-      attr_accessor :gemspec, :version, :repo, :output, :gemspec_helper, :base_dir
+      attr_accessor :gemspec, :version, :repo, :output, :base_dir
+      attr_writer :gemspec_helper
 
       def initialize(attributes = {})
         self.output = $stdout
@@ -20,8 +21,8 @@ class Jeweler
         remote_branch = args[:remote_branch] || branch
 
         unless clean_staging_area?
-          system "git status"
-          raise "Unclean staging area! Be sure to commit or .gitignore everything first. See `git status` above."
+          system 'git status'
+          raise 'Unclean staging area! Be sure to commit or .gitignore everything first. See `git status` above.'
         end
 
         repo.checkout(local_branch)
@@ -35,7 +36,7 @@ class Jeweler
 
       def clean_staging_area?
         # surprisingly simpler than ruby-git
-        `git ls-files --deleted --modified --others --exclude-standard` == ""
+        `git ls-files --deleted --modified --others --exclude-standard` == ''
       end
 
       def commit_gemspec!
@@ -56,14 +57,11 @@ class Jeweler
       end
 
       def gemspec_helper
-        @gemspec_helper ||= Jeweler::GemSpecHelper.new(self.gemspec, self.base_dir)
+        @gemspec_helper ||= Jeweler::GemSpecHelper.new(gemspec, base_dir)
       end
 
       def working_subdir
-        return @working_subdir if @working_subdir
-        cwd = base_dir_path
-        @working_subdir = cwd.relative_path_from(Pathname.new(repo.dir.path))
-        @working_subdir
+        @working_subdir ||= base_dir_path.relative_path_from(Pathname.new(repo.dir.path))
       end
 
       def base_dir_path
@@ -71,7 +69,7 @@ class Jeweler
       end
 
       def self.build_for(jeweler)
-        command = self.new
+        command = new
 
         command.base_dir = jeweler.base_dir
         command.gemspec = jeweler.gemspec
diff --git a/lib/jeweler/commands/release_to_git.rb b/lib/jeweler/commands/release_to_git.rb
index 65abc03..5126362 100644
--- a/lib/jeweler/commands/release_to_git.rb
+++ b/lib/jeweler/commands/release_to_git.rb
@@ -18,8 +18,8 @@ class Jeweler
         remote_branch = args[:remote_branch] || branch
 
         unless clean_staging_area?
-          system "git status"
-          raise "Unclean staging area! Be sure to commit or .gitignore everything first. See `git status` above."
+          system 'git status'
+          raise 'Unclean staging area! Be sure to commit or .gitignore everything first. See `git status` above.'
         end
 
         repo.checkout(local_branch)
@@ -35,7 +35,7 @@ class Jeweler
       end
 
       def clean_staging_area?
-        `git ls-files --deleted --modified --others --exclude-standard` == ""
+        `git ls-files --deleted --modified --others --exclude-standard` == ''
       end
 
       def release_tag
@@ -43,12 +43,16 @@ class Jeweler
       end
 
       def release_not_tagged?
-        tag = repo.tag(release_tag) rescue nil
+        tag = begin
+                repo.tag(release_tag)
+              rescue
+                nil
+              end
         tag.nil?
       end
 
       def self.build_for(jeweler)
-        command = self.new
+        command = new
 
         command.base_dir = jeweler.base_dir
         command.gemspec = jeweler.gemspec
diff --git a/lib/jeweler/commands/validate_gemspec.rb b/lib/jeweler/commands/validate_gemspec.rb
index f11a31c..8854614 100644
--- a/lib/jeweler/commands/validate_gemspec.rb
+++ b/lib/jeweler/commands/validate_gemspec.rb
@@ -8,13 +8,11 @@ class Jeweler
       end
 
       def run
-        begin
-          gemspec_helper.parse
-          output.puts "#{gemspec_helper.path} is valid."
-        rescue Exception => e
-          output.puts "#{gemspec_helper.path} is invalid. See the backtrace for more details."
-          raise
-        end
+        gemspec_helper.parse
+        output.puts "#{gemspec_helper.path} is valid."
+      rescue Exception => _e
+        output.puts "#{gemspec_helper.path} is invalid. See the backtrace for more details."
+        raise
       end
 
       def self.build_for(jeweler)
diff --git a/lib/jeweler/commands/version/base.rb b/lib/jeweler/commands/version/base.rb
index 5aa917b..aa3fefc 100644
--- a/lib/jeweler/commands/version/base.rb
+++ b/lib/jeweler/commands/version/base.rb
@@ -4,41 +4,36 @@ class Jeweler
   module Commands
     module Version
       class Base
-
         attr_accessor :repo, :version_helper, :gemspec, :commit, :base_dir
 
         def run
           update_version
 
-          self.version_helper.write
-          self.gemspec.version = self.version_helper.to_s
+          version_helper.write
+          gemspec.version = version_helper.to_s
 
-          commit_version if self.repo && self.commit
+          commit_version if repo && commit
         end
 
         def update_version
-          raise "Subclasses should implement this"
+          raise 'Subclasses should implement this'
         end
 
         def commit_version
-          if self.repo
-            self.repo.add(working_subdir.join(version_helper.path).to_s)
-            self.repo.commit("Version bump to #{self.version_helper.to_s}")
+          if repo
+            repo.add(working_subdir.join(version_helper.path).to_s)
+            repo.commit("Version bump to #{version_helper}")
           end
         end
 
         def working_subdir
-          return @working_subdir if @working_subdir
-          cwd = base_dir_path
-          @working_subdir = cwd.relative_path_from(Pathname.new(repo.dir.path))
-          @working_subdir
+          @working_subdir ||= base_dir_path.relative_path_from(Pathname.new(repo.dir.path))
         end
 
         def base_dir_path
           Pathname.new(base_dir).realpath
         end
 
-
         def self.build_for(jeweler)
           command = new
           command.repo = jeweler.repo
diff --git a/lib/jeweler/commands/version/bump_major.rb b/lib/jeweler/commands/version/bump_major.rb
index a1e0327..a8f35a7 100644
--- a/lib/jeweler/commands/version/bump_major.rb
+++ b/lib/jeweler/commands/version/bump_major.rb
@@ -2,11 +2,9 @@ class Jeweler
   module Commands
     module Version
       class BumpMajor < Base
-
         def update_version
-          self.version_helper.bump_major
+          version_helper.bump_major
         end
-
       end
     end
   end
diff --git a/lib/jeweler/commands/version/bump_minor.rb b/lib/jeweler/commands/version/bump_minor.rb
index 689a058..02d875b 100644
--- a/lib/jeweler/commands/version/bump_minor.rb
+++ b/lib/jeweler/commands/version/bump_minor.rb
@@ -2,9 +2,8 @@ class Jeweler
   module Commands
     module Version
       class BumpMinor < Base
-        
         def update_version
-          self.version_helper.bump_minor
+          version_helper.bump_minor
         end
       end
     end
diff --git a/lib/jeweler/commands/version/bump_patch.rb b/lib/jeweler/commands/version/bump_patch.rb
index 25f72fa..2234246 100644
--- a/lib/jeweler/commands/version/bump_patch.rb
+++ b/lib/jeweler/commands/version/bump_patch.rb
@@ -2,13 +2,10 @@ class Jeweler
   module Commands
     module Version
       class BumpPatch < Base
-
         def update_version
-          self.version_helper.bump_patch
+          version_helper.bump_patch
         end
-
       end
     end
   end
 end
-
diff --git a/lib/jeweler/commands/write_gemspec.rb b/lib/jeweler/commands/write_gemspec.rb
index db7f2f7..e7bd962 100644
--- a/lib/jeweler/commands/write_gemspec.rb
+++ b/lib/jeweler/commands/write_gemspec.rb
@@ -1,7 +1,8 @@
 class Jeweler
   module Commands
     class WriteGemspec
-      attr_accessor :base_dir, :gemspec, :version, :output, :gemspec_helper, :version_helper
+      attr_accessor :base_dir, :gemspec, :version, :output, :version_helper
+      attr_writer :gemspec_helper
 
       def initialize
         self.output = $stdout
@@ -15,11 +16,11 @@ class Jeweler
 
         gemspec_helper.write
 
-        output.puts "Generated: #{gemspec_helper.path}"  
+        output.puts "Generated: #{gemspec_helper.path}"
       end
 
       def gemspec_helper
-        @gemspec_helper ||= GemSpecHelper.new(self.gemspec, self.base_dir)
+        @gemspec_helper ||= GemSpecHelper.new(gemspec, base_dir)
       end
 
       def self.build_for(jeweler)
diff --git a/lib/jeweler/gemspec_helper.rb b/lib/jeweler/gemspec_helper.rb
index e8a8174..2525ded 100644
--- a/lib/jeweler/gemspec_helper.rb
+++ b/lib/jeweler/gemspec_helper.rb
@@ -10,18 +10,16 @@ class Jeweler
     end
 
     def valid?
-      begin
-        parse
-        true
-      rescue
-        false
-      end
+      parse
+      true
+    rescue
+      false
     end
 
     def write
       File.open(path, 'w') do |f|
-        f.write self.to_ruby
-      end 
+        f.write to_ruby
+      end
     end
 
     def to_ruby
@@ -42,13 +40,15 @@ class Jeweler
     def path
       denormalized_path = File.join(@base_dir, "#{@spec.name}.gemspec")
       absolute_path = File.expand_path(denormalized_path)
-      absolute_path.gsub(Dir.getwd + File::SEPARATOR, '') 
+      absolute_path.gsub(Dir.getwd + File::SEPARATOR, '')
     end
 
+    PARSE_SAFE = (RUBY_VERSION >= '2.3') ? 1 : 3
+
     def parse
-      data = self.to_ruby
+      data = to_ruby
       parsed_gemspec = nil
-      Thread.new { parsed_gemspec = eval("$SAFE = 3\n#{data}", binding, path) }.join
+      Thread.new { parsed_gemspec = eval("$SAFE = #{PARSE_SAFE}\n#{data}", binding, path) }.join
       parsed_gemspec
     end
 
@@ -65,9 +65,9 @@ class Jeweler
     # Adds extra space when outputting an array. This helps create better version control diffs, because otherwise it is all on the same line.
     def prettyify_array(gemspec_ruby, array_name)
       gemspec_ruby.gsub(/s\.#{array_name.to_s} = \[.+?\]/) do |match|
-        leadin, files = match[0..-2].split("[")
-        
-        leadin + "[\n    #{files.gsub(%|", "|, %|",\n    "|)}\n  ]"
+        leadin, files = match[0..-2].split('[')
+
+        leadin + "[\n    #{files.gsub(%(", "), %(",\n    "))}\n  ]"
       end
     end
 
@@ -78,7 +78,7 @@ class Jeweler
     def update_version(version)
       @spec.version = version.to_s
     end
-    
+
     # Checks whether it uses the version helper or the users defined version.
     def has_version?
       !@spec.version.nil?
diff --git a/lib/jeweler/generator.rb b/lib/jeweler/generator.rb
index 995a429..95b5688 100644
--- a/lib/jeweler/generator.rb
+++ b/lib/jeweler/generator.rb
@@ -23,12 +23,12 @@ class Jeweler
   class NoGitHubUser < StandardError
   end
   class GitInitFailed < StandardError
-  end    
+  end
   class GitRepoCreationFailed < StandardError
   end
 
   # Generator for creating a jeweler-enabled project
-  class Generator    
+  class Generator
     require 'jeweler/generator/options'
     require 'jeweler/generator/application'
 
@@ -49,7 +49,7 @@ class Jeweler
 
     attr_accessor :target_dir, :user_name, :user_email, :summary, :homepage,
                   :description, :project_name, :github_username,
-                  :repo, :should_create_remote_repo, 
+                  :repo, :should_create_remote_repo,
                   :testing_framework, :documentation_framework,
                   :should_use_cucumber, :should_use_bundler,
                   :should_setup_rubyforge, :should_use_reek, :should_use_roodi,
@@ -62,10 +62,10 @@ class Jeweler
       extracted_directory = nil
 
       self.project_name   = options[:project_name]
-      if self.project_name.nil? || self.project_name.squeeze.strip == ""
+      if project_name.nil? || project_name.squeeze.strip == ''
         raise NoGitHubRepoNameGiven
       else
-        path = File.split(self.project_name)
+        path = File.split(project_name)
 
         if path.size > 1
           extracted_directory = File.join(path[0..-1])
@@ -74,10 +74,10 @@ class Jeweler
       end
 
       self.development_dependencies = []
-      self.testing_framework  = options[:testing_framework]
+      self.testing_framework = options[:testing_framework]
       self.documentation_framework = options[:documentation_framework]
       begin
-        generator_mixin_name = "#{self.testing_framework.to_s.capitalize}Mixin"
+        generator_mixin_name = "#{testing_framework.to_s.capitalize}Mixin"
         generator_mixin = self.class.const_get(generator_mixin_name)
         extend generator_mixin
       rescue NameError => e
@@ -85,14 +85,14 @@ class Jeweler
       end
 
       begin
-        generator_mixin_name = "#{self.documentation_framework.to_s.capitalize}Mixin"
+        generator_mixin_name = "#{documentation_framework.to_s.capitalize}Mixin"
         generator_mixin = self.class.const_get(generator_mixin_name)
         extend generator_mixin
       rescue NameError => e
         raise ArgumentError, "Unsupported documentation framework (#{documentation_framework})"
       end
 
-      self.target_dir             = options[:directory] || extracted_directory || self.project_name
+      self.target_dir             = options[:directory] || extracted_directory || project_name
 
       self.summary                = options[:summary] || 'TODO: one-line summary of your gem'
       self.description            = options[:description] || 'TODO: longer description of your gem'
@@ -102,24 +102,24 @@ class Jeweler
       self.should_setup_rubyforge = options[:rubyforge]
       self.should_use_bundler     = options[:use_bundler]
 
-      development_dependencies << ["cucumber", ">= 0"] if should_use_cucumber
+      development_dependencies << ['cucumber', '>= 0'] if should_use_cucumber
 
-      # TODO make bundler optional?
-      development_dependencies << ["bundler", "~> 1.0"]
-      development_dependencies << ["jeweler", "~> #{Jeweler::Version::STRING}"]
-      development_dependencies << ["simplecov", ">= 0"]
+      # TODO: make bundler optional?
+      development_dependencies << ['bundler', '~> 1.0']
+      development_dependencies << ['jeweler', "~> #{Jeweler::Version::STRING}"]
+      development_dependencies << ['simplecov', '>= 0']
 
-      development_dependencies << ["reek", "~> 1.2.8"] if should_use_reek
-      development_dependencies << ["roodi", "~> 2.1.0"] if should_use_roodi
+      development_dependencies << ['reek', '~> 1.2.8'] if should_use_reek
+      development_dependencies << ['roodi', '~> 2.1.0'] if should_use_roodi
 
       self.user_name       = options[:user_name]
       self.user_email      = options[:user_email]
       self.homepage        = options[:homepage]
-      
+
       self.git_remote      = options[:git_remote]
 
-      raise NoGitUserName unless self.user_name
-      raise NoGitUserEmail unless self.user_email
+      raise NoGitUserName unless user_name
+      raise NoGitUserEmail unless user_email
 
       extend GithubMixin
     end
@@ -135,7 +135,7 @@ class Jeweler
     end
 
     def constant_name
-      self.project_name.split(/[-_]/).collect{|each| each.capitalize }.join
+      project_name.split(/[-_]/).collect(&:capitalize).join
     end
 
     def lib_filename
@@ -143,11 +143,11 @@ class Jeweler
     end
 
     def require_name
-      self.project_name
+      project_name
     end
 
     def file_name_prefix
-      self.project_name.gsub('-', '_')
+      project_name.tr('-', '_')
     end
 
     def lib_dir
@@ -174,16 +174,15 @@ class Jeweler
       File.join(features_dir, 'step_definitions')
     end
 
-  private
+    private
 
     def create_files
-      unless File.exists?(target_dir) || File.directory?(target_dir)
-        FileUtils.mkdir target_dir
-      else
+      if File.exist?(target_dir) || File.directory?(target_dir)
         raise FileInTheWay, "The directory #{target_dir} already exists, aborting. Maybe move it out of the way before continuing?"
+      else
+        FileUtils.mkdir target_dir
       end
 
-
       output_template_in_target '.gitignore'
       output_template_in_target 'Rakefile'
       output_template_in_target 'Gemfile' if should_use_bundler
@@ -200,7 +199,6 @@ class Jeweler
       output_template_in_target File.join(testing_framework.to_s, 'flunking.rb'),
                                 File.join(test_dir, test_filename)
 
-
       if testing_framework == :rspec
         output_template_in_target File.join(testing_framework.to_s, '.rspec'),
                                   '.rspec'
@@ -231,7 +229,7 @@ class Jeweler
       final_destination = File.join(target_dir, destination)
       template_result   = render_template(source)
 
-      File.open(final_destination, 'w') {|file| file.write(template_result)}
+      File.open(final_destination, 'w') { |file| file.write(template_result) }
 
       $stdout.puts "\tcreate\t#{destination}"
     end
@@ -250,22 +248,22 @@ class Jeweler
 
     def touch_in_target(destination)
       final_destination = File.join(target_dir, destination)
-      FileUtils.touch  final_destination
+      FileUtils.touch final_destination
       $stdout.puts "\tcreate\t#{destination}"
     end
 
     def create_version_control
       Dir.chdir(target_dir) do
         begin
-          @repo = Git.init()
+          @repo = Git.init
         rescue Git::GitExecuteError => e
-          raise GitInitFailed, "Encountered an error during gitification. Maybe the repo already exists, or has already been pushed to?"
+          raise GitInitFailed, 'Encountered an error during gitification. Maybe the repo already exists, or has already been pushed to?'
         end
 
         begin
           @repo.add('.')
         rescue Git::GitExecuteError => e
-          #raise GitAddFailed, "There was some problem adding this directory to the git changeset"
+          # raise GitAddFailed, "There was some problem adding this directory to the git changeset"
           raise
         end
 
@@ -278,26 +276,26 @@ class Jeweler
         begin
           @repo.add_remote('origin', git_remote)
         rescue Git::GitExecuteError => e
-          puts "Encountered an error while adding origin remote. Maybe you have some weird settings in ~/.gitconfig?"
+          puts 'Encountered an error while adding origin remote. Maybe you have some weird settings in ~/.gitconfig?'
           raise
         end
       end
     end
-    
+
     def create_and_push_repo
-      puts "Please provide your Github password to create the Github repository"
+      puts 'Please provide your Github password to create the Github repository'
       begin
         login = github_username
-        password = ask("Password: ") { |q| q.echo = false }
-        github = Github.new(:login => login.strip, :password => password.strip)
-        github.repos.create(:name => project_name, :description => summary)
+        password = ask('Password: ') { |q| q.echo = false }
+        github = Github.new(login: login.strip, password: password.strip)
+        github.repos.create(name: project_name, description: summary)
       rescue Github::Error::Unauthorized
-        puts "Wrong login/password! Please try again"
+        puts 'Wrong login/password! Please try again'
         retry
       rescue Github::Error::UnprocessableEntity
         raise GitRepoCreationFailed, "Can't create that repo. Does it already exist?"
       end
-      # TODO do a HEAD request to see when it's ready?
+      # TODO: do a HEAD request to see when it's ready?
       @repo.push('origin')
     end
   end
diff --git a/lib/jeweler/generator/application.rb b/lib/jeweler/generator/application.rb
index df8e228..8ed2bb6 100644
--- a/lib/jeweler/generator/application.rb
+++ b/lib/jeweler/generator/application.rb
@@ -24,7 +24,7 @@ class Jeweler
             return 1
           end
 
-          if options[:project_name].nil? || options[:project_name].squeeze.strip == ""
+          if options[:project_name].nil? || options[:project_name].squeeze.strip == ''
             $stderr.puts options.opts
             return 1
           end
@@ -34,13 +34,13 @@ class Jeweler
             generator.run
             return 0
           rescue Jeweler::NoGitUserName
-            $stderr.puts %Q{No user.name found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.name "mad voo"}
+            $stderr.puts %{No user.name found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.name "mad voo"}
             return 1
           rescue Jeweler::NoGitUserEmail
-            $stderr.puts %Q{No user.email found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.email mad.vooo@gmail.com}
+            $stderr.puts %{No user.email found in ~/.gitconfig. Please tell git about yourself (see http://help.github.com/git-email-settings/ for details). For example: git config --global user.email mad.vooo@gmail.com}
             return 1
           rescue Jeweler::NoGitHubUser
-            $stderr.puts %Q{Please specify --github-username or set github.user in ~/.gitconfig (see http://github.com/blog/180-local-github-config for details). For example: git config --global github.user defunkt}
+            $stderr.puts %{Please specify --github-username or set github.user in ~/.gitconfig (see http://github.com/blog/180-local-github-config for details). For example: git config --global github.user defunkt}
             return 1
           rescue Jeweler::FileInTheWay
             $stderr.puts "The directory #{options[:project_name]} already exists. Maybe move it out of the way before continuing?"
@@ -49,15 +49,13 @@ class Jeweler
         end
 
         def build_options(arguments)
-          env_opts_string = ENV['JEWELER_OPTS'] || ""
+          env_opts_string = ENV['JEWELER_OPTS'] || ''
           env_opts        = Jeweler::Generator::Options.new(shellwords(env_opts_string))
           argument_opts   = Jeweler::Generator::Options.new(arguments)
 
           env_opts.merge(argument_opts)
         end
-
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/bacon_mixin.rb b/lib/jeweler/generator/bacon_mixin.rb
index 6363ff9..70b77a1 100644
--- a/lib/jeweler/generator/bacon_mixin.rb
+++ b/lib/jeweler/generator/bacon_mixin.rb
@@ -1,9 +1,8 @@
 class Jeweler
   class Generator
     module BaconMixin
-
       def self.extended(generator)
-        generator.development_dependencies << ["bacon", ">= 0"]
+        generator.development_dependencies << ['bacon', '>= 0']
       end
 
       def default_task
@@ -35,9 +34,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "spec_helper.rb"
+        'spec_helper.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/github_mixin.rb b/lib/jeweler/generator/github_mixin.rb
index 4c2d458..679f5d7 100644
--- a/lib/jeweler/generator/github_mixin.rb
+++ b/lib/jeweler/generator/github_mixin.rb
@@ -5,9 +5,7 @@ class Jeweler
         generator.github_username           = generator.options[:github_username]
         generator.should_create_remote_repo = generator.options[:create_repo]
 
-        unless generator.github_username
-          raise NoGitHubUser
-        end
+        raise NoGitHubUser unless generator.github_username
       end
 
       def git_remote
diff --git a/lib/jeweler/generator/micronaut_mixin.rb b/lib/jeweler/generator/micronaut_mixin.rb
index b04b347..db7da4e 100644
--- a/lib/jeweler/generator/micronaut_mixin.rb
+++ b/lib/jeweler/generator/micronaut_mixin.rb
@@ -2,9 +2,9 @@ class Jeweler
   class Generator
     module MicronautMixin
       def self.extended(generator)
-        generator.development_dependencies << ["spicycode-micronaut", ">= 0"]
+        generator.development_dependencies << ['spicycode-micronaut', '>= 0']
       end
-      
+
       def default_task
         'examples'
       end
@@ -34,7 +34,7 @@ class Jeweler
       end
 
       def test_helper_filename
-        "example_helper.rb"
+        'example_helper.rb'
       end
     end
   end
diff --git a/lib/jeweler/generator/minitest_mixin.rb b/lib/jeweler/generator/minitest_mixin.rb
index 72f2cf4..516ea78 100644
--- a/lib/jeweler/generator/minitest_mixin.rb
+++ b/lib/jeweler/generator/minitest_mixin.rb
@@ -2,7 +2,7 @@ class Jeweler
   class Generator
     module MinitestMixin
       def self.extended(generator)
-        generator.development_dependencies << ["minitest", ">= 0"]
+        generator.development_dependencies << ['minitest', '>= 0']
       end
 
       def default_task
@@ -34,9 +34,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "helper.rb"
+        'helper.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/options.rb b/lib/jeweler/generator/options.rb
index 2a12db7..5d303ad 100644
--- a/lib/jeweler/generator/options.rb
+++ b/lib/jeweler/generator/options.rb
@@ -17,14 +17,14 @@ class Jeweler
 
         require 'optparse'
         @opts = OptionParser.new do |o|
-          o.banner = "Usage: #{File.basename($0)} [options] reponame\ne.g. #{File.basename($0)} the-perfect-gem"
+          o.banner = "Usage: #{File.basename($PROGRAM_NAME)} [options] reponame\ne.g. #{File.basename($PROGRAM_NAME)} the-perfect-gem"
 
           o.on('--directory [DIRECTORY]', 'specify the directory to generate into (deprecated)') do |directory|
-            warn "--directory is deprecated and will be removed in 2.0.0. Please specify an absolute path to a directory as the last argument instead" # DEPRECATE
+            warn '--directory is deprecated and will be removed in 2.0.0. Please specify an absolute path to a directory as the last argument instead' # DEPRECATE
             self[:directory] = directory
           end
 
-          o.separator ""
+          o.separator ''
 
           o.on('--rspec', 'generate rspec code examples') do
             self[:testing_framework] = :rspec
@@ -62,7 +62,7 @@ class Jeweler
             self[:testing_framework] = :shindo
           end
 
-          o.separator ""
+          o.separator ''
 
           o.on('--[no-]bundler', 'use bundler for managing dependencies') do |v|
             self[:use_bundler] = v
@@ -72,7 +72,7 @@ class Jeweler
             self[:use_cucumber] = true
           end
 
-          o.separator ""
+          o.separator ''
 
           o.on('--reek', 'generate rake task for reek') do
             self[:use_reek] = true
@@ -82,7 +82,7 @@ class Jeweler
             self[:use_roodi] = true
           end
 
-          o.separator ""
+          o.separator ''
 
           o.on('--summary [SUMMARY]', 'specify the summary of the project') do |summary|
             self[:summary] = summary
@@ -92,7 +92,7 @@ class Jeweler
             self[:description] = description
           end
 
-          o.separator ""
+          o.separator ''
 
           o.on('--user-name [USER_NAME]', "the user's name, ie that is credited in the LICENSE") do |user_name|
             self[:user_name] = user_name
@@ -102,9 +102,9 @@ class Jeweler
             self[:user_email] = user_email
           end
 
-          o.separator ""
+          o.separator ''
 
-          o.on('--github-username [GITHUB_USERNAME]', "name of the user on GitHub to set the project up under") do |github_username|
+          o.on('--github-username [GITHUB_USERNAME]', 'name of the user on GitHub to set the project up under') do |github_username|
             self[:github_username] = github_username
           end
 
@@ -112,7 +112,7 @@ class Jeweler
             self[:git_remote] = git_remote
           end
 
-          o.on('--homepage [HOMEPAGE]', "the homepage for your project (defaults to the GitHub repo)") do |homepage|
+          o.on('--homepage [HOMEPAGE]', 'the homepage for your project (defaults to the GitHub repo)') do |homepage|
             self[:homepage] = homepage
           end
 
@@ -120,8 +120,7 @@ class Jeweler
             self[:create_repo] = true
           end
 
-
-          o.separator ""
+          o.separator ''
 
           o.on('--yard', 'use yard for documentation') do
             self[:documentation_framework] = :yard
@@ -152,21 +151,18 @@ class Jeweler
         self.class.new(@orig_args + other.orig_args)
       end
 
-
       # Expose git config here, so we can stub it out for test environments
       def self.git_config
-        @git_config  ||=  if Pathname.new("~/.gitconfig").expand_path.exist?
-                           Git.global_config
-                         else
-                           {}
+        @git_config ||= if Pathname.new('~/.gitconfig').expand_path.exist?
+                          Git.global_config
+                        else
+                          {}
                          end
-
       end
 
       def git_config
         self.class.git_config
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/rdoc_mixin.rb b/lib/jeweler/generator/rdoc_mixin.rb
index d002f6c..eeaeb98 100644
--- a/lib/jeweler/generator/rdoc_mixin.rb
+++ b/lib/jeweler/generator/rdoc_mixin.rb
@@ -2,7 +2,7 @@ class Jeweler
   class Generator
     module RdocMixin
       def self.extended(generator)
-        generator.development_dependencies << ["rdoc", "~> 3.12"]
+        generator.development_dependencies << ['rdoc', '~> 3.12']
       end
 
       def doc_task
diff --git a/lib/jeweler/generator/riot_mixin.rb b/lib/jeweler/generator/riot_mixin.rb
index ff7f2ef..84a7d8a 100644
--- a/lib/jeweler/generator/riot_mixin.rb
+++ b/lib/jeweler/generator/riot_mixin.rb
@@ -2,7 +2,7 @@ class Jeweler
   class Generator
     module RiotMixin
       def self.extended(generator)
-        generator.development_dependencies << ["riot", ">= 0"]
+        generator.development_dependencies << ['riot', '>= 0']
       end
 
       def default_task
@@ -34,9 +34,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "teststrap.rb"
+        'teststrap.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/rspec_mixin.rb b/lib/jeweler/generator/rspec_mixin.rb
index 2e64a4b..7cb5845 100644
--- a/lib/jeweler/generator/rspec_mixin.rb
+++ b/lib/jeweler/generator/rspec_mixin.rb
@@ -2,7 +2,7 @@ class Jeweler
   class Generator
     module RspecMixin
       def self.extended(generator)
-        generator.development_dependencies << ["rspec", "~> 2.8.0"]
+        generator.development_dependencies << ['rspec', '~> 3.5.0']
       end
 
       def default_task
@@ -34,9 +34,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "spec_helper.rb"
+        'spec_helper.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/shindo_mixin.rb b/lib/jeweler/generator/shindo_mixin.rb
index 0f73cac..db9fa08 100644
--- a/lib/jeweler/generator/shindo_mixin.rb
+++ b/lib/jeweler/generator/shindo_mixin.rb
@@ -2,7 +2,7 @@ class Jeweler
   class Generator
     module ShindoMixin
       def self.extended(generator)
-        generator.development_dependencies << ["shindo", ">= 0"]
+        generator.development_dependencies << ['shindo', '>= 0']
       end
 
       def default_task
@@ -36,9 +36,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "tests_helper.rb"
+        'tests_helper.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/shoulda_mixin.rb b/lib/jeweler/generator/shoulda_mixin.rb
index a290c01..de30b03 100644
--- a/lib/jeweler/generator/shoulda_mixin.rb
+++ b/lib/jeweler/generator/shoulda_mixin.rb
@@ -2,7 +2,7 @@ class Jeweler
   class Generator
     module ShouldaMixin
       def self.extended(generator)
-        generator.development_dependencies << ["shoulda", ">= 0"]
+        generator.development_dependencies << ['shoulda', '>= 0']
       end
 
       def default_task
@@ -34,9 +34,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "helper.rb"
+        'helper.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/testspec_mixin.rb b/lib/jeweler/generator/testspec_mixin.rb
index 99eba78..20b4959 100644
--- a/lib/jeweler/generator/testspec_mixin.rb
+++ b/lib/jeweler/generator/testspec_mixin.rb
@@ -2,7 +2,7 @@ class Jeweler
   class Generator
     module TestspecMixin
       def self.extended(generator)
-        generator.development_dependencies << ["test-spec", ">= 0"]
+        generator.development_dependencies << ['test-spec', '>= 0']
       end
 
       def default_task
@@ -34,9 +34,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "test_helper.rb"
+        'test_helper.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/testunit_mixin.rb b/lib/jeweler/generator/testunit_mixin.rb
index 554cd40..7d0b709 100644
--- a/lib/jeweler/generator/testunit_mixin.rb
+++ b/lib/jeweler/generator/testunit_mixin.rb
@@ -1,7 +1,6 @@
 class Jeweler
   class Generator
     module TestunitMixin
-
       def default_task
         'test'
       end
@@ -31,9 +30,8 @@ class Jeweler
       end
 
       def test_helper_filename
-        "helper.rb"
+        'helper.rb'
       end
-
     end
   end
 end
diff --git a/lib/jeweler/generator/yard_mixin.rb b/lib/jeweler/generator/yard_mixin.rb
index f95bb2e..4a4be90 100644
--- a/lib/jeweler/generator/yard_mixin.rb
+++ b/lib/jeweler/generator/yard_mixin.rb
@@ -2,14 +2,13 @@ class Jeweler
   class Generator
     module YardMixin
       def self.extended(generator)
-        generator.development_dependencies << ["yard", "~> 0.7"]
-        generator.development_dependencies << ["rdoc", "~> 3.12"]
+        generator.development_dependencies << ['yard', '~> 0.7']
+        generator.development_dependencies << ['rdoc', '~> 3.12']
       end
-      
+
       def doc_task
         'yardoc'
       end
     end
   end
 end
-
diff --git a/lib/jeweler/rubyforge_tasks.rb b/lib/jeweler/rubyforge_tasks.rb
index 8d5144c..a5e7e88 100644
--- a/lib/jeweler/rubyforge_tasks.rb
+++ b/lib/jeweler/rubyforge_tasks.rb
@@ -11,7 +11,7 @@ class Jeweler
   #     Jeweler::RubyforgeTasks.new
   #
   # Easy enough, right?
-  # 
+  #
   # There are a few options you can tweak:
   #
   #  * project: the rubyforge project to operate on. This defaults to whatever you specified in your gemspec. Defaults to your gem name.
@@ -31,7 +31,7 @@ class Jeweler
     def initialize
       yield self if block_given?
 
-      $stderr.puts "Releasing gems to Rubyforge is deprecated. See details at http://wiki.github.com/technicalpickles/jeweler/migrating-from-releasing-gems-to-rubyforge"
+      $stderr.puts 'Releasing gems to Rubyforge is deprecated. See details at http://wiki.github.com/technicalpickles/jeweler/migrating-from-releasing-gems-to-rubyforge'
 
       define
     end
@@ -51,14 +51,14 @@ class Jeweler
     def define
       namespace :rubyforge do
         namespace :release do
-          desc "Release the current gem version to RubyForge."
+          desc 'Release the current gem version to RubyForge.'
           task :gem do
-            $stderr.puts "DEPRECATION: Releasing gems to RubyForge is deprecated. You should see about releasing to Gemcutter instead: http://wiki.github.com/technicalpickles/jeweler/gemcutter"
+            $stderr.puts 'DEPRECATION: Releasing gems to RubyForge is deprecated. You should see about releasing to Gemcutter instead: http://wiki.github.com/technicalpickles/jeweler/gemcutter'
           end
 
           if publish_documentation?
-            desc "Publish docs to RubyForge."
-            task :docs => doc_task do
+            desc 'Publish docs to RubyForge.'
+            task docs: doc_task do
               config = YAML.load(
                 File.read(File.expand_path('~/.rubyforge/user-config.yml'))
               )
@@ -66,26 +66,26 @@ class Jeweler
               host = "#{config['username']}@rubyforge.org"
               remote_dir = "/var/www/gforge-projects/#{project}/#{remote_doc_path}"
 
-              local_dir = case self.doc_task.to_sym
+              local_dir = case doc_task.to_sym
                           when :rdoc then 'rdoc'
                           when :yardoc then 'doc'
-                          when 'doc:app'.to_sym then 'doc/app' 
+                          when 'doc:app'.to_sym then 'doc/app'
                           else
-                            raise "Unsure what to run to generate documentation. Please set doc_task and re-run."
+                            raise 'Unsure what to run to generate documentation. Please set doc_task and re-run.'
                           end
 
-              sh %{rsync --archive --verbose --delete #{local_dir}/ #{host}:#{remote_dir}}
+              sh %(rsync --archive --verbose --delete #{local_dir}/ #{host}:#{remote_dir})
             end
           end
         end
 
         if publish_documentation?
-          desc "Release RDoc documentation to RubyForge"
-          task :release => "rubyforge:release:docs"
+          desc 'Release RDoc documentation to RubyForge'
+          task release: 'rubyforge:release:docs'
         end
       end
 
-      task :release => 'rubyforge:release'
+      task release: 'rubyforge:release'
     end
 
     def publish_documentation?
diff --git a/lib/jeweler/rubygems_dot_org_tasks.rb b/lib/jeweler/rubygems_dot_org_tasks.rb
index 026c740..8edb0fe 100644
--- a/lib/jeweler/rubygems_dot_org_tasks.rb
+++ b/lib/jeweler/rubygems_dot_org_tasks.rb
@@ -26,13 +26,13 @@ class Jeweler
 
     def define
       namespace :gemcutter do
-        desc "Release gem to Gemcutter"
-        task :release => [:gemspec, :build] do
+        desc 'Release gem to Gemcutter'
+        task release: [:gemspec, :build] do
           jeweler.release_gem_to_rubygems
         end
       end
 
-      task :release => 'gemcutter:release'
+      task release: 'gemcutter:release'
     end
   end
 end
diff --git a/lib/jeweler/rubygems_tasks.rb b/lib/jeweler/rubygems_tasks.rb
index 90fd424..039b809 100644
--- a/lib/jeweler/rubygems_tasks.rb
+++ b/lib/jeweler/rubygems_tasks.rb
@@ -26,13 +26,13 @@ class Jeweler
 
     def define
       namespace :rubygems do
-        desc "Release gem to Gemcutter"
-        task :release => [:gemspec, :build] do
+        desc 'Release gem to Gemcutter'
+        task release: [:gemspec, :build] do
           jeweler.release_gem_to_rubygems
         end
       end
 
-      task :release => 'rubygems:release'
+      task release: 'rubygems:release'
     end
   end
 end
diff --git a/lib/jeweler/specification.rb b/lib/jeweler/specification.rb
index 2ff476d..1557d4c 100644
--- a/lib/jeweler/specification.rb
+++ b/lib/jeweler/specification.rb
@@ -45,11 +45,11 @@ class Jeweler
                end
 
         if blank?(files) && repo
-          base_dir_with_trailing_separator = File.join(base_dir, "")
+          base_dir_with_trailing_separator = File.join(base_dir, '')
 
-          ignored_files = repo.lib.ignored_files + [".gitignore"]
+          ignored_files = repo.lib.ignored_files + ['.gitignore']
           self.files = (repo.ls_files(base_dir).keys - ignored_files).compact.map do |file|
-            File.expand_path(file).sub(base_dir_with_trailing_separator, "")
+            File.expand_path(file).sub(base_dir_with_trailing_separator, '')
           end
         end
 
@@ -69,15 +69,14 @@ class Jeweler
 
         if File.exist?('Gemfile')
           require 'bundler'
-          bundler = Bundler.load
-          bundler.dependencies_for(:default, :runtime).each do |dependency|
-            self.add_dependency dependency.name, *dependency.requirement.as_list
+          bundler_runtime = Bundler.load
+          bundler_dependencies_for(bundler_runtime, :default, :runtime).each do |dependency|
+            add_dependency dependency.name, *dependency.requirement.as_list
           end
-          bundler.dependencies_for(:development).each do |dependency|
-            self.add_development_dependency dependency.name, *dependency.requirement.as_list
+          bundler_dependencies_for(bundler_runtime, :development).each do |dependency|
+            add_development_dependency dependency.name, *dependency.requirement.as_list
           end
         end
-        
       end
     end
 
@@ -89,7 +88,19 @@ class Jeweler
       end
     end
 
-  private
+    private
+
+    # Backported (or rather forward-ported) from Bunder::Runtime#dependencies_for.
+    # This method was available until Bundler 1.13, and then removed. We need it
+    # to be able to tell which gems are listed in the Gemfile without loading
+    # those gems first.
+    def bundler_dependencies_for(bundler_runtime, *groups)
+      if groups.empty?
+        bundler_runtime.dependencies
+      else
+        bundler_runtime.dependencies.select {|d| (groups & d.groups).any? }
+      end
+    end
 
     def blank?(value)
       value.nil? || value.empty?
@@ -97,10 +108,10 @@ class Jeweler
   end
 end
 
-
 # Workaround for cloning/duping a Gem::Specification
 # documented in http://github.com/technicalpickles/jeweler/issues#issue/73
 Gem::Specification.class_eval do
+  # TODO: fix 'warning: method redefined; discarding old initialize_copy'
   def initialize_copy(original)
     super
 
diff --git a/lib/jeweler/tasks.rb b/lib/jeweler/tasks.rb
index 801e290..c51af3d 100644
--- a/lib/jeweler/tasks.rb
+++ b/lib/jeweler/tasks.rb
@@ -33,11 +33,12 @@ class Jeweler
   # The block variable gem is actually a Gem::Specification, so you can
   # do anything you would normally do with a Gem::Specification.
   # For more details, see the official gemspec reference:
-  # http://docs.rubygems.org/read/chapter/20
+  # http://guides.rubygems.org/specification-reference
   #
   # In addition, it provides reasonable defaults for several values. See Jeweler::Specification for more details.
   class Tasks < ::Rake::TaskLib
-    attr_accessor :gemspec, :jeweler, :gemspec_building_block
+    attr_accessor :gemspec, :gemspec_building_block
+    attr_writer :jeweler
 
     def initialize(gemspec = nil, &gemspec_building_block)
       @gemspec = gemspec || Gem::Specification.new
@@ -48,14 +49,16 @@ class Jeweler
     end
 
     def jeweler
-      if @jeweler.nil?
-        @jeweler = Jeweler.new(gemspec)
-        gemspec_building_block.call gemspec if gemspec_building_block
-      end
-      @jeweler
+      @jeweler ||= jeweler!
     end
 
-  private
+    private
+
+    def jeweler!
+      j = Jeweler.new(gemspec)
+      gemspec_building_block.call gemspec if gemspec_building_block
+      j
+    end
 
     def yield_gemspec_set_version?
       yielded_gemspec = @gemspec.dup
@@ -65,7 +68,7 @@ class Jeweler
 
       gemspec_building_block.call(yielded_gemspec) if gemspec_building_block
 
-      ! yielded_gemspec.version.nil?
+      !yielded_gemspec.version.nil?
     end
 
     def release_args
@@ -74,61 +77,58 @@ class Jeweler
       args[:branch] = ENV['BRANCH']
       args[:local_branch] = ENV['LOCAL_BRANCH']
       args[:remote_branch] = ENV['REMOTE_BRANCH']
-      return args
+      args
     end
 
     def define
       task :version_required do
-        if jeweler.expects_version_file? && !jeweler.version_file_exists?
+        if jeweler.expects_version_file? && !jeweler.version_file_exist?
           abort "Expected VERSION or VERSION.yml to exist. Use 'rake version:write' to create an initial one."
         end
       end
 
       task :gemspec_required do
-        if ! File.exist?(jeweler.gemspec_helper.path)
+        unless File.exist?(jeweler.gemspec_helper.path)
           abort "Expected #{jeweler.gemspec_helper.path} to exist. See 'rake gemspec:write' to create it"
         end
       end
 
-
-      desc "Build gem into pkg/"
+      desc 'Build gem into pkg/'
       task :build do
         jeweler.build_gem
       end
 
-
-
-      desc "Build and install gem using `gem install`"
-      task :install => [:build] do
+      desc 'Build and install gem using `gem install`'
+      task install: [:build] do
         jeweler.install_gem
       end
 
-      desc "Displays the current version"
-      task :version => :version_required do
+      desc 'Displays the current version'
+      task version: :version_required do
         $stdout.puts "Current version: #{jeweler.version}"
       end
 
-      desc "Release gem"
-      task :release => :clean do
+      desc 'Release gem'
+      task release: :clean do
       end
 
-      desc "Generate and validate gemspec"
-      task :gemspec => ['gemspec:generate', 'gemspec:validate']
+      desc 'Generate and validate gemspec'
+      task gemspec: ['gemspec:generate', 'gemspec:validate']
 
       namespace :gemspec do
-        desc "Validates the gemspec on the filesystem"
-        task :validate => :gemspec_required do
+        desc 'Validates the gemspec on the filesystem'
+        task validate: :gemspec_required do
           jeweler.validate_gemspec
         end
 
-        desc "Regenerate the gemspec on the filesystem"
-        task :generate => :version_required do
+        desc 'Regenerate the gemspec on the filesystem'
+        task generate: :version_required do
           jeweler.write_gemspec
         end
 
-        desc "Display the gemspec for debugging purposes, as jeweler knows it (not from the filesystem)"
+        desc 'Display the gemspec for debugging purposes, as jeweler knows it (not from the filesystem)'
         task :debug do
-          # TODO move to a command
+          # TODO: move to a command
           jeweler.gemspec_helper.spec.version ||= begin
                                                     jeweler.version_helper.refresh
                                                     jeweler.version_helper.to_s
@@ -137,39 +137,41 @@ class Jeweler
           puts jeweler.gemspec_helper.to_ruby
         end
 
-        desc "Regenerate and validate gemspec, and then commits and pushes to git"
+        desc 'Regenerate and validate gemspec, and then commits and pushes to git'
         task :release do
           jeweler.release_gemspec(release_args)
         end
       end
 
-      task :release => 'gemspec:release'
-
+      task release: 'gemspec:release'
 
       unless yield_gemspec_set_version?
         namespace :version do
-          desc "Writes out an explicit version. Respects the following environment variables, or defaults to 0: MAJOR, MINOR, PATCH. Also recognizes BUILD, which defaults to nil"
+          desc 'Writes out an explicit version. Respects the following environment variables, or defaults to 0: MAJOR, MINOR, PATCH. Also recognizes BUILD, which defaults to nil'
           task :write do
-            major, minor, patch, build = ENV['MAJOR'].to_i, ENV['MINOR'].to_i, ENV['PATCH'].to_i, (ENV['BUILD'] || nil )
-            jeweler.write_version(major, minor, patch, build, :announce => false, :commit => false)
+            major = ENV['MAJOR'].to_i
+            minor = ENV['MINOR'].to_i
+            patch = ENV['PATCH'].to_i
+            build = (ENV['BUILD'] || nil)
+            jeweler.write_version(major, minor, patch, build, announce: false, commit: false)
             $stdout.puts "Updated version: #{jeweler.version}"
           end
 
           namespace :bump do
-            desc "Bump the major version by 1"
-            task :major => [:version_required, :version] do
+            desc 'Bump the major version by 1'
+            task major: [:version_required, :version] do
               jeweler.bump_major_version
               $stdout.puts "Updated version: #{jeweler.version}"
             end
 
-            desc "Bump the a minor version by 1"
-            task :minor => [:version_required, :version] do
+            desc 'Bump the a minor version by 1'
+            task minor: [:version_required, :version] do
               jeweler.bump_minor_version
               $stdout.puts "Updated version: #{jeweler.version}"
             end
 
-            desc "Bump the patch version by 1"
-            task :patch => [:version_required, :version] do
+            desc 'Bump the patch version by 1'
+            task patch: [:version_required, :version] do
               jeweler.bump_patch_version
               $stdout.puts "Updated version: #{jeweler.version}"
             end
@@ -177,45 +179,44 @@ class Jeweler
         end
       end
 
-
       namespace :git do
-        desc "Tag and push release to git. (happens by default with `rake release`)"
+        desc 'Tag and push release to git. (happens by default with `rake release`)'
         task :release do
           jeweler.release_to_git(release_args)
         end
       end
 
-      task :release => 'git:release'
+      task release: 'git:release'
 
       unless File.exist?('Gemfile')
-        desc "Check that runtime and development dependencies are installed"
+        desc 'Check that runtime and development dependencies are installed'
         task :check_dependencies do
           jeweler.check_dependencies
         end
 
         namespace :check_dependencies do
-          desc "Check that runtime dependencies are installed"
-          task :runtime  do
+          desc 'Check that runtime dependencies are installed'
+          task :runtime do
             jeweler.check_dependencies(:runtime)
           end
 
-          desc"Check that development dependencies are installed"
+          desc'Check that development dependencies are installed'
           task :development do
             jeweler.check_dependencies(:development)
           end
         end
       end
 
-      desc "Start IRB with all runtime dependencies loaded"
-      task :console, [:script] do |t,args|
-        # TODO move to a command
-        dirs = ['ext', 'lib'].select { |dir| File.directory?(dir) }
+      desc 'Start IRB with all runtime dependencies loaded'
+      task :console, [:script] do |_t, args|
+        # TODO: move to a command
+        dirs = %w(ext lib).select { |dir| File.directory?(dir) }
 
         original_load_path = $LOAD_PATH
 
-        cmd = if File.exist?('Gemfile')
-                require 'bundler'
-                Bundler.setup(:default)
+        _cmd = if File.exist?('Gemfile')
+                 require 'bundler'
+                 Bundler.setup(:default)
               end
 
         # add the project code directories
@@ -231,9 +232,8 @@ class Jeweler
         IRB.start
 
         # return the $LOAD_PATH to it's original state
-        $LOAD_PATH.reject! { |path| !(original_load_path.include?(path)) }
+        $LOAD_PATH.reject! { |path| !original_load_path.include?(path) }
       end
-
     end
   end
 end
diff --git a/lib/jeweler/templates/Gemfile b/lib/jeweler/templates/Gemfile
index 8b7d4f4..5c7fbd9 100644
--- a/lib/jeweler/templates/Gemfile
+++ b/lib/jeweler/templates/Gemfile
@@ -1,4 +1,4 @@
-source "http://rubygems.org"
+source "https://rubygems.org"
 # Add dependencies required to use your gem here.
 # Example:
 #   gem "activesupport", ">= 2.3.5"
diff --git a/lib/jeweler/templates/bacon/flunking.rb b/lib/jeweler/templates/bacon/flunking.rb
index 8ee8f9b..6b70149 100644
--- a/lib/jeweler/templates/bacon/flunking.rb
+++ b/lib/jeweler/templates/bacon/flunking.rb
@@ -1,7 +1,7 @@
 require 'spec_helper'
 
-describe "<%= constant_name %>" do
-  it "fails" do
-    should.flunk "hey buddy, you should probably rename this file and start specing for real"
+describe '<%= constant_name %>' do
+  it 'fails' do
+    should.flunk 'hey buddy, you should probably rename this file and start specing for real'
   end
 end
diff --git a/lib/jeweler/templates/micronaut/flunking.rb b/lib/jeweler/templates/micronaut/flunking.rb
index 4d9db5d..0ef4afa 100644
--- a/lib/jeweler/templates/micronaut/flunking.rb
+++ b/lib/jeweler/templates/micronaut/flunking.rb
@@ -1,7 +1,7 @@
 require 'example_helper'
 
-describe "<%= constant_name %>" do
-  it "fails" do
-    fail "hey buddy, you should probably rename this file and start specing for real"
+describe '<%= constant_name %>' do
+  it 'fails' do
+    fail 'hey buddy, you should probably rename this file and start specing for real'
   end
 end
diff --git a/lib/jeweler/templates/minitest/flunking.rb b/lib/jeweler/templates/minitest/flunking.rb
index ca346ac..7683952 100644
--- a/lib/jeweler/templates/minitest/flunking.rb
+++ b/lib/jeweler/templates/minitest/flunking.rb
@@ -1,6 +1,6 @@
 require 'helper'
 
-class Test<%= constant_name %> < MiniTest::Unit::TestCase
+class Test<%= constant_name %> < MiniTest::Test
   def test_something_for_real
     flunk "hey buddy, you should probably rename this file and start testing for real"
   end
diff --git a/lib/jeweler/templates/minitest/helper.rb b/lib/jeweler/templates/minitest/helper.rb
index a50840f..0d67742 100644
--- a/lib/jeweler/templates/minitest/helper.rb
+++ b/lib/jeweler/templates/minitest/helper.rb
@@ -1,13 +1,13 @@
 <%= render_template 'simplecov.erb' %>
 require 'rubygems'
 <%= render_template 'bundler_setup.erb' %>
-require 'minitest/unit'
+require 'minitest/test'
 
 $LOAD_PATH.unshift(File.dirname(__FILE__))
 $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
 require '<%= require_name %>'
 
-class MiniTest::Unit::TestCase
+class MiniTest::Test
 end
 
-MiniTest::Unit.autorun
+require 'minitest/autorun'
diff --git a/lib/jeweler/templates/riot/flunking.rb b/lib/jeweler/templates/riot/flunking.rb
index 4ab308c..0fb274d 100644
--- a/lib/jeweler/templates/riot/flunking.rb
+++ b/lib/jeweler/templates/riot/flunking.rb
@@ -1,6 +1,6 @@
 require 'teststrap'
 
-context "<%= require_name %>" do
+context '<%= require_name %>' do
   setup do
     false
   end
diff --git a/lib/jeweler/templates/rspec/flunking.rb b/lib/jeweler/templates/rspec/flunking.rb
index 137a66d..36ef427 100644
--- a/lib/jeweler/templates/rspec/flunking.rb
+++ b/lib/jeweler/templates/rspec/flunking.rb
@@ -1,7 +1,7 @@
 require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
 
-describe "<%= constant_name %>" do
-  it "fails" do
-    fail "hey buddy, you should probably rename this file and start specing for real"
+describe '<%= constant_name %>' do
+  it 'fails' do
+    fail 'hey buddy, you should probably rename this file and start specing for real'
   end
 end
diff --git a/lib/jeweler/templates/shindo/flunking.rb b/lib/jeweler/templates/shindo/flunking.rb
index 456efb2..887f3af 100644
--- a/lib/jeweler/templates/shindo/flunking.rb
+++ b/lib/jeweler/templates/shindo/flunking.rb
@@ -1,8 +1,8 @@
 require File.expand_path(File.dirname(__FILE__) + '/tests_helper')
 
-Shindo.tests("<%= constant_name %>") do
-  test("fails") do
-    "hey buddy, you should probably rename this file and start specing for real"
+Shindo.tests('<%= constant_name %>') do
+  test('fails') do
+    'hey buddy, you should probably rename this file and start specing for real'
     false
   end
 end
diff --git a/lib/jeweler/templates/testspec/flunking.rb b/lib/jeweler/templates/testspec/flunking.rb
index 1882479..973c216 100644
--- a/lib/jeweler/templates/testspec/flunking.rb
+++ b/lib/jeweler/templates/testspec/flunking.rb
@@ -1,7 +1,7 @@
 require File.expand_path(File.dirname(__FILE__) + '/test_helper')
 
-describe "<%= constant_name %>" do
-  it "fails" do
-    fail "hey buddy, you should probably rename this file and start specing for real"
+describe '<%= constant_name %>' do
+  it 'fails' do
+    fail 'hey buddy, you should probably rename this file and start specing for real'
   end
 end
diff --git a/lib/jeweler/version_helper.rb b/lib/jeweler/version_helper.rb
index 3eee406..8d20fb5 100644
--- a/lib/jeweler/version_helper.rb
+++ b/lib/jeweler/version_helper.rb
@@ -13,16 +13,16 @@ class Jeweler
     module YamlExtension
       def write
         File.open(yaml_path, 'w+') do |f|
-          YAML.dump(self.to_hash, f)
+          YAML.dump(to_hash, f)
         end
       end
 
       def to_hash
         {
-          :major => major,
-          :minor => minor,
-          :patch => patch,
-          :build => build
+          major: major,
+          minor: minor,
+          patch: patch,
+          build: build
         }
       end
 
@@ -39,7 +39,7 @@ class Jeweler
       end
 
       def read_yaml
-        if File.exists?(yaml_path)
+        if File.exist?(yaml_path)
           YAML.load_file(yaml_path)
         else
           raise VersionYmlError, "#{yaml_path} does not exist!"
@@ -86,14 +86,12 @@ class Jeweler
     def initialize(base_dir)
       self.base_dir = base_dir
 
-      if File.exists?(yaml_path)
+      if File.exist?(yaml_path)
         extend YamlExtension
         parse_yaml
       else
         extend PlaintextExtension
-        if File.exists?(plaintext_path)
-          parse_plaintext
-        end
+        parse_plaintext if File.exist?(plaintext_path)
       end
     end
 
@@ -115,7 +113,7 @@ class Jeweler
       @build = nil
     end
 
-    def update_to(major, minor, patch, build=nil)
+    def update_to(major, minor, patch, build = nil)
       @major = major
       @minor = minor
       @patch = patch
@@ -127,15 +125,20 @@ class Jeweler
     end
 
     def yaml_path
-      denormalized_path = File.join(@base_dir, 'VERSION.yml')
-      absolute_path = File.expand_path(denormalized_path)
-      absolute_path.gsub(Dir.getwd + File::SEPARATOR, '')
+      path_to_version_file('VERSION.yml')
     end
 
     def plaintext_path
-      denormalized_path = File.join(@base_dir, 'VERSION')
+      path_to_version_file('VERSION')
+    end
+
+  private
+
+    def path_to_version_file(filename)
+      denormalized_path = File.join(@base_dir, filename)
       absolute_path = File.expand_path(denormalized_path)
       absolute_path.gsub(Dir.getwd + File::SEPARATOR, '')
     end
+
   end
 end
diff --git a/metadata.yml b/metadata.yml
deleted file mode 100644
index a9b462b..0000000
--- a/metadata.yml
+++ /dev/null
@@ -1,379 +0,0 @@
---- !ruby/object:Gem::Specification
-name: jeweler
-version: !ruby/object:Gem::Version
-  version: 2.0.1
-platform: ruby
-authors:
-- Josh Nichols
-- Yusuke Murata
-autorequire: 
-bindir: bin
-cert_chain: []
-date: 2014-01-29 00:00:00.000000000 Z
-dependencies:
-- !ruby/object:Gem::Dependency
-  name: rake
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-- !ruby/object:Gem::Dependency
-  name: git
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.2.5
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.2.5
-- !ruby/object:Gem::Dependency
-  name: nokogiri
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.5.10
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.5.10
-- !ruby/object:Gem::Dependency
-  name: github_api
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-- !ruby/object:Gem::Dependency
-  name: highline
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.6.15
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.6.15
-- !ruby/object:Gem::Dependency
-  name: bundler
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '1.0'
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '1.0'
-- !ruby/object:Gem::Dependency
-  name: rdoc
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-- !ruby/object:Gem::Dependency
-  name: builder
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-- !ruby/object:Gem::Dependency
-  name: yard
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 0.8.5
-  type: :development
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 0.8.5
-- !ruby/object:Gem::Dependency
-  name: bluecloth
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-  type: :development
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-- !ruby/object:Gem::Dependency
-  name: cucumber
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.1.4
-  type: :development
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: 1.1.4
-- !ruby/object:Gem::Dependency
-  name: simplecov
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-  type: :development
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - '>='
-      - !ruby/object:Gem::Version
-        version: '0'
-description: Simple and opinionated helper for creating Rubygem projects on GitHub
-email:
-- josh@technicalpickles.com
-- info@muratayusuke.com
-executables:
-- jeweler
-extensions: []
-extra_rdoc_files:
-- ChangeLog.markdown
-- LICENSE.txt
-- README.markdown
-files:
-- .coveralls.yml
-- .document
-- .travis.yml
-- .yardopts
-- ChangeLog.markdown
-- Gemfile
-- LICENSE.txt
-- README.markdown
-- Rakefile
-- bin/jeweler
-- features/generator/cucumber.feature
-- features/generator/directory_layout.feature
-- features/generator/dotdocument.feature
-- features/generator/env_options.feature
-- features/generator/gemfile.feature
-- features/generator/git.feature
-- features/generator/license.feature
-- features/generator/rakefile.feature
-- features/generator/readme.feature
-- features/generator/test.feature
-- features/generator/test_helper.feature
-- features/placeholder.feature
-- features/step_definitions/debug_steps.rb
-- features/step_definitions/filesystem_steps.rb
-- features/step_definitions/generator_steps.rb
-- features/step_definitions/task_steps.rb
-- features/support/env.rb
-- features/tasks/build_gem.feature
-- features/tasks/version.feature
-- features/tasks/version_bumping.feature
-- jeweler.gemspec
-- lib/jeweler.rb
-- lib/jeweler/commands.rb
-- lib/jeweler/commands/build_gem.rb
-- lib/jeweler/commands/check_dependencies.rb
-- lib/jeweler/commands/install_gem.rb
-- lib/jeweler/commands/release_gemspec.rb
-- lib/jeweler/commands/release_to_git.rb
-- lib/jeweler/commands/release_to_rubygems.rb
-- lib/jeweler/commands/validate_gemspec.rb
-- lib/jeweler/commands/version/base.rb
-- lib/jeweler/commands/version/bump_major.rb
-- lib/jeweler/commands/version/bump_minor.rb
-- lib/jeweler/commands/version/bump_patch.rb
-- lib/jeweler/commands/version/write.rb
-- lib/jeweler/commands/write_gemspec.rb
-- lib/jeweler/errors.rb
-- lib/jeweler/gemcutter_tasks.rb
-- lib/jeweler/gemspec_helper.rb
-- lib/jeweler/generator.rb
-- lib/jeweler/generator/application.rb
-- lib/jeweler/generator/bacon_mixin.rb
-- lib/jeweler/generator/github_mixin.rb
-- lib/jeweler/generator/micronaut_mixin.rb
-- lib/jeweler/generator/minitest_mixin.rb
-- lib/jeweler/generator/options.rb
-- lib/jeweler/generator/rdoc_mixin.rb
-- lib/jeweler/generator/riot_mixin.rb
-- lib/jeweler/generator/rspec_mixin.rb
-- lib/jeweler/generator/shindo_mixin.rb
-- lib/jeweler/generator/shoulda_mixin.rb
-- lib/jeweler/generator/testspec_mixin.rb
-- lib/jeweler/generator/testunit_mixin.rb
-- lib/jeweler/generator/yard_mixin.rb
-- lib/jeweler/rubyforge_tasks.rb
-- lib/jeweler/rubygems_dot_org_tasks.rb
-- lib/jeweler/rubygems_tasks.rb
-- lib/jeweler/specification.rb
-- lib/jeweler/tasks.rb
-- lib/jeweler/templates/.document
-- lib/jeweler/templates/.gitignore
-- lib/jeweler/templates/Gemfile
-- lib/jeweler/templates/LICENSE.txt
-- lib/jeweler/templates/README.rdoc
-- lib/jeweler/templates/Rakefile
-- lib/jeweler/templates/bacon/flunking.rb
-- lib/jeweler/templates/bacon/helper.rb
-- lib/jeweler/templates/bundler_setup.erb
-- lib/jeweler/templates/features/default.feature
-- lib/jeweler/templates/features/support/env.rb
-- lib/jeweler/templates/jeweler_tasks.erb
-- lib/jeweler/templates/micronaut/flunking.rb
-- lib/jeweler/templates/micronaut/helper.rb
-- lib/jeweler/templates/minitest/flunking.rb
-- lib/jeweler/templates/minitest/helper.rb
-- lib/jeweler/templates/other_tasks.erb
-- lib/jeweler/templates/riot/flunking.rb
-- lib/jeweler/templates/riot/helper.rb
-- lib/jeweler/templates/rspec/.rspec
-- lib/jeweler/templates/rspec/flunking.rb
-- lib/jeweler/templates/rspec/helper.rb
-- lib/jeweler/templates/shindo/flunking.rb
-- lib/jeweler/templates/shindo/helper.rb
-- lib/jeweler/templates/shoulda/flunking.rb
-- lib/jeweler/templates/shoulda/helper.rb
-- lib/jeweler/templates/simplecov.erb
-- lib/jeweler/templates/testspec/flunking.rb
-- lib/jeweler/templates/testspec/helper.rb
-- lib/jeweler/templates/testunit/flunking.rb
-- lib/jeweler/templates/testunit/helper.rb
-- lib/jeweler/version.rb
-- lib/jeweler/version_helper.rb
-- test/fixtures/bar/VERSION.yml
-- test/fixtures/bar/bin/foo_the_ultimate_bin
-- test/fixtures/bar/hey_include_me_in_gemspec
-- test/fixtures/bar/lib/foo_the_ultimate_lib.rb
-- test/fixtures/existing-project-with-version-constant/.document
-- test/fixtures/existing-project-with-version-constant/.gitignore
-- test/fixtures/existing-project-with-version-constant/LICENSE.txt
-- test/fixtures/existing-project-with-version-constant/README.rdoc
-- test/fixtures/existing-project-with-version-constant/Rakefile
-- test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec
-- test/fixtures/existing-project-with-version-constant/lib/existing_project_with_version.rb
-- test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb
-- test/fixtures/existing-project-with-version-constant/test/test_helper.rb
-- test/fixtures/existing-project-with-version-plaintext/.document
-- test/fixtures/existing-project-with-version-plaintext/.gitignore
-- test/fixtures/existing-project-with-version-plaintext/LICENSE.txt
-- test/fixtures/existing-project-with-version-plaintext/README.rdoc
-- test/fixtures/existing-project-with-version-plaintext/Rakefile
-- test/fixtures/existing-project-with-version-plaintext/VERSION
-- test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec
-- test/fixtures/existing-project-with-version-plaintext/lib/existing_project_with_version.rb
-- test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb
-- test/fixtures/existing-project-with-version-plaintext/test/test_helper.rb
-- test/fixtures/existing-project-with-version-yaml/.document
-- test/fixtures/existing-project-with-version-yaml/.gitignore
-- test/fixtures/existing-project-with-version-yaml/LICENSE.txt
-- test/fixtures/existing-project-with-version-yaml/README.rdoc
-- test/fixtures/existing-project-with-version-yaml/Rakefile
-- test/fixtures/existing-project-with-version-yaml/VERSION.yml
-- test/fixtures/existing-project-with-version-yaml/bin/foo_the_ultimate_bin
-- test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec
-- test/fixtures/existing-project-with-version-yaml/lib/existing_project_with_version.rb
-- test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb
-- test/fixtures/existing-project-with-version-yaml/test/test_helper.rb
-- test/geminstaller.yml
-- test/jeweler/commands/test_build_gem.rb
-- test/jeweler/commands/test_install_gem.rb
-- test/jeweler/commands/test_release_to_gemcutter.rb
-- test/jeweler/commands/test_release_to_git.rb
-- test/jeweler/commands/test_release_to_github.rb
-- test/jeweler/commands/test_validate_gemspec.rb
-- test/jeweler/commands/test_write_gemspec.rb
-- test/jeweler/commands/version/test_base.rb
-- test/jeweler/commands/version/test_bump_major.rb
-- test/jeweler/commands/version/test_bump_minor.rb
-- test/jeweler/commands/version/test_bump_patch.rb
-- test/jeweler/commands/version/test_write.rb
-- test/jeweler/generator/test_application.rb
-- test/jeweler/generator/test_options.rb
-- test/jeweler/test_gemspec_helper.rb
-- test/jeweler/test_generator.rb
-- test/jeweler/test_generator_initialization.rb
-- test/jeweler/test_generator_mixins.rb
-- test/jeweler/test_specification.rb
-- test/jeweler/test_tasks.rb
-- test/jeweler/test_version_helper.rb
-- test/shoulda_macros/jeweler_macros.rb
-- test/test_helper.rb
-- test/test_jeweler.rb
-homepage: http://github.com/technicalpickles/jeweler
-licenses:
-- MIT
-metadata: {}
-post_install_message: 
-rdoc_options: []
-require_paths:
-- lib
-required_ruby_version: !ruby/object:Gem::Requirement
-  requirements:
-  - - '>='
-    - !ruby/object:Gem::Version
-      version: '0'
-required_rubygems_version: !ruby/object:Gem::Requirement
-  requirements:
-  - - '>='
-    - !ruby/object:Gem::Version
-      version: '0'
-requirements: []
-rubyforge_project: 
-rubygems_version: 2.0.3
-signing_key: 
-specification_version: 4
-summary: Opinionated tool for creating and managing RubyGem projects
-test_files: []
diff --git a/test/fixtures/bar/lib/foo_the_ultimate_lib.rb b/test/fixtures/bar/lib/foo_the_ultimate_lib.rb
index a99ab54..bc1a7bc 100644
--- a/test/fixtures/bar/lib/foo_the_ultimate_lib.rb
+++ b/test/fixtures/bar/lib/foo_the_ultimate_lib.rb
@@ -1 +1 @@
-# Uhuh
\ No newline at end of file
+# Uhuh
diff --git a/test/fixtures/existing-project-with-version-constant/Rakefile b/test/fixtures/existing-project-with-version-constant/Rakefile
index f82c8fa..db8632f 100644
--- a/test/fixtures/existing-project-with-version-constant/Rakefile
+++ b/test/fixtures/existing-project-with-version-constant/Rakefile
@@ -4,16 +4,16 @@ require 'rake'
 begin
   require 'jeweler'
   Jeweler::Tasks.new do |gem|
-    gem.version = "1.0.0"
-    gem.name = "existing-project-with-version"
-    gem.summary = %Q{Summarize your gem}
-    gem.email = "josh@technicalpickles.com"
-    gem.homepage = "http://github.com/technicalpickles/existing-project-with-version"
-    gem.authors = ["Josh Nichols"]
+    gem.version = '1.0.0'
+    gem.name = 'existing-project-with-version'
+    gem.summary = %(Summarize your gem)
+    gem.email = 'josh@technicalpickles.com'
+    gem.homepage = 'http://github.com/technicalpickles/existing-project-with-version'
+    gem.authors = ['Josh Nichols']
     # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
   end
 rescue LoadError
-  puts "Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com"
+  puts 'Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com'
 end
 
 require 'rake/testtask'
@@ -32,12 +32,11 @@ begin
   end
 rescue LoadError
   task :rcov do
-    abort "RCov is not available. In order to run rcov, you must: gem install spicycode-rcov"
+    abort 'RCov is not available. In order to run rcov, you must: gem install spicycode-rcov'
   end
 end
 
-
-task :default => :test
+task default: :test
 
 require 'rdoc/task'
 Rake::RDocTask.new do |rdoc|
@@ -46,7 +45,7 @@ Rake::RDocTask.new do |rdoc|
     config = YAML.load(File.read('VERSION.yml'))
     version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
   else
-    version = ""
+    version = ''
   end
 
   rdoc.rdoc_dir = 'rdoc'
@@ -60,20 +59,19 @@ end
 begin
   require 'rake/contrib/sshpublisher'
   namespace :rubyforge do
-    
-    desc "Release gem and RDoc documentation to RubyForge"
-    task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
-    
+    desc 'Release gem and RDoc documentation to RubyForge'
+    task release: ['rubyforge:release:gem', 'rubyforge:release:docs']
+
     namespace :release do
-      desc "Publish RDoc to RubyForge."
-      task :docs => [:rdoc] do
+      desc 'Publish RDoc to RubyForge.'
+      task docs: [:rdoc] do
         require 'yaml'
         config = YAML.load(
-            File.read(File.expand_path('~/.rubyforge/user-config.yml'))
+          File.read(File.expand_path('~/.rubyforge/user-config.yml'))
         )
 
         host = "#{config['username']}@rubyforge.org"
-        remote_dir = "/var/www/gforge-projects/existing-project-with-version/"
+        remote_dir = '/var/www/gforge-projects/existing-project-with-version/'
         local_dir = 'rdoc'
 
         Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
@@ -81,5 +79,5 @@ begin
     end
   end
 rescue LoadError
-  puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
+  puts 'Rake SshDirPublisher is unavailable or your rubyforge environment is not configured.'
 end
diff --git a/test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec b/test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec
index bb2b920..eb13c4a 100644
--- a/test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec
+++ b/test/fixtures/existing-project-with-version-constant/existing-project-with-version.gemspec
@@ -1,29 +1,27 @@
 # -*- encoding: utf-8 -*-
 
 Gem::Specification.new do |s|
-  s.name = %q{existing-project-with-version}
-  s.version = "1.5.3"
+  s.name = 'existing-project-with-version'
+  s.version = '1.5.3'
 
-  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
-  s.authors = ["Josh Nichols"]
-  s.date = %q{2009-03-13}
-  s.email = %q{josh@technicalpickles.com}
-  s.extra_rdoc_files = ["README.rdoc", "LICENSE"]
-  s.files = ["README.rdoc", "VERSION.yml", "lib/existing_project_with_version.rb", "test/existing_project_with_version_test.rb", "test/test_helper.rb", "LICENSE"]
+  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
+  s.authors = ['Josh Nichols']
+  s.date = '2009-03-13'
+  s.email = 'josh@technicalpickles.com'
+  s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
+  s.files = ['README.rdoc', 'VERSION.yml', 'lib/existing_project_with_version.rb', 'test/existing_project_with_version_test.rb', 'test/test_helper.rb', 'LICENSE']
   s.has_rdoc = true
-  s.homepage = %q{http://github.com/technicalpickles/existing-project-with-version}
-  s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
-  s.require_paths = ["lib"]
-  s.rubygems_version = %q{1.3.1}
-  s.summary = %q{Summarize your gem}
+  s.homepage = 'http://github.com/technicalpickles/existing-project-with-version'
+  s.rdoc_options = ['--inline-source', '--charset=UTF-8']
+  s.require_paths = ['lib']
+  s.rubygems_version = '1.3.1'
+  s.summary = 'Summarize your gem'
 
-  if s.respond_to? :specification_version then
+  if s.respond_to? :specification_version
     current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
     s.specification_version = 2
 
-    if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
-    else
+    if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0')
     end
-  else
   end
 end
diff --git a/test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb b/test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb
index d513b57..d517f02 100644
--- a/test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb
+++ b/test/fixtures/existing-project-with-version-constant/test/existing_project_with_version_test.rb
@@ -1,7 +1,7 @@
 require 'test_helper'
 
 class ExistingProjectWithVersionTest < Test::Unit::TestCase
-  should "probably rename this file and start testing for real" do
-    flunk "hey buddy, you should probably rename this file and start testing for real"
+  should 'probably rename this file and start testing for real' do
+    flunk 'hey buddy, you should probably rename this file and start testing for real'
   end
 end
diff --git a/test/fixtures/existing-project-with-version-plaintext/Rakefile b/test/fixtures/existing-project-with-version-plaintext/Rakefile
index 05b3125..af356d5 100644
--- a/test/fixtures/existing-project-with-version-plaintext/Rakefile
+++ b/test/fixtures/existing-project-with-version-plaintext/Rakefile
@@ -4,15 +4,15 @@ require 'rake'
 begin
   require 'jeweler'
   Jeweler::Tasks.new do |gem|
-    gem.name = "existing-project-with-version"
-    gem.summary = %Q{Summarize your gem}
-    gem.email = "josh@technicalpickles.com"
-    gem.homepage = "http://github.com/technicalpickles/existing-project-with-version"
-    gem.authors = ["Josh Nichols"]
+    gem.name = 'existing-project-with-version'
+    gem.summary = %(Summarize your gem)
+    gem.email = 'josh@technicalpickles.com'
+    gem.homepage = 'http://github.com/technicalpickles/existing-project-with-version'
+    gem.authors = ['Josh Nichols']
     # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
   end
 rescue LoadError
-  puts "Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com"
+  puts 'Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com'
 end
 
 require 'rake/testtask'
@@ -31,12 +31,11 @@ begin
   end
 rescue LoadError
   task :rcov do
-    abort "RCov is not available. In order to run rcov, you must: gem install spicycode-rcov"
+    abort 'RCov is not available. In order to run rcov, you must: gem install spicycode-rcov'
   end
 end
 
-
-task :default => :test
+task default: :test
 
 require 'rdoc/task'
 Rake::RDocTask.new do |rdoc|
@@ -45,7 +44,7 @@ Rake::RDocTask.new do |rdoc|
     config = YAML.load(File.read('VERSION.yml'))
     version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
   else
-    version = ""
+    version = ''
   end
 
   rdoc.rdoc_dir = 'rdoc'
@@ -59,20 +58,19 @@ end
 begin
   require 'rake/contrib/sshpublisher'
   namespace :rubyforge do
-    
-    desc "Release gem and RDoc documentation to RubyForge"
-    task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
-    
+    desc 'Release gem and RDoc documentation to RubyForge'
+    task release: ['rubyforge:release:gem', 'rubyforge:release:docs']
+
     namespace :release do
-      desc "Publish RDoc to RubyForge."
-      task :docs => [:rdoc] do
+      desc 'Publish RDoc to RubyForge.'
+      task docs: [:rdoc] do
         require 'yaml'
         config = YAML.load(
-            File.read(File.expand_path('~/.rubyforge/user-config.yml'))
+          File.read(File.expand_path('~/.rubyforge/user-config.yml'))
         )
 
         host = "#{config['username']}@rubyforge.org"
-        remote_dir = "/var/www/gforge-projects/existing-project-with-version/"
+        remote_dir = '/var/www/gforge-projects/existing-project-with-version/'
         local_dir = 'rdoc'
 
         Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
@@ -80,5 +78,5 @@ begin
     end
   end
 rescue LoadError
-  puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
+  puts 'Rake SshDirPublisher is unavailable or your rubyforge environment is not configured.'
 end
diff --git a/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec b/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec
index bb2b920..eb13c4a 100644
--- a/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec
+++ b/test/fixtures/existing-project-with-version-plaintext/existing-project-with-version.gemspec
@@ -1,29 +1,27 @@
 # -*- encoding: utf-8 -*-
 
 Gem::Specification.new do |s|
-  s.name = %q{existing-project-with-version}
-  s.version = "1.5.3"
+  s.name = 'existing-project-with-version'
+  s.version = '1.5.3'
 
-  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
-  s.authors = ["Josh Nichols"]
-  s.date = %q{2009-03-13}
-  s.email = %q{josh@technicalpickles.com}
-  s.extra_rdoc_files = ["README.rdoc", "LICENSE"]
-  s.files = ["README.rdoc", "VERSION.yml", "lib/existing_project_with_version.rb", "test/existing_project_with_version_test.rb", "test/test_helper.rb", "LICENSE"]
+  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
+  s.authors = ['Josh Nichols']
+  s.date = '2009-03-13'
+  s.email = 'josh@technicalpickles.com'
+  s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
+  s.files = ['README.rdoc', 'VERSION.yml', 'lib/existing_project_with_version.rb', 'test/existing_project_with_version_test.rb', 'test/test_helper.rb', 'LICENSE']
   s.has_rdoc = true
-  s.homepage = %q{http://github.com/technicalpickles/existing-project-with-version}
-  s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
-  s.require_paths = ["lib"]
-  s.rubygems_version = %q{1.3.1}
-  s.summary = %q{Summarize your gem}
+  s.homepage = 'http://github.com/technicalpickles/existing-project-with-version'
+  s.rdoc_options = ['--inline-source', '--charset=UTF-8']
+  s.require_paths = ['lib']
+  s.rubygems_version = '1.3.1'
+  s.summary = 'Summarize your gem'
 
-  if s.respond_to? :specification_version then
+  if s.respond_to? :specification_version
     current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
     s.specification_version = 2
 
-    if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
-    else
+    if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0')
     end
-  else
   end
 end
diff --git a/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb b/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb
index d513b57..d517f02 100644
--- a/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb
+++ b/test/fixtures/existing-project-with-version-plaintext/test/existing_project_with_version_test.rb
@@ -1,7 +1,7 @@
 require 'test_helper'
 
 class ExistingProjectWithVersionTest < Test::Unit::TestCase
-  should "probably rename this file and start testing for real" do
-    flunk "hey buddy, you should probably rename this file and start testing for real"
+  should 'probably rename this file and start testing for real' do
+    flunk 'hey buddy, you should probably rename this file and start testing for real'
   end
 end
diff --git a/test/fixtures/existing-project-with-version-yaml/Rakefile b/test/fixtures/existing-project-with-version-yaml/Rakefile
index 05b3125..af356d5 100644
--- a/test/fixtures/existing-project-with-version-yaml/Rakefile
+++ b/test/fixtures/existing-project-with-version-yaml/Rakefile
@@ -4,15 +4,15 @@ require 'rake'
 begin
   require 'jeweler'
   Jeweler::Tasks.new do |gem|
-    gem.name = "existing-project-with-version"
-    gem.summary = %Q{Summarize your gem}
-    gem.email = "josh@technicalpickles.com"
-    gem.homepage = "http://github.com/technicalpickles/existing-project-with-version"
-    gem.authors = ["Josh Nichols"]
+    gem.name = 'existing-project-with-version'
+    gem.summary = %(Summarize your gem)
+    gem.email = 'josh@technicalpickles.com'
+    gem.homepage = 'http://github.com/technicalpickles/existing-project-with-version'
+    gem.authors = ['Josh Nichols']
     # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
   end
 rescue LoadError
-  puts "Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com"
+  puts 'Jeweler not available. Install it with: gem install technicalpickles-jeweler -s http://gems.github.com'
 end
 
 require 'rake/testtask'
@@ -31,12 +31,11 @@ begin
   end
 rescue LoadError
   task :rcov do
-    abort "RCov is not available. In order to run rcov, you must: gem install spicycode-rcov"
+    abort 'RCov is not available. In order to run rcov, you must: gem install spicycode-rcov'
   end
 end
 
-
-task :default => :test
+task default: :test
 
 require 'rdoc/task'
 Rake::RDocTask.new do |rdoc|
@@ -45,7 +44,7 @@ Rake::RDocTask.new do |rdoc|
     config = YAML.load(File.read('VERSION.yml'))
     version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
   else
-    version = ""
+    version = ''
   end
 
   rdoc.rdoc_dir = 'rdoc'
@@ -59,20 +58,19 @@ end
 begin
   require 'rake/contrib/sshpublisher'
   namespace :rubyforge do
-    
-    desc "Release gem and RDoc documentation to RubyForge"
-    task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
-    
+    desc 'Release gem and RDoc documentation to RubyForge'
+    task release: ['rubyforge:release:gem', 'rubyforge:release:docs']
+
     namespace :release do
-      desc "Publish RDoc to RubyForge."
-      task :docs => [:rdoc] do
+      desc 'Publish RDoc to RubyForge.'
+      task docs: [:rdoc] do
         require 'yaml'
         config = YAML.load(
-            File.read(File.expand_path('~/.rubyforge/user-config.yml'))
+          File.read(File.expand_path('~/.rubyforge/user-config.yml'))
         )
 
         host = "#{config['username']}@rubyforge.org"
-        remote_dir = "/var/www/gforge-projects/existing-project-with-version/"
+        remote_dir = '/var/www/gforge-projects/existing-project-with-version/'
         local_dir = 'rdoc'
 
         Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
@@ -80,5 +78,5 @@ begin
     end
   end
 rescue LoadError
-  puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
+  puts 'Rake SshDirPublisher is unavailable or your rubyforge environment is not configured.'
 end
diff --git a/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec b/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec
index bb2b920..eb13c4a 100644
--- a/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec
+++ b/test/fixtures/existing-project-with-version-yaml/existing-project-with-version.gemspec
@@ -1,29 +1,27 @@
 # -*- encoding: utf-8 -*-
 
 Gem::Specification.new do |s|
-  s.name = %q{existing-project-with-version}
-  s.version = "1.5.3"
+  s.name = 'existing-project-with-version'
+  s.version = '1.5.3'
 
-  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
-  s.authors = ["Josh Nichols"]
-  s.date = %q{2009-03-13}
-  s.email = %q{josh@technicalpickles.com}
-  s.extra_rdoc_files = ["README.rdoc", "LICENSE"]
-  s.files = ["README.rdoc", "VERSION.yml", "lib/existing_project_with_version.rb", "test/existing_project_with_version_test.rb", "test/test_helper.rb", "LICENSE"]
+  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
+  s.authors = ['Josh Nichols']
+  s.date = '2009-03-13'
+  s.email = 'josh@technicalpickles.com'
+  s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
+  s.files = ['README.rdoc', 'VERSION.yml', 'lib/existing_project_with_version.rb', 'test/existing_project_with_version_test.rb', 'test/test_helper.rb', 'LICENSE']
   s.has_rdoc = true
-  s.homepage = %q{http://github.com/technicalpickles/existing-project-with-version}
-  s.rdoc_options = ["--inline-source", "--charset=UTF-8"]
-  s.require_paths = ["lib"]
-  s.rubygems_version = %q{1.3.1}
-  s.summary = %q{Summarize your gem}
+  s.homepage = 'http://github.com/technicalpickles/existing-project-with-version'
+  s.rdoc_options = ['--inline-source', '--charset=UTF-8']
+  s.require_paths = ['lib']
+  s.rubygems_version = '1.3.1'
+  s.summary = 'Summarize your gem'
 
-  if s.respond_to? :specification_version then
+  if s.respond_to? :specification_version
     current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
     s.specification_version = 2
 
-    if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
-    else
+    if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0')
     end
-  else
   end
 end
diff --git a/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb b/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb
index d513b57..d517f02 100644
--- a/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb
+++ b/test/fixtures/existing-project-with-version-yaml/test/existing_project_with_version_test.rb
@@ -1,7 +1,7 @@
 require 'test_helper'
 
 class ExistingProjectWithVersionTest < Test::Unit::TestCase
-  should "probably rename this file and start testing for real" do
-    flunk "hey buddy, you should probably rename this file and start testing for real"
+  should 'probably rename this file and start testing for real' do
+    flunk 'hey buddy, you should probably rename this file and start testing for real'
   end
 end
diff --git a/test/jeweler/commands/test_build_gem.rb b/test/jeweler/commands/test_build_gem.rb
index 99dec79..515b5b3 100644
--- a/test/jeweler/commands/test_build_gem.rb
+++ b/test/jeweler/commands/test_build_gem.rb
@@ -4,77 +4,75 @@ require 'jeweler/commands/build_gem'
 class Jeweler
   module Commands
     class TestBuildGem < Test::Unit::TestCase
-
-      context "after running without a version" do
+      context 'after running without a version' do
         setup do
           initialize_build_gem_environment
           @command.run
         end
 
-        should "check if the gemspec helper has a version" do
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.has_version? }
+        should 'check if the gemspec helper has a version' do
+          assert_received(@gemspec_helper, &:has_version?)
         end
 
         should "update version of gemspec helper if the gemspec doesn't have a version" do
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.update_version(@version_helper)}
+          assert_received(@gemspec_helper) { |gemspec_helper| gemspec_helper.update_version(@version_helper) }
         end
 
         should "call gemspec helper's parse" do
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.parse }
+          assert_received(@gemspec_helper, &:parse)
         end
 
-        should "build from parsed gemspec" do
-          if Gem::Version.new(`gem -v`) >= Gem::Version.new("2.0.0.a")
-            assert_received(Gem::Package) {|builder_class| builder_class.build(@gemspec) }
+        should 'build from parsed gemspec' do
+          if Gem::Version.new(`gem -v`) >= Gem::Version.new('2.0.0.a')
+            assert_received(Gem::Package) { |builder_class| builder_class.build(@gemspec) }
           else
-            assert_received(Gem::Builder) {|builder_class| builder_class.new(@gemspec) }
-            assert_received(@builder) {|builder| builder.build }
+            assert_received(Gem::Builder) { |builder_class| builder_class.new(@gemspec) }
+            assert_received(@builder, &:build)
           end
         end
 
         should 'make package directory' do
-          assert_received(@file_utils) {|file_utils| file_utils.mkdir_p './pkg'}
+          assert_received(@file_utils) { |file_utils| file_utils.mkdir_p './pkg' }
         end
 
         should 'move built gem into package directory' do
-          assert_received(@file_utils) {|file_utils| file_utils.mv './zomg-1.2.3.gem', './pkg'}
+          assert_received(@file_utils) { |file_utils| file_utils.mv './zomg-1.2.3.gem', './pkg' }
         end
       end
-      
+
       context 'after running with a version' do
         setup do
           initialize_build_gem_environment true
           @command.run
         end
-        
-        should "check if the gemspec helper has a version" do
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.has_version? }
+
+        should 'check if the gemspec helper has a version' do
+          assert_received(@gemspec_helper, &:has_version?)
         end
-        
+
         should "update version of gemspec helper if the gemspec doesn't have a version" do
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.update_version(@version_helper).never }
+          assert_received(@gemspec_helper) { |gemspec_helper| gemspec_helper.update_version(@version_helper).never }
         end
-        
       end
 
-      build_command_context "build for jeweler" do
+      build_command_context 'build for jeweler' do
         setup do
           @command = Jeweler::Commands::BuildGem.build_for(@jeweler)
         end
 
-        should "assign base_dir" do
+        should 'assign base_dir' do
           assert_same @base_dir, @jeweler.base_dir
         end
 
-        should "assign gemspec_helper" do
+        should 'assign gemspec_helper' do
           assert_same @gemspec_helper, @jeweler.gemspec_helper
         end
 
-        should "return BuildGem" do
+        should 'return BuildGem' do
           assert_kind_of Jeweler::Commands::BuildGem, @command
         end
       end
-      
+
       def initialize_build_gem_environment(has_version = false)
         @gemspec = Object.new
         stub(@gemspec).file_name { 'zomg-1.2.3.gem' }
@@ -84,10 +82,10 @@ class Jeweler
         stub(@gemspec_helper).update_version
         stub(@gemspec_helper).has_version? { has_version }
 
-        @version_helper = "Jeweler::VersionHelper"
+        @version_helper = 'Jeweler::VersionHelper'
 
         @builder = Object.new
-        if Gem::Version.new(`gem -v`) >= Gem::Version.new("2.0.0.a")
+        if Gem::Version.new(`gem -v`) >= Gem::Version.new('2.0.0.a')
           stub(Gem::Package).build { 'zomg-1.2.3.gem' }
         else
           stub(Gem::Builder).new { @builder }
@@ -106,7 +104,6 @@ class Jeweler
         @command.gemspec_helper = @gemspec_helper
         @command.version_helper = @version_helper
       end
-
     end
   end
 end
diff --git a/test/jeweler/commands/test_install_gem.rb b/test/jeweler/commands/test_install_gem.rb
index 20e0e41..e8735c8 100644
--- a/test/jeweler/commands/test_install_gem.rb
+++ b/test/jeweler/commands/test_install_gem.rb
@@ -3,30 +3,30 @@ require 'test_helper'
 class Jeweler
   module Commands
     class TestInstallGem < Test::Unit::TestCase
-      rubyforge_command_context "running" do
+      rubyforge_command_context 'running' do
         setup do
-          stub(@gemspec_helper).gem_path { 'pkg/zomg-1.1.1.gem' } 
+          stub(@gemspec_helper).gem_path { 'pkg/zomg-1.1.1.gem' }
           stub(@command).gem_command { 'ruby -S gem' }
           stub(@command).sh
 
           @command.run
         end
 
-        should "call sh with gem install" do
-          assert_received(@command) {|command| command.sh 'ruby -S gem install pkg/zomg-1.1.1.gem' }
+        should 'call sh with gem install' do
+          assert_received(@command) { |command| command.sh 'ruby -S gem install pkg/zomg-1.1.1.gem' }
         end
       end
 
-      build_command_context "build for jeweler" do
+      build_command_context 'build for jeweler' do
         setup do
           @command = Jeweler::Commands::InstallGem.build_for(@jeweler)
         end
 
-        should "assign gemspec helper" do
+        should 'assign gemspec helper' do
           assert_equal @gemspec_helper, @command.gemspec_helper
         end
 
-        should "assign output" do
+        should 'assign output' do
           assert_equal @output, @command.output
         end
       end
diff --git a/test/jeweler/commands/test_release_to_gemcutter.rb b/test/jeweler/commands/test_release_to_gemcutter.rb
index dd525b5..d8662ad 100644
--- a/test/jeweler/commands/test_release_to_gemcutter.rb
+++ b/test/jeweler/commands/test_release_to_gemcutter.rb
@@ -7,33 +7,32 @@ class Jeweler
         Jeweler::Commands::ReleaseToRubygems.new
       end
 
-      gemcutter_command_context "rubyforge_project is defined in gemspec and package exists on rubyforge" do
+      gemcutter_command_context 'rubyforge_project is defined in gemspec and package exists on rubyforge' do
         setup do
-          stub(@gemspec_helper).gem_path {'pkg/zomg-1.2.3.gem'}
+          stub(@gemspec_helper).gem_path { 'pkg/zomg-1.2.3.gem' }
           stub(@command).sh
           @command.run
         end
 
-        should "push to rubygems" do
+        should 'push to rubygems' do
           push_command = "gem push #{@gemspec_helper.gem_path}"
           assert_received(@command) { |command| command.sh(push_command) }
         end
       end
 
-      build_command_context "build for jeweler" do
+      build_command_context 'build for jeweler' do
         setup do
           @command = Jeweler::Commands::ReleaseToRubygems.build_for(@jeweler)
         end
 
-        should "assign gemspec helper" do
+        should 'assign gemspec helper' do
           assert_equal @gemspec_helper, @command.gemspec_helper
         end
 
-        should "assign output" do
+        should 'assign output' do
           assert_equal @output, @command.output
         end
       end
-      
     end
   end
 end
diff --git a/test/jeweler/commands/test_release_to_git.rb b/test/jeweler/commands/test_release_to_git.rb
index 4f0387c..8790956 100644
--- a/test/jeweler/commands/test_release_to_git.rb
+++ b/test/jeweler/commands/test_release_to_git.rb
@@ -3,9 +3,8 @@ require 'test_helper'
 class Jeweler
   module Commands
     class TestReleaseToGit < Test::Unit::TestCase
-
-      rubyforge_command_context "running" do
-        context "happily" do
+      rubyforge_command_context 'running' do
+        context 'happily' do
           setup do
             stub(@command).clean_staging_area? { true }
 
@@ -22,20 +21,19 @@ class Jeweler
             @command.run
           end
 
-          should "checkout master" do
-            assert_received(@repo) {|repo| repo.checkout('master') }
+          should 'checkout master' do
+            assert_received(@repo) { |repo| repo.checkout('master') }
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('origin', 'master:master') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('origin', 'master:master') }
           end
-
         end
 
-        context "happily with different remote, local branch and remote branch" do
+        context 'happily with different remote, local branch and remote branch' do
           setup do
             stub(@command).clean_staging_area? { true }
-            stub(@command).release_tag { "v1.2.0" }
+            stub(@command).release_tag { 'v1.2.0' }
 
             stub(@repo).checkout(anything)
             stub(@repo) do
@@ -47,27 +45,26 @@ class Jeweler
 
             stub(@command).release_not_tagged? { true }
 
-            @command.run({:remote => 'upstream', :local_branch => 'feature', :remote_branch => 'v1'})
+            @command.run(remote: 'upstream', local_branch: 'feature', remote_branch: 'v1')
           end
 
-          should "checkout master" do
-            assert_received(@repo) {|repo| repo.checkout('feature') }
+          should 'checkout master' do
+            assert_received(@repo) { |repo| repo.checkout('feature') }
           end
 
-          should "tag version" do
-            assert_received(@repo) {|repo| repo.add_tag('v1.2.0') }
+          should 'tag version' do
+            assert_received(@repo) { |repo| repo.add_tag('v1.2.0') }
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('upstream', 'feature:v1') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('upstream', 'feature:v1') }
           end
-
         end
 
-        context "happily with different branch" do
+        context 'happily with different branch' do
           setup do
             stub(@command).clean_staging_area? { true }
-            stub(@command).release_tag { "v3.2.0" }
+            stub(@command).release_tag { 'v3.2.0' }
 
             stub(@repo).checkout(anything)
             stub(@repo) do
@@ -79,41 +76,45 @@ class Jeweler
 
             stub(@command).release_not_tagged? { true }
 
-            @command.run({:branch => 'v3'})
+            @command.run(branch: 'v3')
           end
 
-          should "checkout master" do
-            assert_received(@repo) {|repo| repo.checkout('v3') }
+          should 'checkout master' do
+            assert_received(@repo) { |repo| repo.checkout('v3') }
           end
 
-          should "tag version" do
-            assert_received(@repo) {|repo| repo.add_tag('v3.2.0') }
+          should 'tag version' do
+            assert_received(@repo) { |repo| repo.add_tag('v3.2.0') }
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('origin', 'v3:v3') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('origin', 'v3:v3') }
           end
         end
 
-        context "with an unclean staging area" do
+        context 'with an unclean staging area' do
           setup do
             stub(@command).clean_staging_area? { false }
             stub(@command).system
           end
 
           should 'raise error' do
-            assert_raises RuntimeError, /try commiting/i do
+            assert_raises RuntimeError, 'Unclean staging area! Be sure to commit or .gitignore everything first. See `git status` above.' do
               @command.run
             end
           end
 
           should 'display git status' do
-            @command.run rescue nil
-            assert_received(@command) {|command| command.system("git status") }
+            begin
+              @command.run
+            rescue
+              nil
+            end
+            assert_received(@command) { |command| command.system('git status') }
           end
         end
 
-        context "with a release already tagged" do
+        context 'with a release already tagged' do
           setup do
             stub(@command).clean_staging_area? { true }
 
@@ -126,51 +127,48 @@ class Jeweler
             @command.run
           end
 
-          should "checkout master" do
-            assert_received(@repo) {|repo| repo.checkout('master') }
+          should 'checkout master' do
+            assert_received(@repo) { |repo| repo.checkout('master') }
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('origin', 'master:master') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('origin', 'master:master') }
           end
-
         end
-
       end
 
-
-      build_command_context "building from jeweler" do
+      build_command_context 'building from jeweler' do
         setup do
           @command = Jeweler::Commands::ReleaseToGit.build_for(@jeweler)
         end
 
-        should "assign gemspec" do
+        should 'assign gemspec' do
           assert_same @gemspec, @command.gemspec
         end
 
-        should "assign version" do
+        should 'assign version' do
           assert_same @version, @command.version
         end
 
-        should "assign repo" do
+        should 'assign repo' do
           assert_same @repo, @command.repo
         end
 
-        should "assign output" do
+        should 'assign output' do
           assert_same @output, @command.output
         end
 
-        should "assign gemspec_helper" do
+        should 'assign gemspec_helper' do
           assert_same @gemspec_helper, @command.gemspec_helper
         end
 
-        should "assign base_dir" do
+        should 'assign base_dir' do
           assert_same @base_dir, @command.base_dir
         end
       end
 
-      # FIXME this code had its ruby-git stuff replaced with `` and system, which is much harder to test, so re-enable these someday
-      #context "clean_staging_area?" do
+      # FIXME: this code had its ruby-git stuff replaced with `` and system, which is much harder to test, so re-enable these someday
+      # context "clean_staging_area?" do
 
       #  should "be false if there added files" do
       #    repo = build_repo :added => %w(README)
@@ -206,9 +204,9 @@ class Jeweler
 
       #    assert command.clean_staging_area?
       #  end
-      #end
+      # end
 
-      context "release_tagged? when no tag exists" do
+      context 'release_tagged? when no tag exists' do
         setup do
           @repo = Object.new
           stub(@repo).tag('v1.2.3') { raise Git::GitTagNameDoesNotExist, tag }
@@ -221,13 +219,12 @@ class Jeweler
           @command.version        = '1.2.3'
         end
 
-        should_eventually "be true" do
+        should_eventually 'be true' do
           assert @command.release_not_tagged?
         end
-
       end
 
-      context "release_tagged? when tag exists" do
+      context 'release_tagged? when tag exists' do
         setup do
           @repo = Object.new
           stub(@repo) do
@@ -242,10 +239,9 @@ class Jeweler
           @command.version        = '1.2.3'
         end
 
-        should_eventually "be false" do
+        should_eventually 'be false' do
           assert @command.release_not_tagged?
         end
-
       end
 
       def build_repo(options = {})
@@ -256,7 +252,7 @@ class Jeweler
       end
 
       def build_status(options = {})
-        options = {:added => [], :deleted => [], :changed => []}.merge(options)
+        options = { added: [], deleted: [], changed: [] }.merge(options)
 
         status = Object.new
         stub(status) do
@@ -264,7 +260,6 @@ class Jeweler
           deleted { options[:deleted] }
           changed { options[:changed] }
         end
-        
       end
     end
   end
diff --git a/test/jeweler/commands/test_release_to_github.rb b/test/jeweler/commands/test_release_to_github.rb
index 40c27f8..51f9e96 100644
--- a/test/jeweler/commands/test_release_to_github.rb
+++ b/test/jeweler/commands/test_release_to_github.rb
@@ -4,9 +4,8 @@ require 'pathname'
 class Jeweler
   module Commands
     class TestReleaseGemspec < Test::Unit::TestCase
-
-      rubyforge_command_context "running" do
-        context "happily" do
+      rubyforge_command_context 'running' do
+        context 'happily' do
           setup do
             stub(@command).clean_staging_area? { true }
 
@@ -24,25 +23,24 @@ class Jeweler
             @command.run
           end
 
-          should "checkout master" do
-            assert_received(@repo) {|repo| repo.checkout('master') }
+          should 'checkout master' do
+            assert_received(@repo) { |repo| repo.checkout('master') }
           end
 
-          should "regenerate gemspec" do
-            assert_received(@command) {|command| command.regenerate_gemspec! }
+          should 'regenerate gemspec' do
+            assert_received(@command, &:regenerate_gemspec!)
           end
 
-          should "commit gemspec" do
-            assert_received(@command) {|command| command.commit_gemspec! }
+          should 'commit gemspec' do
+            assert_received(@command, &:commit_gemspec!)
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('origin', 'master:master') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('origin', 'master:master') }
           end
-
         end
 
-        context "happily with different remote, local branch and remote branch" do
+        context 'happily with different remote, local branch and remote branch' do
           setup do
             stub(@command).clean_staging_area? { true }
 
@@ -57,28 +55,27 @@ class Jeweler
 
             stub(@command).release_not_tagged? { true }
 
-            @command.run({:remote => 'upstream', :local_branch => 'branch', :remote_branch => 'remote_branch'})
+            @command.run(remote: 'upstream', local_branch: 'branch', remote_branch: 'remote_branch')
           end
 
-          should "checkout local branch" do
-            assert_received(@repo) {|repo| repo.checkout('branch') }
+          should 'checkout local branch' do
+            assert_received(@repo) { |repo| repo.checkout('branch') }
           end
 
-          should "regenerate gemspec" do
-            assert_received(@command) {|command| command.regenerate_gemspec! }
+          should 'regenerate gemspec' do
+            assert_received(@command, &:regenerate_gemspec!)
           end
 
-          should "commit gemspec" do
-            assert_received(@command) {|command| command.commit_gemspec! }
+          should 'commit gemspec' do
+            assert_received(@command, &:commit_gemspec!)
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('upstream', 'branch:remote_branch') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('upstream', 'branch:remote_branch') }
           end
-
         end
 
-        context "happily with different branch" do
+        context 'happily with different branch' do
           setup do
             stub(@command).clean_staging_area? { true }
 
@@ -93,45 +90,49 @@ class Jeweler
 
             stub(@command).release_not_tagged? { true }
 
-            @command.run({:branch => 'v3'})
+            @command.run(branch: 'v3')
           end
 
-          should "checkout local branch" do
-            assert_received(@repo) {|repo| repo.checkout('v3') }
+          should 'checkout local branch' do
+            assert_received(@repo) { |repo| repo.checkout('v3') }
           end
 
-          should "regenerate gemspec" do
-            assert_received(@command) {|command| command.regenerate_gemspec! }
+          should 'regenerate gemspec' do
+            assert_received(@command, &:regenerate_gemspec!)
           end
 
-          should "commit gemspec" do
-            assert_received(@command) {|command| command.commit_gemspec! }
+          should 'commit gemspec' do
+            assert_received(@command, &:commit_gemspec!)
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('origin', 'v3:v3') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('origin', 'v3:v3') }
           end
         end
 
-        context "with an unclean staging area" do
+        context 'with an unclean staging area' do
           setup do
             stub(@command).clean_staging_area? { false }
             stub(@command).system
           end
 
           should 'raise error' do
-            assert_raises RuntimeError, /try commiting/i do
+            assert_raises RuntimeError, 'Unclean staging area! Be sure to commit or .gitignore everything first. See `git status` above.' do
               @command.run
             end
           end
 
           should 'display git status' do
-            @command.run rescue nil
-            assert_received(@command) {|command| command.system("git status") }
+            begin
+              @command.run
+            rescue
+              nil
+            end
+            assert_received(@command) { |command| command.system('git status') }
           end
         end
 
-        context "with an unchanged gemspec" do
+        context 'with an unchanged gemspec' do
           setup do
             stub(@command).clean_staging_area? { true }
 
@@ -149,21 +150,20 @@ class Jeweler
             @command.run
           end
 
-          should "checkout master" do
-            assert_received(@repo) {|repo| repo.checkout('master') }
+          should 'checkout master' do
+            assert_received(@repo) { |repo| repo.checkout('master') }
           end
 
-          should "regenerate gemspec" do
-            assert_received(@command) {|command| command.regenerate_gemspec! }
+          should 'regenerate gemspec' do
+            assert_received(@command, &:regenerate_gemspec!)
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('origin', 'master:master') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('origin', 'master:master') }
           end
-
         end
 
-        context "with a release already tagged" do
+        context 'with a release already tagged' do
           setup do
             stub(@command).clean_staging_area? { true }
 
@@ -181,59 +181,56 @@ class Jeweler
             @command.run
           end
 
-          should "checkout master" do
-            assert_received(@repo) {|repo| repo.checkout('master') }
+          should 'checkout master' do
+            assert_received(@repo) { |repo| repo.checkout('master') }
           end
 
-          should "regenerate gemspec" do
-            assert_received(@command) {|command| command.regenerate_gemspec! }
+          should 'regenerate gemspec' do
+            assert_received(@command, &:regenerate_gemspec!)
           end
 
-          should "commit gemspec" do
-            assert_received(@command) {|command| command.commit_gemspec! }
+          should 'commit gemspec' do
+            assert_received(@command, &:commit_gemspec!)
           end
 
-          should "push" do
-            assert_received(@repo) {|repo| repo.push('origin', 'master:master') }
+          should 'push' do
+            assert_received(@repo) { |repo| repo.push('origin', 'master:master') }
           end
-
         end
-
       end
 
-
-      build_command_context "building from jeweler" do
+      build_command_context 'building from jeweler' do
         setup do
           @command = Jeweler::Commands::ReleaseGemspec.build_for(@jeweler)
         end
 
-        should "assign gemspec" do
+        should 'assign gemspec' do
           assert_same @gemspec, @command.gemspec
         end
 
-        should "assign version" do
+        should 'assign version' do
           assert_same @version, @command.version
         end
 
-        should "assign repo" do
+        should 'assign repo' do
           assert_same @repo, @command.repo
         end
 
-        should "assign output" do
+        should 'assign output' do
           assert_same @output, @command.output
         end
 
-        should "assign gemspec_helper" do
+        should 'assign gemspec_helper' do
           assert_same @gemspec_helper, @command.gemspec_helper
         end
 
-        should "assign base_dir" do
+        should 'assign base_dir' do
           assert_same @base_dir, @command.base_dir
         end
       end
 
-      # FIXME this code had its ruby-git stuff replaced with `` and system, which is much harder to test, so re-enable these someday
-      #context "clean_staging_area?" do
+      # FIXME: this code had its ruby-git stuff replaced with `` and system, which is much harder to test, so re-enable these someday
+      # context "clean_staging_area?" do
 
       #  should "be false if there added files" do
       #    repo = build_repo :added => %w(README)
@@ -269,9 +266,9 @@ class Jeweler
 
       #    assert command.clean_staging_area?
       #  end
-      #end
+      # end
 
-      context "regenerate_gemspec!" do
+      context 'regenerate_gemspec!' do
         setup do
           @repo = Object.new
           stub(@repo) do
@@ -282,30 +279,30 @@ class Jeweler
           @gemspec_helper = Object.new
           stub(@gemspec_helper) do
             write
-            path {'zomg.gemspec'}
+            path { 'zomg.gemspec' }
             update_version('1.2.3')
           end
 
           @output = StringIO.new
 
-          @command                = Jeweler::Commands::ReleaseGemspec.new :output => @output,
-                                                                   :repo => @repo,
-                                                                   :gemspec_helper => @gemspec_helper,
-                                                                   :version => '1.2.3'
+          @command = Jeweler::Commands::ReleaseGemspec.new output: @output,
+                                                           repo: @repo,
+                                                           gemspec_helper: @gemspec_helper,
+                                                           version: '1.2.3'
 
           @command.regenerate_gemspec!
         end
 
-        should "refresh gemspec version" do
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.update_version('1.2.3') }
+        should 'refresh gemspec version' do
+          assert_received(@gemspec_helper) { |gemspec_helper| gemspec_helper.update_version('1.2.3') }
         end
 
-        should "write gemspec" do
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.write }
+        should 'write gemspec' do
+          assert_received(@gemspec_helper, &:write)
         end
       end
 
-      context "commit_gemspec!" do
+      context 'commit_gemspec!' do
         setup do
           @repo = Object.new
           stub(@repo) do
@@ -315,32 +312,31 @@ class Jeweler
 
           @gemspec_helper = Object.new
           stub(@gemspec_helper) do
-            path {'zomg.gemspec'}
+            path { 'zomg.gemspec' }
             update_version('1.2.3')
           end
 
           @output = StringIO.new
 
-          @command                = Jeweler::Commands::ReleaseGemspec.new :output => @output,
-                                                                   :repo => @repo,
-                                                                   :gemspec_helper => @gemspec_helper,
-                                                                   :version => '1.2.3'
+          @command = Jeweler::Commands::ReleaseGemspec.new output: @output,
+                                                           repo: @repo,
+                                                           gemspec_helper: @gemspec_helper,
+                                                           version: '1.2.3'
 
-          stub(@command).working_subdir { Pathname.new(".") }
+          stub(@command).working_subdir { Pathname.new('.') }
           @command.commit_gemspec!
         end
 
-        should "add gemspec to repository" do
-          assert_received(@repo) {|repo| repo.add('zomg.gemspec') }
+        should 'add gemspec to repository' do
+          assert_received(@repo) { |repo| repo.add('zomg.gemspec') }
         end
 
-        should "commit with commit message including version" do
-          assert_received(@repo) {|repo| repo.commit("Regenerate gemspec for version 1.2.3") }
+        should 'commit with commit message including version' do
+          assert_received(@repo) { |repo| repo.commit('Regenerate gemspec for version 1.2.3') }
         end
-
       end
 
-      context "commit_gemspec! in top dir" do
+      context 'commit_gemspec! in top dir' do
         setup do
           @repo = Object.new
 
@@ -351,33 +347,33 @@ class Jeweler
 
           @gemspec_helper = Object.new
           stub(@gemspec_helper) do
-            path {'zomg.gemspec'}
+            path { 'zomg.gemspec' }
             update_version('1.2.3')
           end
 
           @output = StringIO.new
 
-          @command = Jeweler::Commands::ReleaseGemspec.new :output => @output,
-            :repo => @repo,
-            :gemspec_helper => @gemspec_helper,
-            :version => '1.2.3',
-            :base_dir => '.'
+          @command = Jeweler::Commands::ReleaseGemspec.new output: @output,
+                                                           repo: @repo,
+                                                           gemspec_helper: @gemspec_helper,
+                                                           version: '1.2.3',
+                                                           base_dir: '.'
 
           @dir = Object.new
           stub(@repo).dir { @dir }
-          stub(@dir).path { "/x/y/z" }
+          stub(@dir).path { '/x/y/z' }
 
-          stub(@command).base_dir_path { Pathname.new("/x/y/z") }
+          stub(@command).base_dir_path { Pathname.new('/x/y/z') }
 
           @command.commit_gemspec!
         end
 
-        should "add gemspec to repository" do
-          assert_received(@repo) {|repo| repo.add('zomg.gemspec') }
+        should 'add gemspec to repository' do
+          assert_received(@repo) { |repo| repo.add('zomg.gemspec') }
         end
       end
 
-      context "commit_gemspec! in sub dir" do
+      context 'commit_gemspec! in sub dir' do
         setup do
           @repo = Object.new
 
@@ -388,33 +384,33 @@ class Jeweler
 
           @gemspec_helper = Object.new
           stub(@gemspec_helper) do
-            path {'zomg.gemspec'}
+            path { 'zomg.gemspec' }
             update_version('1.2.3')
           end
 
           @output = StringIO.new
 
-          @command = Jeweler::Commands::ReleaseGemspec.new :output => @output,
-            :repo => @repo,
-            :gemspec_helper => @gemspec_helper,
-            :version => '1.2.3',
-            :base_dir => '.'
+          @command = Jeweler::Commands::ReleaseGemspec.new output: @output,
+                                                           repo: @repo,
+                                                           gemspec_helper: @gemspec_helper,
+                                                           version: '1.2.3',
+                                                           base_dir: '.'
 
           @dir = Object.new
           stub(@repo).dir { @dir }
-          stub(@dir).path { "/x/y/z" }
+          stub(@dir).path { '/x/y/z' }
 
-          stub(@command).base_dir_path { Pathname.new("/x/y/z/gem") }
+          stub(@command).base_dir_path { Pathname.new('/x/y/z/gem') }
 
           @command.commit_gemspec!
         end
 
-        should "add gemspec to repository" do
-          assert_received(@repo) {|repo| repo.add('gem/zomg.gemspec') }
+        should 'add gemspec to repository' do
+          assert_received(@repo) { |repo| repo.add('gem/zomg.gemspec') }
         end
       end
 
-      context "release_tagged? when no tag exists" do
+      context 'release_tagged? when no tag exists' do
         setup do
           @repo = Object.new
           stub(@repo).tag('v1.2.3') { raise Git::GitTagNameDoesNotExist, tag }
@@ -427,13 +423,12 @@ class Jeweler
           @command.version        = '1.2.3'
         end
 
-        should_eventually "be true" do
+        should_eventually 'be true' do
           assert @command.release_not_tagged?
         end
-
       end
 
-      context "release_tagged? when tag exists" do
+      context 'release_tagged? when tag exists' do
         setup do
           @repo = Object.new
           stub(@repo) do
@@ -448,10 +443,9 @@ class Jeweler
           @command.version        = '1.2.3'
         end
 
-        should_eventually "be false" do
+        should_eventually 'be false' do
           assert @command.release_not_tagged?
         end
-
       end
 
       def build_repo(options = {})
@@ -462,7 +456,7 @@ class Jeweler
       end
 
       def build_status(options = {})
-        options = {:added => [], :deleted => [], :changed => []}.merge(options)
+        options = { added: [], deleted: [], changed: [] }.merge(options)
 
         status = Object.new
         stub(status) do
@@ -470,7 +464,6 @@ class Jeweler
           deleted { options[:deleted] }
           changed { options[:changed] }
         end
-        
       end
     end
   end
diff --git a/test/jeweler/commands/test_validate_gemspec.rb b/test/jeweler/commands/test_validate_gemspec.rb
index 59f581a..c2decef 100644
--- a/test/jeweler/commands/test_validate_gemspec.rb
+++ b/test/jeweler/commands/test_validate_gemspec.rb
@@ -3,24 +3,22 @@ require 'test_helper'
 class Jeweler
   module Commands
     class TestValidateGemspec < Test::Unit::TestCase
-
-      build_command_context "build context" do
+      build_command_context 'build context' do
         setup do
           @command = Jeweler::Commands::ValidateGemspec.build_for(@jeweler)
         end
 
-        should "assign gemspec_helper" do
+        should 'assign gemspec_helper' do
           assert_same @gemspec_helper, @command.gemspec_helper
         end
 
-        should "assign output" do
+        should 'assign output' do
           assert_same @output, @command.output
         end
 
-        should "return Jeweler::Commands::ValidateGemspec" do
+        should 'return Jeweler::Commands::ValidateGemspec' do
           assert_kind_of Jeweler::Commands::ValidateGemspec, @command
         end
-
       end
     end
   end
diff --git a/test/jeweler/commands/test_write_gemspec.rb b/test/jeweler/commands/test_write_gemspec.rb
index 3b76552..c7e6387 100644
--- a/test/jeweler/commands/test_write_gemspec.rb
+++ b/test/jeweler/commands/test_write_gemspec.rb
@@ -3,10 +3,9 @@ require 'test_helper'
 class Jeweler
   module Commands
     class TestWriteGemspec < Test::Unit::TestCase
-
-      context "after run" do
+      context 'after run' do
         setup do
-          @gemspec = Gem::Specification.new {|s| s.name = 'zomg' }
+          @gemspec = Gem::Specification.new { |s| s.name = 'zomg' }
           @gemspec_helper = Object.new
           stub(@gemspec_helper).spec { @gemspec }
           stub(@gemspec_helper).path { 'zomg.gemspec' }
@@ -15,7 +14,7 @@ class Jeweler
           @output = StringIO.new
 
           @version_helper = Object.new
-          stub(@version_helper).to_s  { '1.2.3' }
+          stub(@version_helper).to_s { '1.2.3' }
           stub(@version_helper).refresh
 
           @command = Jeweler::Commands::WriteGemspec.new
@@ -25,17 +24,17 @@ class Jeweler
           @command.output = @output
           @command.gemspec_helper = @gemspec_helper
 
-          # FIXME apparently rubygems doesn't use Time.now under the hood when generating a date
+          # FIXME: apparently rubygems doesn't use Time.now under the hood when generating a date
           @now = Time.local(2008, 9, 1, 12, 0, 0)
           stub(Time.now).now { @now }
         end
 
-        should "refresh version" do
+        should 'refresh version' do
           @command.run
-          assert_received(@version_helper) {|version_helper| version_helper.refresh }
+          assert_received(@version_helper, &:refresh)
         end
 
-        should "update gemspec version" do
+        should 'update gemspec version' do
           @command.run
           assert_equal '1.2.3', @gemspec.version.to_s
         end
@@ -46,58 +45,56 @@ class Jeweler
           assert_equal '2.3.4', @gemspec.version.to_s
         end
 
-        should_eventually "update gemspec date to the beginning of today" do
+        should_eventually 'update gemspec date to the beginning of today' do
           @command.run
-          # FIXME apparently rubygems doesn't use Time.now under the hood when generating a date
+          # FIXME: apparently rubygems doesn't use Time.now under the hood when generating a date
           assert_equal Time.local(@now.year, @now.month, @now.day, 0, 0), @gemspec.date
         end
 
-        should "write gemspec" do
+        should 'write gemspec' do
           @command.run
-          assert_received(@gemspec_helper) {|gemspec_helper| gemspec_helper.write }
+          assert_received(@gemspec_helper, &:write)
         end
 
-        should_eventually "output that the gemspec was written" do
+        should_eventually 'output that the gemspec was written' do
           @command.run
-          assert_equal @output.string, "Generated: tmp/zomg.gemspec"
+          assert_equal @output.string, 'Generated: tmp/zomg.gemspec'
         end
-
       end
 
-      build_command_context "building for jeweler" do
+      build_command_context 'building for jeweler' do
         setup do
           @command = Jeweler::Commands::WriteGemspec.build_for(@jeweler)
         end
 
-        should "assign base_dir" do
+        should 'assign base_dir' do
           assert_same @base_dir, @command.base_dir
         end
 
-        should "assign gemspec" do
+        should 'assign gemspec' do
           assert_same @gemspec, @command.gemspec
         end
 
-        should "assign version" do
+        should 'assign version' do
           assert_same @version, @command.version
         end
 
-        should "assign output" do
+        should 'assign output' do
           assert_same @output, @command.output
         end
 
-        should "assign gemspec_helper" do
+        should 'assign gemspec_helper' do
           assert_same @gemspec_helper, @command.gemspec_helper
         end
 
-        should "assign version_helper" do
+        should 'assign version_helper' do
           assert_same @version_helper, @command.version_helper
         end
 
-        should "return WriteGemspec" do
+        should 'return WriteGemspec' do
           assert_kind_of Jeweler::Commands::WriteGemspec, @command
         end
       end
-
     end
   end
 end
diff --git a/test/jeweler/commands/version/test_base.rb b/test/jeweler/commands/version/test_base.rb
index a514c53..4c5355e 100644
--- a/test/jeweler/commands/version/test_base.rb
+++ b/test/jeweler/commands/version/test_base.rb
@@ -4,28 +4,28 @@ class Jeweler
   module Commands
     module Version
       class TestBase < Test::Unit::TestCase
-        build_command_context "build for jeweler" do
+        build_command_context 'build for jeweler' do
           setup do
             @command = Jeweler::Commands::Version::Base.build_for(@jeweler)
           end
 
-          should "assign repo" do
+          should 'assign repo' do
             assert_equal @repo, @command.repo
           end
 
-          should "assign version_helper" do
+          should 'assign version_helper' do
             assert_equal @version_helper, @command.version_helper
           end
 
-          should "assign gemspec" do
+          should 'assign gemspec' do
             assert_equal @gemspec, @command.gemspec
           end
 
-          should "assign commit" do
+          should 'assign commit' do
             assert_equal @commit, @command.commit
           end
 
-          context "commit_version" do
+          context 'commit_version' do
             setup do
               @dir = Object.new
               stub(@repo).dir { @dir }
@@ -40,9 +40,9 @@ class Jeweler
               @command.commit_version
             end
 
-            should "add VERSION" do
-              assert_received(@repo) {|repo| repo.add('VERSION')}
-              assert_received(@repo) {|repo| repo.commit('Version bump to 1.0.0')}
+            should 'add VERSION' do
+              assert_received(@repo) { |repo| repo.add('VERSION') }
+              assert_received(@repo) { |repo| repo.commit('Version bump to 1.0.0') }
             end
           end
         end
@@ -50,4 +50,3 @@ class Jeweler
     end
   end
 end
-
diff --git a/test/jeweler/commands/version/test_bump_major.rb b/test/jeweler/commands/version/test_bump_major.rb
index 529238c..b40392b 100644
--- a/test/jeweler/commands/version/test_bump_major.rb
+++ b/test/jeweler/commands/version/test_bump_major.rb
@@ -4,8 +4,7 @@ class Jeweler
   module Commands
     module Version
       class TestBumpMajor < Test::Unit::TestCase
-
-        should "call bump_major on version_helper in update_version" do
+        should 'call bump_major on version_helper in update_version' do
           mock(version_helper = Object.new).bump_major
 
           command = Jeweler::Commands::Version::BumpMajor.new
@@ -14,9 +13,6 @@ class Jeweler
           command.update_version
         end
       end
-
     end
   end
 end
-
-
diff --git a/test/jeweler/commands/version/test_bump_minor.rb b/test/jeweler/commands/version/test_bump_minor.rb
index 6892bbf..8c15333 100644
--- a/test/jeweler/commands/version/test_bump_minor.rb
+++ b/test/jeweler/commands/version/test_bump_minor.rb
@@ -4,8 +4,7 @@ class Jeweler
   module Commands
     module Version
       class TestBumpMinor < Test::Unit::TestCase
-
-        should "call bump_minor on version_helper in update_version" do
+        should 'call bump_minor on version_helper in update_version' do
           mock(version_helper = Object.new).bump_minor
 
           command = Jeweler::Commands::Version::BumpMinor.new
diff --git a/test/jeweler/commands/version/test_bump_patch.rb b/test/jeweler/commands/version/test_bump_patch.rb
index 83c567d..fcdd77a 100644
--- a/test/jeweler/commands/version/test_bump_patch.rb
+++ b/test/jeweler/commands/version/test_bump_patch.rb
@@ -4,8 +4,7 @@ class Jeweler
   module Commands
     module Version
       class TestBumpPatch < Test::Unit::TestCase
-
-        should "call bump_patch on version_helper in update_version" do
+        should 'call bump_patch on version_helper in update_version' do
           mock(version_helper = Object.new).bump_patch
 
           command = Jeweler::Commands::Version::BumpPatch.new
@@ -17,4 +16,3 @@ class Jeweler
     end
   end
 end
-
diff --git a/test/jeweler/commands/version/test_write.rb b/test/jeweler/commands/version/test_write.rb
index 5cb064f..249aa25 100644
--- a/test/jeweler/commands/version/test_write.rb
+++ b/test/jeweler/commands/version/test_write.rb
@@ -4,8 +4,7 @@ class Jeweler
   module Commands
     module Version
       class TestWrite < Test::Unit::TestCase
-
-        should "call write_version on version_helper in update_version" do
+        should 'call write_version on version_helper in update_version' do
           mock(version_helper = Object.new).update_to 1, 2, 3, nil
 
           command = Jeweler::Commands::Version::Write.new
@@ -19,4 +18,3 @@ class Jeweler
     end
   end
 end
-
diff --git a/test/jeweler/generator/test_application.rb b/test/jeweler/generator/test_application.rb
index 86ac8d0..2d89fe6 100644
--- a/test/jeweler/generator/test_application.rb
+++ b/test/jeweler/generator/test_application.rb
@@ -37,38 +37,36 @@ class TestApplication < Test::Unit::TestCase
     end
   end
 
-
-  context "when options indicate version" do
+  context 'when options indicate version' do
     setup do
       stub(Jeweler::Generator::Application).build_opts do
-        stub_options(:show_version => true)
+        stub_options(show_version: true)
       end
 
-      stub(Jeweler::Generator).new { raise "Shouldn't have made this far"}
+      stub(Jeweler::Generator).new { raise "Shouldn't have made this far" }
 
       assert_nothing_raised do
-        @result = run_application("-v")
+        @result = run_application('-v')
       end
     end
-    
+
     should_exit_with_code 1
-    
+
     should 'should puts option version' do
       assert_match 'Version:', @stderr
     end
   end
-  
 
-  context "when options indicate help usage" do
+  context 'when options indicate help usage' do
     setup do
       stub(Jeweler::Generator::Application).build_opts do
-        stub_options(:show_help => true)
+        stub_options(show_help: true)
       end
 
-      stub(Jeweler::Generator).new { raise "Shouldn't have made this far"}
+      stub(Jeweler::Generator).new { raise "Shouldn't have made this far" }
 
       assert_nothing_raised do
-        @result = run_application("-h")
+        @result = run_application('-h')
       end
     end
 
@@ -83,16 +81,16 @@ class TestApplication < Test::Unit::TestCase
     end
   end
 
-  context "when options indicate an invalid argument" do
+  context 'when options indicate an invalid argument' do
     setup do
       stub(Jeweler::Generator::Application).build_opts do
-        stub_options(:invalid_argument => '--invalid-argument')
+        stub_options(invalid_argument: '--invalid-argument')
       end
 
-      stub(Jeweler::Generator).new { raise "Shouldn't have made this far"}
+      stub(Jeweler::Generator).new { raise "Shouldn't have made this far" }
 
       assert_nothing_raised do
-        @result = run_application("--invalid-argument")
+        @result = run_application('--invalid-argument')
       end
     end
 
@@ -109,34 +107,32 @@ class TestApplication < Test::Unit::TestCase
     should 'not display anything on stdout' do
       assert_equal '', @stdout.squeeze.strip
     end
-
   end
 
-  context "when options are good" do
+  context 'when options are good' do
     setup do
-      @generator = "generator"
+      @generator = 'generator'
       stub(@generator).run
       stub(Jeweler::Generator).new { @generator }
 
-      @jeweler_options = stub_options :project_name => 'zomg'
+      @jeweler_options = stub_options project_name: 'zomg'
       stub(Jeweler::Generator::Application).build_options do
         @jeweler_options
       end
 
       assert_nothing_raised do
-        @result = run_application("zomg")
+        @result = run_application('zomg')
       end
     end
 
     should_exit_with_code 0
 
-    should "create generator with options" do
-      assert_received(Jeweler::Generator) {|subject| subject.new(@jeweler_options) }
+    should 'create generator with options' do
+      assert_received(Jeweler::Generator) { |subject| subject.new(@jeweler_options) }
     end
 
-    should "run generator" do
-      assert_received(@generator) {|subject| subject.run }
+    should 'run generator' do
+      assert_received(@generator, &:run)
     end
   end
-
 end
diff --git a/test/jeweler/generator/test_options.rb b/test/jeweler/generator/test_options.rb
index 340c579..297667c 100644
--- a/test/jeweler/generator/test_options.rb
+++ b/test/jeweler/generator/test_options.rb
@@ -1,7 +1,6 @@
 require 'test_helper'
 
 class TestOptions < Test::Unit::TestCase
-
   def setup
     set_default_git_config
     stub_git_config valid_git_config
@@ -21,17 +20,17 @@ class TestOptions < Test::Unit::TestCase
 
   def setup_options(*arguments)
     stub(Jeweler::Generator::Options).git_config { valid_git_config }
-    @options = Jeweler::Generator::Options.new(["project_name"] + arguments)
+    @options = Jeweler::Generator::Options.new(['project_name'] + arguments)
   end
 
   def self.for_options(*options)
     context options.join(' ') do
-      setup { setup_options *options }
+      setup { setup_options(*options) }
       yield
     end
   end
 
-  context "default options" do
+  context 'default options' do
     setup { setup_options }
     should_have_testing_framework :shoulda
     should_have_docmentation_framework :rdoc
@@ -40,27 +39,27 @@ class TestOptions < Test::Unit::TestCase
       assert ! @options[:create_repo]
     end
 
-    should "have project name" do
-      assert_equal "project_name", @options[:project_name]
+    should 'have project name' do
+      assert_equal 'project_name', @options[:project_name]
     end
 
-    should "use github username from git config" do
+    should 'use github username from git config' do
       assert_equal @github_user, @options[:github_username]
     end
-    should "use user name from git config" do
+    should 'use user name from git config' do
       assert_equal @git_name, @options[:user_name]
     end
 
-    should "use user email from git config" do
+    should 'use user email from git config' do
       assert_equal @git_email, @options[:user_email]
     end
 
-    should "use bundler" do
+    should 'use bundler' do
       assert @options[:use_bundler]
     end
   end
 
-  for_options "--bacon" do
+  for_options '--bacon' do
     should_have_testing_framework :bacon
   end
 
@@ -80,11 +79,11 @@ class TestOptions < Test::Unit::TestCase
     should_have_testing_framework :shoulda
   end
 
-  for_options "--testunit" do
+  for_options '--testunit' do
     should_have_testing_framework :testunit
   end
 
-  for_options "--testspec" do
+  for_options '--testspec' do
     should_have_testing_framework :testspec
   end
 
@@ -137,13 +136,13 @@ class TestOptions < Test::Unit::TestCase
       assert_equal 'foo', @options[:directory]
     end
   end
-  
+
   for_options '--version' do
     should 'show version' do
       assert @options[:show_version]
     end
   end
-  
+
   for_options '-v' do
     should 'show version' do
       assert @options[:show_version]
@@ -169,13 +168,13 @@ class TestOptions < Test::Unit::TestCase
   end
 
   for_options '--user-name', 'myname' do
-    should "set user name" do
+    should 'set user name' do
       assert_equal 'myname', @options[:user_name]
     end
   end
 
   for_options '--user-email', 'myname@mydomain.com' do
-    should "set user email" do
+    should 'set user email' do
       assert_equal 'myname@mydomain.com', @options[:user_email]
     end
   end
@@ -193,34 +192,34 @@ class TestOptions < Test::Unit::TestCase
   end
 
   for_options '--github-username', 'mygithub' do
-    should "set github username" do
+    should 'set github username' do
       assert_equal 'mygithub', @options[:github_username]
     end
   end
 
   for_options '--bundler' do
-    should "use bundler" do
+    should 'use bundler' do
       assert @options[:use_bundler]
     end
   end
 
   for_options '--no-bundler' do
-    should "not use bundler" do
+    should 'not use bundler' do
       assert !@options[:use_bundler]
     end
   end
 
-  context "merging options" do
-    should "take options from each" do
-      options = Jeweler::Generator::Options.new(["--rspec"]).
-        merge Jeweler::Generator::Options.new(["--create-repo"])
+  context 'merging options' do
+    should 'take options from each' do
+      options = Jeweler::Generator::Options.new(['--rspec'])
+                                           .merge Jeweler::Generator::Options.new(['--create-repo'])
       assert_equal :rspec, options[:testing_framework]
       assert options[:create_repo]
     end
 
-    should "shadow options" do
-      options = Jeweler::Generator::Options.new(["--bacon"]).
-        merge Jeweler::Generator::Options.new(["--rspec"])
+    should 'shadow options' do
+      options = Jeweler::Generator::Options.new(['--bacon'])
+                                           .merge Jeweler::Generator::Options.new(['--rspec'])
       assert_equal :rspec, options[:testing_framework]
     end
   end
diff --git a/test/jeweler/test_gemspec_helper.rb b/test/jeweler/test_gemspec_helper.rb
index 0056c07..e5bd746 100644
--- a/test/jeweler/test_gemspec_helper.rb
+++ b/test/jeweler/test_gemspec_helper.rb
@@ -2,10 +2,10 @@ require 'test_helper'
 
 class TestGemspecHelper < Test::Unit::TestCase
   def setup
-    Rake.application.instance_variable_set(:@rakefile, "Rakefile")
+    Rake.application.instance_variable_set(:@rakefile, 'Rakefile')
   end
 
-  context "given a gemspec" do
+  context 'given a gemspec' do
     setup do
       @spec = build_spec
       @helper = Jeweler::GemSpecHelper.new(@spec, File.dirname(__FILE__))
@@ -16,7 +16,7 @@ class TestGemspecHelper < Test::Unit::TestCase
     end
   end
 
-  context "#write" do
+  context '#write' do
     setup do
       @spec = build_spec
       @helper = Jeweler::GemSpecHelper.new(@spec, File.dirname(__FILE__))
@@ -29,15 +29,15 @@ class TestGemspecHelper < Test::Unit::TestCase
       FileUtils.rm_f(@helper.path)
     end
 
-    should "create gemspec file" do
-      assert File.exists?(@helper.path)
+    should 'create gemspec file' do
+      assert File.exist?(@helper.path)
     end
 
-    should "make valid spec" do
+    should 'make valid spec' do
       assert @helper.valid?
     end
 
-    should "parse" do
+    should 'parse' do
       @helper.parse
     end
   end
diff --git a/test/jeweler/test_generator.rb b/test/jeweler/test_generator.rb
index d56e474..7c91c75 100644
--- a/test/jeweler/test_generator.rb
+++ b/test/jeweler/test_generator.rb
@@ -3,48 +3,48 @@ require 'test_helper'
 class TestGenerator < Test::Unit::TestCase
   def build_generator(testing_framework = :shoulda, options = {})
     options = {
-      :project_name => 'the-perfect-gem',
-      :user_name => 'John Doe',
-      :user_email => 'john@example.com',
-      :github_username => 'johndoe',
-      :documentation_framework => :rdoc
+      project_name: 'the-perfect-gem',
+      user_name: 'John Doe',
+      user_email: 'john@example.com',
+      github_username: 'johndoe',
+      documentation_framework: :rdoc
     }.merge(options)
 
     options[:testing_framework] = testing_framework
     Jeweler::Generator.new(options)
   end
 
-  should "have the correct constant name" do
-    assert_equal "ThePerfectGem", build_generator.constant_name
+  should 'have the correct constant name' do
+    assert_equal 'ThePerfectGem', build_generator.constant_name
   end
 
-  should "have the correct file name prefix" do
-    assert_equal "the_perfect_gem", build_generator.file_name_prefix
+  should 'have the correct file name prefix' do
+    assert_equal 'the_perfect_gem', build_generator.file_name_prefix
   end
 
-  should "have the correct require name" do
-    assert_equal "the-perfect-gem", build_generator.require_name
+  should 'have the correct require name' do
+    assert_equal 'the-perfect-gem', build_generator.require_name
   end
 
-  should "have the correct lib file name" do
-    assert_equal "the-perfect-gem.rb", build_generator.lib_filename
+  should 'have the correct lib file name' do
+    assert_equal 'the-perfect-gem.rb', build_generator.lib_filename
   end
-  
-  should "have the correct git-remote" do
-    assert_equal 'user@host:/path/to/repo', build_generator(:shoulda, {:git_remote => "user@host:/path/to/repo"}).git_remote
-    assert_equal 'git@github.com:johndoe/the-perfect-gem.git', build_generator.git_remote 
+
+  should 'have the correct git-remote' do
+    assert_equal 'user@host:/path/to/repo', build_generator(:shoulda, git_remote: 'user@host:/path/to/repo').git_remote
+    assert_equal 'git@github.com:johndoe/the-perfect-gem.git', build_generator.git_remote
   end
 
-  should "extract project name from absolut path" do
-    assert_equal "my-project", build_generator(:shoulda, {:project_name => "/tmp/my-project"}).project_name
+  should 'extract project name from absolut path' do
+    assert_equal 'my-project', build_generator(:shoulda, project_name: '/tmp/my-project').project_name
   end
 
-  should "extract project name from relative path" do
-    assert_equal "my-project", build_generator(:shoulda, {:project_name => "../my-project"}).project_name
+  should 'extract project name from relative path' do
+    assert_equal 'my-project', build_generator(:shoulda, project_name: '../my-project').project_name
   end
 
-  should "extract project name from direct path" do
-    assert_equal "my-project", build_generator(:shoulda, {:project_name => "my-project"}).project_name
+  should 'extract project name from direct path' do
+    assert_equal 'my-project', build_generator(:shoulda, project_name: 'my-project').project_name
   end
 
   def self.should_have_generator_attribute(attribute, value)
@@ -53,7 +53,7 @@ class TestGenerator < Test::Unit::TestCase
     end
   end
 
-  context "shoulda" do
+  context 'shoulda' do
     setup { @framework = :shoulda }
     should_have_generator_attribute :test_task, 'test'
     should_have_generator_attribute :test_dir, 'test'
@@ -65,7 +65,7 @@ class TestGenerator < Test::Unit::TestCase
     should_have_generator_attribute :test_helper_filename, 'helper.rb'
   end
 
-  context "testunit" do
+  context 'testunit' do
     setup { @framework = :testunit }
     should_have_generator_attribute :test_task, 'test'
     should_have_generator_attribute :test_dir, 'test'
@@ -77,7 +77,7 @@ class TestGenerator < Test::Unit::TestCase
     should_have_generator_attribute :test_helper_filename, 'helper.rb'
   end
 
-  context "minitest" do
+  context 'minitest' do
     setup { @framework = :minitest }
     should_have_generator_attribute :test_task, 'test'
     should_have_generator_attribute :test_dir, 'test'
@@ -89,7 +89,7 @@ class TestGenerator < Test::Unit::TestCase
     should_have_generator_attribute :test_helper_filename, 'helper.rb'
   end
 
-  context "bacon" do
+  context 'bacon' do
     setup { @framework = :bacon }
     should_have_generator_attribute :test_task, 'spec'
     should_have_generator_attribute :test_dir, 'spec'
@@ -101,7 +101,7 @@ class TestGenerator < Test::Unit::TestCase
     should_have_generator_attribute :test_helper_filename, 'spec_helper.rb'
   end
 
-  context "rspec" do
+  context 'rspec' do
     setup { @framework = :rspec }
     should_have_generator_attribute :test_task, 'spec'
     should_have_generator_attribute :test_dir, 'spec'
@@ -113,7 +113,7 @@ class TestGenerator < Test::Unit::TestCase
     should_have_generator_attribute :test_helper_filename, 'spec_helper.rb'
   end
 
-  context "micronaut" do
+  context 'micronaut' do
     setup { @framework = :micronaut }
     should_have_generator_attribute :test_task, 'examples'
     should_have_generator_attribute :test_dir, 'examples'
@@ -124,8 +124,8 @@ class TestGenerator < Test::Unit::TestCase
     should_have_generator_attribute :test_filename, 'the-perfect-gem_example.rb'
     should_have_generator_attribute :test_helper_filename, 'example_helper.rb'
   end
-  
-  context "testspec" do
+
+  context 'testspec' do
     setup { @framework = :testspec }
     should_have_generator_attribute :test_task, 'test'
     should_have_generator_attribute :test_dir, 'test'
@@ -136,5 +136,4 @@ class TestGenerator < Test::Unit::TestCase
     should_have_generator_attribute :test_filename, 'the-perfect-gem_test.rb'
     should_have_generator_attribute :test_helper_filename, 'test_helper.rb'
   end
-  
 end
diff --git a/test/jeweler/test_generator_initialization.rb b/test/jeweler/test_generator_initialization.rb
index 86fe0eb..c1b145f 100644
--- a/test/jeweler/test_generator_initialization.rb
+++ b/test/jeweler/test_generator_initialization.rb
@@ -5,88 +5,88 @@ class TestGeneratorInitialization < Test::Unit::TestCase
     set_default_git_config
   end
 
-  context "given a nil github repo name" do
+  context 'given a nil github repo name' do
     setup do
       stub_git_config
     end
 
     should 'raise NoGithubRepoNameGiven' do
       assert_raise Jeweler::NoGitHubRepoNameGiven do
-        Jeweler::Generator.new()
+        Jeweler::Generator.new
       end
     end
   end
 
   context "without git user's name set" do
     setup do
-      stub_git_config 
+      stub_git_config
     end
 
     should 'raise an NoGitUserName' do
       assert_raise Jeweler::NoGitUserName do
-        Jeweler::Generator.new(:project_name => @project_name, :testing_framework => :shoulda, :documentation_framework => :rdoc)
+        Jeweler::Generator.new(project_name: @project_name, testing_framework: :shoulda, documentation_framework: :rdoc)
       end
     end
   end
 
   context "without git user's email set" do
     setup do
-      stub_git_config 
+      stub_git_config
     end
 
     should 'raise NoGitUserEmail' do
       assert_raise Jeweler::NoGitUserEmail do
-        Jeweler::Generator.new(:project_name => @project_name, :user_name => @git_name, :testing_framework => :shoulda, :documentation_framework => :rdoc)
+        Jeweler::Generator.new(project_name: @project_name, user_name: @git_name, testing_framework: :shoulda, documentation_framework: :rdoc)
       end
     end
   end
 
-  context "without github username set" do
+  context 'without github username set' do
     setup do
       stub_git_config
     end
 
     should 'raise NotGitHubUser' do
       assert_raise Jeweler::NoGitHubUser do
-        Jeweler::Generator.new(:project_name => @project_name, :user_name => @git_name, :user_email => @git_email, :testing_framework => :shoulda, :documentation_framework => :rdoc)
+        Jeweler::Generator.new(project_name: @project_name, user_name: @git_name, user_email: @git_email, testing_framework: :shoulda, documentation_framework: :rdoc)
       end
     end
   end
   def build_generator(options = {})
-    defaults = { :project_name => @project_name,
-                 :user_name => @git_name,
-                 :user_email => @git_email,
-                 :github_username => @github_user,
-                 :testing_framework =>             :shoulda,
-                 :documentation_framework =>       :rdoc }
+    defaults = { project_name: @project_name,
+                 user_name: @git_name,
+                 user_email: @git_email,
+                 github_username: @github_user,
+                 testing_framework: :shoulda,
+                 documentation_framework: :rdoc }
 
     options = defaults.merge(options)
-    Jeweler::Generator.new(options) 
+    Jeweler::Generator.new(options)
   end
 
-  context "default configuration" do
+  context 'default configuration' do
     setup do
       stub_git_config
       @generator = build_generator
     end
 
-    should "use shoulda for testing" do
+    should 'use shoulda for testing' do
       assert_equal :shoulda, @generator.testing_framework
     end
 
-    should "use rdoc for documentation" do
+    should 'use rdoc for documentation' do
       assert_equal :rdoc, @generator.documentation_framework
     end
 
-    should "set todo in summary" do
-      assert_match /todo/i, @generator.summary
+    should 'set todo in summary' do
+      assert_match(/todo/i, @generator.summary)
     end
 
-    should "set todo in description" do
-      assert_match /todo/i, @generator.description
+    should 'set todo in description' do
+      assert_match(/todo/i, @generator.description)
     end
 
-    should "set target directory to the project name" do
+    should 'set target directory to the project name' do
       assert_equal @project_name, File.split(@generator.target_dir).last
     end
 
@@ -94,57 +94,54 @@ class TestGeneratorInitialization < Test::Unit::TestCase
       assert_equal @git_name, @generator.user_name
     end
 
-    should "set email from git config" do
+    should 'set email from git config' do
       assert_equal @git_email, @generator.user_email
     end
 
-    should "set origin remote as github, based on username and project name" do
+    should 'set origin remote as github, based on username and project name' do
       assert_equal "git@github.com:#{@github_user}/#{@project_name}.git", @generator.git_remote
     end
 
-    should "set homepage as github based on username and project name" do
+    should 'set homepage as github based on username and project name' do
       assert_equal "http://github.com/#{@github_user}/#{@project_name}", @generator.homepage
     end
 
-    should "set github username from git config" do
+    should 'set github username from git config' do
       assert_equal @github_user, @generator.github_username
     end
 
-    should "set project name as the-perfect-gem" do
+    should 'set project name as the-perfect-gem' do
       assert_equal @project_name, @generator.project_name
     end
   end
 
-  context "using yard" do
+  context 'using yard' do
     setup do
-      @generator = build_generator(:documentation_framework => :yard)
+      @generator = build_generator(documentation_framework: :yard)
     end
 
-    should "set the doc_task to yardoc" do
-      assert_equal "yardoc", @generator.doc_task
+    should 'set the doc_task to yardoc' do
+      assert_equal 'yardoc', @generator.doc_task
     end
-
   end
 
-  context "using rdoc" do
+  context 'using rdoc' do
     setup do
-      @generator = build_generator(:documentation_framework => :rdoc)
+      @generator = build_generator(documentation_framework: :rdoc)
     end
 
-    should "set the doc_task to rdoc" do
-      assert_equal "rdoc", @generator.doc_task
+    should 'set the doc_task to rdoc' do
+      assert_equal 'rdoc', @generator.doc_task
     end
   end
 
-  context "using a custom homepage" do
+  context 'using a custom homepage' do
     setup do
-      @generator = build_generator(:homepage => 'http://zomg.com')
+      @generator = build_generator(homepage: 'http://zomg.com')
     end
 
-    should "set the homepage" do
-      assert_equal "http://zomg.com", @generator.homepage
+    should 'set the homepage' do
+      assert_equal 'http://zomg.com', @generator.homepage
     end
-
   end
-
 end
diff --git a/test/jeweler/test_generator_mixins.rb b/test/jeweler/test_generator_mixins.rb
index 53da61b..b46221f 100644
--- a/test/jeweler/test_generator_mixins.rb
+++ b/test/jeweler/test_generator_mixins.rb
@@ -1,23 +1,22 @@
 require 'test_helper'
 
 class TestGeneratorMixins < Test::Unit::TestCase
-
   [Jeweler::Generator::BaconMixin,
    Jeweler::Generator::MicronautMixin,
    Jeweler::Generator::MinitestMixin,
    Jeweler::Generator::RspecMixin,
    Jeweler::Generator::ShouldaMixin,
    Jeweler::Generator::TestspecMixin,
-   Jeweler::Generator::TestunitMixin,
+   Jeweler::Generator::TestunitMixin
   ].each do |mixin|
-    context "#{mixin}" do
+    context mixin.to_s do
       %w(default_task feature_support_require feature_support_extend
          test_dir test_task test_pattern test_filename
          test_helper_filename).each do |method|
-          should "define #{method}" do
-            assert mixin.method_defined?(method)
-          end
-       end
+        should "define #{method}" do
+          assert mixin.method_defined?(method)
+        end
+      end
     end
   end
 end
diff --git a/test/jeweler/test_specification.rb b/test/jeweler/test_specification.rb
index 9616912..e80a558 100644
--- a/test/jeweler/test_specification.rb
+++ b/test/jeweler/test_specification.rb
@@ -13,37 +13,36 @@ class TestSpecification < Test::Unit::TestCase
     gemspec = if block
                 Gem::Specification.new(&block)
               else
-                Gem::Specification.new()
+                Gem::Specification.new
               end
     gemspec.extend(Jeweler::Specification)
     gemspec
   end
 
-  should "be able to use to_ruby on a duped gemspec without error" do
+  should 'be able to use to_ruby on a duped gemspec without error' do
     gemspec = build_jeweler_gemspec
     gemspec.files.include 'throwaway value'
 
     gemspec.dup.to_ruby
   end
 
-  context "basic defaults" do
+  context 'basic defaults' do
     setup do
       @gemspec = build_jeweler_gemspec
     end
 
-    should "make files a FileList" do
+    should 'make files a FileList' do
       assert_equal FileList, @gemspec.files.class
     end
 
-    should "make extra_rdoc_files a FileList" do
+    should 'make extra_rdoc_files a FileList' do
       assert_equal FileList, @gemspec.extra_rdoc_files.class
     end
-
   end
- 
+
   context "there aren't any executables in the project directory" do
     setup do
-      @project.directory 'bin' 
+      @project.directory 'bin'
     end
 
     context "and there hasn't been any set on the gemspec" do
@@ -52,27 +51,26 @@ class TestSpecification < Test::Unit::TestCase
         @gemspec.set_jeweler_defaults(@project)
       end
 
-
-      should "have empty gemspec executables" do
+      should 'have empty gemspec executables' do
         assert_equal [], @gemspec.executables
       end
     end
 
-    context "and has been previously set executables" do
+    context 'and has been previously set executables' do
       setup do
-        @gemspec  = build_jeweler_gemspec do |gemspec|
+        @gemspec = build_jeweler_gemspec do |gemspec|
           gemspec.executables = %w(non-existant)
         end
         @gemspec.set_jeweler_defaults(@project)
       end
 
-      should "have only the original executables in the gemspec" do
+      should 'have only the original executables in the gemspec' do
         assert_equal %w(non-existant), @gemspec.executables
       end
     end
   end
 
-  context "there are multiple executables in the project directory" do
+  context 'there are multiple executables in the project directory' do
     setup do
       @project.directory('bin') do |bin|
         bin.file 'burnination'
@@ -87,28 +85,28 @@ class TestSpecification < Test::Unit::TestCase
 
     context "and there hasn't been any set on the gemspec" do
       setup do
-        @gemspec  = build_jeweler_gemspec
+        @gemspec = build_jeweler_gemspec
         @gemspec.set_jeweler_defaults(@project)
       end
 
-      should "have the executables under version control in the gemspec" do
+      should 'have the executables under version control in the gemspec' do
         assert_equal %w(burnination), @gemspec.executables
       end
     end
-    context "and has been previously set executables" do
+    context 'and has been previously set executables' do
       setup do
-        @gemspec  = build_jeweler_gemspec do |gemspec|
+        @gemspec = build_jeweler_gemspec do |gemspec|
           gemspec.executables = %w(burnination)
         end
         @gemspec.set_jeweler_defaults(@project)
       end
-      should "have only the original executables in the gemspec" do
+      should 'have only the original executables in the gemspec' do
         assert_equal %w(burnination), @gemspec.executables
       end
     end
   end
 
-  context "there are mutiple extconf.rb and mkrf_conf.rb in the project directory" do
+  context 'there are mutiple extconf.rb and mkrf_conf.rb in the project directory' do
     setup do
       @project.directory('ext') do |ext|
         ext.file 'extconf.rb'
@@ -122,19 +120,17 @@ class TestSpecification < Test::Unit::TestCase
 
     context "and there hasn't been any extensions set on the gemspec" do
       setup do
-        @gemspec  = build_jeweler_gemspec
+        @gemspec = build_jeweler_gemspec
         @gemspec.set_jeweler_defaults(@project)
       end
 
-      should "have all the extconf.rb and mkrf_config.rb files in extensions" do
+      should 'have all the extconf.rb and mkrf_config.rb files in extensions' do
         assert_equal %w(ext/mkrf_conf.rb ext/trogdor_native/mkrf_conf.rb ext/extconf.rb ext/trogdor_native/extconf.rb).sort, @gemspec.extensions.sort
       end
-
     end
-
   end
 
-  context "there are some files and is setup for git" do
+  context 'there are some files and is setup for git' do
     setup do
       @project.file 'Rakefile'
       @project.directory('lib') do |lib|
@@ -148,33 +144,32 @@ class TestSpecification < Test::Unit::TestCase
       repo.commit('Initial commit')
     end
 
-    context "and the files defaults are used" do
+    context 'and the files defaults are used' do
       setup do
-        @gemspec  = build_jeweler_gemspec
+        @gemspec = build_jeweler_gemspec
         @gemspec.set_jeweler_defaults(@project, @project)
       end
 
-      should "populate files from git" do
+      should 'populate files from git' do
         assert_equal %w(Rakefile lib/example.rb), @gemspec.files.sort
       end
     end
 
-    context "and the files specified manually" do
+    context 'and the files specified manually' do
       setup do
-        @gemspec  = build_jeweler_gemspec do |gemspec|
+        @gemspec = build_jeweler_gemspec do |gemspec|
           gemspec.files = %w(Rakefile)
         end
         @gemspec.set_jeweler_defaults(@project, @project)
       end
 
-      should "not be overridden by files from git" do
+      should 'not be overridden by files from git' do
         assert_equal %w(Rakefile), @gemspec.files
       end
     end
-
   end
 
-  context "there are some files and is setup for git with ignored files" do
+  context 'there are some files and is setup for git with ignored files' do
     setup do
       @project.file '.gitignore', 'ignored'
       @project.file 'ignored'
@@ -189,17 +184,16 @@ class TestSpecification < Test::Unit::TestCase
       repo.add('.')
       repo.commit('Initial commit')
 
-
-      @gemspec  = build_jeweler_gemspec
+      @gemspec = build_jeweler_gemspec
       @gemspec.set_jeweler_defaults(@project, @project)
     end
 
-    should "populate files from git excluding ignored and .gitignore" do
+    should 'populate files from git excluding ignored and .gitignore' do
       assert_equal %w(Rakefile lib/example.rb), @gemspec.files.sort
     end
   end
 
-  context "there are some files and is setup for git and working in a sub directory" do
+  context 'there are some files and is setup for git and working in a sub directory' do
     setup do
       @subproject = File.join(@project, 'subproject')
       @project.file 'Rakefile'
@@ -217,29 +211,28 @@ class TestSpecification < Test::Unit::TestCase
       repo.add('.')
       repo.commit('Initial commit')
 
-      @gemspec  = build_jeweler_gemspec
+      @gemspec = build_jeweler_gemspec
       @gemspec.set_jeweler_defaults(@subproject, @project)
     end
 
-    should "populate files from git relative to sub directory" do
+    should 'populate files from git relative to sub directory' do
       assert_equal %w(lib/subproject_example.rb README).sort, @gemspec.files.sort
     end
   end
 
-  context "there are some files and is not setup for git" do
+  context 'there are some files and is not setup for git' do
     setup do
       @project.file 'Rakefile'
       @project.directory('lib') do |lib|
         lib.file 'example.rb'
       end
 
-      @gemspec  = build_jeweler_gemspec
+      @gemspec = build_jeweler_gemspec
       @gemspec.set_jeweler_defaults(@project, @project)
     end
 
-    should "not populate files" do
+    should 'not populate files' do
       assert_equal [], @gemspec.files.sort
     end
   end
-
 end
diff --git a/test/jeweler/test_tasks.rb b/test/jeweler/test_tasks.rb
index 67b6e4e..ab100f8 100644
--- a/test/jeweler/test_tasks.rb
+++ b/test/jeweler/test_tasks.rb
@@ -6,8 +6,8 @@ class TestTasks < Test::Unit::TestCase
 
   context 'instantiating Jeweler::Tasks' do
     setup do
-      @gemspec_building_block = lambda {|gemspec|}
-      @tasks = Jeweler::Tasks.new &@gemspec_building_block
+      @gemspec_building_block = ->(gemspec) {}
+      @tasks = Jeweler::Tasks.new(&@gemspec_building_block)
     end
 
     teardown do
@@ -45,6 +45,5 @@ class TestTasks < Test::Unit::TestCase
       @tasks = Jeweler::Tasks.new { |s| spec = s }
       assert_not_nil @tasks.jeweler.gemspec
     end
-
   end
 end
diff --git a/test/jeweler/test_version_helper.rb b/test/jeweler/test_version_helper.rb
index 379568b..f93c58f 100644
--- a/test/jeweler/test_version_helper.rb
+++ b/test/jeweler/test_version_helper.rb
@@ -1,10 +1,9 @@
 require 'test_helper'
 
 class TestVersionHelper < Test::Unit::TestCase
-
   VERSION_TMP_DIR = File.dirname(__FILE__) + '/version_tmp'
 
-  def self.should_have_version(major, minor, patch, build=nil)
+  def self.should_have_version(major, minor, patch, build = nil)
     should "have major version #{major}" do
       assert_equal major, @version_helper.major
     end
@@ -26,14 +25,13 @@ class TestVersionHelper < Test::Unit::TestCase
       assert_equal version_s, @version_helper.to_s
     end
 
-    #version_hash = {:major => major, :minor => minor, :patch => patch}
-    #should "render hash as #{version_hash.inspect}" do
-      #assert_equal version_hash, @version_helper.to_hash
-    #end
-    
+    # version_hash = {:major => major, :minor => minor, :patch => patch}
+    # should "render hash as #{version_hash.inspect}" do
+    # assert_equal version_hash, @version_helper.to_hash
+    # end
   end
 
-  context "VERSION.yml with 3.5.4" do
+  context 'VERSION.yml with 3.5.4' do
     setup do
       FileUtils.rm_rf VERSION_TMP_DIR
       FileUtils.mkdir_p VERSION_TMP_DIR
@@ -45,23 +43,23 @@ class TestVersionHelper < Test::Unit::TestCase
 
     should_have_version 3, 5, 4
 
-    context "bumping major version" do
+    context 'bumping major version' do
       setup { @version_helper.bump_major }
       should_have_version 4, 0, 0
     end
 
-    context "bumping the minor version" do
+    context 'bumping the minor version' do
       setup { @version_helper.bump_minor }
       should_have_version 3, 6, 0
     end
 
-    context "bumping the patch version" do
+    context 'bumping the patch version' do
       setup { @version_helper.bump_patch }
       should_have_version 3, 5, 5
     end
   end
 
-  context "VERSION.yml with 3.5.4.a1" do
+  context 'VERSION.yml with 3.5.4.a1' do
     setup do
       FileUtils.rm_rf VERSION_TMP_DIR
       FileUtils.mkdir_p VERSION_TMP_DIR
@@ -73,23 +71,23 @@ class TestVersionHelper < Test::Unit::TestCase
 
     should_have_version 3, 5, 4, 'a1'
 
-    context "bumping major version" do
+    context 'bumping major version' do
       setup { @version_helper.bump_major }
       should_have_version 4, 0, 0, nil
     end
 
-    context "bumping the minor version" do
+    context 'bumping the minor version' do
       setup { @version_helper.bump_minor }
       should_have_version 3, 6, 0, nil
     end
 
-    context "bumping the patch version" do
+    context 'bumping the patch version' do
       setup { @version_helper.bump_patch }
       should_have_version 3, 5, 5, nil
     end
   end
 
-  context "VERSION with 3.5.4" do
+  context 'VERSION with 3.5.4' do
     setup do
       FileUtils.rm_rf VERSION_TMP_DIR
       FileUtils.mkdir_p VERSION_TMP_DIR
@@ -101,23 +99,23 @@ class TestVersionHelper < Test::Unit::TestCase
 
     should_have_version 3, 5, 4
 
-    context "bumping major version" do
+    context 'bumping major version' do
       setup { @version_helper.bump_major }
       should_have_version 4, 0, 0
     end
 
-    context "bumping the minor version" do
+    context 'bumping the minor version' do
       setup { @version_helper.bump_minor }
       should_have_version 3, 6, 0
     end
 
-    context "bumping the patch version" do
+    context 'bumping the patch version' do
       setup { @version_helper.bump_patch }
       should_have_version 3, 5, 5
     end
   end
 
-  context "VERSION with 3.5.4.a1" do
+  context 'VERSION with 3.5.4.a1' do
     setup do
       FileUtils.rm_rf VERSION_TMP_DIR
       FileUtils.mkdir_p VERSION_TMP_DIR
@@ -129,23 +127,23 @@ class TestVersionHelper < Test::Unit::TestCase
 
     should_have_version 3, 5, 4, 'a1'
 
-    context "bumping major version" do
+    context 'bumping major version' do
       setup { @version_helper.bump_major }
       should_have_version 4, 0, 0, nil
     end
 
-    context "bumping the minor version" do
+    context 'bumping the minor version' do
       setup { @version_helper.bump_minor }
       should_have_version 3, 6, 0, nil
     end
 
-    context "bumping the patch version" do
+    context 'bumping the patch version' do
       setup { @version_helper.bump_patch }
       should_have_version 3, 5, 5, nil
     end
   end
 
-  context "Non-existant VERSION.yml" do
+  context 'Non-existant VERSION.yml' do
     setup do
       FileUtils.rm_rf VERSION_TMP_DIR
       FileUtils.mkdir_p VERSION_TMP_DIR
@@ -157,30 +155,30 @@ class TestVersionHelper < Test::Unit::TestCase
       end
     end
 
-    context "setting an initial version" do
+    context 'setting an initial version' do
       setup do
         @version_helper = Jeweler::VersionHelper.new(VERSION_TMP_DIR)
         @version_helper.update_to 0, 0, 1
       end
 
       should_have_version 0, 0, 1
-      should "not create VERSION.yml" do
-        assert ! File.exists?(File.join(VERSION_TMP_DIR, 'VERSION.yml'))
+      should 'not create VERSION.yml' do
+        assert !File.exist?(File.join(VERSION_TMP_DIR, 'VERSION.yml'))
       end
-      should "not create VERSION" do
-        assert ! File.exists?(File.join(VERSION_TMP_DIR, 'VERSION'))
+      should 'not create VERSION' do
+        assert !File.exist?(File.join(VERSION_TMP_DIR, 'VERSION'))
       end
 
-      context "outputting" do
+      context 'outputting' do
         setup do
           @version_helper.write
         end
 
-        should "create VERSION" do
-          assert File.exists?(File.join(VERSION_TMP_DIR, 'VERSION'))
+        should 'create VERSION' do
+          assert File.exist?(File.join(VERSION_TMP_DIR, 'VERSION'))
         end
 
-        context "re-reading VERSION" do
+        context 're-reading VERSION' do
           setup do
             @version_helper = Jeweler::VersionHelper.new(VERSION_TMP_DIR)
           end
@@ -191,7 +189,7 @@ class TestVersionHelper < Test::Unit::TestCase
     end
   end
 
-  def build_version_yml(base_dir, major, minor, patch, build=nil)
+  def build_version_yml(base_dir, major, minor, patch, build = nil)
     version_path = File.join(base_dir, 'VERSION.yml')
 
     File.open(version_path, 'w+') do |f|
@@ -205,7 +203,7 @@ class TestVersionHelper < Test::Unit::TestCase
     end
   end
 
-  def build_version_plaintext(base_dir, major, minor, patch, build=nil)
+  def build_version_plaintext(base_dir, major, minor, patch, build = nil)
     version_path = File.join(base_dir, 'VERSION')
     File.open(version_path, 'w+') do |f|
       f.puts [major, minor, patch, build].compact.join('.')
diff --git a/test/shoulda_macros/jeweler_macros.rb b/test/shoulda_macros/jeweler_macros.rb
index e04144d..23da14b 100644
--- a/test/shoulda_macros/jeweler_macros.rb
+++ b/test/shoulda_macros/jeweler_macros.rb
@@ -1,29 +1,29 @@
 class Test::Unit::TestCase
   class << self
     def should_have_major_version(version)
-      should "have major version of #{version}" do 
+      should "have major version of #{version}" do
         assert_equal version, @jeweler.major_version
       end
     end
-    
+
     def should_have_minor_version(version)
       should "have minor version of #{version}" do
         assert_equal version, @jeweler.minor_version
       end
     end
-    
+
     def should_have_patch_version(version)
       should "have patch version of #{version}" do
         assert_equal version, @jeweler.patch_version
       end
     end
-    
+
     def should_be_version(version)
       should "be version #{version}" do
         assert_equal version, @jeweler.version
       end
     end
-    
+
     def should_bump_version(major, minor, patch)
       version = "#{major}.#{minor}.#{patch}"
       should_have_major_version major
diff --git a/test/test_helper.rb b/test/test_helper.rb
index 1f50ae0..671f314 100644
--- a/test/test_helper.rb
+++ b/test/test_helper.rb
@@ -1,23 +1,24 @@
-require 'test/unit'
 require 'rubygems'
 
 require 'bundler'
-require 'coveralls'
-Coveralls.wear!
-
 begin
   Bundler.setup(:default, :xzibit, :test)
 rescue Bundler::BundlerError => e
   $stderr.puts e.message
-  $stderr.puts "Run `bundle install` to install missing gems"
+  $stderr.puts 'Run `bundle install` to install missing gems'
   exit e.status_code
 end
+require 'test/unit/rr'
+require 'coveralls'
+Coveralls.wear!
+
+# prevent GIT_* environment leakage from affecting tests
+ENV.delete_if { |name, _| name.start_with?('GIT') }
 
 require 'rake'
 require 'shoulda'
-require 'rr'
-#require 'redgreen'
-require 'construct'
+# require 'redgreen'
+require 'test_construct'
 require 'git'
 require 'time'
 
@@ -26,7 +27,7 @@ require 'jeweler'
 $LOAD_PATH.unshift(File.dirname(__FILE__))
 require 'shoulda_macros/jeweler_macros'
 
-TMP_DIR = '/tmp/jeweler_test'
+TMP_DIR = '/tmp/jeweler_test'.freeze
 FIXTURE_DIR = File.expand_path('../fixtures', __FILE__)
 
 class RubyForgeStub
@@ -38,8 +39,7 @@ class RubyForgeStub
 end
 
 class Test::Unit::TestCase
-  include RR::Adapters::TestUnit unless include?(RR::Adapters::TestUnit)
-  include Construct::Helpers
+  include TestConstruct::Helpers
 
   def tmp_dir
     TMP_DIR
@@ -59,12 +59,12 @@ class Test::Unit::TestCase
 
   def build_spec(*files)
     Gem::Specification.new do |s|
-      s.name = "bar"
-      s.summary = "Simple and opinionated helper for creating Rubygem projects on GitHub"
-      s.email = "josh@technicalpickles.com"
-      s.homepage = "http://github.com/technicalpickles/jeweler"
-      s.description = "Simple and opinionated helper for creating Rubygem projects on GitHub"
-      s.authors = ["Josh Nichols"]
+      s.name = 'bar'
+      s.summary = 'Simple and opinionated helper for creating Rubygem projects on GitHub'
+      s.email = 'josh@technicalpickles.com'
+      s.homepage = 'http://github.com/technicalpickles/jeweler'
+      s.description = 'Simple and opinionated helper for creating Rubygem projects on GitHub'
+      s.authors = ['Josh Nichols']
       s.files = FileList[*files] unless files.empty?
       s.version = '0.1.1'
     end
@@ -86,7 +86,7 @@ class Test::Unit::TestCase
         end
       end
 
-      context "", &block
+      context '', &block
     end
   end
 
@@ -117,18 +117,17 @@ class Test::Unit::TestCase
 
         if @command.respond_to? :repo
           @repo = Object.new
-          @command.repo = @repo 
+          @command.repo = @repo
         end
       end
 
-      context "", &block
+      context '', &block
     end
   end
 
   def self.build_command_context(description, &block)
     context description do
       setup do
-
         @repo           = Object.new
         @version_helper = Object.new
         @gemspec        = Object.new
@@ -149,16 +148,15 @@ class Test::Unit::TestCase
         stub(@jeweler).output         { @output }
         stub(@jeweler).gemspec_helper { @gemspec_helper }
         stub(@jeweler).base_dir       { @base_dir }
-        stub(@jeweler).rubyforge    { @rubyforge }
+        stub(@jeweler).rubyforge { @rubyforge }
       end
 
-      context "", &block
+      context '', &block
     end
-
   end
 
   def stub_git_config(options = {})
-    stub(Git).global_config() { options }
+    stub(Git).global_config { options }
   end
 
   def set_default_git_config
diff --git a/test/test_jeweler.rb b/test/test_jeweler.rb
index 0eed8fb..1b767fc 100644
--- a/test/test_jeweler.rb
+++ b/test/test_jeweler.rb
@@ -1,7 +1,6 @@
 require 'test_helper'
 
 class TestJeweler < Test::Unit::TestCase
-
   def build_jeweler(base_dir = nil)
     base_dir ||= git_dir_path
     FileUtils.mkdir_p base_dir
@@ -18,7 +17,6 @@ class TestJeweler < Test::Unit::TestCase
   end
 
   def build_git_dir
-
     FileUtils.mkdir_p git_dir_path
     Dir.chdir git_dir_path do
       Git.init
@@ -29,31 +27,31 @@ class TestJeweler < Test::Unit::TestCase
     FileUtils.mkdir_p non_git_dir_path
   end
 
-  should "raise an error if a nil gemspec is given" do
+  should 'raise an error if a nil gemspec is given' do
     assert_raises Jeweler::GemspecError do
       Jeweler.new(nil)
     end
   end
 
-  should "know if it is in a git repo" do
+  should 'know if it is in a git repo' do
     build_git_dir
 
     assert build_jeweler(git_dir_path).in_git_repo?
   end
 
-  should "know if it is not in a git repo" do
+  should 'know if it is not in a git repo' do
     build_non_git_dir
 
     jeweler = build_jeweler(non_git_dir_path)
-    assert ! jeweler.in_git_repo?, "jeweler doesn't know that #{jeweler.base_dir} is not a git repository"
+    assert !jeweler.in_git_repo?, "jeweler doesn't know that #{jeweler.base_dir} is not a git repository"
   end
 
-  should "find the base repo" do
+  should 'find the base repo' do
     jeweler = build_jeweler(File.dirname(File.expand_path(__FILE__)))
     assert_equal File.dirname(File.dirname(File.expand_path(__FILE__))), jeweler.git_base_dir
   end
 
-  should "build and run write gemspec command when writing gemspec" do
+  should 'build and run write gemspec command when writing gemspec' do
     jeweler = build_jeweler
 
     command = Object.new
@@ -64,7 +62,7 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.write_gemspec
   end
 
-  should "build and run validate gemspec command when validating gemspec" do
+  should 'build and run validate gemspec command when validating gemspec' do
     jeweler = build_jeweler
 
     command = Object.new
@@ -75,7 +73,7 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.validate_gemspec
   end
 
-  should "build and run build gem command when building gem" do
+  should 'build and run build gem command when building gem' do
     jeweler = build_jeweler
 
     command = Object.new
@@ -86,7 +84,7 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.build_gem
   end
 
-  should "build and run build gem command when installing gem" do
+  should 'build and run build gem command when installing gem' do
     jeweler = build_jeweler
 
     command = Object.new
@@ -97,7 +95,7 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.install_gem
   end
 
-  should "build and run bump major version command when bumping major version" do
+  should 'build and run bump major version command when bumping major version' do
     jeweler = build_jeweler
 
     command = Object.new
@@ -108,7 +106,7 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.bump_major_version
   end
 
-  should "build and run bump minor version command when bumping minor version" do
+  should 'build and run bump minor version command when bumping minor version' do
     jeweler = build_jeweler
 
     command = Object.new
@@ -119,22 +117,22 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.bump_minor_version
   end
 
-  should "build and run write version command when writing version" do
+  should 'build and run write version command when writing version' do
     jeweler = build_jeweler
 
     command = Object.new
     mock(command).run
-    mock(command).major=(1)
-    mock(command).minor=(5)
-    mock(command).patch=(2)
-    mock(command).build=('a1')
+    mock(command).major = 1
+    mock(command).minor = 5
+    mock(command).patch = 2
+    mock(command).build = 'a1'
 
     mock(Jeweler::Commands::Version::Write).build_for(jeweler) { command }
 
     jeweler.write_version(1, 5, 2, 'a1')
   end
 
-  should "build and run release to github command when running release_gemspec" do
+  should 'build and run release to github command when running release_gemspec' do
     jeweler = build_jeweler
     args = {}
 
@@ -146,7 +144,7 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.release_gemspec(args)
   end
 
-  should "build and run release to git command when running release_to_git" do
+  should 'build and run release to git command when running release_to_git' do
     jeweler = build_jeweler
     args = {}
 
@@ -158,20 +156,19 @@ class TestJeweler < Test::Unit::TestCase
     jeweler.release_to_git(args)
   end
 
-  should "respond to gemspec_helper" do
+  should 'respond to gemspec_helper' do
     assert_respond_to build_jeweler, :gemspec_helper
   end
 
-  should "respond to version_helper" do
+  should 'respond to version_helper' do
     assert_respond_to build_jeweler, :version_helper
   end
 
-  should "respond to repo" do
+  should 'respond to repo' do
     assert_respond_to build_jeweler, :repo
   end
 
-  should "respond to commit" do
+  should 'respond to commit' do
     assert_respond_to build_jeweler, :commit
   end
-
 end

More details

Full run details