Commit Graph

12 Commits

Author SHA1 Message Date
Peter Goldstein 3e57eb531f
Add Ruby 3.1 to CI (#558)
* Add Ruby 3.1 to CI

Update Rubocop for recent Rubies
Disable Rubocop run for Rubies before Ruby 2.4
Quote '3.0' in the CI configuration to ensure it loads a 3.0.x Ruby
Set RUBYOPT="--disable_error_highlight" so Ruby 3.1 error matchers pass

* Add CHANGELOG.md entry

* Re-add deleted line from CHANGELOG.md

* Set minimum supported Ruby version to 2.4.

Remove a number of code bits designed to support Rubies below version 2.4

* Bump version.  Remove unneeded require from Gemfile.  Add require to spec/support file
2022-01-27 18:59:24 -08:00
Michael Herold 5a6ffc7e2d
Update Rubocop and address the addressable todos
This is a big step forward in our Rubocop setup. I addressed all of the todos
from the current version of Rubocop that made sense to. The only things that
remain are metrics and one cop that relies on the line length metric to work.

I made some judgment calls on disabling a few cops:

1. The `Layout/IndentHeredoc` cop wants you to either use the squiggly heredoc
   from Ruby 2.3 or introduce a library. Since we are a low-level library that
   is used as a transitive dependency, we cannot introduce another library as a
   dependence, so that option is out. Also, we support Rubies back to 2.0
   currently, so using the squiggly heredoc isn't an option. Once we remove
   support for Rubies older than 2.3, we can switch to the squiggly heredoc cop.
2. The `Naming/FileName` cop was reporting false positives for a few files in
   the repository, so I disabled it on those files.
3. The `Style/DoubleNegation` cop reports lints on a few cases where we use
   double negation. Given the very generic nature of Hashie, the double-negation
   is the easiest, clearest way to express that we want an item to be a Boolean.
   I disabled the cop because we exist in the gray area where this makes sense.
2018-06-17 11:04:56 -05:00
Michael Herold f50cf8e6bb Bring integration tests into main test harness
We have a nice integration spec harness, so let's make sure we use it
when we're working on the gem. I'm making the following changes:

* Make `bundle exec rake` run integration specs, except on Travis.
* Silence a warning in the OmniAuth integration spec that has nothing to
  do with Hashie.
* Make Guard run integration specs when appropriate. Now, when you run
  all tasks you will run integration specs. Also, if you modify an
  integration spec, it will run. Lastly, if you modify anything in `lib`
  the integration specs will run.
* Keeps the extra Travis build that only runs integration specs. Travis
  didn't like the Rake task that included it and there's extra signal by
  doing it this way anyway.
2017-02-03 15:20:21 -06:00
dblock 9cc952f607 Added omniauth integration spec for #391. 2017-01-31 12:57:18 -05:00
Peter M. Goldstein 8f512086fe Bump up Rubocop to 0.24.1 2014-07-06 14:56:20 -07:00
dblock 881c6edfe7 Added Rubocop. 2014-03-30 20:44:41 -04:00
Michael Bleigh d01a163b69 Switch to Bundler for gem management and Guard for autotesting. 2011-07-22 16:33:18 -05:00
Michael Bleigh 7665f687d9 Update to RSpec 2.0 2011-01-27 08:20:39 -06:00
Michael Bleigh 69bd1ab7f3 Add Jeweler back in. 2010-06-22 10:07:35 -04:00
Daniel Neighman 0c85e9482f Adds a fix for json generation 2010-06-22 22:00:39 +08:00
Michael Bleigh 1244998858 Adding README 2009-11-12 09:08:55 -05:00
Michael Bleigh a7781d369a Initial commit to hashie. 2009-09-02 21:32:57 -04:00